Added orders and prices apps
This commit is contained in:
parent
f699fed511
commit
5d36dbd02d
2
TODO.md
2
TODO.md
|
@ -41,3 +41,5 @@ Remember that, as always with QuerySets, any subsequent chained methods which im
|
|||
* profile select_related vs prefetch_related
|
||||
|
||||
* use HTTP OPTIONS instead of configuration endpoint, or rename to settings?
|
||||
|
||||
* Log changes from rest api (serialized objects)
|
||||
|
|
|
@ -50,6 +50,12 @@ def get_accounts():
|
|||
tokens = reverse('admin:authtoken_token_changelist')
|
||||
users.append(items.MenuItem(_("Tokens"), tokens))
|
||||
accounts.append(items.MenuItem(_("Users"), url, children=users))
|
||||
if isinstalled('orchestra.apps.prices'):
|
||||
url = reverse('admin:prices_price_changelist')
|
||||
accounts.append(items.MenuItem(_("Prices"), url))
|
||||
if isinstalled('orchestra.apps.orders'):
|
||||
url = reverse('admin:orders_order_changelist')
|
||||
accounts.append(items.MenuItem(_("Orders"), url))
|
||||
return accounts
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
Orders
|
||||
======
|
||||
|
||||
Build an asyclic graph with every `model.save()` and `model.delete()` looking for Service.content_type matches.
|
||||
|
||||
`ORDERS_GRAPH_MAX_DEPTH`
|
||||
|
||||
autodiscover contacts by looking for `contact` atribute on related objects with reverse relationship `null=False`
|
15
orchestra/apps/orders/admin.py
Normal file
15
orchestra/apps/orders/admin.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import Order, QuotaStorage
|
||||
|
||||
|
||||
class OrderAdmin(admin.ModelAdmin):
|
||||
pass
|
||||
|
||||
|
||||
class QuotaStorageAdmin(admin.ModelAdmin):
|
||||
pass
|
||||
|
||||
|
||||
admin.site.register(Order, OrderAdmin)
|
||||
admin.site.register(QuotaStorage, QuotaStorageAdmin)
|
|
@ -1,29 +0,0 @@
|
|||
from . import settings
|
||||
|
||||
|
||||
class Node(object):
|
||||
def __init__(self, content):
|
||||
self.content = content
|
||||
self.parents = []
|
||||
self.path = []
|
||||
|
||||
def __repr__(self):
|
||||
return "%s:%s" % (type(self.content).__name__, self.content)
|
||||
|
||||
|
||||
class Collector(object):
|
||||
def __init__(self, obj, cascade_only=False):
|
||||
self.obj = obj
|
||||
self.cascade_only = cascade_only
|
||||
|
||||
def collect(self):
|
||||
depth = settings.ORDERS_COLLECTOR_MAX_DEPTH
|
||||
return self._rec_collect(self.obj, [self.obj], depth)
|
||||
|
||||
def _rec_collect(self, obj, path, depth):
|
||||
node = Node(content=obj)
|
||||
# FK lookups
|
||||
for field in obj._meta.fields:
|
||||
if hasattr(field, 'related') and (self.cascade_only or not field.null):
|
||||
related_object = getattr(obj, field.name)
|
||||
|
|
@ -1,36 +1,35 @@
|
|||
from django.db import models
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from . import settings
|
||||
|
||||
|
||||
class Service(models.Model):
|
||||
name = models.CharField(_("name"), max_length=256)
|
||||
content_type = models.ForeignKey(ContentType, verbose_name=_("content_type"))
|
||||
match = models.CharField(_("expression"), max_length=256)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Order(models.Model):
|
||||
contact = models.ForeignKey(settings.ORDERS_CONTACT_MODEL,
|
||||
verbose_name=_("contact"), related_name='orders')
|
||||
account = models.ForeignKey('accounts.Account', verbose_name=_("account"),
|
||||
related_name='orders')
|
||||
content_type = models.ForeignKey(ContentType)
|
||||
object_id = models.PositiveIntegerField(null=True)
|
||||
service = models.ForeignKey(Service, verbose_name=_("service"),
|
||||
related_name='orders'))
|
||||
price = models.ForeignKey(settings.ORDERS_PRICE_MODEL,
|
||||
verbose_name=_("price"), related_name='orders')
|
||||
registered_on = models.DateTimeField(_("registered on"), auto_now_add=True)
|
||||
canceled_on = models.DateTimeField(_("canceled on"), null=True, blank=True)
|
||||
last_billed_on = models.DateTimeField(_("last billed on"), null=True, blank=True)
|
||||
cancelled_on = models.DateTimeField(_("cancelled on"), null=True, blank=True)
|
||||
billed_on = models.DateTimeField(_("billed on"), null=True, blank=True)
|
||||
billed_until = models.DateTimeField(_("billed until"), null=True, blank=True)
|
||||
ignore = models.BooleanField(_("ignore"), default=False)
|
||||
description = models.CharField(_("description"), max_length=256, blank=True)
|
||||
description = models.TextField(_("description"), blank=True)
|
||||
|
||||
content_object = generic.GenericForeignKey()
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s@%s" (self.service, self.contact)
|
||||
return self.service
|
||||
|
||||
|
||||
class QuotaStorage(models.Model):
|
||||
order = models.ForeignKey(Order, verbose_name=_("order"))
|
||||
value = models.BigIntegerField(_("value"))
|
||||
date = models.DateTimeField(_("date"))
|
||||
|
||||
def __unicode__(self):
|
||||
return self.order
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
ORDERS_CONTACT_MODEL = getattr(settings, 'ORDERS_CONTACT_MODEL', 'contacts.Contact')
|
||||
|
||||
|
||||
ORDERS_COLLECTOR_MAX_DEPTH = getattr(settings, 'ORDERS_COLLECTOR_MAX_DEPTH', 3)
|
||||
ORDERS_PRICE_MODEL = getattr(settings, 'ORDERS_PRICE_MODEL', 'prices.Price')
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class Root(models.Model):
|
||||
name = models.CharField(max_length=256, default='randomname')
|
||||
|
||||
|
||||
class Related(models.Model):
|
||||
root = models.ForeignKey(Root)
|
||||
|
||||
|
||||
class TwoRelated(models.Model):
|
||||
related = models.ForeignKey(Related)
|
||||
|
||||
|
||||
class ThreeRelated(models.Model):
|
||||
twolated = models.ForeignKey(TwoRelated)
|
||||
|
||||
|
||||
class FourRelated(models.Model):
|
||||
threerelated = models.ForeignKey(ThreeRelated)
|
|
@ -1,28 +0,0 @@
|
|||
from django.conf import settings
|
||||
from django.core.management import call_command
|
||||
from django.db.models import loading
|
||||
from django.test import TestCase
|
||||
|
||||
from .models import Root, Related, TwoRelated, ThreeRelated, FourRelated
|
||||
|
||||
|
||||
#class CollectorTests(TestCase):
|
||||
# def setUp(self):
|
||||
# self.root = Root.objects.create(name='randomname')
|
||||
# self.related = Related.objects.create(top=self.root)
|
||||
#
|
||||
# def _pre_setup(self):
|
||||
# # Add the models to the db.
|
||||
# self._original_installed_apps = list(settings.INSTALLED_APPS)
|
||||
# settings.INSTALLED_APPS += ('orchestra.apps.orders.tests',)
|
||||
# loading.cache.loaded = False
|
||||
# call_command('syncdb', interactive=False, verbosity=0)
|
||||
# super(CollectorTests, self)._pre_setup()
|
||||
#
|
||||
# def _post_teardown(self):
|
||||
# super(CollectorTests, self)._post_teardown()
|
||||
# settings.INSTALLED_APPS = self._original_installed_apps
|
||||
# loading.cache.loaded = False
|
||||
|
||||
# def test_models(self):
|
||||
# self.assertEqual('randomname', self.root.name)
|
23
orchestra/apps/prices/admin.py
Normal file
23
orchestra/apps/prices/admin.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from orchestra.core import services
|
||||
|
||||
from .models import Pack, Price, Rate
|
||||
|
||||
|
||||
class RateInline(admin.TabularInline):
|
||||
model = Rate
|
||||
|
||||
|
||||
class PriceAdmin(admin.ModelAdmin):
|
||||
inlines = [RateInline]
|
||||
|
||||
def formfield_for_dbfield(self, db_field, **kwargs):
|
||||
""" Improve performance of account field and filter by account """
|
||||
if db_field.name == 'service':
|
||||
models = [model._meta.model_name for model in services.get().keys()]
|
||||
kwargs['queryset'] = db_field.rel.to.objects.filter(model__in=models)
|
||||
return super(PriceAdmin, self).formfield_for_dbfield(db_field, **kwargs)
|
||||
|
||||
|
||||
admin.site.register(Price, PriceAdmin)
|
42
orchestra/apps/prices/models.py
Normal file
42
orchestra/apps/prices/models.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
from django.db import models
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from . import settings
|
||||
|
||||
|
||||
class Pack(models.Model):
|
||||
account = models.ForeignKey('accounts.Account', verbose_name=_("account"),
|
||||
related_name='packs')
|
||||
name = models.CharField(_("pack"), max_length=128,
|
||||
choices=settings.PRICES_PACKS,
|
||||
default=settings.PRICES_DEFAULT_PACK)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.pack
|
||||
|
||||
|
||||
class Price(models.Model):
|
||||
description = models.CharField(_("description"), max_length=256, unique=True)
|
||||
service = models.ForeignKey(ContentType, verbose_name=_("service"))
|
||||
expression = models.CharField(_("match"), max_length=256)
|
||||
tax = models.IntegerField(_("tax"), choices=settings.PRICES_TAXES,
|
||||
default=settings.PRICES_DEFAUL_TAX)
|
||||
active = models.BooleanField(_("is active"), default=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.description
|
||||
|
||||
|
||||
class Rate(models.Model):
|
||||
price = models.ForeignKey('prices.Price', verbose_name=_("price"))
|
||||
pack = models.CharField(_("pack"), max_length=128, blank=True,
|
||||
choices=(('', _("default")),) + settings.PRICES_PACKS)
|
||||
quantity = models.PositiveIntegerField(_("quantity"), null=True, blank=True)
|
||||
value = models.DecimalField(_("price"), max_digits=12, decimal_places=2)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('price', 'pack', 'quantity')
|
||||
|
||||
def __unicode__(self):
|
||||
return self.price
|
19
orchestra/apps/prices/settings.py
Normal file
19
orchestra/apps/prices/settings.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
PRICES_PACKS = getattr(settings, 'PRICES_PACKS', (
|
||||
('basic', _("Basic")),
|
||||
('advanced', _("Advanced")),
|
||||
))
|
||||
|
||||
PRICES_DEFAULT_PACK = getattr(settings, 'PRICES_DEFAULT_PACK', 'basic')
|
||||
|
||||
|
||||
PRICES_TAXES = getattr(settings, 'PRICES_TAXES', (
|
||||
(0, _("Duty free")),
|
||||
(7, _("7%")),
|
||||
(21, _("21%")),
|
||||
))
|
||||
|
||||
PRICES_DEFAUL_TAX = getattr(settings, 'PRICES_DFAULT_TAX', 0)
|
|
@ -76,6 +76,8 @@ INSTALLED_APPS = (
|
|||
'orchestra.apps.databases',
|
||||
'orchestra.apps.vps',
|
||||
'orchestra.apps.issues',
|
||||
'orchestra.apps.prices',
|
||||
'orchestra.apps.orders',
|
||||
|
||||
# Third-party apps
|
||||
'south',
|
||||
|
@ -136,6 +138,8 @@ FLUENT_DASHBOARD_APP_GROUPS = (
|
|||
'orchestra.apps.accounts.models.Account',
|
||||
'orchestra.apps.contacts.models.Contact',
|
||||
'orchestra.apps.users.models.User',
|
||||
'orchestra.apps.orders.models.Order',
|
||||
'orchestra.apps.prices.models.Price',
|
||||
),
|
||||
'collapsible': True,
|
||||
}),
|
||||
|
@ -167,6 +171,8 @@ FLUENT_DASHBOARD_APP_ICONS = {
|
|||
# Accounts
|
||||
'accounts/account': 'Face-monkey.png',
|
||||
'contacts/contact': 'contact.png',
|
||||
'orders/order': 'shopping-cart.png',
|
||||
'prices/price': 'price.png',
|
||||
# Administration
|
||||
'users/user': 'Mr-potato.png',
|
||||
'djcelery/taskstate': 'taskstate.png',
|
||||
|
|
BIN
orchestra/static/orchestra/icons/price.png
Normal file
BIN
orchestra/static/orchestra/icons/price.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
104
orchestra/static/orchestra/icons/price.svg
Normal file
104
orchestra/static/orchestra/icons/price.svg
Normal file
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Your_Icon"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
enable-background="new 0 0 100 100"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="price.svg"
|
||||
inkscape:export-filename="/home/glic3rinu/orchestra/django-orchestra/orchestra/static/orchestra/icons/price.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9"><filter
|
||||
inkscape:collect="always"
|
||||
id="filter3785"
|
||||
x="-0.13714286"
|
||||
width="1.2742857"
|
||||
y="-0.96000003"
|
||||
height="2.9200001"><feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="1.7378048"
|
||||
id="feGaussianBlur3787" /></filter><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2305"
|
||||
id="radialGradient2311"
|
||||
cx="-6"
|
||||
cy="37.75"
|
||||
fx="-6"
|
||||
fy="37.75"
|
||||
r="14"
|
||||
gradientTransform="matrix(1,0,0,0.267857,0,27.63839)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2305"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2307" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2309" /></linearGradient><radialGradient
|
||||
r="14"
|
||||
fy="37.75"
|
||||
fx="-6"
|
||||
cy="37.75"
|
||||
cx="-6"
|
||||
gradientTransform="matrix(1,0,0,0.267857,0,27.63839)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3043"
|
||||
xlink:href="#linearGradient2305"
|
||||
inkscape:collect="always" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="6.675088"
|
||||
inkscape:cx="15.760113"
|
||||
inkscape:cy="22.890176"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Your_Icon" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.48453608;color:#000000;fill:url(#radialGradient3043);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
|
||||
id="path2303"
|
||||
sodipodi:cx="-6"
|
||||
sodipodi:cy="37.75"
|
||||
sodipodi:rx="14"
|
||||
sodipodi:ry="3.75"
|
||||
d="m 8,37.75 a 14,3.75 0 1 1 -28,0 14,3.75 0 1 1 28,0 z"
|
||||
transform="matrix(1.535714,0,0,1.51296,29.034195,-15.256481)" /><g
|
||||
id="g3"
|
||||
style="fill:#555753"
|
||||
transform="matrix(0.56980085,-0.08926081,0.08926081,0.56980085,-7.4328135,-0.07503521)">
|
||||
<path
|
||||
d="m 92.489,14.705 c -0.77,-0.39 -1.696,-0.084 -2.085,0.679 -3.969,7.806 -7.123,7.317 -12.35,6.521 -3.248,-0.497 -7.289,-1.114 -12.139,0.37 -2.586,0.793 -4.882,2.757 -6.768,4.938 L 55.141,23.209 H 41.976 l -35.102,35.1 26.33,26.327 35.1,-35.098 V 36.371 l -6.948,-6.95 c 1.616,-1.921 3.495,-3.571 5.471,-4.178 4.172,-1.282 7.678,-0.745 10.76,-0.273 5.456,0.837 10.602,1.625 15.581,-8.181 0.388,-0.763 0.084,-1.696 -0.679,-2.084 M 45.114,52.634 c -0.743,-0.849 -2.128,-2.458 -4.824,-3.618 -2.424,-1.038 -3.673,-0.294 -4.118,0.755 -0.519,1.196 0.44,2.575 3.15,5.113 3.778,3.479 4.655,6.287 3.198,9.687 -1.431,3.325 -4.963,5.166 -9.566,4.036 l -1.654,3.848 -3.693,-1.588 1.521,-3.551 c -2.46,-1.185 -4.578,-2.939 -5.666,-4.334 l 2.998,-3.88 c 1.202,1.524 3.067,3.256 5.495,4.302 2.168,0.924 3.996,0.694 4.62,-0.763 0.612,-1.423 -0.206,-2.828 -2.601,-4.967 -3.423,-3.057 -5.349,-6.096 -3.793,-9.72 1.424,-3.325 4.849,-4.909 9.163,-3.938 l 1.521,-3.551 3.659,1.569 -1.404,3.286 c 2.43,1.136 3.872,2.417 4.926,3.574 l -2.932,3.74 z M 59.529,31.98 c 2.422,2.425 2.422,6.357 0,8.778 -1.215,1.209 -2.799,1.815 -4.387,1.815 -1.588,0 -3.178,-0.606 -4.388,-1.819 -2.423,-2.419 -2.423,-6.35 0,-8.775 1.21,-1.211 2.798,-1.813 4.383,-1.813 0.538,0 1.074,0.094 1.6,0.232 -0.703,1.054 -1.297,2.058 -1.768,2.903 -0.76,0.04 -1.479,0.33 -2.021,0.872 -0.588,0.585 -0.909,1.364 -0.909,2.194 0,0.832 0.321,1.606 0.903,2.193 0.591,0.589 1.369,0.91 2.199,0.91 0.831,0 1.606,-0.321 2.193,-0.91 0.586,-0.581 0.91,-1.362 0.91,-2.19 0,-0.594 -0.219,-1.136 -0.528,-1.623 0.485,-0.87 1.075,-1.839 1.743,-2.828 0.019,0.026 0.047,0.042 0.07,0.061"
|
||||
id="path5"
|
||||
style="fill:#555753"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5 KiB |
BIN
orchestra/static/orchestra/icons/shopping-cart.png
Normal file
BIN
orchestra/static/orchestra/icons/shopping-cart.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3 KiB |
283
orchestra/static/orchestra/icons/shopping-cart.svg
Normal file
283
orchestra/static/orchestra/icons/shopping-cart.svg
Normal file
|
@ -0,0 +1,283 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
width="48"
|
||||
height="48"
|
||||
sodipodi:docname="shopping-cart.png"
|
||||
inkscape:export-filename="/home/glic3rinu/orchestra/django-orchestra/orchestra/static/orchestra/icons/shopping-cart.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="6.5442039"
|
||||
inkscape:cx="52.394878"
|
||||
inkscape:cy="17.224989"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<image
|
||||
width="43.169491"
|
||||
height="40.771187"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABmCAYAAAAu/XSrAAAABHNCSVQICAgIfAhkiAAAIABJREFU
|
||||
eJztnXd8Hsd557+zu29DB0gCJAAWsEokJbGokRRJUYWyqGbLlGJbjrt9thInjmPHJZc4ueQuubtc
|
||||
cnEcF1lRcpElWaYsmZJVItEqlChKYqfYKRIgiEr09rYtc3/Mthd4AQIs0ucueT6fBfbdnZ2dnd88
|
||||
z/yeZ2ZnhZSS/5ALK8dOdcjvfP8F2rsH6eodwnIcHFsSixpctaiWu2+8jLuuXyjOJW8xUcCypk3/
|
||||
UPoXUjJbSjkbQEK5l0//YOZcynFO4t3T/59zDCTBvpcgnNa71jsvCe0HB0fkI6WksCDKvOmTRSxq
|
||||
jCjXik/9o2zrGhiz7J+76yq++4UbhK5NDLeRdxsmtu3w8LO75ZO/OUBLZz/dfUn+QymV6Lom59RW
|
||||
8N3P38Da5bP9ms9kLQBWL6vjQyvnEYno6LqgsyfJ5lcOcejkGR7avIPS4rj8vY+vmhBiY2qYIyX3
|
||||
fecx+da7jef6TP8uRNcE3/7cOr7wkasFwOf/bJN8eccJFsyaws//+8dy0mZNmz/6uxd4bddJ4lGD
|
||||
l378RWqrSscN2piA/fTJd+R/+6eXVUIB1ZNLmTqliEmlCYQQCCH8c++3FCaigEAIVX7BsLJ4ZfN/
|
||||
5p4fnn7ks4xyvfu7byjDvmMtnDjd7Zfp775xBx9et0hs29sgP/nHPwfgJ3/yEa5eXJtT9p7+FHf9
|
||||
/sMMJDOsXzGfn/znu8ddg6OaREdKfvrk2/5D/OA7d7HyihnjzfffhUgJP3z8LR58agcA//rrXXx4
|
||||
3SJWLZklLq2rlIfrz/Dws3tGAFZekuB3futa/vqfX+PF7cd4bddJGTapY8mogO04cFp29AwBsO7K
|
||||
Oay8YgaWZdHZ0YHt2EhHqs5Yqi45OTQ4gQeVgMwhCEKA40iEcAmDe061bAkINE1zNSDQ7uHiHVdl
|
||||
C90TCVK4BMLNM0QoAMSw3955rwRe2QUQS8SZN+8Sfudj17L93UYOvtfOniMtHKk/Iy+pqxS/veEK
|
||||
vvuPL7FtTwP1zT3U1ZTnlHPj+st46pVDHG3o4M9+/BIv/ugLRAz9rHU3KmDPvXHE31+/ch4Av/3b
|
||||
n0ITNmWlxTmV4+0HZiV3P1z5QoCm6WguO/LA0TThkhmJEJpvmjwWp+samqb7VafyFH46TdNcQDUc
|
||||
x8EwdD8/r0EE6UUeU+gbv7OmTSQSrLvheg4e3MOiRUv56E2LOPheOwCPPr+X/3L/eq67bCpRkSUr
|
||||
ozz86z386X+6Iad+dU3wnc9fz2f/dBMNLT389Ml35P33rjirlmn5DjpS8vy2owDEogZrls9i586d
|
||||
tLS14eTp81RFKZA0TUPXNQxDxzB0hBAYhkEsFiUej5NIJEgk4sRiceJxtRUWFrjn4sTjCWKxGLFY
|
||||
jEQiQUFBgX8+Go3459QW9dMlEuq6aDRKPB7DMAy/Ueh6UL7h27mIpqlqs+0sjuPwoZXz3T4Vnnrl
|
||||
IMm0SUPDCSqjHQA8+8ZRuvtSI/K5Yv5Ubl9zKQD/+PibtHb0n5V/5wVs58Em3xyuXjqTRCzCc889
|
||||
CyizNbzw4QrwWroSBVYkYmAYEQxDR9d1N00A7nCwlTZpI+6j68H1hmFgGIb/OyhDoOEqveFfP9o2
|
||||
UeC8hhCLRmk6XU8iFuG21QsAGExmeGbrIfneifeYEjmDoUmyWYtfvPhu3ry+dt8qigqiJNMmf/ng
|
||||
y2e/d76Dz4bM4U3XKnO4b793w5DNzzGJ+JXliVfBCgyRUznDK2lilZbfFI9IJYTbAIJGosp0voAF
|
||||
fU1PbycAG29a7B979Pm9HH/vGIawuWxmBIBfvLifrOufhaWiNMH9914LqG5o296GMbVsBGCOlLww
|
||||
zBy2nzlDV3ePOu/kApZr+4O+R9P0kOboCKHluWb8ovoymUNYco+NLuMxgRMpV1j7i4oKyaRTzJs5
|
||||
mcvnTQNg/7FW3j3eBsCGFbVoQtDTn+KZ14/kze/eWy5n3szJAPzZj1/CspzR7z38wK5DTfJMt2J8
|
||||
njl85unNI8JAY8n5aU9+kVLiOM6IzbZtLMvCsmxs28ZxnHGVMSxhbctnjvOlD++fOnUCgI03L/KP
|
||||
t2cmUVtTw9VL53Pt4ioAfvbrvXmjRLom+O7nrgfgvdNd/PPTO0Z9gBElezbUCm5eMR+AN9/a7h8b
|
||||
3oflkwsB0EQlDOC5AhcWTRtd4zR9WLVJG4D1K+ZRXBADoNuaxIY77kDTNO5aOxOAhpYe3tjbkDfP
|
||||
JZdM47Y1lwDw949uo717MG/hc+4sJb45jMcirF42E8uyaDzVFE4FBHQ9qBSJlI7fgsIEQMrRVfxc
|
||||
ZaRJ9Mohcs5fDNGGBWyLigvp6uogFjW4fa2qdFtq7GtQzHBhXTnVFarfe/iZPaPm+wf3raIwEWUo
|
||||
leWv/ik/AckBbNehJtnumsPrXHP4yisvY1pBZxmm9TJnP/CpPLC8NOrYxdW8IG9VJk/DvP/eFtbE
|
||||
cxVNjDSZXZ2tQC75eP5N1dAHBgcpseoB2HGwiSP1HXnznVRWwFfuvQaAza8e4u13G0e0uJw7h9nh
|
||||
zS473LJlS84FKhoRVPxILcuNYHja5TgXTsvyaY7M05Dy9XneNl7ty9fGNH1kRKKoqBDbtpldW8GS
|
||||
SxT5ONHcx9H6HjY9toki2UHCMAF45Pm9o97vY7dczpzpkwD43o9fwrZz680HLJ85BDh4eBizGfag
|
||||
4ZbrRRQCAmD7FWRZFrZtjzBl+St/dHIzVkXnyzsfWfFE9XcTb0j5SEk0FqWt9TQA99x0mX/8x4+/
|
||||
QVNzM4au8ckNSwB4YdsxznTlD+XpusZ3P389AEcbOvjXX+/OeWD/zrsON/mDbp45PHHyBAMDuRnn
|
||||
Ix3hirFtZW5M08KyLEzTIps1sSzF5rLZLKZpYpqmz+5M0wqxPQvbtvz0Honw9sP3zw/Q6MCFmW7g
|
||||
cozfTHvX5zOJAKap+qybrp1LWVEcgPpOHVtqfPk/3c/XPnWLKC2KY1nOmFq27NJqbrp2LgDff+wN
|
||||
+gbT/jn/zjmxwxXKHD69+emRhWZ8pkQBGJABKSWWpSrctnMZXbiyPVFBYOmmV9epaywfYC+foKE4
|
||||
rlbngpOvbOcjI1iiK+UVZaRSQ0QjOndcr0JOttSou+JW1q5ZKwoSUe7bsBSAJ146wGAyO+o9fv++
|
||||
lUQjOr0Dab7/6Da/wJp6AHj+jZA5XKrM4Y5dO0dklC+WGJbhfUm4Uh3HDvUvuemG/w72Hf+YB2rY
|
||||
xAagB8DlM3/5yhke8p8IiKNppaZpdJxR5OPuGwPycaglyPvTdyzviRg6ybTJppfyh6sAaitLue9W
|
||||
ZUIfeX4PA0Nq6oUGsP94q28OVy+dSTwWITk0RFtr+8gHHcMPG/uhAyIQaJ067plTkG7lh+dPBOQh
|
||||
3Lep44EZtSwrrx8WNtfDy6rckPFFS8IymkkESLhB4FnVZVy5sAaAw/Vn2HtUoVZZUVTxkRuUg/3I
|
||||
s3vp6e1jYGCAwcFBBgcHGRocZGhoiOTQEB9eNx9NCDJZi+feOCLBBWzX4cDPum7ZLACee+E57Dwt
|
||||
NJGIj/kw+R4+qGx8TQgqNFdjVOXamGYW07TctNI1qQEonrbm0+DgXLhfzHWmgz7XPqs2DpfRTCJA
|
||||
SWkJ3d2Ktm+8OSAf4S7n8x++CpB09SV54qV3GRwYUKANDDAwOOj/j+s2V8yvBODJlw8A7njY3iMt
|
||||
fmaXzZ0KwMF3D477AcIyHCzPBbBt2+/o1fiX5gPkXkk2G/hGjiPdgHGYQktsO3CUPTPq5eeNqwkh
|
||||
cBzHj196IwJeWi8g7f0eP8X3Atdjh66SQ31UVExh9bJZ6JrAdiQ7DgZKERcpyow+eq0yHn7uAFfO
|
||||
L6PI1UzfZRJqEsO1CyvZc7SdHQdPY1mOC9hRZXcLE1FmVpcBEImNHNvUdZ1UKj3i+HAJnGWRUxnh
|
||||
VhyuNPcq3wyGnVohLD/OFzZv4WCtp03eAwfnLDc/D7Dc6H1wPdi2RTQazfMsI30xXRt7ZNgwVN0V
|
||||
xCPMnTGZow0dHDjRRipjkohFOH78GDNiTfRZpQwkTf7l2UN8av2cnOCCP1gaCbqArv6kNHoH0rNP
|
||||
t/cCsHB2JZqb8I+++W2uv34d2jhZ4UTFIwqWFWiZYehoQkMbAeaFkTDg2WwWyzSxbEuNggudSDRK
|
||||
JBLBMIzc+3stKTRRxzRtpDQxTYeMYaIbGQQQTxRQVVntX3rZvKkcbejAshyOn+qUl8+fJo6/d5yY
|
||||
lmZxjc27zQZb97XT1jXErKoCYlGdREQjHtPpH7LYfVxhU1FawOTSAmEkYsZJbx5FuIyGYbByxaoL
|
||||
Xmn/XsRrhPHQRFOhCZLJJHv2qnjihmumUHQsyvYD7RxrGuRY0+jzYj59x3I1kh+LGkwpL+JM9yCn
|
||||
WnvJZIbN3JXj9bwmkDZM2y9EuouV9gLkOTiU9PcNXeOfHvqp7OnpJhaLsnjxJVy3qpRfbW1g685T
|
||||
tLR24mBQXFrBUFqZz7qaCj5x6xI+vG6RAJd0TK8q5Uz3IB3dQ3R19RAxcjvVUQubzyk937TnmWfe
|
||||
9GOFs84l3QTSDiWDPn///j28/sbrAGzYcCtlpaUAfHjNLNLN73Cs/xjLli7n29/66qj9gQFQW1XK
|
||||
rsPNOFLyb28eZc2SmvwFGAebGm/ai5HnOaW9wHkOz/fQSUXxNU2w+anHALjs8sVcdkVA+RsbGzl2
|
||||
9BgAN95405h5GwC/dcsVbH71EAD/+vwRLq1VnZ+67wRIx3hMoucHjTO/i5X2/bh/c2eS5k5lEotF
|
||||
L1Z6kLLyMjbctiF0meTFf1MjIosXXcZVV141JtsyAFZcPlPcet0l8vk3jtA7mOV/P3GAW5ZNoTBx
|
||||
lnclhoE5XtM1Tt07e9o8J8+rDOM1sWOk9cSyJS/t6fJ/V0S6Wbx4IbfceguxWOA+bH3tdVqaW9A0
|
||||
jc9+5rNj5gmhufUtHf3yxi89QDrPzJ7/kPMTXZP8+afruGLxJTnH9+3dz+ZfqQD7R+/eyG/d+7Hx
|
||||
TyStnlIifvqnGykrSVzo8v67FkOD731+2Qiw9uzZyzNP/xqA61at5t57fmtcjueIt1de2XFCfu7P
|
||||
NgFQVlpCWUXJsEsk0nFU4NRxQHr7tn/M+410RjEn/p+cIK+be5BMhtN4CYSfxuvcvdM58+nz0WwJ
|
||||
UoRPudGVfOXJyUbm3ssVQW4d25aNoxcAcGldGdcsqmTlZVOZNrnAT2NZFi889wK7d6vxsEsvXcif
|
||||
/PGfCi86cjYZkaqupsL38ismlXLl1YtV6GYcs6XyiZQOjm27QLqRdG+Q0jSxLRPLMt39LLZpYrn/
|
||||
bSuLY9t4w2oSqYZ3QhF2GQIqZwCTYF8VBBxVIP9FDv9aIXFkCBwXGOmnVdeN1m9FDB0hIG1lEUYh
|
||||
AB+7eS7LFkwO1YPk4MHDvPbyq3R1q1eU1qxeyxe/8KVxgwV5AKuaVOS/dJXNZPFe6fQAi7o+miPB
|
||||
cofXNSEw9CCdl1bXBLpmQMTAclSwVnckuqbmNjlSBXwdt/J1XaiKlZJM1g1ZOQ5C2FimiZnNks0q
|
||||
kG0rA3YWK5shnUphmhmVhzt8LwHLtLFdcASgC1Vu27J9rdLQ1HnHwfamOQCaVCA6GuA4fiPRQvFL
|
||||
T2IxNbUta4Ljnp9cpkY1+vv7OHr0OLt37qa9/YyqdMPgM5/+LOtvvmXC8bcRgCViEUoK4wwkM2Qy
|
||||
Gb+AXmByuqveGdOhqUtR1nhUY1q56vv6kyYd/SpaUloQobxIMaIzfRn6k1lAUlkSJx5Vb5c0nBkk
|
||||
Y9pIYOYU1Tpt2+F4Sz8gMQydaRVFSCkZTFu09ySRjqQ4YVBRHFNB0YE03b0KtPJCncKowLKynG7p
|
||||
ZHBwCMvMUloUQxPKnHb2DKrRAAHFhTHV+CyHwaG0ClprglhERzqQtWyypglSogvNH7y0bQfHBTDi
|
||||
AibSlm+ddr75Ki+0t9LWFowpaprG6utWs3HjvVRVVp1TsDSvLlZNKmYgmSWZDjRMPez5Sdiq+L1Q
|
||||
yMQNTxf0H15f45o+fAXxTReawIjGiMTjROIGESkpnJxAK7aQjqQkoeM4Jo5lkRT9WNks0jbRIwJh
|
||||
WzjSQugGSHcSqWaAkGgIhI1/XPM1WGmdoWtEIt4YYUbNE8HmwL5gzkZ5eQVXLl/Ohg23U1Ndc15R
|
||||
7byATZtczImmbmxL9T9GxEATalwn5Y5ZWaHZRuHj2dBx0w6nt/3Kz5iqX3KkxA6RhmTaHQ5xR59V
|
||||
3wnpjDKbWcsdgJQSy3ZIumbTsqQPsGnZpLIgXRPsgWo6Ak1EQY8QLdAw4gr2aNQAB3QzgxUZwjLT
|
||||
SDuLdGwcbCQGwjXVblgfAIFESEkkahCNxlwQdRCC4rjOmtVrmTZtGkuXLKOurk5cqNGHUTSsyJ0E
|
||||
42CaJrFoBF0TmLZDS/fI95wyZv7jAymTgZSai6dGjQEJZ/ozQYcug06+qUuZO0dKX7tM26G1Oxki
|
||||
GGobSlkMJE3/eg/g3sFsMIzikg+kZDCVDfIIbcmU6d9PjxagRRIuAXGQloluZpGW0kbHtkAokhEx
|
||||
NCKGTmEi6pIi1VMKBIvnz+R3f2fjRZk1O6pJRAhsCVbWRCsWihCY53YTv0JdBubVeo5p84ELKl8O
|
||||
S+dplwcw/rXDzGfoPt7tGHafXFM7vDzqh65HiEZj6JogomsYukATDtg2juu6RKMajm1jWxaOUJZo
|
||||
6uTic6uoccgYGqYaSMZlioamvI6ihHrfyXEkQxllwgxdkHDHfUzLIW0qMxiLaEQNHceRpDIWWUuR
|
||||
i0RMR3ensfWnTDwjWhQzcFzNGEyZSBQxKIgZSKkIQMq9Z0QTRCI6UkrSWYtMVlV+1NBdNqiOO5YC
|
||||
KKIL0NWodSpj+WzQMITSEAccqeYpRgxBzNARCLWKjct6FXk2QDPQkTgORBIRNCFIpzPokT74QACr
|
||||
KAIECEhnsmiaGssRmqCyVNnrjOn4gEUNzT/enzR9wApjBmWFEaSUtPc6ZEwLJJQXRolHNWWS0haW
|
||||
O3upoiSGGu6XDCRN1coNweSSOBLJUNIkmTaREmIxnYqiGI6UdA+kyWQzSCQFMZ2Ey0DP9Dp4zaEg
|
||||
FgG3kWQtC9AwNI3Swii65pnZLI6tGomhB+6LLT3AhO8s247Ky/DmkNg2wu3fpk4quvBIuZIXsKkh
|
||||
DUunsuhCIMbv2+XISJMTNosjTZtnI710UoZeXg9lmmM+Q/cRBG/OxAwNgXJqiwtUP+wldqTqcaIR
|
||||
Dcd2XP9RZe/5hZ4z7c/FlC7nCJnWaEQ1Dst2/CH7D0LDdgkhlgOkXGqvu4sf9A6p2aqWHdBw0wqO
|
||||
p82AJSYzlt/5p03bB24gZZLKKrpt245f+X1DGddxBl0I0JWJSmYsVcmOpMCdHBQ1NGxbZRiPaJQX
|
||||
R5ES4hFNuSBSEouqJYMcR5EX08IFS/nC4JDOWMoM215YTTUAO+Qsq8amTKB0F3JRIAoMQ0M6yi/z
|
||||
tO9917BJZQVX6rombUeSTGd8Z1ETGl0DI6cXm7aT93gyYzOUtnIIhZSSvqEsCOXbRQyNWEQP5pMI
|
||||
BUJJYQTpmp2MGUznjhmaqmDHYTCt3APpBGEov5E4AVNEKtfAzplcCo4/CQgXRA+gMFMNZPh7BVFD
|
||||
QxcCqavoiWeVpk4qunmCOIxb8gKmCcGU8kLau4cYSqZ95zmiC6xxvlYVZmIC1SdownU+BX7rdXIq
|
||||
UIYqPzBNYarvn3NwTVbAHD3XwYs9KjBD+XhmzsG/p+3l4do/J3R/8Axu+MGCXV1Xcx4B1S8KQTSi
|
||||
U16cyH1H6wLKqD1T1aRi2nuSDCazfr8QNTSK4uoSy5b0uGYwamiUFij2mMoqrdI0QXEiSknCQAD9
|
||||
KZO02/oL4oZqmVLSn8xiupNDSwsjLhgOPQNZH+ySwqivaf3JLLisLxqJ+KwvnbXcPkVDF4oNDqUt
|
||||
5ZhLSSyiFmWREgZTWbcPk8QNXTnwjmKVHtX3YqOOA5bPEgXem0a24xDRdZ+cZE0VlrqY5hDGAqyi
|
||||
EIFafcy2bWLRCFFDp6RAXZIxHR8wQxc+20plHGXepKQorlPsApzKWiRRrTmma8QiGg6SviFXY3CZ
|
||||
HBLHlnQNZHwWlojqgY+EYmgRQ1PxSCRZ0/Y1Q9c0Nw4oSaYt38wZuoY3nQ9P8xDoUQ3NkUh/Sji+
|
||||
JQByLIACy3u1VPVfXqw1nbVBCOXDXkQZFbDK8kJ3yrMkk8kSi0aIGIHz7pk5QxcUxgwS7hwQFT4i
|
||||
x6w4uKbGcXCjRTgEZtCRXshJjZ95ptGREscndu5ceCd4m8WvTMLm00E6mk/Hw2bVo/W2dNy+Taj7
|
||||
uKbb8cJZ7jJKKl/XxLr39BqNlNKfXWbbalTgg9WwSUU+TR1KZikpLsTQBF0DGQxNjY8UuCCZtqS9
|
||||
V03nMt14nyMlA0nLZ3hpN34opaTXXbVUomKCXr/S3pv2r3Xc/iTrOJzpTSGlm9btf9JZC9NSMUbT
|
||||
dPx+bSBlkcwokmJawYsUA64jLh2JY3tdlsNAOqtYnteYfPMYUHkvMO0QNESJJOKaw4xpBQyx4gMz
|
||||
iYEvNphUFRyNaNhDhN5qUQ+igr9epQXxu6xt4ZiBSfG0Jm27muRqnc/wshbSDoiDp4HJtJVDHKSU
|
||||
mDZkpeNrp09cHEnWCpEMFyTbtnIag0c8LDuU1lUl9Xi5ZCMYTZD+32hENdhM1vItZdUH2od5GpZS
|
||||
gBnuCwmjSZi6+6PEMmBzwblQBXvXhSo4fD7MFj1tyQnuOsE9ctjgsMCy7bPDQLsCBhqi9N6z5H/A
|
||||
nJ/RiKthWStE6QvPXuvnIaMCNqW80DeJA66GaQJqJxVgu+bGG6iMGRqTimMqvpg26XYj5omYTlFM
|
||||
xRL7hkyG3BheeWEMQ1cssaM3hekCPKUkASiT1NajIvS6EJQVR5GOYol9Q1kcCTFDpzBu4LisL5k2
|
||||
kY5DIub2tRJ6BjNYrmNenIj4jaBvMOOSDkjE1XHbdki6IwuaJoi5/ZPlqGf1jvsrmRK82OcRDvDC
|
||||
ehdPxiAdBUIoL5Yhf6VsQSwicswIqLIaGqAJ0jp+B67hDQa67yw73iit6rAdr8W7rTtnNQXXfAoN
|
||||
dF0gBQiTgKAIgW5oaLai/rbL8FSARI0sa0jXD1Nl1zSBdByfdAippo1JBMF7oV4fFUwFCDvMXtwx
|
||||
vBilR+kBqioKd50rGOORUQErSkQpSKhl4fqTwQsSmgYyNGAIQZzP6/j9SS6huKEtpV8pDoQc1NAE
|
||||
mBC7tF1zJQlFMvCCrq7j7N7HcWdreabN8cyg4wLsKIapCaHMoqOud70P9y3OABihBfFDnxkOY77h
|
||||
9w/Spu2vHDepNHHlBUFmFBkzpFtVUUhDax8DQ4oBOlLS0pVhwB0Z9h4kmbZocENQllQxNyT0DZn0
|
||||
DZp+rM7rY870plUkwpEuO1OVfbpzSGmWE/RBtuXQ3JUMNNrVsKG0o4ZgpALMi1j0DWWCvs9nftAz
|
||||
4N5Tuvd0+66ewbRvKTwwLFtiO4ET7YllSz/SU1Yc84+rN0cFU0oLfL/sYslZATvV1kcmq9bUUC+6
|
||||
hVmiEo+JhWOGjgy0y2dmeYlDECoKpwvCUYEm2iGS4QElw2QilLcTut4Pa9mhe3rEw8kNPg0jg6NK
|
||||
NGQSM66GXWyGCGcBbEp5AbiTb1IZi2LDIGK4EQMncGiDuGFQeb4JIbcSw2bUGRbnk94cDJc9hsHz
|
||||
XAW/8j0KLocDE5jPMIggkcJtTHZ4HmJQnolIzKX0ljs0gxBUVVxchghn07DyXGpfUhRnWnkcQxO+
|
||||
sywlRHWdSSUq3jeQMukeyKiZSgURilx21tmfdudgOEwuiamoO9DckcR0mVx5ccwHpcN1lnVNo7Qo
|
||||
ioNylvsGMziOGjopihtIBwZSWX/ORnFChdCkdAc2XXDKCmP+O9edfUmQihQVucvl2Y4ysaDmU4YB
|
||||
yYZYohcIj8e8EF2I0l9khgijLCHrSWV5Ie6QoP9NFc+7l2FThzNCU7xz+Ms8hB1oL5IemE/lRLsj
|
||||
vE4QErJ906amgOeYTEfi4OT+9jSYEElwiYOnpd7xCSqVL0J4cU9Ipk13ziZUVRSc5crzlzE1rLK8
|
||||
wG89XX1q0qgjoShu0OEGZxVxwJ+C5oWaHKlCVhk3tujYQf9l2Y6a4+4EZtKREtO2lYaF4o4IdVw6
|
||||
EtsKNwYH21b7th30Q7btYCqurkDGbVy245twAvh8Nhhi7n4M0dsPS0TXqJ5ShOHODxlMZUM+2Ads
|
||||
EhfWTfYBO9nUxfJF0+kZVBH60kSEkrjhV7anXUUxgynuHIzwwGJR3Aj1R4F2lRZG/FbvuLXrSEn1
|
||||
pIJgEFFKP1iME+rHCGmbl5YgeFwzudDN1yMn7r1lia/t464oN9AdXkAza9m0dyd9Z3rBjIrxZ3iO
|
||||
YoxlGKZWFIhFs6fIg/WdDAym2XO0jSULphIzchc7Gc5kBe5MJKFmGklHuF4ZSC8SrivTqAk1W0lK
|
||||
6c9n16RAItD8hqD2kRJHU+dxFDtFSqRGqIFIJMIHRDFVjfAcRd9UnockMyb1rX1+lL5mShEzqorF
|
||||
uRva8YlxtoLfuWo2hxrUm4R7D56iqbWbuTOnUFwYIxb1tCNM5/E7iHCl+eZHSv+aYNhiGNv0zCIh
|
||||
xqn8A/8efuU7MpRHCEQP4ND9CV03Usb2nxzXlFu2w0AyS5/bp3sW6LMbFp93IxiPiPGssfSjzfvk
|
||||
Q88euPil+X9U7l4zj+988uqL6zG7Mi7AAJ549Zj82UuHae4Y/0dx/n+XuTVlfObWRdx85UwxkYUy
|
||||
z0fGDRgoS7LjSKs81NBNR2/KHYicuB2QUtLS0szpptP++lOxWIyKigrKykqHLQh2fpJKpeju7qav
|
||||
rw8vBFVQUMic2XMoLp7YcH5RQZTKsgSV5QXUTC5m6bzK933F9wkBNhGxLIvGxkbZ1HyaqsoqZs2q
|
||||
IxaL0djYyA9/9APqG+oBmDxlMrfeegt1s+suSjk8SSZTvPP2O2x7401/ZblbP7SB+z7xyQm9AflB
|
||||
ywUFzHEcnn3u13L7W9tpbDyFaQZvT2iaxpTJU+ju6cY0TTRN47rVq1hzZ7EwAAAQiUlEQVS95jr0
|
||||
PKtUh8W2bVqaW2hrbyc5lCQ5lCSdSRONRSlIFFBYWMiUysnU1tYSiUTGzKuzo5NnnnmW041qQeXL
|
||||
L7uCb/zhN0UspqaJnznTLktLy0Q8Pva6kB+UXDDAWtta5Q9/9AOOHTuWczyRSJBK5b6KNHnKZDbe
|
||||
+1Eqp0wZNT/Hcdi/dz/79u+nuakZaxwTIjVNo7pmGosXL2bZ8qWMpjlSSnbu2Mm/vfASjuNQXlZO
|
||||
ZVUljY2NpFIpRdNrapgzew6LFi5mzZq1F+z9rvOVCwLY22+/Jf/xRz8gk1FvIC6/chnz589jWvVU
|
||||
CguLOPjuQZ586ldIRzJt6lTu+9R9FBTkX15CSsmB/Qd47bWtdLsf6AEFxvTa6VRUVFBUXExhQSHJ
|
||||
ZJL+/n76+no53XQaK/RBhOKSYtasXs3S5UtG/ZbK0SPH+OUTT+Zcl08uveRSvvLl+6mqmvqBo3be
|
||||
gHV1de78w29+fXkqlaK8opy77rqTGTOn++f7+/v58Q8fIJ1OUzu9hk/c93HymRspJYcPHubV17bS
|
||||
2aE+8aTrOtdfv46rrryaSxZcIhKJ0dcQyWazHD9+TO7es5uXtrzor0pXWlbG2jXXcfmSy/MCV3+y
|
||||
np8/9gtM06R2eg0f3fhRBgcGaG1to7HxNAcPHERKSSwW47Of/hzr1t3wgYJ23oD9t7/6S7lv/z5K
|
||||
Skr48v1fygFDSsnD/+dnNDScorSsjC9/5Us5y/Z4Ypomv/j5Jk6cOAkobVqzei0fvXvjrsrKygmP
|
||||
4Pb19fLUr56SW37zkt+P1tRW8/FPfDyvZh89eozHH/sFAHfcdTtLly7xzzWeOs3Tm5+mu7sHXdf5
|
||||
i//yX5kze84HBpr+ve9975wv3vbmNvn0M5sB2HjP3VRWVuacf/PN7ezZvRchBB/7xL1MmjQy1pZM
|
||||
pnjkZ49w6lQjQghWrbqOr3/t66xbd4MoLCx84FzKFY/HWbJk6Z+vXXt9ayaTueNU4yn6+vp579h7
|
||||
LLh0gb9MgyeTJ0+iv6+ftrY2GuobWLRoIZ42l5aVsnTZUurr6+nr6+fYsaOsW3fDn5+NKF0s0bzI
|
||||
9bls7x7YB8DChZcyZ+6cnIyz2Syvv/YGACtXrmDGjJGfFJaO5PHHHqe5qQXDMPi9r/4+v/e7vyem
|
||||
TZsmzqdc3japouKBL37hi+Ibf/hNYrEYZzo6ePRnj+Xts265dT1l5WVks1m2bn0951wkEuHOu+7E
|
||||
MAxON53myaeekBeifOeyaaHw3oS3k64Jm1k3S1Hijg727XuXw4ePsPOdnWSzWWKxKGuuXz2iggC2
|
||||
bn2d06fVatPf+Po3WXHtSnE+5RltW7pkmfjut/8YTdNobz/Dy1teGVGWaDTK2rVrADh44BCHDh7i
|
||||
9a1v8JstL3Po0GEihsHqNdcBsH379gtexvFu5+wxZrNZTjepT97v2bWbLS9uyfG7PEnEE7zzzg6u
|
||||
uebqHJrd2dHJ1teCllxRMelcizIuWbDgEjFjxgzZ0NDA22+/w6LFi6ipDRZT7u3r4/ix9xBCYFkW
|
||||
T2x6ckQeXv/b2t5GMpmkoODiD1gOl7EXYB9Dnn/hOelNC2tra/fBKi4pziEevX19/Oall/npTx6k
|
||||
paXVP77jnZ1qSMX1bzo6z5xrUcYtmbQ7p19Kdu4MPlOye9dufvLDBzh06JAfvorFosyaNZO58+ZS
|
||||
WKgGJjMZ96VFKfmX//OQPJ9vkJ2rTFjDent7v/TAgz/5ye7dar5kWWkpS5Ytobp6mu93SSnp7umh
|
||||
tbmV06eb2LN7Dx0dnTz04D+z6rqVrFy1gv379wPBiO+M6TN6Rr3pBRDTNGlrb/N/Hzx4iFWrVvLC
|
||||
8y9y8uRJ/1nWXL+G2um1TJoULJIG0NfXT0tzC9u2vUlLcwtbX9/KqcZGef+X72fmzFnvG2sUE2kl
|
||||
Q0ND/NG3viG7utX42LLly7h5/Y0jWNdw6ezo5OlfPUNTczMA02dO5/Sp0/6kmOLiYh748YMX/aF/
|
||||
96v3y67uLjRNfU29vLyMnp7eCT2LdCTbtr3Ja69uxbZtCgsL+Z//439tKi8rvzec7mJFRiYE2A9+
|
||||
+A/yjTdep6Agwd0bP8Ls2bPHfa10JG++uZ3fbAm+7RiNREhnMlx22eV865vfvuiA/d3f/63ctWsn
|
||||
BQUJ0q55jEQi3Puxe5gzZ/zPAnCm/QyP/OwxBgYGWLpkKX/wtT/0y+99RNzb9/5fCBDHbRJ37HxH
|
||||
vuEt4X3bhhFgWZZFW1s7Tc0txKIxamurmTx5UlBgTbDqupV0dXez113cMWOqT8OvuGZFXsJyoWXW
|
||||
jFns2PFODq2/4cZ1I8AaGkrSeLqJ043NdHR1Ma2qkhkzplNbW008rjSwsqqSO+68nUcfeYw9e/fw
|
||||
2muvypUrVwkIPjPsyXDQwl92n6iMC7D+/v7ZDz74UwAWLrqUhYsu9c81t7Ty8MOPc/DQURzHwTB0
|
||||
IpEIqVSaWCzG2jUruWfjnT6jumX9zZx87yT9/f0gBVdcvoSrrrpanC2edyHkkktUudW9BDNmzuDq
|
||||
a67yz6eSKTY9+TQvv7yVspISSoqLMC2LbQNv098/QDQa5c47PsRtG24mEokwd94cli5dwp49e3ns
|
||||
8UdZcMklsrSk9GYhxElN0056+Ya/BxMG7Fy+1H5WwKSUvPXW9hN9/X0UFCTYsOFW//jPH3+S557f
|
||||
gmHoXL5oAbNmTafAjRCYlkVnZze7du1l+9s7+eynPs411ywnFo9x+5238ejPHkMI2HDrBkzT/MW4
|
||||
S3weUlNTs+nK5Vfds3ffHvV95bvu8Cvr4MEj/PAnDzGtcgp33baeaDR3mKant4/dew+w6YnNvLb1
|
||||
Tb7+ta8wfXoN6z+0nuPHjzM4OMS+vXtZsWLlLzRN2yKEOAkQ/u8BORww7+M945ExAVPvTdmcOKm+
|
||||
BD5v/jwKCpWm/Grzc/z62RcpLEyw/sY1JIYFdCOGwbSplUybWsnOPe/ygx8+SFlZKQsWzGXu3DkU
|
||||
FhYxNDRIZ1cnNTW194yrtBdAZs6cyd59e6isnEJ5RTkAXd3d/MMPHmDhwvnMmTUyIgNQXlbKDWtX
|
||||
8tobb9PS2s7//vsf8Zd/8Z9JJOLMqqvjwLsHaDjVwFVXXV0uhLhnmBnsCQG2xd1Oht8x0HX9rOOC
|
||||
MIYf5oHlOA4n65V2T5umPnd7+PAxfvnUMwCsWXXNCLCGy/IliykrK+X7P3iA/j71JcBp1epz7w0N
|
||||
Df5HTN+PrampKedZAL7/Dw9QWlo8KlieCCFYde1yNE2jrb2Df3roYQCqa1Rejacb/Y+xhv+bpllu
|
||||
muZyy7LusSzrr93tS5Zlzfbq2Puy4NlkVMC8r9alUqmbWlqa3YdUH4N7acsrSEdSVFhAeVnpWW8i
|
||||
hGB67TR6e/t4a4fy36qrVZShsbHxfQWssfEUAFOrVSW3tXfw3nv1TKuqzF/4YRKJRKgoV8/89ju7
|
||||
MbMm1dPUs7S0NJNOp/2vAgZf0s3Zym3bvse27S85jnOTbduzw18JPNvoSV6TGL64ubn5JQ/5yiql
|
||||
FceOKxM52iBkPil0+7bjx0+w/qbr/dHm1raWsw4gXiiRUuL5kJPdkYPj7rOIcfYhbmJA1dOJ+gZm
|
||||
1Kpv1di2TUdHR86oRZho6LruR1KklMuBL7lpHhhOTEYjInkBC9vW0tJAgwYGBkilI/T09AHQ3aNm
|
||||
Io2H5XT1qEBGfb2KP/YPKtNYXFzyvlB6TyrKK+js6qSzq5u62XU0N6nPSba2tTN39syzXm9Ztu9s
|
||||
AzSdbqHA7RJ0XaeoqAjLsvx68cAKAeVfK4RYLoS4ye3ftoS/QjhaneZtVmHASkpKRFmZ+sxia0sr
|
||||
pcXF/qcHLcvi3YNH8mWRI/39A5xwgaqsVGu5t7aqMNHUqqnvq0mcOtU1hW5cs3a60o7TTa00nm4e
|
||||
8zmklLz59s6cvmb69GpaWlvcZ6vyP8Aa/rh42OSF69bdZrtbzvHRZARgwxNLKWfPnDHTr2ShCerq
|
||||
gpZ44NAx3j14ZNQOs729k1de345lKrM3b+7snAqbWjU130NctG3q1Knus7TmlAdg+9u72X/gSF6N
|
||||
7+nt59XX36KpOYhH6rrO7LpZtDSPfJZxADXiHmMB5clZ/TAhxMlZs+rYt38fDQ2nkFJy5ZVLOHr0
|
||||
uJ/m3YNHOX7yFDNqplFcUkw0YjAwMMiZzi7OnAm+8KPrOsuWXcHAwACdnep4TU3tqLObLobU1NQC
|
||||
cOZMBz3dPVRVTWHBgnkcPXoc23E4cOgoR469R3lpqe849w0M0t8/MKJCV1x7JY6UNNTXq7yrazAM
|
||||
I6evyucYj9ZHjadrGVFT+Tq/hQsX8fQzm2lrbWXnzl3cesuNHDxwmL37gvn26VSaY+/Vj3mzT3x8
|
||||
IzNn1PLzRx9X5ra4hJqamnH5HxdKptdOp7y8gp6ebjZvfoZPf+a3+ervfJHv/slf+C6HZdl0dHXT
|
||||
0dU9aj61NdV87rP38eILLzI4OEQsFmPBggVEIpEckMKEIxzZCG0n3c1PPxZwefuw4YDVzaqbc+MN
|
||||
6stxW178Db29vdz/lc8za+bYfktYbrhhDR+65Qb27d3PsWNKO+/+yEeJx+NEIpH3bUskEtzz0XsR
|
||||
QtB4qpF33t5BeXkpX/vql33meDaZMaOGP/iDr3C6sYk9e1RcdMOtt1NRMcn/Sq1hGDn7nmMcBk7T
|
||||
tF0hR3pcMca8k3DyXNAzb978O3bv2V3d399HW1sbV1xxBTffdD2lpSWcOHGSbDY/06utqearv/tF
|
||||
blm/js6OTp7Y9Essy+Lqq65mzZrrw4V/37aKigoymQynGk/ReKqRmtpq5s2bw003rCUSMaivP5XX
|
||||
1SguKea+j23ki5//FKlkkic2PUk2m2X+/AXcefudI0JN3v4o2y5N07bour5J1/Ue75qzhamEbef3
|
||||
gbxIR9gTP3nypPzr//FXOI5DaWkJt995O3PmzCaVSlNff4qm5haamluIRmNMr62mtmYadXUzEQi2
|
||||
b3+LV195FcuyKSsr51vf/NZZx54upliWxd/87d9w5oz6NsryK5dx8/qbiEbVMklt7e00NjbT2dXN
|
||||
1KpKZsyoYfLkSSDJGQ+Lx+P80Te/RVlpmZ+3WrbQ8feHB341TevRdf0BF7Atw4EdS0YFDHLDU97/
|
||||
bW9uk48+9gjptFpsZdnypaxceS3lFRUjNNObE//ii1toblKUuaqyik9/+jPUup3/Bym9fb088ujP
|
||||
OHr0KKAmna5Zex01tTVMmTw553l6e3ppaW7hre1v+wOxNdXVfPK+T1FTk/uRV29gNvzbBWvX8Hhi
|
||||
WLPG05ePCRgo0Dxq6oHW1dUlH/qXhzh8+JCfLh6PU11dTXXNNLLZLC1N6uUFz7QIIbjxhpu46867
|
||||
MAxj01lL9j6JlHL21te3Ln/yqV+SzQYLTUejUaqrp2FEDFqaW0gmg/cDNE1j/c23cNuG20Z9Finl
|
||||
7OGR+uER+3OJ1p8VsFABfMA8EF959RX59NOb6e3rHfU6FUeczic+cR9z58z9wOemjyYdHWfkpl8+
|
||||
wYkT79HX15c3TUFBATNnzuIjH/4Is+tmj/ksUsrZkDO8MmIsbCJAeTLhgUMPLO8/QE9Ptzxx8iSn
|
||||
TjVQX19PPB6jrm42dbPqmDWr7r/H4/FvT+gmH7D09PTI+vqTNJxqIJvNqueoq6NySuU5vcUyvB/T
|
||||
df2cpwv8X/lnXhgg25xNAAAAAElFTkSuQmCC
|
||||
"
|
||||
id="image10"
|
||||
x="3.4576273"
|
||||
y="4.9067798" />
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
Loading…
Reference in a new issue