Merge branch 'develop' into 'master'
Ohlhafv and dependency fixes Closes #117 See merge request vtmk/web2.0!132
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
[report]
|
||||
show_missing = True
|
||||
[run]
|
||||
omit =
|
||||
*/migrations/*
|
||||
|
||||
+2
-1
@@ -20,4 +20,5 @@ settings.json
|
||||
.vscode/
|
||||
.DS_Store
|
||||
*.code-workspace
|
||||
sik_test
|
||||
sik_test
|
||||
venv/
|
||||
+2
-2
@@ -31,7 +31,7 @@ pycodestyle:
|
||||
- pycodestyle --config=setup.cfg --count .
|
||||
|
||||
eslint:
|
||||
image: node:7.10.0
|
||||
image: node:alpine
|
||||
stage: lint
|
||||
before_script:
|
||||
- npm install
|
||||
@@ -39,7 +39,7 @@ eslint:
|
||||
- npm run eslint
|
||||
|
||||
remark:
|
||||
image: node:7.10.0
|
||||
image: node:alpine
|
||||
stage: lint
|
||||
before_script:
|
||||
- npm install
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
FROM python:3
|
||||
FROM python:3.5
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
ENV IS_DOCKER 1
|
||||
RUN mkdir /code
|
||||
|
||||
+3
-4
@@ -1,10 +1,9 @@
|
||||
"""Admin site registers."""
|
||||
|
||||
from django.contrib import admin
|
||||
from infoscreen.models import Rotation, InfoItem, InfoInstance
|
||||
from infoscreen.models import ImageInfoItem, ExternalImageInfoItem, ABBInfoItem
|
||||
from infoscreen.models import ExternalWebsiteInfoItem
|
||||
from infoscreen.models import VideoInfoItem
|
||||
from infoscreen.models import (
|
||||
Rotation, InfoItem, InfoInstance, ImageInfoItem,
|
||||
ExternalImageInfoItem, ABBInfoItem, ExternalWebsiteInfoItem, VideoInfoItem)
|
||||
|
||||
# Register your models here.
|
||||
admin.site.register(Rotation)
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<script src="{% static "js/lib/angular.js" %}"></script>
|
||||
<script src="{% static "js/lib/ng-file-upload-bower-12.2.11/ng-file-upload-all.js" %}"></script>
|
||||
<script src="{% static "js/lib/jquery-3.1.0.min.js" %}"></script>
|
||||
<script src="{% static "js/lib/underscore-min.js" %}"></script>
|
||||
<script src="{% static "js/lib/moment.js" %}"></script>
|
||||
<script src="{% static "js/lib/angular-route.js" %}"></script>
|
||||
<script src="{% static "js/lib/angular-animate.js" %}"></script>
|
||||
|
||||
@@ -6,6 +6,7 @@ from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.auth.decorators import permission_required, login_required
|
||||
from django.db import DatabaseError
|
||||
from infoscreen.models import UploadFileForm
|
||||
|
||||
import sikweb.settings as settings
|
||||
@@ -14,14 +15,10 @@ import logging
|
||||
import threading
|
||||
import requests
|
||||
|
||||
from infoscreen.models import Rotation, InfoItem, InfoInstance
|
||||
from infoscreen.models import (ABBInfoItem, ExternalImageInfoItem,
|
||||
ImageInfoItem, SossoInfoItem, HslInfoItem)
|
||||
from infoscreen.models import EventInfoItem
|
||||
from infoscreen.models import ExternalWebsiteInfoItem
|
||||
from infoscreen.models import ImageUploadForm
|
||||
from infoscreen.models import ApyInfoItem
|
||||
from infoscreen.models import VideoInfoItem
|
||||
from infoscreen.models import (
|
||||
Rotation, InfoItem, InfoInstance, ABBInfoItem, ExternalImageInfoItem,
|
||||
ImageInfoItem, SossoInfoItem, HslInfoItem, EventInfoItem,
|
||||
ExternalWebsiteInfoItem, ImageUploadForm, ApyInfoItem, VideoInfoItem)
|
||||
|
||||
|
||||
@login_required(login_url='/admin/login')
|
||||
@@ -41,7 +38,7 @@ def create_item_generator(model):
|
||||
def create_item(request, *args, **kwargs):
|
||||
try:
|
||||
data = json.loads(request.body.decode("utf-8"))
|
||||
except ValueError:
|
||||
except json.JSONDecodeError:
|
||||
return HttpResponseBadRequest(
|
||||
'{"status":"failure","error":"invalid json supplied"}')
|
||||
try:
|
||||
@@ -71,7 +68,7 @@ def delete_item_generator(model):
|
||||
try:
|
||||
item.delete()
|
||||
return HttpResponse('{"status":"success"}')
|
||||
except:
|
||||
except DatabaseError:
|
||||
resp = HttpResponse('{"error" : "could not delete item"}')
|
||||
resp.status_code = 500
|
||||
return resp
|
||||
@@ -97,7 +94,7 @@ def delete_info_item(request, *args, **kwargs):
|
||||
try:
|
||||
item.delete()
|
||||
return HttpResponse('{"status":"success"}')
|
||||
except:
|
||||
except DatabaseError:
|
||||
resp = HttpResponse('{"error" : "could not delete item"}')
|
||||
resp.status_code = 500
|
||||
return resp
|
||||
@@ -145,14 +142,14 @@ def create_rotation(request, *args, **kwargs):
|
||||
"""Create rotation."""
|
||||
try:
|
||||
data = json.loads(request.body.decode("utf-8"))
|
||||
except:
|
||||
except json.JSONDecodeError:
|
||||
return HttpResponse('{"error": "bad post body!"}', status=400)
|
||||
|
||||
try:
|
||||
name = data["name"]
|
||||
Rotation.objects.create(name=name)
|
||||
resp = HttpResponse(status=200)
|
||||
except:
|
||||
except DatabaseError:
|
||||
resp = HttpResponse(
|
||||
'{"error" : "could not create rotation!"}', status=400)
|
||||
|
||||
@@ -171,7 +168,7 @@ def delete_rotation(request, *args, **kwargs):
|
||||
try:
|
||||
Rotation.objects.filter(id=id).delete()
|
||||
resp = HttpResponse(status=200)
|
||||
except:
|
||||
except DatabaseError:
|
||||
resp = HttpResponse(
|
||||
'{"error" : "could not delete rotation!"}', status=400)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ from django.shortcuts import render
|
||||
from django.http import HttpResponse, JsonResponse, HttpResponseBadRequest
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.conf import settings
|
||||
from django.db import DatabaseError
|
||||
|
||||
from infoscreen.models import Rotation, InfoItem, InfoInstance
|
||||
from infoscreen.hsl_fetcher import fetch as hsl_fetch
|
||||
@@ -23,7 +24,7 @@ def default(request, *args, **kwargs):
|
||||
"""Try getting first rotation item."""
|
||||
try:
|
||||
first = Rotation.objects.all()[0].id
|
||||
except:
|
||||
except DatabaseError:
|
||||
first = 0
|
||||
return index(request, first, *args, **kwargs)
|
||||
|
||||
|
||||
@@ -55,3 +55,20 @@ bash setup.sh
|
||||
and follow the instructions.
|
||||
|
||||
## Done!
|
||||
|
||||
## In case of error on macOS Mojave 10.14
|
||||
|
||||
If you get an error saying
|
||||
|
||||
```
|
||||
The headers or library files could not be found for zlib,
|
||||
a required dependency when compiling Pillow from source.
|
||||
```
|
||||
|
||||
run
|
||||
|
||||
```
|
||||
xcode-select --install
|
||||
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
|
||||
```
|
||||
|
||||
|
||||
@@ -53,9 +53,9 @@ def member_list(request, *args, **kwargs):
|
||||
f_month = 9
|
||||
now = timezone.now()
|
||||
if (now.month >= f_month):
|
||||
filter_date = datetime.date(now.year, f_month, f_day)
|
||||
filter_date = timezone.make_aware(datetime.datetime(now.year, f_month, f_day))
|
||||
else:
|
||||
filter_date = datetime.date(now.year - 1, f_month, f_day)
|
||||
filter_date = timezone.make_aware(datetime.datetime(now.year - 1, f_month, f_day))
|
||||
context = {
|
||||
'table': table_html,
|
||||
'member_count': len(members),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
html, body {
|
||||
background-color: rgb(252, 225, 69);
|
||||
background: #fdd504;
|
||||
background: linear-gradient(#fdaa02, #fdd504) no-repeat center center fixed;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -13,7 +14,7 @@ body {
|
||||
border-color: black;
|
||||
color: black;
|
||||
|
||||
border-radius: 0;
|
||||
border-radius: 8px;
|
||||
-webkit-appearance: none;
|
||||
|
||||
box-shadow: 10px 10px rgba(0, 0, 0, 0.5);
|
||||
@@ -21,7 +22,6 @@ body {
|
||||
|
||||
.form-control:focus {
|
||||
border-color: black;
|
||||
outline-style: solid;
|
||||
outline-color: black;
|
||||
outline-width: 2px;
|
||||
}
|
||||
@@ -48,8 +48,8 @@ h3 {
|
||||
}
|
||||
|
||||
.navbar {
|
||||
border-radius: 0;
|
||||
background-color: rgb(252, 225, 69);
|
||||
border-radius: 8px;
|
||||
background-color: #c1272d;
|
||||
box-shadow: 0 0;
|
||||
}
|
||||
|
||||
@@ -97,4 +97,4 @@ h3 {
|
||||
|
||||
h6 {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,12 @@
|
||||
|
||||
.navbar-light .navbar-nav .nav-link {
|
||||
color: black;
|
||||
border-radius: 8px;
|
||||
padding: 10px 15px 10px 15px;
|
||||
margin: 5px;
|
||||
background-color: #fdaa02;
|
||||
}
|
||||
|
||||
a.nav-item.nav-link:hover {
|
||||
background-color: #fc8606;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,473 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1920 880" style="enable-background:new 0 0 1920 880;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#5C3B17;}
|
||||
.st2{fill:#FACF57;}
|
||||
.st3{fill:#E0860B;}
|
||||
.st4{fill:#FFE8AE;}
|
||||
.st5{enable-background:new ;}
|
||||
.st6{fill:#2833BE;}
|
||||
.st7{fill:none;stroke:#231F20;stroke-width:5;stroke-miterlimit:10;}
|
||||
.st8{fill:#C1272D;}
|
||||
.st9{fill:none;stroke:#5C3B17;stroke-width:6;stroke-miterlimit:10;}
|
||||
.st10{fill:none;stroke:#5C3B17;stroke-width:8;stroke-miterlimit:10;}
|
||||
.st11{fill:none;stroke:#231F20;stroke-width:6;stroke-miterlimit:10;}
|
||||
.st12{fill:#231F20;}
|
||||
.st13{fill:#BC1D22;}
|
||||
.st14{fill:#FDFDFD;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M1638.2,775.5l-87-42.7l17.6-36l87,42.7c10.2,5,22.4,0.8,27.4-9.4l28.6-58.3c5-10.2,0.8-22.5-9.4-27.4
|
||||
l-87-42.7l17.6-35.9l87,42.7c30,14.7,42.4,51,27.7,81l-28.6,58.3C1704.5,777.8,1668.2,790.2,1638.2,775.5z"/>
|
||||
<path class="st1" d="M1635.5,781l-92.5-45.4l23.1-47l92.5,45.4c7.1,3.5,15.7,0.5,19.2-6.6l28.6-58.3c3.5-7.1,0.5-15.7-6.6-19.2
|
||||
l-92.5-45.4l23.1-47l92.5,45.4c33,16.2,46.7,56.2,30.5,89.2l-28.6,58.3C1708.6,783.5,1668.6,797.2,1635.5,781z M1559.5,730
|
||||
l81.5,40c26.9,13.2,59.6,2,72.8-24.9l28.6-58.3c13.2-26.9,2-59.5-24.9-72.8l-81.5-40l-12.2,24.9l81.5,40
|
||||
c13.2,6.5,18.7,22.5,12.2,35.7l-28.6,58.3c-6.5,13.2-22.5,18.7-35.7,12.2l-81.5-40L1559.5,730z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M1428.7,790l70.4,34.5c36.8,18.1,81.4,2.8,99.4-34l91.5-186.6c13.5-27.5,2.1-60.7-25.4-74.2l-104.3-51.2
|
||||
c-27.5-13.5-60.7-2.1-74.2,25.4l-91.5,186.6C1376.7,727.4,1391.9,771.9,1428.7,790z"/>
|
||||
<path class="st1" d="M1502.1,832.8l-81.7-40c-36.7-18-52-62.6-34-99.3L1507.8,446l214.9,105.4l-121.3,247.5
|
||||
C1583.3,835.6,1538.8,850.8,1502.1,832.8z M1513.4,462.5l-115.9,236.4c-15,30.6-2.3,67.8,28.3,82.8l81.7,40
|
||||
c30.6,15,67.8,2.3,82.8-28.3L1706.2,557L1513.4,462.5z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st2" d="M1516.2,470.7L1403,701.6c-2.6,5.3-4.3,10.9-5.1,16.5c-1.6,11.3,4.3,22.3,14.6,27.3l131.9,64.7
|
||||
c10.2,5,22.6,3,30.5-5.2c3.9-4.1,7.3-8.8,9.9-14.1L1698,559.8L1516.2,470.7z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st3" d="M1662,542.2l-113.2,230.9c-2.6,5.3-6,10.1-9.9,14.1c-7.9,8.2-20.3,10.2-30.5,5.2l35.9,17.6
|
||||
c10.2,5,22.6,3,30.5-5.2c3.9-4.1,7.3-8.8,9.9-14.1L1698,559.8L1662,542.2z"/>
|
||||
</g>
|
||||
<path class="st1" d="M1455.5,621c-3.1-1.5-6.7-0.2-8.2,2.8l-36.6,74.7c-1.5,3-0.2,6.7,2.8,8.2c3.1,1.5,6.7,0.2,8.2-2.8l36.6-74.7
|
||||
C1459.8,626.2,1458.5,622.5,1455.5,621z"/>
|
||||
<path class="st1" d="M1516,483.5l-48.1,98.1c-1.5,3-0.2,6.7,2.8,8.2c3.1,1.5,6.7,0.2,8.2-2.8l48.1-98.1L1516,483.5z"/>
|
||||
<g>
|
||||
<path class="st4" d="M1543.5,484.1l-99.2,202.4c-4.9,9.9-0.8,21.9,9.2,26.8c9.9,4.9,21.9,0.8,26.8-9.2l99.2-202.4L1543.5,484.1z"
|
||||
/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M1719.6,538.7c4.2-5.6,7.2-12.2,8.5-20.1c3-18.8-5.8-37.9-22.3-47.5c-9.3-5.4-19.5-7.2-29.2-5.9
|
||||
c-2-20.4-14.2-39.2-33.9-48.9c-27.4-13.5-60.1-4.4-77,19.9c-5.2-7-12.1-12.7-20.7-16.5c-24.4-10.8-53.9-0.8-66.7,22.6
|
||||
c-14.3,26.2-3.8,58.7,22.8,71.7c4.3,2.1,8.7,3.5,13.1,4.4c9.1,1.7,14.3,11.3,10.2,19.7l-19.6,39.9c-6.4,13-1,28.8,12,35.2
|
||||
c13,6.4,28.8,1,35.2-12l23.5-47.9c3.4-7,11.9-9.9,18.8-6.4l18.3,9c7,3.4,9.9,11.9,6.4,18.8l-9.2,18.8c-6.4,13-1,28.8,12,35.2
|
||||
c13,6.4,28.8,1,35.2-12l9.2-18.8c3.4-7,11.9-9.9,18.8-6.4c14.3,7,32.1,3,41-10.2C1735.7,566.8,1732.1,548.5,1719.6,538.7z"/>
|
||||
<path class="st1" d="M1733.9,580c0.1-0.2,0.1-0.3,0.2-0.5c0.4-0.8,0.7-1.6,1.1-2.4c0.1-0.3,0.2-0.5,0.3-0.8
|
||||
c4.7-12.7,2.1-26.9-6.7-37.3c-0.2-0.2-0.3-0.4-0.5-0.6c-0.2-0.2-0.4-0.4-0.6-0.7c3.3-5.6,5.5-11.7,6.6-18.2
|
||||
c3.4-21.4-6.7-43-25.3-53.8c-8.3-4.8-17.6-7.3-27.1-7.1c-0.2-1.1-0.4-2.1-0.7-3.2c-0.1-0.4-0.2-0.8-0.3-1.2
|
||||
c-0.2-0.9-0.5-1.8-0.8-2.7c-0.2-0.7-0.4-1.4-0.7-2s-0.4-1.3-0.7-2c-0.5-1.4-1.1-2.8-1.7-4.1c-0.1-0.1-0.1-0.3-0.2-0.4
|
||||
c-0.6-1.3-1.3-2.6-2-4c-0.1-0.2-0.2-0.4-0.3-0.5c-2.4-4.4-5.3-8.4-8.6-12.1l0,0c-1.1-1.2-2.3-2.4-3.5-3.6c0,0-0.1-0.1-0.1-0.1
|
||||
c-2.4-2.3-4.9-4.4-7.6-6.3c-0.3-0.2-0.6-0.4-0.8-0.6c-1.1-0.7-2.1-1.4-3.2-2.1c-0.4-0.2-0.7-0.4-1.1-0.6c-1.4-0.8-2.8-1.6-4.2-2.3
|
||||
c-27.2-13.3-60.2-6.4-79.9,15.8c-0.3-0.3-0.6-0.6-0.9-0.9c-0.8-0.8-1.6-1.5-2.5-2.3c-0.5-0.5-1.1-0.9-1.6-1.3
|
||||
c-0.9-0.7-1.8-1.4-2.7-2.1c-0.6-0.4-1.2-0.8-1.8-1.2c-0.9-0.6-1.8-1.2-2.8-1.8c-0.7-0.4-1.4-0.8-2.1-1.1c-0.5-0.3-1-0.6-1.6-0.9
|
||||
c-0.3-0.2-0.7-0.3-1-0.4c-0.4-0.2-0.7-0.4-1.1-0.5c-0.6-0.3-1.2-0.5-1.8-0.7c-0.8-0.3-1.7-0.7-2.5-1c-0.9-0.3-1.8-0.6-2.7-0.9
|
||||
c-0.9-0.3-1.9-0.6-2.8-0.8c-0.7-0.2-1.5-0.3-2.2-0.5c-1.2-0.2-2.3-0.5-3.4-0.6c-0.4-0.1-0.9-0.1-1.3-0.1
|
||||
c-15.7-1.8-31.4,2.9-43.5,12.8c-0.2,0.1-0.3,0.3-0.5,0.4c-1,0.9-2,1.8-3,2.7c-0.4,0.4-0.8,0.8-1.2,1.2c-0.8,0.8-1.5,1.6-2.2,2.4
|
||||
c-0.6,0.6-1.1,1.2-1.6,1.9c-0.6,0.7-1.2,1.5-1.7,2.3c-0.6,0.8-1.2,1.6-1.7,2.4c-0.5,0.7-0.9,1.5-1.4,2.3c-0.3,0.5-0.6,1-0.9,1.5
|
||||
c-0.2,0.4-0.4,0.8-0.6,1.2c-0.2,0.4-0.4,0.7-0.6,1.1l0.1,0c-6.7,13.5-7.9,28.8-3.3,43.2c4.9,15.3,15.5,27.6,29.8,34.6
|
||||
c4.7,2.3,9.6,3.9,14.7,4.9c2.6,0.5,4.7,2.1,5.8,4.3c0.6,1.2,1.4,3.7,0,6.6l-19.6,39.9c-7.9,16.1-1.2,35.5,14.8,43.4
|
||||
c16.1,7.9,35.6,1.2,43.4-14.8l23.5-47.9c1.9-3.9,6.7-5.5,10.6-3.6l18.3,9c3.9,1.9,5.6,6.7,3.6,10.6l-9.2,18.8
|
||||
c-7.9,16.1-1.2,35.5,14.8,43.4s35.6,1.2,43.4-14.8l9.2-18.8c1.9-3.9,6.7-5.5,10.6-3.6c17.4,8.5,38.4,3.2,48.8-12.3
|
||||
C1732.3,583,1733.1,581.5,1733.9,580L1733.9,580z M1721.1,577.7c-7,10.5-21.2,14-33.1,8.1c-10-4.9-22.2-0.8-27.1,9.3l-9.2,18.8
|
||||
c-4.9,10-17,14.1-26.9,9.2s-14.1-17-9.2-26.9l9.2-18.8c4.9-10,0.8-22.2-9.3-27.1l-18.3-9c-10-4.9-22.2-0.8-27.1,9.3l-23.5,47.9
|
||||
c-4.9,10-17,14.1-26.9,9.2c-10-4.9-14.1-17-9.2-26.9l19.6-39.9c2.7-5.6,2.7-12-0.1-17.5c-2-4-5.2-7.2-9.2-9.2
|
||||
c-1.7-0.8-3.4-1.4-5.3-1.8c-4-0.8-7.9-2.1-11.6-3.9c-11.3-5.6-19.7-15.3-23.5-27.3c-3.7-11.7-2.6-24.1,3-35
|
||||
c0.4-0.7,0.8-1.4,1.2-2.1c0.3-0.6,0.7-1.2,1.1-1.8c0.4-0.7,0.9-1.3,1.4-2c0.4-0.6,0.8-1.2,1.3-1.7c0.4-0.5,0.9-1.1,1.4-1.6
|
||||
c0.5-0.6,1.1-1.2,1.7-1.8c0.4-0.4,0.7-0.7,1.1-1.1c0.7-0.7,1.4-1.4,2.2-2c0.2-0.2,0.4-0.3,0.6-0.5c8.6-6.9,19.5-10.6,30.6-10.2
|
||||
c0.1,0,0.1,0,0.2,0c1.1,0,2.2,0.1,3.3,0.3c0.4,0,0.8,0.1,1.2,0.1c0.9,0.1,1.7,0.3,2.6,0.5c0.6,0.1,1.2,0.2,1.8,0.4
|
||||
c0.7,0.2,1.4,0.4,2.2,0.6c0.7,0.2,1.5,0.4,2.2,0.7c0.7,0.2,1.3,0.5,2,0.8c0.9,0.4,1.7,0.7,2.6,1.1c0.3,0.1,0.6,0.3,0.9,0.4
|
||||
c1.1,0.6,2.2,1.1,3.2,1.8c0.3,0.2,0.5,0.4,0.8,0.5c0.8,0.5,1.6,1,2.3,1.6c0.4,0.3,0.8,0.6,1.2,0.9c0.8,0.6,1.5,1.2,2.2,1.8
|
||||
c0.4,0.3,0.8,0.7,1.2,1c0.7,0.6,1.3,1.3,2,2c0.3,0.4,0.7,0.7,1,1.1c0.6,0.6,1.1,1.3,1.7,2c0.2,0.3,0.5,0.6,0.7,0.9
|
||||
c2.5,3.4,4.6,7,6.1,11c1.1,3,4.2,4.7,7.3,3.9l0,0c3.6-0.9,5.6-4.8,4.2-8.3c-1.4-3.6-3.1-6.9-5.1-10.1
|
||||
c15.9-19.5,43.8-25.8,66.7-14.6c1.2,0.6,2.4,1.2,3.5,1.9c0.3,0.2,0.6,0.4,0.9,0.6c0.8,0.5,1.7,1,2.5,1.6c0.3,0.2,0.6,0.4,0.9,0.6
|
||||
c0.8,0.6,1.7,1.2,2.5,1.9c0.2,0.2,0.4,0.3,0.6,0.5c3.2,2.6,6,5.6,8.4,8.8c0,0,0,0,0.1,0.1c0.8,1,1.5,2.1,2.2,3.1
|
||||
c0.1,0.2,0.2,0.3,0.3,0.5c0.6,0.9,1.2,1.9,1.7,2.8c0.1,0.2,0.3,0.5,0.4,0.7c0.5,0.9,0.9,1.8,1.3,2.7c0.2,0.3,0.3,0.6,0.5,1
|
||||
c0.4,0.8,0.7,1.6,1,2.4c0.5,1.4,1.1,2.8,1.5,4.2c0,0.1,0,0.1,0.1,0.2c0.3,1,0.6,2.1,0.8,3.1c0,0.1,0.1,0.2,0.1,0.3
|
||||
c0.2,1.1,0.5,2.2,0.6,3.3c0,0.1,0,0.2,0,0.2c0.2,1.1,0.3,2.2,0.4,3.3c0.4,3.7,0.4,7.4,0,11.1c-0.3,3.2,1.7,6.1,4.8,6.8
|
||||
c3.5,0.7,7-1.7,7.4-5.3c0.3-2.5,0.3-4.9,0.3-7.4c6.9,0.1,13.6,1.9,19.7,5.4c14.2,8.2,21.9,24.8,19.3,41.1
|
||||
c-0.7,4.5-2.2,8.6-4.3,12.5c-0.4-0.2-0.7-0.4-1.1-0.6c-3.4-1.7-7.1-2.8-10.9-3.4c-3.8-0.6-7.2,2.5-7,6.4c0.1,2.9,2.3,5.3,5.1,5.8
|
||||
c2.5,0.4,5,1.2,7.3,2.3c1.5,0.8,2.9,1.6,4.2,2.6l0.3,0.3c0.1,0.1,0.2,0.1,0.2,0.2c0.6,0.5,1.1,0.9,1.6,1.4
|
||||
c0.4,0.4,0.8,0.8,1.1,1.2c0.2,0.2,0.3,0.3,0.5,0.5c4.3,5,6.5,11.5,6.2,18.1c0,0,0,0.1,0,0.1c0,0.7-0.1,1.5-0.2,2.2
|
||||
c0,0.2-0.1,0.4-0.1,0.7c-0.1,0.5-0.2,1.1-0.3,1.6c-0.1,0.3-0.2,0.7-0.3,1c-0.1,0.4-0.3,0.9-0.4,1.3c-0.1,0.4-0.3,0.8-0.4,1.1
|
||||
c-0.2,0.4-0.3,0.8-0.5,1.2C1722.5,575.2,1721.9,576.5,1721.1,577.7z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M1672.6,512.6c-6-7.3-14.7-11.2-23.9-11c-5.2,0.1-10.3,1.6-14.6,4.3c-3.5,2.1-4,7-1.1,9.8l0,0
|
||||
c2.1,2,5.1,2.2,7.6,0.7c7.2-4.3,16.8-3,22.5,4c4.9,6.1,5.1,15,0.4,21.2c-1.8,2.3-4,4.2-6.5,5.4c-2.6,1.2-4.1,3.9-3.7,6.7
|
||||
c0.7,4.1,5.1,6.3,8.8,4.5c4.2-2,7.9-4.9,10.9-8.7C1681.4,538.8,1681.2,523.2,1672.6,512.6z"/>
|
||||
<path class="st1" d="M1630.1,446c-7.3-2-14.8-0.6-20.7,3.9c-2.7,2.1-4.9,4.6-6.4,7.5c-2,3.8,0.4,8.4,4.7,8.9
|
||||
c2.6,0.4,5-1.1,6.3-3.4c0.7-1.3,1.7-2.4,2.9-3.3c3-2.3,7-2.9,10.7-1.5c4.1,1.5,6.9,5.6,7,10c0,1.6-0.3,3.2-0.8,4.6
|
||||
c-1,2.4-0.7,5.2,1.2,7l0,0c3,3,8.2,2.1,9.9-1.7c1-2.3,1.7-4.7,1.9-7.3C1648,459.7,1640.8,449,1630.1,446z"/>
|
||||
<path class="st1" d="M1572.6,469.4c-10.6-5.1-23-4.3-33.3,2.4c-2.9,1.9-5.5,4.3-7.7,7.1c-4.5,6-6.9,12.8-7.1,19.8
|
||||
c-0.1,4,3.5,7.1,7.4,6.3c2.8-0.6,4.8-3,4.9-5.9c0.1-3,0.8-5.9,2.1-8.6c2.4-5.1,6.8-9,12.1-10.9s11.1-1.6,16.3,0.9
|
||||
c0.1,0,0.1,0.1,0.2,0.1c9,4.4,13.5,14.3,11.4,23.7c-0.6,2.8,0.7,5.7,3.3,6.9c3.5,1.7,7.8-0.3,8.7-4.1
|
||||
C1594.2,492.2,1587,476.4,1572.6,469.4z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M1591,690.3L1591,690.3c-8.9-4.3-12.6-15.1-8.2-24l4.2-8.6c4.3-8.9,15.1-12.5,24-8.2l0,0
|
||||
c8.9,4.3,12.6,15.1,8.2,24l-4.2,8.6C1610.6,691,1599.8,694.6,1591,690.3z"/>
|
||||
<path class="st1" d="M1588.2,695.8c-11.9-5.8-16.9-20.3-11-32.2l4.2-8.6c5.8-11.9,20.3-16.9,32.2-11c11.9,5.8,16.9,20.3,11,32.2
|
||||
l-4.2,8.6C1614.6,696.7,1600.2,701.7,1588.2,695.8z M1608.2,655c-5.8-2.8-12.9-0.4-15.7,5.4l-4.2,8.6c-2.8,5.8-0.4,12.9,5.4,15.7
|
||||
s12.9,0.4,15.7-5.4l4.2-8.6C1616.5,664.9,1614.1,657.9,1608.2,655z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M280.8,775.5l87-42.7l-17.6-36l-87,42.7c-10.1,5-22.4,0.8-27.4-9.4l-28.6-58.3c-5-10.2-0.8-22.5,9.4-27.4
|
||||
l87-42.7l-17.6-35.9l-87,42.7c-30,14.7-42.4,51-27.7,81l28.6,58.3C214.5,777.8,250.8,790.2,280.8,775.5z"/>
|
||||
<path class="st1" d="M194.2,750.5l-28.6-58.3c-16.2-33-2.5-73,30.5-89.2l92.5-45.4l23,47L219.2,650c-7.1,3.5-10,12.1-6.6,19.2
|
||||
l28.6,58.3c3.5,7.1,12.1,10,19.2,6.6l92.5-45.4l23,47L283.5,781C250.5,797.2,210.4,783.5,194.2,750.5z M347.3,705.1l-81.5,40
|
||||
c-13.2,6.5-29.2,1-35.7-12.2l-28.6-58.3c-6.5-13.2-1-29.2,12.2-35.7l81.5-40l-12.2-24.9l-81.5,40c-26.9,13.2-38.1,45.8-24.9,72.8
|
||||
l28.6,58.3c13.2,26.9,45.8,38.1,72.8,24.9l81.5-40L347.3,705.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M496.4,787l-82.7,40.6c-33.5,16.4-73.9,2.6-90.3-30.9l-97.5-198.9c-11.8-24.1-1.9-53.2,22.2-65l116.7-57.2
|
||||
c24.1-11.8,53.2-1.9,65,22.2l97.5,198.9C543.7,730.2,529.9,770.6,496.4,787z"/>
|
||||
<path class="st1" d="M317.6,798.9L196.3,551.4L411.2,446l121.4,247.5c18,36.7,2.8,81.3-34,99.3l-81.6,40
|
||||
C380.2,850.8,335.7,835.6,317.6,798.9z M212.8,557l115.9,236.4c15,30.6,52.2,43.3,82.8,28.3l81.6-40c30.6-15,43.3-52.2,28.3-82.8
|
||||
L405.6,462.5L212.8,557z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st2" d="M402.8,470.7L516,701.6c2.6,5.3,4.3,10.9,5.1,16.5c1.6,11.3-4.3,22.3-14.6,27.3L374.6,810
|
||||
c-10.2,5-22.6,3-30.5-5.2c-3.9-4.1-7.3-8.8-9.9-14.1L221,559.8L402.8,470.7z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st3" d="M257,542.2l113.2,230.9c2.6,5.3,6,10.1,9.9,14.1c7.9,8.2,20.3,10.2,30.5,5.2l-36,17.6
|
||||
c-10.2,5-22.6,3-30.5-5.2c-3.9-4.1-7.3-8.8-9.9-14.1L221,559.8L257,542.2z"/>
|
||||
</g>
|
||||
<path class="st1" d="M463.5,621c3-1.5,6.7-0.2,8.2,2.8l36.6,74.7c1.5,3,0.2,6.7-2.8,8.2c-3,1.5-6.7,0.2-8.2-2.8l-36.6-74.7
|
||||
C459.2,626.2,460.5,622.5,463.5,621z"/>
|
||||
<path class="st1" d="M403,483.5l48.1,98.1c1.5,3,0.2,6.7-2.8,8.2c-3,1.5-6.7,0.2-8.2-2.8l-48.1-98.1L403,483.5z"/>
|
||||
<g>
|
||||
<path class="st4" d="M375.5,484.1l99.2,202.4c4.9,9.9,0.8,21.9-9.2,26.8s-21.9,0.8-26.8-9.2l-99.2-202.4L375.5,484.1z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M199.4,538.7c-4.1-5.6-7.2-12.2-8.5-20.1c-3-18.8,5.8-37.9,22.3-47.5c9.3-5.4,19.5-7.2,29.2-5.9
|
||||
c2-20.4,14.2-39.2,33.9-48.9c27.4-13.5,60.1-4.4,77,19.9c5.2-7,12.1-12.7,20.7-16.5c24.4-10.8,53.9-0.8,66.7,22.6
|
||||
c14.3,26.2,3.8,58.7-22.8,71.7c-4.3,2.1-8.7,3.5-13.1,4.4c-9.1,1.7-14.3,11.3-10.2,19.7l19.6,39.9c6.4,13,1,28.8-12,35.2
|
||||
c-13,6.4-28.8,1-35.2-12l-23.5-47.9c-3.4-7-11.9-9.9-18.8-6.4l-18.3,9c-7,3.4-9.9,11.9-6.4,18.8l9.2,18.8c6.4,13,1,28.8-12,35.2
|
||||
c-13,6.4-28.8,1-35.2-12l-9.2-18.8c-3.4-7-11.9-9.9-18.8-6.4c-14.3,7-32.1,3-41-10.2C183.3,566.8,186.9,548.5,199.4,538.7z"/>
|
||||
<path class="st1" d="M185.1,580c0.8,1.5,1.6,3,2.6,4.5c10.4,15.6,31.4,20.9,48.8,12.3c3.9-1.9,8.7-0.3,10.6,3.6l9.2,18.8
|
||||
c7.9,16.1,27.4,22.7,43.4,14.8c16.1-7.9,22.7-27.4,14.9-43.4l-9.2-18.8c-1.9-3.9-0.3-8.7,3.6-10.6l18.3-9
|
||||
c3.9-1.9,8.7-0.3,10.6,3.6l23.5,47.9c7.9,16.1,27.4,22.7,43.4,14.8c16.1-7.9,22.7-27.4,14.9-43.4l-19.6-39.9
|
||||
c-1.4-2.9-0.6-5.3,0-6.6c1.1-2.3,3.3-3.8,5.8-4.3c5.1-1,10-2.6,14.7-4.9c14.4-7.1,25-19.4,29.9-34.6c4.6-14.4,3.4-29.7-3.3-43.2
|
||||
l0.1,0c-0.2-0.4-0.4-0.7-0.6-1.1s-0.4-0.8-0.6-1.2c-0.3-0.5-0.6-1-0.9-1.5c-0.5-0.8-0.9-1.5-1.4-2.3c-0.5-0.8-1.1-1.6-1.7-2.4
|
||||
c-0.6-0.8-1.1-1.5-1.7-2.3c-0.5-0.6-1.1-1.3-1.6-1.9c-0.7-0.8-1.5-1.6-2.2-2.4c-0.4-0.4-0.8-0.8-1.2-1.2c-1-0.9-1.9-1.8-3-2.7
|
||||
c-0.2-0.1-0.3-0.3-0.5-0.4c-12.1-9.9-27.9-14.5-43.5-12.8c-0.4,0-0.9,0.1-1.3,0.1c-1.2,0.2-2.3,0.4-3.5,0.6
|
||||
c-0.7,0.1-1.5,0.3-2.2,0.5c-1,0.2-1.9,0.5-2.8,0.8c-0.9,0.3-1.8,0.5-2.7,0.9c-0.8,0.3-1.7,0.6-2.5,1c-0.6,0.2-1.2,0.4-1.8,0.7
|
||||
c-0.4,0.2-0.7,0.4-1.1,0.5c-0.3,0.2-0.7,0.3-1,0.4c-0.5,0.3-1,0.6-1.6,0.9c-0.7,0.4-1.4,0.8-2.1,1.1c-1,0.6-1.9,1.1-2.8,1.8
|
||||
c-0.6,0.4-1.2,0.8-1.8,1.2c-0.9,0.7-1.8,1.4-2.7,2.1c-0.5,0.4-1.1,0.9-1.6,1.3c-0.9,0.7-1.7,1.5-2.5,2.3c-0.3,0.3-0.6,0.5-0.9,0.9
|
||||
c-19.7-22.2-52.7-29.1-79.9-15.8c-1.5,0.7-2.9,1.5-4.2,2.3c-0.4,0.2-0.7,0.4-1.1,0.6c-1.1,0.7-2.2,1.4-3.2,2.1
|
||||
c-0.3,0.2-0.5,0.4-0.8,0.6c-2.7,1.9-5.3,4-7.6,6.3c0,0-0.1,0.1-0.1,0.1c-1.2,1.2-2.4,2.4-3.5,3.6l0,0c-3.3,3.7-6.2,7.8-8.6,12.1
|
||||
c-0.1,0.2-0.2,0.4-0.3,0.5c-0.7,1.3-1.4,2.6-2,4c-0.1,0.1-0.1,0.3-0.2,0.4c-0.6,1.4-1.2,2.7-1.7,4.1c-0.2,0.7-0.5,1.3-0.7,2
|
||||
c-0.2,0.7-0.4,1.4-0.7,2c-0.3,0.9-0.5,1.8-0.8,2.7c-0.1,0.4-0.2,0.8-0.3,1.2c-0.2,1-0.5,2.1-0.7,3.2c-9.4-0.1-18.7,2.3-27.1,7.1
|
||||
c-18.6,10.8-28.7,32.4-25.3,53.8c1.1,6.5,3.2,12.6,6.6,18.2c-0.2,0.2-0.4,0.4-0.6,0.7c-0.2,0.2-0.4,0.4-0.5,0.6
|
||||
c-8.9,10.3-11.4,24.5-6.7,37.3c0.1,0.3,0.2,0.5,0.3,0.8c0.3,0.8,0.7,1.6,1.1,2.4C185,579.7,185.1,579.9,185.1,580L185.1,580z
|
||||
M195.9,573.9c-0.2-0.4-0.3-0.8-0.5-1.2c-0.1-0.4-0.3-0.8-0.4-1.1c-0.1-0.4-0.3-0.9-0.4-1.3c-0.1-0.3-0.2-0.7-0.3-1
|
||||
c-0.1-0.5-0.2-1.1-0.3-1.6c0-0.2-0.1-0.4-0.1-0.7c-0.1-0.7-0.2-1.5-0.2-2.2c0,0,0-0.1,0-0.1c-0.4-6.6,1.9-13.1,6.2-18.1
|
||||
c0.1-0.2,0.3-0.3,0.5-0.5c0.4-0.4,0.7-0.8,1.1-1.2c0.5-0.5,1.1-1,1.6-1.4c0.1-0.1,0.1-0.1,0.2-0.2l0.3-0.3c1.3-1,2.7-1.9,4.2-2.6
|
||||
c2.3-1.1,4.8-1.9,7.3-2.3c2.9-0.4,5-2.9,5.1-5.8c0.2-3.8-3.2-7-7-6.4c-3.8,0.6-7.4,1.7-10.9,3.4c-0.4,0.2-0.8,0.4-1.1,0.6
|
||||
c-2.1-3.9-3.6-8.1-4.3-12.5c-2.6-16.4,5.1-32.9,19.3-41.1c6.1-3.5,12.8-5.4,19.7-5.4c0,2.4,0.1,4.9,0.4,7.4c0.4,3.6,3.9,6,7.4,5.3
|
||||
c3.1-0.7,5.2-3.6,4.8-6.8c-0.4-3.8-0.4-7.5,0-11.1c0.1-1.1,0.3-2.2,0.4-3.3c0-0.1,0-0.2,0-0.2c0.2-1.1,0.4-2.2,0.6-3.3
|
||||
c0-0.1,0.1-0.2,0.1-0.3c0.2-1.1,0.5-2.1,0.8-3.1c0-0.1,0-0.1,0.1-0.2c0.4-1.4,0.9-2.8,1.5-4.2c0.3-0.8,0.6-1.6,1-2.4
|
||||
c0.1-0.3,0.3-0.6,0.5-1c0.4-0.9,0.9-1.8,1.3-2.7c0.1-0.2,0.3-0.5,0.4-0.7c0.5-1,1.1-1.9,1.7-2.8c0.1-0.2,0.2-0.3,0.3-0.5
|
||||
c0.7-1.1,1.4-2.1,2.2-3.1c0,0,0,0,0-0.1c2.5-3.2,5.3-6.1,8.4-8.8c0.2-0.2,0.4-0.3,0.6-0.5c0.8-0.6,1.6-1.3,2.5-1.9
|
||||
c0.3-0.2,0.6-0.4,0.9-0.6c0.8-0.6,1.6-1.1,2.5-1.6c0.3-0.2,0.6-0.4,1-0.6c1.1-0.7,2.3-1.3,3.5-1.9c22.9-11.2,50.8-4.9,66.7,14.6
|
||||
c-2,3.2-3.7,6.6-5.1,10.1c-1.3,3.5,0.6,7.4,4.2,8.3l0,0c3.1,0.8,6.2-1,7.3-3.9c1.5-4,3.6-7.7,6.1-11c0.2-0.3,0.5-0.6,0.7-0.9
|
||||
c0.5-0.7,1.1-1.3,1.6-2c0.3-0.4,0.6-0.7,1-1.1c0.6-0.7,1.3-1.3,2-2c0.4-0.4,0.8-0.7,1.1-1c0.7-0.6,1.5-1.2,2.2-1.8
|
||||
c0.4-0.3,0.8-0.6,1.2-0.9c0.8-0.5,1.5-1.1,2.3-1.6c0.3-0.2,0.5-0.4,0.8-0.5c1-0.6,2.1-1.2,3.2-1.8c0.3-0.1,0.6-0.3,0.9-0.4
|
||||
c0.9-0.4,1.7-0.8,2.6-1.1c0.6-0.3,1.3-0.5,2-0.8c0.7-0.3,1.5-0.5,2.2-0.7c0.7-0.2,1.5-0.4,2.2-0.6c0.6-0.1,1.2-0.3,1.9-0.4
|
||||
c0.9-0.2,1.7-0.4,2.6-0.5c0.4-0.1,0.8-0.1,1.2-0.1c1.1-0.1,2.2-0.2,3.3-0.3c0,0,0.1,0,0.2,0c11-0.4,22,3.3,30.6,10.2
|
||||
c0.2,0.2,0.4,0.3,0.6,0.5c0.8,0.6,1.5,1.3,2.2,2c0.4,0.4,0.8,0.7,1.1,1.1c0.6,0.6,1.1,1.2,1.6,1.8c0.5,0.5,0.9,1,1.4,1.6
|
||||
c0.4,0.5,0.9,1.1,1.3,1.7c0.5,0.6,0.9,1.3,1.4,2c0.4,0.6,0.7,1.2,1.1,1.8c0.4,0.7,0.8,1.4,1.2,2.1c5.6,10.9,6.8,23.3,3,35
|
||||
c-3.8,12-12.2,21.7-23.5,27.3c-3.7,1.8-7.6,3.1-11.6,3.9c-1.9,0.4-3.7,1-5.3,1.8c-4,2-7.2,5.1-9.2,9.2c-2.8,5.5-2.8,11.9,0,17.5
|
||||
l19.6,39.9c4.9,10,0.8,22.1-9.2,26.9c-10,4.9-22.1,0.8-26.9-9.2L349,550.6c-4.9-10-17.1-14.2-27.1-9.3l-18.3,9
|
||||
c-10,4.9-14.2,17.1-9.3,27.1l9.2,18.8c4.9,10,0.8,22.1-9.2,26.9s-22.1,0.8-26.9-9.2l-9.2-18.8c-4.9-10-17.1-14.2-27.1-9.3
|
||||
c-11.9,5.8-26.1,2.3-33.1-8.1C197.1,576.5,196.5,575.2,195.9,573.9z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M246.5,512.6c6-7.3,14.7-11.2,23.9-11c5.2,0.1,10.3,1.6,14.6,4.3c3.5,2.1,4,7,1,9.8l0,0
|
||||
c-2.1,2-5.1,2.2-7.6,0.7c-7.2-4.3-16.8-3-22.5,4c-4.9,6.1-5.1,15-0.4,21.2c1.8,2.3,4,4.2,6.5,5.4c2.6,1.2,4.1,3.9,3.6,6.7
|
||||
c-0.7,4.1-5.1,6.3-8.8,4.5c-4.2-2-7.9-4.9-10.9-8.7C237.6,538.8,237.8,523.2,246.5,512.6z"/>
|
||||
<path class="st1" d="M288.9,446c7.3-2,14.8-0.6,20.7,3.9c2.7,2.1,4.9,4.6,6.4,7.5c2,3.8-0.5,8.4-4.7,8.9c-2.6,0.4-5-1.1-6.3-3.4
|
||||
c-0.7-1.3-1.7-2.4-2.9-3.3c-3-2.3-7-2.9-10.7-1.5c-4.1,1.5-6.9,5.6-7,10c0,1.6,0.3,3.2,0.9,4.6c1,2.4,0.6,5.2-1.2,7l0,0
|
||||
c-3,3-8.2,2.1-9.9-1.7c-1-2.3-1.7-4.7-1.9-7.3C271,459.7,278.2,449,288.9,446z"/>
|
||||
<path class="st1" d="M346.4,469.4c10.6-5.1,23-4.3,33.3,2.4c2.9,1.9,5.5,4.3,7.7,7.1c4.5,6,6.9,12.8,7.1,19.8
|
||||
c0.1,4-3.5,7.1-7.4,6.3c-2.8-0.6-4.8-3-4.9-5.9c-0.1-3-0.8-5.9-2.1-8.6c-2.5-5.1-6.8-9-12.1-10.9s-11.1-1.6-16.3,0.9
|
||||
c-0.1,0-0.1,0.1-0.2,0.1c-9,4.4-13.5,14.3-11.4,23.7c0.6,2.8-0.7,5.7-3.3,6.9c-3.5,1.7-7.8-0.3-8.7-4.1
|
||||
C324.8,492.2,332,476.4,346.4,469.4z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M328,690.3L328,690.3c8.9-4.3,12.5-15.1,8.2-24l-4.2-8.6c-4.4-8.9-15.1-12.5-24-8.2l0,0
|
||||
c-8.9,4.3-12.5,15.1-8.2,24l4.2,8.6C308.4,691,319.2,694.6,328,690.3z"/>
|
||||
<path class="st1" d="M298.5,684.8l-4.2-8.6c-5.8-11.9-0.9-26.4,11-32.2c11.9-5.8,26.4-0.9,32.2,11l4.2,8.6
|
||||
c5.8,11.9,0.9,26.4-11,32.2C318.8,701.7,304.4,696.7,298.5,684.8z M305.4,670.7l4.2,8.6c2.9,5.8,9.9,8.2,15.7,5.4
|
||||
c5.8-2.8,8.2-9.9,5.4-15.7l-4.2-8.6c-2.9-5.8-9.9-8.2-15.7-5.4C304.9,657.9,302.5,664.9,305.4,670.7z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st6" d="M622.8,323c0,58.4-52.4,81.6-93.6,69.4l-8.4,13.8c-11.4,0-22.6,0-34.2,0v-4l15.2-24.8
|
||||
c-13.4-12-22.4-30.2-22.4-54.4c0-59.6,54.2-82.6,96-69l8.2-13.4h34v3.8L602,270C614.6,282.2,622.8,299.8,622.8,323z M586.2,323
|
||||
c0-50.6-69.8-50.6-69.8,0C516.4,373.4,586.2,373.4,586.2,323z"/>
|
||||
<path class="st6" d="M766.4,393.4c-12.2,0-24.4,0-36.6,0v-56.2h-43.2v56.2c-12.2,0-24.6,0-36.6,0v-140c12,0,24.4,0,36.6,0v50.8
|
||||
h43.2v-50.8c12.2,0,24.4,0,36.6,0V393.4z"/>
|
||||
<path class="st6" d="M838,361.2h50.8c0,12,0,20.2,0,32.2c-28.8,0-58.4,0-86.8,0v-140c12,0,23.8,0,36,0
|
||||
C838,325.8,838,301.6,838,361.2z"/>
|
||||
<path class="st6" d="M1030,393.4c-12.2,0-24.4,0-36.6,0v-56.2h-43.2v56.2c-12.2,0-24.6,0-36.6,0v-140c12,0,24.4,0,36.6,0v50.8h43.2
|
||||
v-50.8c12.2,0,24.4,0,36.6,0V393.4z"/>
|
||||
<path class="st6" d="M1146.6,375.8h-55.2l-8.2,17.6h-35v-5.2l63-136.6h15.4l63.2,136.6v5.2h-35L1146.6,375.8z M1072.8,228.8
|
||||
c0-11.4,8.8-18.4,19.8-18.4s20,7,20,18.4c0,11-9,18.2-20,18.2S1072.8,239.8,1072.8,228.8z M1118.8,308.2l-15.6,36.8h31.6
|
||||
L1118.8,308.2z M1125.8,228.8c0-11.4,8.8-18.4,19.8-18.4c11.2,0,19.8,7,19.8,18.4c0,11-8.6,18.2-19.8,18.2
|
||||
C1134.6,247,1125.8,239.8,1125.8,228.8z"/>
|
||||
<path class="st6" d="M1244.6,348v45.4c-12,0-24.2,0-36.4,0v-140c28.6,0,58.6,0,87.2,0c0,11.8,0,20,0,32h-50.8V316h45
|
||||
c0,12,0,19.6,0,32H1244.6z"/>
|
||||
<path class="st6" d="M1375.2,332.8h1l32-79.4h34.4v5.4L1383.2,395H1368l-60-136.2v-5.4h34.4L1375.2,332.8z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st7" d="M622.8,323c0,58.4-52.4,81.6-93.6,69.4l-8.4,13.8c-11.4,0-22.6,0-34.2,0v-4l15.2-24.8
|
||||
c-13.4-12-22.4-30.2-22.4-54.4c0-59.6,54.2-82.6,96-69l8.2-13.4h34v3.8L602,270C614.6,282.2,622.8,299.8,622.8,323z M586.2,323
|
||||
c0-50.6-69.8-50.6-69.8,0C516.4,373.4,586.2,373.4,586.2,323z"/>
|
||||
<path class="st7" d="M766.4,393.4c-12.2,0-24.4,0-36.6,0v-56.2h-43.2v56.2c-12.2,0-24.6,0-36.6,0v-140c12,0,24.4,0,36.6,0v50.8
|
||||
h43.2v-50.8c12.2,0,24.4,0,36.6,0V393.4z"/>
|
||||
<path class="st7" d="M838,361.2h50.8c0,12,0,20.2,0,32.2c-28.8,0-58.4,0-86.8,0v-140c12,0,23.8,0,36,0
|
||||
C838,325.8,838,301.6,838,361.2z"/>
|
||||
<path class="st7" d="M1030,393.4c-12.2,0-24.4,0-36.6,0v-56.2h-43.2v56.2c-12.2,0-24.6,0-36.6,0v-140c12,0,24.4,0,36.6,0v50.8h43.2
|
||||
v-50.8c12.2,0,24.4,0,36.6,0V393.4z"/>
|
||||
<path class="st7" d="M1146.6,375.8h-55.2l-8.2,17.6h-35v-5.2l63-136.6h15.4l63.2,136.6v5.2h-35L1146.6,375.8z M1072.8,228.8
|
||||
c0-11.4,8.8-18.4,19.8-18.4s20,7,20,18.4c0,11-9,18.2-20,18.2S1072.8,239.8,1072.8,228.8z M1118.8,308.2l-15.6,36.8h31.6
|
||||
L1118.8,308.2z M1125.8,228.8c0-11.4,8.8-18.4,19.8-18.4c11.2,0,19.8,7,19.8,18.4c0,11-8.6,18.2-19.8,18.2
|
||||
C1134.6,247,1125.8,239.8,1125.8,228.8z"/>
|
||||
<path class="st7" d="M1244.6,348v45.4c-12,0-24.2,0-36.4,0v-140c28.6,0,58.6,0,87.2,0c0,11.8,0,20,0,32h-50.8V316h45
|
||||
c0,12,0,19.6,0,32H1244.6z"/>
|
||||
<path class="st7" d="M1375.2,332.8h1l32-79.4h34.4v5.4L1383.2,395H1368l-60-136.2v-5.4h34.4L1375.2,332.8z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st8" d="M718.6,711.2c-33,0-54-23-54-51.5c0-28.5,21.1-51.5,54.1-51.4c33,0.1,54.2,23,54.2,51.5
|
||||
C772.9,688.3,751.7,711.2,718.6,711.2L718.6,711.2z M759.2,659.7c0-21.4-15.9-38.4-40.5-38.4c-24.5,0-40.7,17-40.7,38.3
|
||||
c0,21.4,16.1,38.4,40.7,38.4C743.3,698,759.2,681.1,759.2,659.7z M690.4,659.6c0-14.2,9.7-24.4,23.2-24.4c6.5,0,12.6,2.7,16.7,7.8
|
||||
l-0.1-7.2h13.3v47.4h-13.3l0.1-7.2c-4.1,5.1-10.1,7.9-16.7,7.9C700.1,683.9,690.4,673.8,690.4,659.6z M730,659.3
|
||||
c0-6.9-5.4-12-12.6-12c-7.4,0-12.6,4.9-12.6,12c0,7.2,5.2,12.3,12.6,12.3C724.7,671.6,730,666.5,730,659.3z"/>
|
||||
<path class="st8" d="M830.6,640.5c-5.5-5.7-10.3-7.9-15.7-8c-6.5,0-10.8,3.4-10.8,8.6c0,4.8,3.1,7.8,9.9,9.7l8.3,2.3
|
||||
c14,3.7,21.6,11.9,21.6,24.3c0,14.6-12.7,24.9-29.3,24.9c-12.7,0-23.4-5.3-31.1-14.5l13.3-9.7c4.9,5.4,11.5,8.7,18,8.6
|
||||
c6.6,0,10.7-3.6,11-8.8c0.2-5.1-3-7.8-10.5-10l-7.3-2.1c-14.3-4.2-22-12.3-22-24.8c0-13.9,11.9-24.3,27.8-24.4
|
||||
c12.4,0,21.9,4.9,29.9,15.1L830.6,640.5L830.6,640.5z"/>
|
||||
<path class="st8" d="M942.1,664.7c0-10.7-3.7-15-11.5-15c-7.6,0-12.7,5.1-12.7,13.3v38.2h-17.7v-38.1c0-8.8-3.8-13.4-11.4-13.4
|
||||
c-7.7,0-12.6,5-12.6,14.1v37.4h-17.6v-65.6h17.6l-0.1,7.9c3.7-5.9,9.3-9,17.4-9c8.7,0,15.2,4.2,18.3,11.4
|
||||
c4.1-6.8,11.9-11.4,22.2-11.4c15.9,0,25.6,11,25.6,30.1v36.7h-17.6V664.7z"/>
|
||||
<path class="st8" d="M1011.2,702c-22.9,0-37-15.3-37-33.7c0-18.2,14.2-33.8,37.1-33.8c22.8,0,36.9,15.6,36.9,33.8
|
||||
C1048.1,686.8,1034,702,1011.2,702z M997.6,628.7c-5.2,0-9.5-4.3-9.5-9.4c0-5.2,4.3-9.2,9.5-9.2c5.3,0,9.6,4.1,9.6,9.2
|
||||
C1007.3,624.5,1002.9,628.7,997.6,628.7z M1011.3,649.5c-11.8,0-19.1,8.5-19.1,18.6c0,10.4,7.3,18.8,19,18.8
|
||||
c11.9,0,19.1-8.4,19.1-18.8C1030.3,658.5,1023.2,649.5,1011.3,649.5z M1025,628.7c-5.3,0-9.6-4.3-9.6-9.4c0-5.2,4.3-9.2,9.6-9.2
|
||||
c5.3,0,9.4,4.1,9.4,9.2C1034.4,624.5,1030.2,628.7,1025,628.7z"/>
|
||||
<path class="st8" d="M1081.2,673.2l-0.1,27.9h-17.6v-88.7h17.8l-0.1,49.7l31.7-28.3l13.9,10.7l-25,20.5c-1,0.8-2,1.6-3.2,2.3
|
||||
c1.2,0.6,2.3,1.4,3.1,2.2l25.9,22.6l-14.3,10.8L1081.2,673.2z"/>
|
||||
<path class="st8" d="M1156.2,673.2l-0.1,27.9h-17.6v-88.7h17.8l-0.1,49.7l31.7-28.3l13.9,10.7l-25,20.5c-1,0.8-2,1.6-3.2,2.3
|
||||
c1.2,0.6,2.3,1.4,3.1,2.2l25.9,22.6l-14.3,10.8L1156.2,673.2z"/>
|
||||
<path class="st8" d="M1211.4,615.1c0-5.6,4.9-9.4,11-9.4c6,0,10.9,3.8,10.9,9.4c0,5.6-4.9,9.3-10.9,9.3
|
||||
C1216.3,624.4,1211.4,620.7,1211.4,615.1z M1213.8,635.6h17.6v65.5h-17.6V635.6z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st9" d="M718.6,711.2c-33,0-54-23-54-51.5c0-28.5,21.1-51.5,54.1-51.4c33,0.1,54.2,23,54.2,51.5
|
||||
C772.9,688.3,751.7,711.2,718.6,711.2L718.6,711.2z M759.2,659.7c0-21.4-15.9-38.4-40.5-38.4c-24.5,0-40.7,17-40.7,38.3
|
||||
c0,21.4,16.1,38.4,40.7,38.4C743.3,698,759.2,681.1,759.2,659.7z M690.4,659.6c0-14.2,9.7-24.4,23.2-24.4c6.5,0,12.6,2.7,16.7,7.8
|
||||
l-0.1-7.2h13.3v47.4h-13.3l0.1-7.2c-4.1,5.1-10.1,7.9-16.7,7.9C700.1,683.9,690.4,673.8,690.4,659.6z M730,659.3
|
||||
c0-6.9-5.4-12-12.6-12c-7.4,0-12.6,4.9-12.6,12c0,7.2,5.2,12.3,12.6,12.3C724.7,671.6,730,666.5,730,659.3z"/>
|
||||
<path class="st9" d="M830.6,640.5c-5.5-5.7-10.3-7.9-15.7-8c-6.5,0-10.8,3.4-10.8,8.6c0,4.8,3.1,7.8,9.9,9.7l8.3,2.3
|
||||
c14,3.7,21.6,11.9,21.6,24.3c0,14.6-12.7,24.9-29.3,24.9c-12.7,0-23.4-5.3-31.1-14.5l13.3-9.7c4.9,5.4,11.5,8.7,18,8.6
|
||||
c6.6,0,10.7-3.6,11-8.8c0.2-5.1-3-7.8-10.5-10l-7.3-2.1c-14.3-4.2-22-12.3-22-24.8c0-13.9,11.9-24.3,27.8-24.4
|
||||
c12.4,0,21.9,4.9,29.9,15.1L830.6,640.5L830.6,640.5z"/>
|
||||
<path class="st9" d="M942.1,664.7c0-10.7-3.7-15-11.5-15c-7.6,0-12.7,5.1-12.7,13.3v38.2h-17.7v-38.1c0-8.8-3.8-13.4-11.4-13.4
|
||||
c-7.7,0-12.6,5-12.6,14.1v37.4h-17.6v-65.6h17.6l-0.1,7.9c3.7-5.9,9.3-9,17.4-9c8.7,0,15.2,4.2,18.3,11.4
|
||||
c4.1-6.8,11.9-11.4,22.2-11.4c15.9,0,25.6,11,25.6,30.1v36.7h-17.6V664.7z"/>
|
||||
<path class="st9" d="M1011.2,702c-22.9,0-37-15.3-37-33.7c0-18.2,14.2-33.8,37.1-33.8c22.8,0,36.9,15.6,36.9,33.8
|
||||
C1048.1,686.8,1034,702,1011.2,702z M997.6,628.7c-5.2,0-9.5-4.3-9.5-9.4c0-5.2,4.3-9.2,9.5-9.2c5.3,0,9.6,4.1,9.6,9.2
|
||||
C1007.3,624.5,1002.9,628.7,997.6,628.7z M1011.3,649.5c-11.8,0-19.1,8.5-19.1,18.6c0,10.4,7.3,18.8,19,18.8
|
||||
c11.9,0,19.1-8.4,19.1-18.8C1030.3,658.5,1023.2,649.5,1011.3,649.5z M1025,628.7c-5.3,0-9.6-4.3-9.6-9.4c0-5.2,4.3-9.2,9.6-9.2
|
||||
c5.3,0,9.4,4.1,9.4,9.2C1034.4,624.5,1030.2,628.7,1025,628.7z"/>
|
||||
<path class="st9" d="M1081.2,673.2l-0.1,27.9h-17.6v-88.7h17.8l-0.1,49.7l31.7-28.3l13.9,10.7l-25,20.5c-1,0.8-2,1.6-3.2,2.3
|
||||
c1.2,0.6,2.3,1.4,3.1,2.2l25.9,22.6l-14.3,10.8L1081.2,673.2z"/>
|
||||
<path class="st9" d="M1156.2,673.2l-0.1,27.9h-17.6v-88.7h17.8l-0.1,49.7l31.7-28.3l13.9,10.7l-25,20.5c-1,0.8-2,1.6-3.2,2.3
|
||||
c1.2,0.6,2.3,1.4,3.1,2.2l25.9,22.6l-14.3,10.8L1156.2,673.2z"/>
|
||||
<path class="st9" d="M1211.4,615.1c0-5.6,4.9-9.4,11-9.4c6,0,10.9,3.8,10.9,9.4c0,5.6-4.9,9.3-10.9,9.3
|
||||
C1216.3,624.4,1211.4,620.7,1211.4,615.1z M1213.8,635.6h17.6v65.5h-17.6V635.6z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st0" d="M635.2,480.9v-21.7h40.3v83.1h15.9v21.9h-57.6v-21.9h15.6v-61.3H635.2z"/>
|
||||
<path class="st0" d="M772.2,564.1c-8.2,0-16.6,0-24.9,0v-19.9h-45.7v-11.7l41.8-73.3h28.8v63.1h9c0,7.3,0,14.8,0,21.9h-9V564.1z
|
||||
M731.5,522.3h16.8v-15.7l2-16H750L731.5,522.3z"/>
|
||||
<path class="st0" d="M790.8,551.4c0-8.4,6.6-14,15-14c8.1,0,14.7,5.5,14.7,14c0,8.2-6.6,13.6-14.7,13.6
|
||||
C797.4,565,790.8,559.6,790.8,551.4z"/>
|
||||
<path class="st0" d="M866.7,481.5c-6,0-10.3,2.8-10.3,10.2c-8.8,0-14.1,0-22.8,0c-0.3-22.6,15-33.7,33.6-34.2
|
||||
c30.1-0.8,43.3,29.1,27.7,53.2l-21.1,29.4h31.2c0,9.1,0,14.8,0,24h-73.8v-4l39.4-57.7C875.8,495.3,879.9,481.5,866.7,481.5z"/>
|
||||
<path class="st0" d="M915.6,551.4c0-8.4,6.6-14,15-14c8.1,0,14.7,5.5,14.7,14c0,8.2-6.6,13.6-14.7,13.6
|
||||
C922.2,565,915.6,559.6,915.6,551.4z"/>
|
||||
<path class="st0" d="M991.5,481.5c-6,0-10.3,2.8-10.3,10.2c-8.8,0-14.1,0-22.8,0c-0.3-22.6,15-33.7,33.6-34.2
|
||||
c30.1-0.8,43.3,29.1,27.7,53.2l-21.1,29.4h31.2c0,9.1,0,14.8,0,24h-73.8v-4l39.4-57.7C1000.6,495.3,1004.7,481.5,991.5,481.5z"/>
|
||||
<path class="st0" d="M1124.5,493.3c0,11.7,0,25,0,36.7c0,22.9-17.7,36.1-39.4,36.1c-21.3,0-39.1-13.2-39.1-36.1c0-11.7,0-25,0-36.7
|
||||
c0-22.9,17.8-36.1,39.1-36.1C1106.8,457.2,1124.5,470.4,1124.5,493.3z M1099.1,529.5c0-11.2,0-24.3,0-35.7
|
||||
c0-8.2-6.1-12.6-14.1-12.6c-7.7,0-13.6,4.3-13.6,12.6c0,11.4,0,24.4,0,35.7c0,8.5,6,12.9,13.6,12.9
|
||||
C1093,542.4,1099.1,538,1099.1,529.5z"/>
|
||||
<path class="st0" d="M1141,480.9v-21.7h40.3v83.1h15.9v21.9h-57.6v-21.9h15.6v-61.3H1141z"/>
|
||||
<path class="st0" d="M1216.6,565.2l22.3-37.9c-22.2,1.6-36.6-13.6-36.6-33.6c0-24.7,16.8-36,39.9-36c22.9,0,40.3,11.2,40.3,36
|
||||
c0,7.2-1.3,14.5-5.5,20.7l-30.6,50.8H1216.6z M1229,493.6c0,7.6,5.2,13.2,13.2,13.2c8.7,0,13.2-5.1,13.2-13.2c0-7.3-5-13-13.2-13
|
||||
C1234.3,480.6,1229,486.3,1229,493.6z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st10" d="M635.2,480.9v-21.7h40.3v83.1h15.9v21.9h-57.6v-21.9h15.6v-61.3H635.2z"/>
|
||||
<path class="st10" d="M772.2,564.1c-8.2,0-16.6,0-24.9,0v-19.9h-45.7v-11.7l41.8-73.3h28.8v63.1h9c0,7.3,0,14.8,0,21.9h-9V564.1z
|
||||
M731.5,522.3h16.8v-15.7l2-16H750L731.5,522.3z"/>
|
||||
<path class="st10" d="M790.8,551.4c0-8.4,6.6-14,15-14c8.1,0,14.7,5.5,14.7,14c0,8.2-6.6,13.6-14.7,13.6
|
||||
C797.4,565,790.8,559.6,790.8,551.4z"/>
|
||||
<path class="st10" d="M866.7,481.5c-6,0-10.3,2.8-10.3,10.2c-8.8,0-14.1,0-22.8,0c-0.3-22.6,15-33.7,33.6-34.2
|
||||
c30.1-0.8,43.3,29.1,27.7,53.2l-21.1,29.4h31.2c0,9.1,0,14.8,0,24h-73.8v-4l39.4-57.7C875.8,495.3,879.9,481.5,866.7,481.5z"/>
|
||||
<path class="st10" d="M915.6,551.4c0-8.4,6.6-14,15-14c8.1,0,14.7,5.5,14.7,14c0,8.2-6.6,13.6-14.7,13.6
|
||||
C922.2,565,915.6,559.6,915.6,551.4z"/>
|
||||
<path class="st10" d="M991.5,481.5c-6,0-10.3,2.8-10.3,10.2c-8.8,0-14.1,0-22.8,0c-0.3-22.6,15-33.7,33.6-34.2
|
||||
c30.1-0.8,43.3,29.1,27.7,53.2l-21.1,29.4h31.2c0,9.1,0,14.8,0,24h-73.8v-4l39.4-57.7C1000.6,495.3,1004.7,481.5,991.5,481.5z"/>
|
||||
<path class="st10" d="M1124.5,493.3c0,11.7,0,25,0,36.7c0,22.9-17.7,36.1-39.4,36.1c-21.3,0-39.1-13.2-39.1-36.1
|
||||
c0-11.7,0-25,0-36.7c0-22.9,17.8-36.1,39.1-36.1C1106.8,457.2,1124.5,470.4,1124.5,493.3z M1099.1,529.5c0-11.2,0-24.3,0-35.7
|
||||
c0-8.2-6.1-12.6-14.1-12.6c-7.7,0-13.6,4.3-13.6,12.6c0,11.4,0,24.4,0,35.7c0,8.5,6,12.9,13.6,12.9
|
||||
C1093,542.4,1099.1,538,1099.1,529.5z"/>
|
||||
<path class="st10" d="M1141,480.9v-21.7h40.3v83.1h15.9v21.9h-57.6v-21.9h15.6v-61.3H1141z"/>
|
||||
<path class="st10" d="M1216.6,565.2l22.3-37.9c-22.2,1.6-36.6-13.6-36.6-33.6c0-24.7,16.8-36,39.9-36c22.9,0,40.3,11.2,40.3,36
|
||||
c0,7.2-1.3,14.5-5.5,20.7l-30.6,50.8H1216.6z M1229,493.6c0,7.6,5.2,13.2,13.2,13.2c8.7,0,13.2-5.1,13.2-13.2c0-7.3-5-13-13.2-13
|
||||
C1234.3,480.6,1229,486.3,1229,493.6z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g class="st5">
|
||||
<path class="st8" d="M767,107.7h-19.7c0-17.6,10.8-26.3,26.2-26.3c15.4,0,26.2,9.6,26.2,23.4c0,7.5-2.9,14.1-10.1,23l-9.2,11.4
|
||||
h19.9v18.4h-56l29.8-39.7c4.3-5.7,6-8.5,6-11.5c0-4.1-2.4-6.4-6.6-6.4C769.4,99.8,767,102.4,767,107.7z"/>
|
||||
<path class="st8" d="M835.6,158.8c-11.2,0-21.4-6.3-27-16.3l14.8-10c3.7,5.3,7.6,8,11.7,8c5,0,7.9-2.8,7.9-7.7c0-5.4-3.9-8-11.9-8
|
||||
h-17.3V82.6h44.7v18.1h-25.2v7.5h2.8c17,0,27.3,9.2,27.3,24.5C863.3,148.4,852.3,158.8,835.6,158.8z"/>
|
||||
<path class="st8" d="M902,127.9c0-17.8,11.8-30.4,28.4-30.4c7.6,0,14.7,3.2,19.7,8.7l-0.2-7.8h19.3v59.2h-19.3l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C913.9,158.3,902,145.7,902,127.9z M921.5,78.5c0-7.4,6-13.7,15-13.7c9.2,0,14.5,6.3,14.5,13.7
|
||||
c0,7.6-5.3,13.6-14.5,13.6C927.4,92.1,921.5,86.1,921.5,78.5z M951,127.4c0-7.8-6.2-13.6-14.5-13.6c-8.5,0-14.5,5.5-14.5,13.6
|
||||
c0,8.4,6,14.3,14.5,14.3C944.9,141.7,951,135.7,951,127.4z M940.8,78.6c0-2.6-1.6-4.6-4.4-4.6s-4.6,2-4.6,4.6
|
||||
c0,2.3,1.8,4.2,4.6,4.2S940.8,81,940.8,78.6z"/>
|
||||
<path class="st8" d="M1005.8,131.4v26.1h-19.3v-59h19.3l-0.5,8c3.4-6.2,10-10.1,20.2-8.8v17.6
|
||||
C1010.8,113.8,1005.8,121.4,1005.8,131.4z"/>
|
||||
<path class="st8" d="M1063.7,79c0-6,5.3-10.1,11.8-10.1c6.4,0,11.7,4.1,11.7,10.1c0,6-5.3,9.9-11.7,9.9
|
||||
C1069,88.9,1063.7,84.9,1063.7,79z M1066.1,98.5h19.3v59h-19.3V98.5z"/>
|
||||
<path class="st8" d="M1152.9,157.5h-20V82.6h45.9v18.1h-25.9v10.4h24.8v17.6h-24.8V157.5z"/>
|
||||
<path class="st8" d="M1191.7,79c0-6,5.3-10.1,11.8-10.1c6.4,0,11.7,4.1,11.7,10.1c0,6-5.3,9.9-11.7,9.9
|
||||
C1197,88.9,1191.7,84.9,1191.7,79z M1194.1,98.5h19.3v59h-19.3V98.5z"/>
|
||||
<path class="st8" d="M1272.3,128.2c0-9.6-2.9-14-10.4-14c-8.4,0-12.3,4.6-12.3,13.2v30.1h-19.3V98.4h19.3v6.4c3.7-4.3,10-7,17-7
|
||||
c17.3,0,25.6,10.1,25.6,29.8v29.8h-19.9L1272.3,128.2z"/>
|
||||
<path class="st8" d="M1308.8,77.7h19l0.4,79.8h-19.3V77.7z"/>
|
||||
<path class="st8" d="M1341.8,127.9c0-17.8,11.8-30.4,28.4-30.4c7.6,0,14.7,3.2,19.7,8.7l-0.2-7.8h19.3v59.2h-19.3l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C1353.7,158.3,1341.8,145.7,1341.8,127.9z M1390.7,127.4c0-7.8-6.2-13.6-14.5-13.6
|
||||
c-8.5,0-14.5,5.5-14.5,13.6c0,8.4,6,14.3,14.5,14.3C1384.7,141.7,1390.7,135.7,1390.7,127.4z"/>
|
||||
<path class="st8" d="M1468.3,128.2c0-9.6-2.9-14-10.4-14c-8.4,0-12.3,4.6-12.3,13.2v30.1h-19.3V98.4h19.3v6.4c3.7-4.3,10-7,17-7
|
||||
c17.3,0,25.6,10.1,25.6,29.8v29.8h-19.9L1468.3,128.2z"/>
|
||||
<path class="st8" d="M1501.2,128c0-17.8,11.8-30.4,28.4-30.4c7.8,0,14.9,3,19.4,8.4V77.7h19.3v79.9H1549l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C1513,158.4,1501.2,145.8,1501.2,128z M1550.1,127.5c0-7.8-6.2-13.6-14.5-13.6
|
||||
c-8.5,0-14.5,5.5-14.5,13.6c0,8.4,6,14.3,14.5,14.3C1544,141.8,1550.1,135.8,1550.1,127.5z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<path class="st11" d="M767,107.7h-19.7c0-17.6,10.8-26.3,26.2-26.3c15.4,0,26.2,9.6,26.2,23.4c0,7.5-2.9,14.1-10.1,23l-9.2,11.4
|
||||
h19.9v18.4h-56l29.8-39.7c4.3-5.7,6-8.5,6-11.5c0-4.1-2.4-6.4-6.6-6.4C769.4,99.8,767,102.4,767,107.7z"/>
|
||||
<path class="st11" d="M835.6,158.8c-11.2,0-21.4-6.3-27-16.3l14.8-10c3.7,5.3,7.6,8,11.7,8c5,0,7.9-2.8,7.9-7.7
|
||||
c0-5.4-3.9-8-11.9-8h-17.3V82.6h44.7v18.1h-25.2v7.5h2.8c17,0,27.3,9.2,27.3,24.5C863.3,148.4,852.3,158.8,835.6,158.8z"/>
|
||||
<path class="st11" d="M902,127.9c0-17.8,11.8-30.4,28.4-30.4c7.6,0,14.7,3.2,19.7,8.7l-0.2-7.8h19.3v59.2h-19.3l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C913.9,158.3,902,145.7,902,127.9z M921.5,78.5c0-7.4,6-13.7,15-13.7c9.2,0,14.5,6.3,14.5,13.7
|
||||
c0,7.6-5.3,13.6-14.5,13.6C927.4,92.1,921.5,86.1,921.5,78.5z M951,127.4c0-7.8-6.2-13.6-14.5-13.6c-8.5,0-14.5,5.5-14.5,13.6
|
||||
c0,8.4,6,14.3,14.5,14.3C944.9,141.7,951,135.7,951,127.4z M940.8,78.6c0-2.6-1.6-4.6-4.4-4.6s-4.6,2-4.6,4.6
|
||||
c0,2.3,1.8,4.2,4.6,4.2S940.8,81,940.8,78.6z"/>
|
||||
<path class="st11" d="M1005.8,131.4v26.1h-19.3v-59h19.3l-0.5,8c3.4-6.2,10-10.1,20.2-8.8v17.6
|
||||
C1010.8,113.8,1005.8,121.4,1005.8,131.4z"/>
|
||||
<path class="st11" d="M1063.7,79c0-6,5.3-10.1,11.8-10.1c6.4,0,11.7,4.1,11.7,10.1c0,6-5.3,9.9-11.7,9.9
|
||||
C1069,88.9,1063.7,84.9,1063.7,79z M1066.1,98.5h19.3v59h-19.3V98.5z"/>
|
||||
<path class="st11" d="M1152.9,157.5h-20V82.6h45.9v18.1h-25.9v10.4h24.8v17.6h-24.8V157.5z"/>
|
||||
<path class="st11" d="M1191.7,79c0-6,5.3-10.1,11.8-10.1c6.4,0,11.7,4.1,11.7,10.1c0,6-5.3,9.9-11.7,9.9
|
||||
C1197,88.9,1191.7,84.9,1191.7,79z M1194.1,98.5h19.3v59h-19.3V98.5z"/>
|
||||
<path class="st11" d="M1272.3,128.2c0-9.6-2.9-14-10.4-14c-8.4,0-12.3,4.6-12.3,13.2v30.1h-19.3V98.4h19.3v6.4c3.7-4.3,10-7,17-7
|
||||
c17.3,0,25.6,10.1,25.6,29.8v29.8h-19.9L1272.3,128.2z"/>
|
||||
<path class="st11" d="M1308.8,77.7h19l0.4,79.8h-19.3V77.7z"/>
|
||||
<path class="st11" d="M1341.8,127.9c0-17.8,11.8-30.4,28.4-30.4c7.6,0,14.7,3.2,19.7,8.7l-0.2-7.8h19.3v59.2h-19.3l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C1353.7,158.3,1341.8,145.7,1341.8,127.9z M1390.7,127.4c0-7.8-6.2-13.6-14.5-13.6
|
||||
c-8.5,0-14.5,5.5-14.5,13.6c0,8.4,6,14.3,14.5,14.3C1384.7,141.7,1390.7,135.7,1390.7,127.4z"/>
|
||||
<path class="st11" d="M1468.3,128.2c0-9.6-2.9-14-10.4-14c-8.4,0-12.3,4.6-12.3,13.2v30.1h-19.3V98.4h19.3v6.4c3.7-4.3,10-7,17-7
|
||||
c17.3,0,25.6,10.1,25.6,29.8v29.8h-19.9L1468.3,128.2z"/>
|
||||
<path class="st11" d="M1501.2,128c0-17.8,11.8-30.4,28.4-30.4c7.8,0,14.9,3,19.4,8.4V77.7h19.3v79.9H1549l0.2-7.8
|
||||
c-4.9,5.5-12.1,8.7-19.7,8.7C1513,158.4,1501.2,145.8,1501.2,128z M1550.1,127.5c0-7.8-6.2-13.6-14.5-13.6
|
||||
c-8.5,0-14.5,5.5-14.5,13.6c0,8.4,6,14.3,14.5,14.3C1544,141.8,1550.1,135.8,1550.1,127.5z"/>
|
||||
</g>
|
||||
<g id="_x30_vn8iT_1_">
|
||||
<g>
|
||||
<path class="st12" d="M413.1,150.5c0.9-3,1.9-5.7,2.6-8.5c6.6-24.4,13.9-48.5,20.2-72.9c0.7-2.7,1.4-5.4,2.1-8.1
|
||||
c0.1-0.5,0.4-0.8,0.8-1c2-1.1,4.1-0.8,6.2-0.4c6.8,1.2,13.4,2.8,19.8,5.3c1.1,0.4,2.3,0.9,3.2,1.7c1.1,0.9,1.7,2,1.5,3.5
|
||||
c-1,5.9-1.6,11.9-2,17.9c0,0.2,0,0.3,0,0.4c0.3,0.1,0.4-0.1,0.6-0.2c9.7-7.7,19.3-15.3,29-23c0.5-0.4,0.8-0.4,1.4-0.3
|
||||
c1.9,0.6,3.3,1.8,4.5,3.2c3.8,4.7,6.5,9.9,9,15.3c1.2,2.7,2.4,5.4,2.8,8.3c0.1,0.7-0.1,1.1-0.6,1.5
|
||||
c-10.4,9.2-20.8,18.3-30.3,28.5c-0.7,0.7-0.7,1.2-0.2,2c3.6,6.1,7.4,12.1,11.3,18c0.1,0.1,0.2,0.2,0.3,0.4
|
||||
c0.4-0.1,0.4-0.5,0.6-0.7c15.2-27.4,30.4-54.7,45.6-82.1c0.4-0.7,0.8-1,1.7-1c5.1,0.2,10.2,0.9,15.3,1.7c6.6,1,13.2,2.2,19.7,3.7
|
||||
c1.2,0.3,1.7,0.8,2.1,1.9c5.5,17.1,10.1,34.4,14.4,51.8c0.6,2.6,1.3,5.1,1.9,7.6c0,0.2,0.1,0.4,0.3,0.8c1-3.8,1.9-7.4,2.9-11
|
||||
c3.4-12.4,6.3-24.9,8.6-37.5c1.8-9.8,3.5-19.5,5.1-29.3c0.1-0.5,0.3-0.7,0.7-1c2.7-1.4,5.4-1,8.2-0.3c7.4,1.9,14.2,5,20.7,9.1
|
||||
c3.3,2.1,3.2,2.2,3,6.1c-0.3,5.5-0.5,11-0.7,16.5c0.5-0.2,0.8-0.5,1.1-0.8c4.8-4.5,9.3-9.3,13.8-14.1c4.2-4.6,8.5-9.1,13-13.4
|
||||
c0.9-0.8,1.9-1.5,2.8-2.3c0.4-0.3,0.7-0.3,1.1,0c3,2,5.2,4.7,7.3,7.5c4,5.3,7.2,11.1,8.8,17.7c0.4,1.5,0.6,2.9,0.8,4.4
|
||||
c0.1,0.5-0.1,0.7-0.4,0.9c-10,9-19.1,18.8-27.6,29.2c-0.9,1-1.6,2.2-2.5,3.2c-0.4,0.5-0.4,0.9-0.1,1.4c2.1,4.3,4.6,8.4,7.2,12.4
|
||||
c6,9.4,12,18.7,18.5,27.8c0.3,0.4,0.3,0.8,0.1,1.2c-1.4,2.6-3.3,4.8-5.3,6.9c-4.5,4.7-9.5,8.9-14.8,12.7
|
||||
c-1.9,1.3-3.9,2.5-6.1,3.3c-0.7,0.2-1,0.2-1.4-0.4c-4.8-6.6-9.6-13.2-14.6-19.7c-3.5-4.6-7.1-9.1-11-13.3
|
||||
c-0.2-0.2-0.4-0.5-0.6-0.8c-1.2,2.5-2.1,4.9-2.9,7.2c-3,8.9-5.6,17.9-7.4,27.2c-0.1,0.6-0.2,0.8-0.9,0.6
|
||||
c-7.2-2.5-14.2-5.2-20.8-8.8c-0.6-0.3-0.9-0.1-1.3,0.2c-6.5,4.2-13.2,8.2-20.3,11.5c-3.3,1.6-6.7,2.9-10.3,3.6
|
||||
c-0.6,0.1-0.9,0-1.1-0.6c-2.9-7.5-6.4-14.8-10.2-21.9c-0.3-0.6-0.6-0.9-1.3-0.9c-5.6,0-11.2-0.4-16.8-0.2c-1.8,0-3.5,0.2-5.2,0.2
|
||||
c-0.7,0-1,0.3-1.4,0.9c-3.9,6.5-7.8,12.9-11.7,19.4c-0.4,0.7-0.8,0.8-1.5,0.6c-6.9-1.4-13.8-2.8-20.7-4.2
|
||||
c-0.6-0.1-0.9,0.1-1.2,0.4c-4.4,4.1-8.9,8-13.8,11.4c-2.3,1.6-4.7,3-7.1,4.3c-0.6,0.3-0.8,0.1-1-0.4c-6.9-12-14.9-23.2-23.3-34.1
|
||||
c-0.1-0.2-0.3-0.4-0.5-0.6c-1.5,3.4-2.8,6.7-4.1,10.1c-2.6,6.9-5.1,13.9-6.7,21.2c-0.1,0.5-0.2,0.7-0.8,0.5
|
||||
c-8.2-3.1-16.5-5.8-24.6-9c-0.7-0.3-0.8,0-0.8,0.5c-0.1,1.3-0.6,2.5-1.2,3.6c-0.4,0.7-0.9,1-1.7,1.1c-9.1,0.9-18.2,1.9-27.4,2.8
|
||||
c-8.3,0.8-16.6,1.7-24.8,2.5c-1.5,0.1-3,0.3-4.5,0.5c-0.6,0.1-0.8-0.1-1-0.6c-1.7-4.7-2.5-9.5-3.4-14.4
|
||||
c-1.4-7.9-2.4-15.9-3.3-23.9c-1-8.3-1.8-16.6-2.5-24.8c-0.9-9.5-1.6-19-2-28.6c-0.2-6.7-0.5-13.3,0.3-20c0.2-1.6,0.5-3.2,1.2-4.7
|
||||
c0.2-0.4,0.5-0.7,1-0.8c10.8-2.8,21.7-5.4,32.8-7c9.1-1.3,18.2-2.1,27.4-2.7c0.8-0.1,1.1,0.1,1.3,0.9c1.5,4.9,1.3,9.9,1.2,14.9
|
||||
c-0.2,4.9-0.5,9.9-1.2,14.8c-0.2,1.2-0.6,2.3-1,3.4c-0.2,0.5-0.5,0.5-1,0.6c-5.9,0.8-11.8,1.6-17.7,2.4c-0.6,0.1-0.9,0.2-0.8,0.9
|
||||
c0.1,0.9-0.3,2.2,0.3,2.8c0.5,0.5,1.8,0.2,2.7,0.2c3.7,0.1,7.4,0.2,11.1,0.3c2,0.1,3.2,0.9,4,2.8c0.7,1.9,0.9,3.8,1,5.8
|
||||
c0.5,6.7,0.6,13.4,0.2,20.2c-0.1,1.1-0.2,2.3-0.6,3.4c-0.5,1.4-1.4,2.3-2.8,2.6c-5,1.1-9.9,2.3-14.9,3.5c-0.6,0.1-0.8,0.4-0.7,1
|
||||
c0.1,1.1,0.2,2.3,0.3,3.5c0,0.4,0.1,0.6,0.7,0.6c6.9-0.7,13.8-1.4,20.6-2.1c0.6-0.1,1,0,1.2,0.7
|
||||
C412.3,148.6,412.7,149.4,413.1,150.5z"/>
|
||||
<path class="st13" d="M507,171.1c1.3-1.3,2.5-2.6,3.8-3.9c0.5-0.4,0.5-0.8,0.1-1.3c-3.6-5.3-7.1-10.7-10.6-16
|
||||
c-0.4-0.6-0.4-1-0.1-1.6c7.1-12.8,14.2-25.5,21.3-38.3c5.5-9.9,11-19.8,16.5-29.7c2.6-4.6,5.1-9.2,7.7-13.9
|
||||
c0.3-0.5,0.6-0.7,1.2-0.6c3.3,0.3,6.7,0.8,10,1.3c5.5,0.8,11,1.8,16.4,2.9c0.7,0.2,1,0.4,1.2,1.1c2.6,8.3,5,16.8,7.4,25.2
|
||||
c2.2,8,4.2,16.1,6.2,24.2c3.3,13.3,6.6,26.7,9.8,40c0.5,2,0.5,2.1-1.3,3.2c-6.5,4.1-13.2,8.1-20.3,11.2c-1.8,0.8-1.8,0.8-2.5-1
|
||||
c-2.9-6.8-6.4-13.2-9.7-19.8c-0.2-0.4-0.5-0.6-0.9-0.5c-0.2,0-0.4,0-0.7,0c-4.7-0.1-9.5-0.1-14.2-0.3c-3.6-0.2-7.2,0-10.9,0.1
|
||||
c-1.7,0.1-3.4,0.3-5.1,0.4c-0.8,0-1.2,0.4-1.5,1c-3.3,5.6-6.7,11.1-10,16.6c-1.3,2.2-1.3,2.3-3.8,1.8c-3.2-0.6-6.3-1.2-9.5-1.9
|
||||
C507.4,171.3,507.2,171.2,507,171.1z"/>
|
||||
<path class="st13" d="M460.5,103.3c2.7-2.1,5.2-4.1,7.7-6.1c7.4-5.8,14.8-11.7,22.1-17.5c2.4-1.9,4.8-3.8,7.2-5.7
|
||||
c0.5-0.4,0.8-0.5,1.2,0.1c3.3,4.9,6.1,10.1,8.3,15.5c0.2,0.4,0.1,0.6-0.2,0.9c-3.9,3.5-7.9,7-11.7,10.5
|
||||
c-5.2,4.8-10.3,9.6-15.1,14.8c-1.5,1.7-3,3.4-4.7,5c-0.7,0.7-0.7,1.2-0.2,2.1c3.5,6.4,7.4,12.6,11.4,18.8
|
||||
c5.1,7.8,10.2,15.5,15.3,23.2c0.4,0.6,0.5,1-0.1,1.6c-6,5.9-12.1,11.7-19,16.5c-1.5,1.1-1.5,1.1-2.5-0.5
|
||||
c-5.7-8.8-11.7-17.4-18-25.7c-2.7-3.5-5.4-6.9-9-9.7c-0.6-0.4-0.7-0.4-1.1,0.2c-2.9,4.4-4.8,9.2-6.7,14
|
||||
c-2.5,6.2-4.8,12.5-6.7,18.9c-0.1,0.4-0.1,0.9-0.9,0.7c-6.6-2.4-13.3-4.5-19.7-7.3c-0.5-0.2-0.7-0.5-0.8-1c-0.2-3-0.5-6-1-9
|
||||
c-0.1-0.4,0.1-0.7,0.2-1.1c4.5-11.6,7.6-23.6,10.9-35.5c2.4-8.6,4.9-17.2,7.3-25.8c3.1-11.1,6.2-22.2,9.1-33.4
|
||||
c0.3-1.3,0.3-1.3,1.6-1c5.5,1.1,10.9,2.4,16.2,4.3c0.6,0.2,0.9,0.4,0.8,1.1c-0.5,3.2-0.9,6.5-1.1,9.8c-0.4,5.1-0.8,10.2-0.7,15.3
|
||||
C460.4,99.1,460.4,101.1,460.5,103.3z"/>
|
||||
<path class="st13" d="M637.5,92.6c1.8-1.1,3.6-2,5.3-3c3.1-1.8,5.7-4.2,8.3-6.6c6.2-5.7,11.8-12,17.5-18.2c2.4-2.5,4.8-5,7.3-7.5
|
||||
c0.4-0.4,0.6-0.5,1,0c4.2,5.2,7.7,10.7,9.4,17.3c0.1,0.6,0,0.9-0.4,1.3c-3.1,2.8-6,5.7-8.9,8.8c-6.7,7-13.3,14.1-19.1,21.8
|
||||
c-0.5,0.7-0.9,1.4-1.5,2.1c-1.1,1.4-1.1,3-0.5,4.6c1,2.6,2.4,5.1,3.8,7.5c6.4,10.8,13.4,21.2,20.4,31.6c0.5,0.7,0.5,1.2-0.1,1.9
|
||||
c-4.6,5-9.7,9.3-15.2,13.3c-0.6,0.4-0.9,0.5-1.4-0.2c-5.7-7.8-11.3-15.5-17.5-22.9c-3.7-4.4-7.6-8.7-11.9-12.6
|
||||
c-0.6-0.6-0.8-0.2-1.1,0.2c-3.6,4.5-5.5,9.8-7.4,15.1c-2.4,6.7-4.3,13.6-6,20.5c-0.2,0.6-0.3,0.7-0.9,0.5
|
||||
c-4.3-1.7-8.5-3.5-12.5-5.7c-0.6-0.3-0.9-0.7-1-1.3c-1.6-6.7-3.2-13.4-4.9-20c-0.1-0.4-0.1-0.8,0-1.2c2.9-11.1,5.9-22.2,8.8-33.2
|
||||
c1.9-7.3,3.5-14.7,4.9-22.1c1.5-8.2,3-16.4,4.5-24.6c0.3-1.8,0.7-3.7,0.9-5.5c0.1-0.6,0.2-0.6,0.8-0.5c3,0.7,5.8,1.8,8.7,3
|
||||
c3.2,1.4,6.3,2.8,9.2,4.6c0.6,0.3,0.8,0.7,0.7,1.4c-0.3,5.5-0.5,11-0.8,16.5C637.9,83.6,637.7,88,637.5,92.6z"/>
|
||||
<path class="st13" d="M352.2,91.1c0-3.3,0.1-6.7,0.4-10c0-0.5,0.2-0.7,0.7-0.8c7.3-1.8,14.7-3.6,22.1-4.9
|
||||
c6.2-1.1,12.4-1.9,18.6-2.5c2.9-0.3,5.8-0.6,8.7-0.8c0.6,0,0.8,0.2,0.8,0.7c0.1,4.3,0.1,8.7-0.3,13c-0.2,1.9-0.3,3.8-0.4,5.7
|
||||
c-0.1,0.8-0.2,1.2-1.2,1.3c-6,0.7-12.1,1.6-18.1,2.4c-1.7,0.2-1.7,0.2-1.7,1.9c0.1,4.8,0.2,9.6,0.3,14.3c0,0.6,0.2,0.8,0.8,0.8
|
||||
c3.1,0,6.3,0.1,9.4,0.2c2.5,0.1,4.9,0.2,7.4,0.2c1,0,1.1,0.4,1.2,1.2c0.3,3.5,0.4,6.9,0.4,10.4c0,3,0,5.9,0,8.9
|
||||
c0,0.7-0.2,1-1,1.2c-6,1.4-11.9,2.8-17.9,4.1c-0.7,0.2-0.8,0.4-0.7,1.1c0.3,3.1,0.5,6.2,0.8,9.2c0.2,2.5,0.5,4.9,0.7,7.4
|
||||
c0,0.5,0.2,0.6,0.7,0.6c4.2-0.4,8.3-0.9,12.5-1.3c3.3-0.3,6.5-0.6,9.8-1c0.6-0.1,0.8,0.1,1,0.7c0.8,3,1.5,6,2,9.1
|
||||
c0.7,4.7,1.2,9.5,1.2,14.3c0,0.9-0.3,1.2-1.1,1.3c-4.2,0.4-8.5,0.9-12.7,1.3c-4,0.4-7.9,0.8-11.8,1.2c-4,0.4-8,0.8-11.9,1.2
|
||||
c-3.3,0.3-6.6,0.6-10,1c-0.7,0.1-1-0.1-1.1-0.9c-1.4-6.8-2.5-13.7-3.4-20.6c-0.9-6.3-1.6-12.6-2.3-19c-0.5-5.1-1-10.2-1.5-15.3
|
||||
c-0.5-5.4-1-10.9-1.3-16.4c-0.3-4.8-0.6-9.7-0.8-14.5C352.3,95.6,352.3,93.4,352.2,91.1z"/>
|
||||
<path class="st12" d="M538.8,130.7c0.8-2.2,1.6-4.3,2.4-6.4c2.4-6.5,4.8-13,7.3-19.5c0.2-0.4,0.3-0.9,0.3-1.4
|
||||
c0-0.9,0.4-1.3,1.3-1.4c1.5-0.3,2.9-0.6,4.3,0.4c0.8,0.7,1.3,1.5,1.6,2.5c1.9,5.2,3.1,10.6,4.1,16c0.5,2.8,0.9,5.5,0.9,8.4
|
||||
c0,1.3,0,1.3-1.3,1.4c-3.3,0.4-6.6,0.6-9.9,0.5C546.1,131.1,542.5,131.1,538.8,130.7z"/>
|
||||
<path class="st14" d="M551.7,116.3c0.8,2.6,1.3,5.1,1.7,7.8c-1.5,0-3,0-4.6,0C549.8,121.5,550.7,118.9,551.7,116.3z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 41 KiB |
@@ -3,6 +3,6 @@
|
||||
|
||||
<div class="ohlhafv-header-content">
|
||||
<div class="ohlhafv-banner logo">
|
||||
<a href="/ohlhafv"><img class="ohlhafv-banner-image" src="{% static "ohlhafv/img/heevi_banner.svg" %}" alt="Aalto-yliopiston Sähköinsinöörikilta ry"></a>
|
||||
<a href="/ohlhafv"><img class="ohlhafv-banner-image" src="{% static "ohlhafv/img/heevit.svg" %}" alt="Aalto-yliopiston Sähköinsinöörikilta ry"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+6
-5
@@ -1,6 +1,6 @@
|
||||
backports.shutil-get-terminal-size==1.0.0
|
||||
decorator==4.0.9
|
||||
Django==2.0.7
|
||||
Django==2.1.5
|
||||
ipython==4.2.0
|
||||
ipython-genutils==0.1.0
|
||||
pexpect==4.1.0
|
||||
@@ -9,7 +9,7 @@ ptyprocess==0.5.1
|
||||
pytz==2016.4
|
||||
simplegeneric==0.8.1
|
||||
traitlets==4.2.1
|
||||
Pillow==4.3.0
|
||||
Pillow==5.4.1
|
||||
requests==2.11.1
|
||||
django-nocaptcha-recaptcha==0.0.19
|
||||
django-cors-headers==2.0.1
|
||||
@@ -19,7 +19,7 @@ djangorestframework-jwt==1.11.0
|
||||
coverage==4.3.4
|
||||
django-nose==1.4.5
|
||||
nose-exclude==0.5.0
|
||||
psycopg2==2.7.3.1
|
||||
psycopg2-binary==2.7.6.1
|
||||
django-bootstrap3==8.2.3
|
||||
django-tables2==1.6.1
|
||||
pycodestyle==2.3.1
|
||||
@@ -31,8 +31,9 @@ django-autocomplete-light==3.2.10
|
||||
six==1.10.0
|
||||
django-suit==0.2.26
|
||||
telepot==12.3
|
||||
pyexcel==0.5.8
|
||||
pyexcel==0.5.10
|
||||
pyexcel-xlsx==0.5.5
|
||||
django-import-export==0.7.0
|
||||
openpyxl==2.4.11
|
||||
django-app-namespace-template-loader==0.4.1
|
||||
django-app-namespace-template-loader==0.4.1
|
||||
django-filter==2.0.0
|
||||
|
||||
@@ -103,6 +103,7 @@ INSTALLED_APPS = [
|
||||
'auditlog',
|
||||
'phonenumber_field',
|
||||
'import_export',
|
||||
'django_filters',
|
||||
]
|
||||
|
||||
IMPORT_EXPORT_USE_TRANSACTIONS = True
|
||||
@@ -232,6 +233,11 @@ REST_FRAMEWORK = {
|
||||
'burst': '60/min',
|
||||
'sustained': '1000/day'
|
||||
},
|
||||
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
|
||||
'PAGE_SIZE': 10,
|
||||
'DEFAULT_FILTER_BACKENDS': (
|
||||
'django_filters.rest_framework.DjangoFilterBackend',
|
||||
),
|
||||
}
|
||||
|
||||
# Email settings (tested working with gmail)
|
||||
|
||||
@@ -3,6 +3,7 @@ import random
|
||||
|
||||
from members.models import Member, Request
|
||||
from infoscreen.models import ExternalImageInfoItem, Rotation, InfoInstance
|
||||
from webapp.models import Tag, Feed
|
||||
from misc.namegenerator import generate_names
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
@@ -65,3 +66,29 @@ class Command(BaseCommand):
|
||||
POR=por,
|
||||
AYY=ayy,
|
||||
jas=jas)
|
||||
|
||||
TAGS = ["Party", "International", "Freshmen", "Culture"]
|
||||
TAG_COUNT = 2
|
||||
|
||||
for i in range(TAG_COUNT):
|
||||
slug = TAGS[i] + str(random.randint(0, 10))
|
||||
name = slug + str(random.randint(0, 10))
|
||||
print(slug, name)
|
||||
Tag.objects.create(slug=slug,
|
||||
name=name,
|
||||
icon="http://testiurl.com/kuva.jpg")
|
||||
|
||||
FEED_COUNT = 3
|
||||
|
||||
for i in range(FEED_COUNT):
|
||||
title = "ds" + str(random.randint(0, 15))
|
||||
description = "dsg" + str(random.randint(0, 20))
|
||||
content = "fdfd"
|
||||
Feed.objects.create(title=title,
|
||||
visible=True,
|
||||
description=description,
|
||||
content=content)
|
||||
tag1 = Tag.objects.get(id=1)
|
||||
Feed.objects.get(title=title).tags.add(tag1)
|
||||
tag2 = Tag.objects.get(id=1)
|
||||
Feed.objects.get(title=title).tags.add(tag2)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 2.0.7 on 2018-11-18 11:36
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('webapp', '0047_auto_20180710_2110'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.DeleteModel('tag'),
|
||||
migrations.DeleteModel('feed'),
|
||||
migrations.DeleteModel('event'),
|
||||
migrations.DeleteModel('basefeed'),
|
||||
]
|
||||
@@ -0,0 +1,79 @@
|
||||
# Generated by Django 2.0.7 on 2018-11-18 11:44
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
import webapp.utils
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('webapp', '0048_auto_20181118_1336'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BaseFeed',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('visible', models.BooleanField(default=True)),
|
||||
('title', models.CharField(max_length=255)),
|
||||
('title_fi', models.CharField(max_length=255, null=True)),
|
||||
('title_en', models.CharField(max_length=255, null=True)),
|
||||
('description', models.CharField(max_length=255)),
|
||||
('description_fi', models.CharField(max_length=255, null=True)),
|
||||
('description_en', models.CharField(max_length=255, null=True)),
|
||||
('content', models.TextField()),
|
||||
('content_fi', models.TextField(null=True)),
|
||||
('content_en', models.TextField(null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Tag',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('slug', models.SlugField(unique=True)),
|
||||
('name', models.CharField(max_length=127)),
|
||||
('name_fi', models.CharField(max_length=127, null=True)),
|
||||
('name_en', models.CharField(max_length=127, null=True)),
|
||||
('icon', models.ImageField(upload_to='')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Tag',
|
||||
'verbose_name_plural': 'Tags',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Event',
|
||||
fields=[
|
||||
('basefeed_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.BaseFeed')),
|
||||
('start_time', models.DateTimeField(default=django.utils.timezone.now)),
|
||||
('end_time', models.DateTimeField(default=django.utils.timezone.now)),
|
||||
('signupForm', models.ManyToManyField(blank=True, to='webapp.SignupForm')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Event',
|
||||
'verbose_name_plural': 'Events',
|
||||
},
|
||||
bases=('webapp.basefeed',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Feed',
|
||||
fields=[
|
||||
('basefeed_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.BaseFeed')),
|
||||
('publish_time', models.DateTimeField(default=django.utils.timezone.now)),
|
||||
('autohide', models.DateTimeField(default=webapp.utils.month_from_now)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Feed',
|
||||
'verbose_name_plural': 'Feeds',
|
||||
},
|
||||
bases=('webapp.basefeed',),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='basefeed',
|
||||
name='tags',
|
||||
field=models.ManyToManyField(blank=True, related_name='feeds', to='webapp.Tag'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 2.0.7 on 2018-11-18 15:53
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('webapp', '0049_auto_20181118_1344'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='signupform',
|
||||
name='visible',
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
]
|
||||
+2
-1
@@ -20,7 +20,7 @@ VERBOSE_NAME = _('Webapp')
|
||||
class Tag(models.Model):
|
||||
"""Model for tag."""
|
||||
|
||||
slug = models.SlugField(primary_key=True)
|
||||
slug = models.SlugField(unique=True)
|
||||
name = models.CharField(max_length=127)
|
||||
icon = models.ImageField()
|
||||
|
||||
@@ -93,6 +93,7 @@ class SignupForm(models.Model):
|
||||
end = models.DateTimeField(default=timezone.now)
|
||||
# question = JSONField()
|
||||
questions = models.CharField(max_length=255)
|
||||
visible = models.BooleanField(default=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Signup form')
|
||||
|
||||
+35
-3
@@ -14,19 +14,28 @@ class EventSerializer(serializers.HyperlinkedModelSerializer):
|
||||
signup_id = serializers.PrimaryKeyRelatedField(
|
||||
many=True,
|
||||
source="signupForm",
|
||||
queryset=SignupForm.objects.all())
|
||||
queryset=SignupForm.objects.all()
|
||||
)
|
||||
tag_id = serializers.PrimaryKeyRelatedField(
|
||||
many=True,
|
||||
source="tags",
|
||||
queryset=Tag.objects.all()
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Event
|
||||
fields = ('id', 'tags', 'visible', 'title', 'description',
|
||||
fields = ('id', 'tag_id', 'tags', 'visible', 'title', 'description',
|
||||
'content', 'start_time', 'end_time', 'signup_id', 'signupForm')
|
||||
depth = 1
|
||||
|
||||
def create(self, validated_data):
|
||||
signupForms = validated_data.pop('signupForm')
|
||||
tags = validated_data.pop('tags')
|
||||
event = Event.objects.create(**validated_data)
|
||||
for form in signupForms:
|
||||
event.signupForm.add(form)
|
||||
for tag in tags:
|
||||
event.tags.add(tag)
|
||||
event.save()
|
||||
return event
|
||||
|
||||
@@ -57,12 +66,35 @@ class SavedQuestionsSerializer(serializers.ModelSerializer):
|
||||
fields = ('id', 'name', 'question')
|
||||
|
||||
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Tag
|
||||
fields = ('id', 'slug', 'name', 'icon')
|
||||
|
||||
|
||||
class FeedSerializer(serializers.ModelSerializer):
|
||||
# tags = TagSerializer(many=True, read_only=False)
|
||||
# tags = serializers.PrimaryKeyRelatedField(
|
||||
# many=True,
|
||||
# queryset=Tag.objects.all(),
|
||||
# read_only=False
|
||||
# )
|
||||
|
||||
class Meta:
|
||||
model = Feed
|
||||
fields = ('id', 'tags', 'visible', 'title', 'description',
|
||||
fields = ('tags', 'visible', 'title', 'description',
|
||||
'content', 'publish_time', 'autohide')
|
||||
|
||||
def create(self, validated_data):
|
||||
print("validated data: ", validated_data)
|
||||
tags_data = validated_data.pop('tags')
|
||||
feed = Feed.objects.create(**validated_data)
|
||||
for tag in tags_data:
|
||||
print(tag)
|
||||
feed.tags.add(tag)
|
||||
feed.save()
|
||||
return feed
|
||||
|
||||
|
||||
class ContactsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
|
||||
+109
-1
@@ -1,5 +1,113 @@
|
||||
"""Tests for webapp."""
|
||||
|
||||
from django.test import TestCase
|
||||
from django.core.files import File
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework.test import APITestCase
|
||||
from rest_framework import status
|
||||
from rest_framework.test import force_authenticate
|
||||
from webapp.models import Tag, Feed
|
||||
from webapp.serializers import TagSerializer, FeedSerializer
|
||||
|
||||
# Create your tests here.
|
||||
from collections import OrderedDict
|
||||
from itertools import islice
|
||||
import tempfile
|
||||
|
||||
|
||||
class TagsTestCase(APITestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.icon = tempfile.NamedTemporaryFile(suffix=".jpg").name
|
||||
Tag.objects.create(slug='Party', name='Bileet', icon=self.icon)
|
||||
|
||||
def test_get_single_tag(self):
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
response = self.client.get('/api/tags/', format='json')
|
||||
self.assertTrue(status.is_success(response.status_code))
|
||||
|
||||
# We dont care about icon, so response is sliced
|
||||
sliced_response = OrderedDict(islice(response.data['results'][0].items(), 3))
|
||||
tag1 = Tag.objects.get(slug="Party")
|
||||
self.assertEqual(sliced_response, {'id': tag1.id, 'slug': 'Party', 'name': 'Bileet'})
|
||||
|
||||
def test_get_multiple_tags(self):
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
Tag.objects.create(slug='Freshmen', name='Fuksit', icon=self.icon)
|
||||
Tag.objects.create(slug='International', name='Ulkkarit', icon=self.icon)
|
||||
self.assertEqual(Tag.objects.count(), 3)
|
||||
|
||||
response = self.client.get('/api/tags/', format='json')
|
||||
self.assertTrue(status.is_success(response.status_code))
|
||||
|
||||
# We dont care about icon, so response is sliced
|
||||
tag1 = Tag.objects.get(slug="Party")
|
||||
sliced_response = OrderedDict(islice(response.data['results'][0].items(), 3))
|
||||
self.assertEqual(sliced_response, {'id': tag1.id, 'slug': 'Party', 'name': 'Bileet'})
|
||||
sliced_response = OrderedDict(islice(response.data['results'][1].items(), 3))
|
||||
tag2 = Tag.objects.get(slug="Freshmen")
|
||||
self.assertEqual(sliced_response, {'id': tag2.id, 'slug': 'Freshmen', 'name': 'Fuksit'})
|
||||
sliced_response = OrderedDict(islice(response.data['results'][2].items(), 3))
|
||||
tag3 = Tag.objects.get(slug="International")
|
||||
self.assertEqual(sliced_response, {'id': tag3.id, 'slug': 'International', 'name': 'Ulkkarit'})
|
||||
|
||||
def test_create_tag(self):
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
response = self.client.post('/api/tags/', {'slug': 'Test', 'name': 'Testinimi', 'icon': self.icon}, format='multipart')
|
||||
self.assertFalse(status.is_success(response.status_code))
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
|
||||
def test_invalid_tag(self):
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
response = self.client.get('/api/tags/15', format='json', follow=True)
|
||||
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
class FeedTestCase(APITestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.icon = tempfile.NamedTemporaryFile(suffix=".jpg").name
|
||||
Tag.objects.create(slug='testtag1', name='test1', icon=self.icon)
|
||||
tag1 = Tag.objects.get(slug="testtag1")
|
||||
Tag.objects.create(slug="testtag2", name='test2', icon=self.icon)
|
||||
tag2 = Tag.objects.get(slug="testtag2")
|
||||
self.assertEqual(Tag.objects.count(), 2)
|
||||
|
||||
Feed.objects.create(title="TestFeed", visible=True, description="diidadaapa", content="lorem ipsum")
|
||||
Feed.objects.get(title="TestFeed").tags.add(tag1)
|
||||
Feed.objects.get(title="TestFeed").tags.add(tag2)
|
||||
self.assertEqual(Feed.objects.count(), 1)
|
||||
self.assertEqual(Feed.objects.all()[0].tags.count(), 2)
|
||||
|
||||
username, password = 'test_admin', 'password123'
|
||||
self.authClient = User.objects.create_superuser(username, 'myemail@test.com', password)
|
||||
|
||||
def test_get_feed(self):
|
||||
response = self.client.get('/api/feed/', format='json')
|
||||
self.assertTrue(status.is_success(response.status_code))
|
||||
|
||||
feeds = Feed.objects.all()
|
||||
serializer = FeedSerializer(feeds, many=True)
|
||||
|
||||
self.assertEqual(response.data['results'], serializer.data)
|
||||
|
||||
def test_post_feed(self):
|
||||
Tag.objects.create(slug="test1", name="testsds")
|
||||
Tag.objects.create(slug="test2", name="testsdsd")
|
||||
tag1_id = Tag.objects.get(slug="test1").id
|
||||
tag2_id = Tag.objects.get(slug="test2").id
|
||||
|
||||
data = {'tags': [tag1_id, tag2_id], 'title': 'testtitle', 'visible': 'True', 'description': 'liirumlaarum', 'content': 'lorem ipsum'}
|
||||
# Try post without authentication
|
||||
response = self.client.post('/api/feed/', data, format='multipart')
|
||||
self.assertTrue(status.is_client_error(response.status_code))
|
||||
self.assertEqual(Feed.objects.count(), 1)
|
||||
# Authenticate
|
||||
self.client.force_authenticate(user=self.authClient)
|
||||
response = self.client.post('/api/feed/', data, format='multipart')
|
||||
# Return success and check object was created
|
||||
self.assertTrue(status.is_success(response.status_code))
|
||||
self.assertEqual(Feed.objects.count(), 2)
|
||||
|
||||
created = Feed.objects.get(title="testtitle")
|
||||
print(created.tags)
|
||||
# self.assertEqual(created.tags.count(), 2)
|
||||
|
||||
+7
-1
@@ -2,6 +2,8 @@
|
||||
|
||||
from django.conf.urls import url, include
|
||||
from rest_framework import routers
|
||||
from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token
|
||||
|
||||
# from rest_framework.urlpatterns import format_suffix_patterns
|
||||
# from django.conf import settings
|
||||
# from django.utils.translation import ugettext_lazy as _
|
||||
@@ -19,7 +21,7 @@ from webapp.views import about_view
|
||||
# from webapp.views import contact_view
|
||||
|
||||
from webapp.views import EventViewSet, SignupFormViewSet, SignupViewSet,\
|
||||
FeedViewSet, ContactsViewSet, SavedQuestionsViewSet, RootView
|
||||
FeedViewSet, ContactsViewSet, SavedQuestionsViewSet, RootView, TagsViewSet
|
||||
|
||||
|
||||
class APIRouter(routers.DefaultRouter):
|
||||
@@ -33,9 +35,13 @@ router.register(r'signup', SignupViewSet)
|
||||
router.register(r'feed', FeedViewSet)
|
||||
router.register(r'contacts', ContactsViewSet)
|
||||
router.register(r'questions', SavedQuestionsViewSet)
|
||||
router.register(r'tags', TagsViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^api/', include(router.urls)),
|
||||
url(r'^api/api-token-auth/', obtain_jwt_token),
|
||||
url(r'^api/api-token-verify/', verify_jwt_token),
|
||||
|
||||
# login stuff
|
||||
# url(r'^login$', login_view),
|
||||
# url(r'^logout$', logout_view),
|
||||
|
||||
+43
-3
@@ -13,17 +13,27 @@ from rest_framework import viewsets, routers
|
||||
from rest_framework.permissions import IsAuthenticatedOrReadOnly
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
from django_filters import rest_framework as filters
|
||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||
from rest_framework import permissions
|
||||
# import logging
|
||||
# import requests
|
||||
from dealer.git import git
|
||||
|
||||
from webapp.models import Event, SignupForm, Signup, TemplateQuestion, Feed,\
|
||||
Committee, Official
|
||||
Committee, Official, Tag
|
||||
from webapp.serializers import *
|
||||
from members.views.utils import *
|
||||
|
||||
|
||||
class IsPostOrIsAuthenticated(permissions.BasePermission):
|
||||
|
||||
def has_permission(self, request, view):
|
||||
if request.method == 'POST':
|
||||
return True
|
||||
return request.user and request.user.is_authenticated
|
||||
|
||||
|
||||
# -- REST API -- #
|
||||
class RootView(routers.APIRootView):
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
@@ -33,18 +43,36 @@ class EventViewSet(viewsets.ModelViewSet):
|
||||
queryset = Event.objects.all()
|
||||
serializer_class = EventSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
|
||||
filter_fields = '__all__'
|
||||
search_fields = '__all__'
|
||||
|
||||
def get_queryset(self):
|
||||
return Event.objects.filter(visible=True, end_time__gt=timezone.now()).order_by('start_time')
|
||||
|
||||
|
||||
class SignupFormViewSet(viewsets.ModelViewSet):
|
||||
queryset = SignupForm.objects.all()
|
||||
serializer_class = SignupFormSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
|
||||
filter_fields = '__all__'
|
||||
search_fields = '__all__'
|
||||
|
||||
def get_queryset(self):
|
||||
return SignupForm.objects.filter(visible=True, end__gt=timezone.now()).order_by('start')
|
||||
|
||||
|
||||
class SignupViewSet(viewsets.ModelViewSet):
|
||||
queryset = Signup.objects.all()
|
||||
serializer_class = SignupSerializer
|
||||
permission_classes = []
|
||||
permission_classes = [IsPostOrIsAuthenticated]
|
||||
# filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
|
||||
# filter_fields = '__all__'
|
||||
# search_fields = '__all__'
|
||||
|
||||
# def get_queryset(self):
|
||||
# return Signup.objects.filter(visible=True, end_time__gt=timezone.now()).order_by('start_time')
|
||||
|
||||
|
||||
class SavedQuestionsViewSet(viewsets.ModelViewSet):
|
||||
@@ -57,6 +85,12 @@ class FeedViewSet(viewsets.ModelViewSet):
|
||||
queryset = Feed.objects.all()
|
||||
serializer_class = FeedSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
|
||||
filter_fields = '__all__'
|
||||
search_fields = '__all__'
|
||||
|
||||
def get_queryset(self):
|
||||
return Feed.objects.filter(visible=True, autohide__gt=timezone.now()).order_by('publish_time')
|
||||
|
||||
|
||||
class ContactsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
@@ -65,6 +99,12 @@ class ContactsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
|
||||
|
||||
class TagsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
queryset = Tag.objects.all()
|
||||
serializer_class = TagSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
|
||||
|
||||
# -- OLD CODEBASE -- #
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
|
||||
Reference in New Issue
Block a user