Initial commit
This commit is contained in:
commit
23357dfd20
|
@ -0,0 +1,3 @@
|
|||
__pycacahe__/
|
||||
*.pyc
|
||||
output/
|
|
@ -0,0 +1,124 @@
|
|||
PY?=python3
|
||||
PELICAN?=pelican
|
||||
PELICANOPTS=
|
||||
|
||||
BASEDIR=$(CURDIR)
|
||||
INPUTDIR=$(BASEDIR)/content
|
||||
OUTPUTDIR=$(BASEDIR)/output
|
||||
CONFFILE=$(BASEDIR)/pelicanconf.py
|
||||
PUBLISHCONF=$(BASEDIR)/publishconf.py
|
||||
|
||||
FTP_HOST=localhost
|
||||
FTP_USER=anonymous
|
||||
FTP_TARGET_DIR=/
|
||||
|
||||
SSH_HOST=web1.cloud.csclub.uwaterloo.ca
|
||||
SSH_PORT=22
|
||||
SSH_USER=ztseguin
|
||||
SSH_TARGET_DIR=/srv/http/cloud.csclub.uwaterloo.ca
|
||||
|
||||
S3_BUCKET=my_s3_bucket
|
||||
|
||||
CLOUDFILES_USERNAME=my_rackspace_username
|
||||
CLOUDFILES_API_KEY=my_rackspace_api_key
|
||||
CLOUDFILES_CONTAINER=my_cloudfiles_container
|
||||
|
||||
DROPBOX_DIR=~/Dropbox/Public/
|
||||
|
||||
GITHUB_PAGES_BRANCH=gh-pages
|
||||
|
||||
DEBUG ?= 0
|
||||
ifeq ($(DEBUG), 1)
|
||||
PELICANOPTS += -D
|
||||
endif
|
||||
|
||||
RELATIVE ?= 0
|
||||
ifeq ($(RELATIVE), 1)
|
||||
PELICANOPTS += --relative-urls
|
||||
endif
|
||||
|
||||
help:
|
||||
@echo 'Makefile for a pelican Web site '
|
||||
@echo ' '
|
||||
@echo 'Usage: '
|
||||
@echo ' make html (re)generate the web site '
|
||||
@echo ' make clean remove the generated files '
|
||||
@echo ' make regenerate regenerate files upon modification '
|
||||
@echo ' make publish generate using production settings '
|
||||
@echo ' make serve [PORT=8000] serve site at http://localhost:8000'
|
||||
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
|
||||
@echo ' make devserver [PORT=8000] start/restart develop_server.sh '
|
||||
@echo ' make stopserver stop local server '
|
||||
@echo ' make ssh_upload upload the web site via SSH '
|
||||
@echo ' make rsync_upload upload the web site via rsync+ssh '
|
||||
@echo ' make dropbox_upload upload the web site via Dropbox '
|
||||
@echo ' make ftp_upload upload the web site via FTP '
|
||||
@echo ' make s3_upload upload the web site via S3 '
|
||||
@echo ' make cf_upload upload the web site via Cloud Files'
|
||||
@echo ' make github upload the web site via gh-pages '
|
||||
@echo ' '
|
||||
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
|
||||
@echo 'Set the RELATIVE variable to 1 to enable relative urls '
|
||||
@echo ' '
|
||||
|
||||
html:
|
||||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
|
||||
|
||||
clean:
|
||||
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
|
||||
|
||||
regenerate:
|
||||
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
|
||||
|
||||
serve:
|
||||
ifdef PORT
|
||||
cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
|
||||
else
|
||||
cd $(OUTPUTDIR) && $(PY) -m pelican.server
|
||||
endif
|
||||
|
||||
serve-global:
|
||||
ifdef SERVER
|
||||
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
|
||||
else
|
||||
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
|
||||
endif
|
||||
|
||||
|
||||
devserver:
|
||||
ifdef PORT
|
||||
$(BASEDIR)/develop_server.sh restart $(PORT)
|
||||
else
|
||||
$(BASEDIR)/develop_server.sh restart
|
||||
endif
|
||||
|
||||
stopserver:
|
||||
$(BASEDIR)/develop_server.sh stop
|
||||
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
|
||||
|
||||
publish:
|
||||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
|
||||
|
||||
ssh_upload: publish
|
||||
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
|
||||
|
||||
rsync_upload: publish
|
||||
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
|
||||
|
||||
dropbox_upload: publish
|
||||
cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR)
|
||||
|
||||
ftp_upload: publish
|
||||
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
|
||||
|
||||
s3_upload: publish
|
||||
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type --no-mime-magic --no-preserve
|
||||
|
||||
cf_upload: publish
|
||||
cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
|
||||
|
||||
github: publish
|
||||
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
|
||||
git push origin $(GITHUB_PAGES_BRANCH)
|
||||
|
||||
.PHONY: html help clean regenerate serve serve-global devserver stopserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
|
|
@ -0,0 +1,62 @@
|
|||
title: Advanced Networking
|
||||
slug: docs/advanced-networking
|
||||
status: hidden
|
||||
|
||||
## Static Networking
|
||||
|
||||
Information for the `MSO Intranet` networking:
|
||||
|
||||
Addresses are assigned from these ranges:
|
||||
|
||||
```
|
||||
IPv4: 172.19.134.0/24
|
||||
IPv6: 2620:101:f000:4903::/64
|
||||
```
|
||||
|
||||
Network gateways:
|
||||
|
||||
```
|
||||
IPv4 Gateway: 172.19.134.254 (NAT gateway)
|
||||
Add routes to campus:
|
||||
10.0.0.0/8 via 172.19.134.1
|
||||
129.97.0.0/16 via 172.19.134.1
|
||||
172.16.0.0/12 via 172.19.134.1
|
||||
|
||||
Please do not send on-campus traffic through the NAT gateway.
|
||||
This may be blocked in the future.
|
||||
|
||||
IPv6 Gateway: 2620:101:f000:4903::1
|
||||
```
|
||||
|
||||
## Firewall
|
||||
|
||||
### Campus Firewall
|
||||
|
||||
All machines in the CSC cloud are behind the Campus Firewall. The Campus
|
||||
Firewall blocks all incoming traffic at the University border.
|
||||
|
||||
**We will not accept requests for exceptions to the campus firewall. All
|
||||
inbound traffic originating from off-campus will be blocked.**
|
||||
|
||||
### OpenStack Security Groups
|
||||
|
||||
You can utilize OpenStack Security Groups to act as a firewall in front of your
|
||||
host.
|
||||
|
||||
*More documentation about this will come at a later time.*
|
||||
|
||||
## Private Networking
|
||||
|
||||
See [OpenStack Horizon Documentation](https://docs.openstack.org/horizon/pike/user/create-networks.html) for
|
||||
information about creating private networks.
|
||||
|
||||
### Disabling Port Security
|
||||
|
||||
Disabling port security is required if you are running a router on your network
|
||||
(ie. traffic with source IPs different than your own).
|
||||
|
||||
*This cannot be done for the MSO Intranet network, however can be done for
|
||||
private networks*.
|
||||
|
||||
This can only be done via the OpenStack command line and the API:
|
||||
`openstack port set --disable-port-security --no-security-group [portid]`
|
|
@ -0,0 +1,19 @@
|
|||
title: Command Line Access
|
||||
slug: docs/cli-access
|
||||
status: hidden
|
||||
|
||||
The OpenStack command line interface has been installed on corn-syrup.
|
||||
|
||||
Set the following environment variables to authenticate with the CSC Cloud:
|
||||
|
||||
```bash
|
||||
export OS_USERNAME=<username>
|
||||
export OS_PROJECT_NAME=<username>
|
||||
export OS_USER_DOMAIN_NAME=csclub
|
||||
export OS_PROJECT_DOMAIN_NAME=csclub
|
||||
export OS_AUTH_URL=https://auth.cloud.csclub.uwaterloo.ca/v3
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
```
|
||||
|
||||
Documentation on the command line is available from the OpenStack project:
|
||||
[OpenStackClient](https://docs.openstack.org/python-openstackclient/latest/).
|
|
@ -0,0 +1,16 @@
|
|||
title: Documentation
|
||||
slug: docs
|
||||
|
||||
## For users
|
||||
|
||||
- [Getting Started]({filename}getting-started.md)
|
||||
- [CLI Access]({filename}cli-access.md)
|
||||
- [Advanced Networking]({filename}advanced-networking.md)
|
||||
|
||||
A great resource is the [OpenStack user
|
||||
guides](https://docs.openstack.org/ocata/user/) (Note: we are currently running
|
||||
the Ocata version).
|
||||
|
||||
## For administrators
|
||||
|
||||
- [User Setup]({filename}user-setup.md)
|
|
@ -0,0 +1,23 @@
|
|||
title: Frequently Asked Questions
|
||||
slug: faq
|
||||
status: hidden
|
||||
|
||||
## Networking
|
||||
|
||||
### What IP ranges are available?
|
||||
|
||||
When you create a server on the `MSO Intranet` network, you are assigned an
|
||||
IPv4 address in the range of `172.19.134.0/24` and an IPv6 address in the range
|
||||
of `2620:101:f000:4903::/64`.
|
||||
|
||||
### How can I access my server?
|
||||
|
||||
To access your server you must be connected to the University's network. This
|
||||
can be done via wired, wireless (Eduroam) or the
|
||||
[VPN](https://uwaterloo.ca/information-systems-technology/services/virtual-private-network-vpn).
|
||||
|
||||
### I'm assigned a globally-routed IPv6 address. Why can't I access it from the internet?
|
||||
|
||||
All traffic to your server initiated from off-campus is blocked at the
|
||||
University's border firewall. We are not accepting requests for exceptions at
|
||||
this time.
|
|
@ -0,0 +1,81 @@
|
|||
title: Getting Started
|
||||
slug: docs/getting-started
|
||||
status: hidden
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Beta**: You must request and be granted access from the <a
|
||||
href="mailto:cloud@csclub.uwaterloo.ca">cloud@csclub.uwaterloo.ca</a> to use the
|
||||
Computer Science Club Cloud. *Please include your CSC username when
|
||||
requesting access*.
|
||||
|
||||
## Accessing the Dashboard
|
||||
|
||||
1. Go to [Computer Science Club Cloud
|
||||
Dashboard](https://dashboard.cloud.csclub.uwaterloo.ca/)
|
||||
2. Login with your Computer Science Club username and password
|
||||
|
||||
## Creating a server
|
||||
|
||||
1. On the Dashboard, open `Project` → `Compute` → `Instances`.
|
||||
2. Click `Launch Instance`
|
||||
3. Fill in instance details
|
||||
- Select a name
|
||||
- Choose `csc-mc` availability zone
|
||||
4. Click next. Select an image
|
||||
5. Click next. Choose a flavour
|
||||
6. Click next. Select a network
|
||||
- Select `MSO Intranet` (unless you are working with private networking,
|
||||
see the Advanced Network Guide)
|
||||
7. Click on `Key Pair`
|
||||
- If you have not already uploaded a SSH key pair, upload your public key
|
||||
- *This step is important. Without a SSH key, you will not be able to
|
||||
access your VM.*
|
||||
8. Click `Launch Instance`
|
||||
|
||||
> *If* everything works correctly, your VM *should* be provisioned.
|
||||
|
||||
## Accessing the server
|
||||
|
||||
The dashboard will show the IP addresses assigned to the VM. You can SSH
|
||||
using the corresponding SSH private key.
|
||||
|
||||
The default username is typically the name of the distribution (e.g., `ubuntu`
|
||||
for Ubuntu and `debian` for Debian).
|
||||
|
||||
|
||||
**You cannot connect to your VM from the internet. You must connect by SSH'ing
|
||||
from a CSC machine or by using on-campus ethernet, wireless or the
|
||||
[Campus VPN](https://uwaterloo.ca/information-systems-technology/services/virtual-private-network-vpn).**
|
||||
|
||||
You may wish to configure an account password (using `passwd`) to allow access
|
||||
via the console (see the next section).
|
||||
|
||||
## Oh no! I broke SSH / Networking / etc.
|
||||
|
||||
You can access the console through the dashboard. View the instance details (by
|
||||
clicking its name) and then click on the `Console` tab.
|
||||
|
||||
The console may not accept keyboard / mouse input. If so, click on `Click here
|
||||
to show only console` to access the fullscreen view.
|
||||
|
||||
## Mirrors
|
||||
|
||||
If possible, you should use
|
||||
[mirror.csclub.uwaterloo.ca](http://mirror.csclub.uwaterloo.ca) as your mirror.
|
||||
|
||||
## Web Hosting
|
||||
|
||||
As you may have noticed, you cannot access your VM from the internet. To allow
|
||||
access to your website, you have two options:
|
||||
|
||||
1. Proxy through `caffeine`. See the [CSC
|
||||
wiki](https://wiki.csclub.uwaterloo.ca/Web_Hosting#Reverse_Proxy_.28Python.2C_Ruby.2C_Perl.2C_etc..29)
|
||||
for more information
|
||||
2. Configure on the CSC HAProxy load balancer. Contact
|
||||
cloud@csclub.uwaterloo.ca with your domain name, username, instance IP
|
||||
addresses and ports (or DNS hostname). TLS certificates are currently only
|
||||
available for `*.csclub.cloud` domains (contact cloud@csclub.uwaterloo.ca to
|
||||
register a `[yourusername-blah].csclub.cloud` hostname).
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Title: CSC Cloud (Beta)
|
||||
URL:
|
||||
save_as: index.html
|
||||
sort: 0
|
||||
|
||||
The [Computer Science Club](https://csclub.uwaterloo.ca) is currently working on a private cloud environment (powered by [OpenStack](https://www.openstack.org)) to enhance our web hosting services. This will allow the club to offer private servers to our members.
|
||||
|
||||
## Thanks to our donors
|
||||
|
||||
Hardware for this project was provided by:
|
||||
|
||||
- Funding from the [Mathematics Endowment Fund](https://uwaterloo.ca/math-endowment-fund/)
|
||||
- Funding from the [Student Life Endowment Fund](https://feds.ca/funding#fund-slef)
|
||||
- Hardware donations from club members
|
|
@ -0,0 +1,88 @@
|
|||
title: Cloud (Beta) Usage Agreement
|
||||
slug: usage-agreement
|
||||
|
||||
*This agreement, in its current form, applies to those participating in the CSC
|
||||
Cloud Beta. This agreement may change at any time, with notice, during the beta
|
||||
period and may change prior to general availability.*
|
||||
|
||||
## Introduction
|
||||
|
||||
The use of this system is governed by the Computer Science Club's [Machine
|
||||
Usage Agreement](https://csclub.uwaterloo.ca/services/machine_usage)
|
||||
and [Code of Conduct](https://csclub.uwaterloo.ca/about/code-of-conduct).
|
||||
Please take the time to review these documents before using this system. The
|
||||
Computer Science Club Executive and Systems Committee are responsible for
|
||||
enforcing these policies.
|
||||
|
||||
This agreement is supplemental to the [Machine Usage
|
||||
Agreement](https://csclub.uwaterloo.ca/services/machine_usage). It
|
||||
acts primarily to emphasize certain points, but may add additional policies
|
||||
specific to the Computer Science Club Cloud.
|
||||
|
||||
## Use
|
||||
|
||||
You may use this service for any purpose, except:
|
||||
|
||||
1. Commericial purposes (ex. ads, your startup, etc.)
|
||||
2. Violation of any usage agreement, University policy, or law
|
||||
|
||||
### Eligibility
|
||||
|
||||
You may only use this service if:
|
||||
|
||||
1. Your membership is current, or
|
||||
2. If you are a club representative, where use is for club purposes only
|
||||
|
||||
### Email
|
||||
|
||||
Under no circumstances shall unsolicited (ie. spam) email be sent using this
|
||||
service.
|
||||
|
||||
## Service Level Agreement
|
||||
|
||||
### Uptime
|
||||
|
||||
> **The Computer Science Club makes no guarantee of availability of the service.**
|
||||
|
||||
We will do our best to keep the service available at all times, and provide
|
||||
advanced notice of service.
|
||||
|
||||
### Data Integrity
|
||||
|
||||
> **The Computer Science Club makes no guarantee of data integrity.**
|
||||
|
||||
It is your responsibility to ensure that you have appropriate backups of all
|
||||
data stored on the service. We are not responsible for any lost data
|
||||
whatsoever.
|
||||
|
||||
## Auditing and Logging
|
||||
|
||||
The Computer Science Club Systems Committee keeps records ("logs") on the
|
||||
service to:
|
||||
|
||||
1. Collect and store diagnostic information to aid in debugging hardware and
|
||||
software issues;
|
||||
2. Document manchine usage and activity;
|
||||
3. Refer to for auditing purposes.
|
||||
|
||||
### Network Address Translation
|
||||
|
||||
The Computer Science Club uses Network Address Translation on IPv4 to allow
|
||||
access to off-campus resources. All translations performed are logged with
|
||||
source IP, destination IP, source port, destination port and timestamps
|
||||
indicating the start and end of the translation.
|
||||
|
||||
### Use of Records
|
||||
|
||||
The logs contain records of user and machine activity. The Systems Committee
|
||||
reserves the right to share these records with the University or local
|
||||
law enforcement as required.
|
||||
|
||||
## User Agreement
|
||||
|
||||
I have read and understood the usage agreement of 16 August 2017, and I
|
||||
agreee that my usage of the Computer Science Club will be in accordance with
|
||||
this policy. I understand that I am responsible for all actions performed from
|
||||
my account (or the services attached to it). Furthermore, I accept full legal
|
||||
responsibility for all of the actions that I commit using the Computer Science
|
||||
Club Cloud according to any and all applicable laws.
|
|
@ -0,0 +1,41 @@
|
|||
title: User Setup
|
||||
slug: docs/admin/user-setup
|
||||
status: hidden
|
||||
|
||||
## Option 1 (Recommended)
|
||||
|
||||
Use the `adduser.py` script, available at [https://git.uwaterloo.ca/zachary.seguin/csclub-cloud-scripts](https://git.uwaterloo.ca/zachary.seguin/csclub-cloud-scripts).
|
||||
|
||||
## Option 2
|
||||
|
||||
### 1. LDAP Configuration
|
||||
|
||||
A `userPassword` property must be added to a user's LDAP object before they can
|
||||
successfully authenticate against our cloud environment.
|
||||
|
||||
1. Open ldapvi `ldapvi -Y GSSAPI`
|
||||
2. Find the user, and add: `userPassword: {SASL}<username>@CSCLUB.UWATERLOO.CA`
|
||||
3. Quit your editor
|
||||
4. Type `y` to perform the changes
|
||||
|
||||
### 2. Add user project
|
||||
|
||||
All members will be assigned their own project. All instructions are executed
|
||||
using the OpenStack command line client.
|
||||
|
||||
1. `openstack project create --domain csclub <username>`
|
||||
2. `openstack role --project <username> --user <username> user`
|
||||
|
||||
### Appendix A: OpenStack Environment Variables
|
||||
|
||||
```sh
|
||||
export OS_USERNAME=<username>
|
||||
export OS_PASSWORD=<password>
|
||||
export OS_PROJECT_NAME=csc
|
||||
export OS_USER_DOMAIN_NAME=csclub
|
||||
export OS_PROJECT_DOMAIN_NAME=csclub
|
||||
export OS_AUTH_URL=https://auth.cloud.csclub.uwaterloo.ca/v3
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
```
|
||||
|
||||
NOTE: To control your project, change `OS_PROJECT_NAME` to your username.
|
|
@ -0,0 +1,103 @@
|
|||
#!/usr/bin/env bash
|
||||
##
|
||||
# This section should match your Makefile
|
||||
##
|
||||
PY=${PY:-python3}
|
||||
PELICAN=${PELICAN:-pelican}
|
||||
PELICANOPTS=
|
||||
|
||||
BASEDIR=$(pwd)
|
||||
INPUTDIR=$BASEDIR/content
|
||||
OUTPUTDIR=$BASEDIR/output
|
||||
CONFFILE=$BASEDIR/pelicanconf.py
|
||||
|
||||
###
|
||||
# Don't change stuff below here unless you are sure
|
||||
###
|
||||
|
||||
SRV_PID=$BASEDIR/srv.pid
|
||||
PELICAN_PID=$BASEDIR/pelican.pid
|
||||
|
||||
function usage(){
|
||||
echo "usage: $0 (stop) (start) (restart) [port]"
|
||||
echo "This starts Pelican in debug and reload mode and then launches"
|
||||
echo "an HTTP server to help site development. It doesn't read"
|
||||
echo "your Pelican settings, so if you edit any paths in your Makefile"
|
||||
echo "you will need to edit your settings as well."
|
||||
exit 3
|
||||
}
|
||||
|
||||
function alive() {
|
||||
kill -0 $1 >/dev/null 2>&1
|
||||
}
|
||||
|
||||
function shut_down(){
|
||||
PID=$(cat $SRV_PID)
|
||||
if [[ $? -eq 0 ]]; then
|
||||
if alive $PID; then
|
||||
echo "Stopping HTTP server"
|
||||
kill $PID
|
||||
else
|
||||
echo "Stale PID, deleting"
|
||||
fi
|
||||
rm $SRV_PID
|
||||
else
|
||||
echo "HTTP server PIDFile not found"
|
||||
fi
|
||||
|
||||
PID=$(cat $PELICAN_PID)
|
||||
if [[ $? -eq 0 ]]; then
|
||||
if alive $PID; then
|
||||
echo "Killing Pelican"
|
||||
kill $PID
|
||||
else
|
||||
echo "Stale PID, deleting"
|
||||
fi
|
||||
rm $PELICAN_PID
|
||||
else
|
||||
echo "Pelican PIDFile not found"
|
||||
fi
|
||||
}
|
||||
|
||||
function start_up(){
|
||||
local port=$1
|
||||
echo "Starting up Pelican and HTTP server"
|
||||
shift
|
||||
$PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
|
||||
pelican_pid=$!
|
||||
echo $pelican_pid > $PELICAN_PID
|
||||
mkdir -p $OUTPUTDIR && cd $OUTPUTDIR
|
||||
$PY -m pelican.server $port &
|
||||
srv_pid=$!
|
||||
echo $srv_pid > $SRV_PID
|
||||
cd $BASEDIR
|
||||
sleep 1
|
||||
if ! alive $pelican_pid ; then
|
||||
echo "Pelican didn't start. Is the Pelican package installed?"
|
||||
return 1
|
||||
elif ! alive $srv_pid ; then
|
||||
echo "The HTTP server didn't start. Is there another service using port" $port "?"
|
||||
return 1
|
||||
fi
|
||||
echo 'Pelican and HTTP server processes now running in background.'
|
||||
}
|
||||
|
||||
###
|
||||
# MAIN
|
||||
###
|
||||
[[ ($# -eq 0) || ($# -gt 2) ]] && usage
|
||||
port=''
|
||||
[[ $# -eq 2 ]] && port=$2
|
||||
|
||||
if [[ $1 == "stop" ]]; then
|
||||
shut_down
|
||||
elif [[ $1 == "restart" ]]; then
|
||||
shut_down
|
||||
start_up $port
|
||||
elif [[ $1 == "start" ]]; then
|
||||
if ! start_up $port; then
|
||||
shut_down
|
||||
fi
|
||||
else
|
||||
usage
|
||||
fi
|
|
@ -0,0 +1,92 @@
|
|||
from fabric.api import *
|
||||
import fabric.contrib.project as project
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import SocketServer
|
||||
|
||||
from pelican.server import ComplexHTTPRequestHandler
|
||||
|
||||
# Local path configuration (can be absolute or relative to fabfile)
|
||||
env.deploy_path = 'output'
|
||||
DEPLOY_PATH = env.deploy_path
|
||||
|
||||
# Remote server configuration
|
||||
production = 'root@localhost:22'
|
||||
dest_path = '/var/www'
|
||||
|
||||
# Rackspace Cloud Files configuration settings
|
||||
env.cloudfiles_username = 'my_rackspace_username'
|
||||
env.cloudfiles_api_key = 'my_rackspace_api_key'
|
||||
env.cloudfiles_container = 'my_cloudfiles_container'
|
||||
|
||||
# Github Pages configuration
|
||||
env.github_pages_branch = "gh-pages"
|
||||
|
||||
# Port for `serve`
|
||||
PORT = 8000
|
||||
|
||||
def clean():
|
||||
"""Remove generated files"""
|
||||
if os.path.isdir(DEPLOY_PATH):
|
||||
shutil.rmtree(DEPLOY_PATH)
|
||||
os.makedirs(DEPLOY_PATH)
|
||||
|
||||
def build():
|
||||
"""Build local version of site"""
|
||||
local('pelican -s pelicanconf.py')
|
||||
|
||||
def rebuild():
|
||||
"""`build` with the delete switch"""
|
||||
local('pelican -d -s pelicanconf.py')
|
||||
|
||||
def regenerate():
|
||||
"""Automatically regenerate site upon file modification"""
|
||||
local('pelican -r -s pelicanconf.py')
|
||||
|
||||
def serve():
|
||||
"""Serve site at http://localhost:8000/"""
|
||||
os.chdir(env.deploy_path)
|
||||
|
||||
class AddressReuseTCPServer(SocketServer.TCPServer):
|
||||
allow_reuse_address = True
|
||||
|
||||
server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler)
|
||||
|
||||
sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
|
||||
server.serve_forever()
|
||||
|
||||
def reserve():
|
||||
"""`build`, then `serve`"""
|
||||
build()
|
||||
serve()
|
||||
|
||||
def preview():
|
||||
"""Build production version of site"""
|
||||
local('pelican -s publishconf.py')
|
||||
|
||||
def cf_upload():
|
||||
"""Publish to Rackspace Cloud Files"""
|
||||
rebuild()
|
||||
with lcd(DEPLOY_PATH):
|
||||
local('swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
|
||||
'-U {cloudfiles_username} '
|
||||
'-K {cloudfiles_api_key} '
|
||||
'upload -c {cloudfiles_container} .'.format(**env))
|
||||
|
||||
@hosts(production)
|
||||
def publish():
|
||||
"""Publish to production via rsync"""
|
||||
local('pelican -s publishconf.py')
|
||||
project.rsync_project(
|
||||
remote_dir=dest_path,
|
||||
exclude=".DS_Store",
|
||||
local_dir=DEPLOY_PATH.rstrip('/') + '/',
|
||||
delete=True,
|
||||
extra_opts='-c',
|
||||
)
|
||||
|
||||
def gh_pages():
|
||||
"""Publish to GitHub Pages"""
|
||||
rebuild()
|
||||
local("ghp-import -b {github_pages_branch} {deploy_path} -p".format(**env))
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*- #
|
||||
from __future__ import unicode_literals
|
||||
|
||||
AUTHOR = 'Calum T. Dalek'
|
||||
SITENAME = 'Computer Science Club Cloud'
|
||||
SITEURL = ''
|
||||
|
||||
THEME = 'themes/csclub'
|
||||
PATH = 'content'
|
||||
|
||||
PAGE_URL = '{slug}/'
|
||||
PAGE_SAVE_AS = '{slug}/index.html'
|
||||
|
||||
TIMEZONE = 'Canada/Eastern'
|
||||
|
||||
DEFAULT_LANG = 'en'
|
||||
|
||||
# Feed generation is usually not desired when developing
|
||||
FEED_ALL_ATOM = None
|
||||
CATEGORY_FEED_ATOM = None
|
||||
TRANSLATION_FEED_ATOM = None
|
||||
AUTHOR_FEED_ATOM = None
|
||||
AUTHOR_FEED_RSS = None
|
||||
|
||||
# Main menu
|
||||
# MENUITEMS = (('CSC Cloud', '/'),
|
||||
DISPLAY_PAGES_ON_MENU = True
|
||||
DISPLAY_CATEGORIES_ON_MENU = False
|
||||
PAGE_ORDER_BY = 'sort'
|
||||
|
||||
# Blogroll
|
||||
LINKS = (('Pelican', 'http://getpelican.com/'),
|
||||
('Python.org', 'http://python.org/'),
|
||||
('Jinja2', 'http://jinja.pocoo.org/'),
|
||||
('You can modify those links in your config file', '#'),)
|
||||
|
||||
# Social widget
|
||||
SOCIAL = (('You can add links in your config file', '#'),
|
||||
('Another social link', '#'),)
|
||||
|
||||
DEFAULT_PAGINATION = 10
|
||||
|
||||
# Uncomment following line if you want document-relative URLs when developing
|
||||
#RELATIVE_URLS = True
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*- #
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# This file is only used if you use `make publish` or
|
||||
# explicitly specify it as your config file.
|
||||
|
||||
import os
|
||||
import sys
|
||||
sys.path.append(os.curdir)
|
||||
from pelicanconf import *
|
||||
|
||||
SITEURL = 'https://cloud.csclub.uwaterloo.ca'
|
||||
RELATIVE_URLS = False
|
||||
|
||||
FEED_ALL_ATOM = 'feeds/all.atom.xml'
|
||||
CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
|
||||
|
||||
DELETE_OUTPUT_DIRECTORY = True
|
||||
|
||||
# Following items are often useful when publishing
|
||||
|
||||
#DISQUS_SITENAME = ""
|
||||
#GOOGLE_ANALYTICS = ""
|
|
@ -0,0 +1,101 @@
|
|||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
body > header {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 15px 0;
|
||||
}
|
||||
|
||||
body > header,
|
||||
body > nav,
|
||||
.content-wrapper,
|
||||
body > footer {
|
||||
max-width: 100%;
|
||||
width: 920px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
body > nav {
|
||||
background: #215498;
|
||||
border-radius: 4px;
|
||||
background-clip: border-box;
|
||||
}
|
||||
|
||||
body > nav ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body > nav li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
body > nav a {
|
||||
display: inline-block;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
body > nav a:hover,
|
||||
body > nav .active a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
body > nav ul li:first-child a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.uw_logo {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.csc_logo {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
body > footer {
|
||||
font-size: 0.9em;
|
||||
text-align: center;
|
||||
color: #444;
|
||||
|
||||
margin-top: 20px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #215499;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
p, li {
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
.highlight, code {
|
||||
background: #eee;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 0px 6px;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
padding: 4px 10px;
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.highlight .nv { color: green; }
|
||||
.highlight .nb { color: #aa0000; }
|
||||
.highlight .o { color: #0000aa; }
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,94 @@
|
|||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="463.81693"
|
||||
height="235.42859"
|
||||
viewBox="0 0 122.71822 62.290483"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="csc-logo.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="175.15937"
|
||||
inkscape:cy="102.1515"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
units="px"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(4.5800272,-1.1265429)">
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot3697"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
|
||||
transform="scale(0.26458333)"><flowRegion
|
||||
id="flowRegion3699"><rect
|
||||
id="rect3701"
|
||||
width="422.5"
|
||||
height="42.857143"
|
||||
x="-0.35714287"
|
||||
y="188.94826" /></flowRegion><flowPara
|
||||
id="flowPara3703" /></flowRoot> <text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.31380939px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30941427"
|
||||
x="59.965858"
|
||||
y="59.398228"
|
||||
id="text3793"
|
||||
transform="scale(0.94662034,1.0563897)"><tspan
|
||||
sodipodi:role="line"
|
||||
x="59.965855"
|
||||
y="59.398228"
|
||||
id="tspan3791"
|
||||
style="fill:#000000;stroke-width:0.30941427"><tspan
|
||||
x="59.965858"
|
||||
y="59.398228"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.76673794px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;stroke-width:0.30941427"
|
||||
id="tspan3789">COMPUTER SCIENCE CLUB</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:#000000;stroke-width:0.13363476"
|
||||
d="M 22.813145,51.915478 C 15.510788,51.152166 8.881966,47.147417 4.8171837,41.043363 -0.73355844,32.707855 -0.70863837,22.023187 4.8810893,13.643401 6.5545698,11.134619 9.0345646,8.6686228 11.615849,6.9466558 20.303918,1.1508732 31.595821,1.4455264 40.007142,7.6875039 c 1.057815,0.7849976 2.747658,2.2859304 2.665801,2.3677871 -0.02511,0.02511 -0.583202,0.200698 -1.24021,0.390204 -0.657014,0.189506 -1.801522,0.633669 -2.543358,0.98703 -5.215035,2.484092 -8.894135,7.320645 -9.861116,12.96345 -0.273018,1.593194 -0.279471,4.412351 -0.01368,5.972511 0.41629,2.44348 1.384009,4.860719 2.802353,6.99992 0.737883,1.112906 3.657079,4.142679 3.991483,4.142679 0.117361,0 0.622075,-0.35175 1.121587,-0.781666 2.748278,-2.36537 4.7658,-5.745509 5.595456,-9.374577 0.233352,-1.020722 0.35582,-2.113414 0.449326,-4.009042 0.193765,-3.928116 0.694399,-6.416611 1.869872,-9.294524 1.230037,-3.011502 2.931466,-5.528537 5.415285,-8.011178 2.994541,-2.993122 6.156068,-4.9269102 10.058643,-6.1524957 5.432946,-1.7061915 11.573261,-1.4045336 16.827137,0.8266742 1.076175,0.4570267 1.100376,0.4607812 1.531922,0.2376213 0.85307,-0.4411403 3.274518,-1.2355986 4.791361,-1.5720088 9.158951,-2.0313014 18.616536,1.3071781 24.546336,8.664731 3.4471,4.277068 5.38565,9.80875 5.38565,15.367997 0,9.430491 -5.46941,18.118547 -13.962634,22.179375 -8.998592,4.302458 -19.428523,2.829838 -27.043935,-3.818382 -0.94026,-0.820843 -1.07887,-0.991873 -0.868624,-1.071785 0.137591,-0.0523 0.791384,-0.255987 1.452877,-0.452646 4.35247,-1.293982 8.190847,-4.532196 10.325698,-8.711189 1.421786,-2.783163 1.944021,-4.938692 1.952395,-8.058555 0.01193,-4.450059 -1.303504,-8.101533 -4.149794,-11.519141 -0.904012,-1.085467 -2.614628,-2.646144 -2.900368,-2.646144 -0.254399,0 -1.915461,1.480663 -2.730309,2.433786 -2.116836,2.47605 -3.449074,5.204479 -4.046781,8.287833 -0.142052,0.732795 -0.312682,2.462446 -0.383313,3.885575 -0.181787,3.66286 -0.592007,5.719271 -1.697921,8.51162 C 64.31724,49.135932 49.903666,55.345126 37.274633,50.249902 l -1.493547,-0.602575 -0.515707,0.263094 c -0.888058,0.453054 -3.147272,1.187071 -4.731353,1.537216 -2.611517,0.577249 -5.183364,0.733089 -7.72089,0.467841 z m 4.596084,-6.94196 c 0.661493,-0.07973 1.260218,-0.200202 1.330502,-0.267729 0.07992,-0.07679 -0.09888,-0.36023 -0.477348,-0.756706 -4.035714,-4.227753 -6.398996,-10.335011 -6.398996,-16.536466 0,-5.992865 2.232109,-11.949733 6.074469,-16.211032 0.484357,-0.537169 0.849889,-1.026439 0.812294,-1.087268 -0.03759,-0.06083 -0.684215,-0.1860407 -1.436938,-0.2782487 -1.569067,-0.19221 -3.775844,-0.110905 -5.381608,0.1982767 -5.78396,1.113672 -10.729172,5.14021 -12.9668264,10.557979 -2.1139419,5.118234 -1.7466685,10.871088 0.9986117,15.641951 3.5361957,6.145353 10.4076377,9.5875 17.4458397,8.739243 z M 50.0339,44.725363 c 5.310259,-1.088562 9.951098,-4.68956 12.32308,-9.561931 1.143704,-2.349317 1.659363,-4.625747 1.80113,-7.951267 0.103537,-2.428814 0.261517,-3.714438 0.665649,-5.416997 0.917641,-3.865928 2.669916,-7.321897 5.273538,-10.400876 0.69864,-0.826195 1.028612,-1.312579 0.917217,-1.351986 -0.09569,-0.03385 -0.683561,-0.1233677 -1.306377,-0.1989227 -6.087388,-0.7384737 -12.210669,1.7959857 -15.972695,6.6111837 -2.496674,3.195612 -3.808756,6.982678 -3.808756,10.99322 0,6.031681 -2.542109,12.475446 -6.586262,16.694937 -0.532093,0.555162 -0.534075,0.561035 -0.216022,0.640019 1.608772,0.39951 4.810379,0.372922 6.909498,-0.05738 z m 42.121373,0.0605 c 6.924173,-1.379196 12.316407,-6.635559 13.915297,-13.564655 0.39257,-1.701276 0.4828,-4.78865 0.1917,-6.559417 C 104.71995,15.279803 96.148843,8.7448916 86.812388,9.8325353 c -0.770361,0.08974 -1.446292,0.1913727 -1.502071,0.2258447 -0.05578,0.03447 0.364045,0.604001 0.932939,1.265621 5.003099,5.818596 7.028931,13.578409 5.491051,21.033102 -0.866055,4.198106 -2.859624,8.164732 -5.756756,11.454272 -0.751549,0.853345 -0.774975,0.900885 -0.48002,0.974104 1.450649,0.360111 4.85077,0.360306 6.657742,5.29e-4 z"
|
||||
id="path3723"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
|
@ -0,0 +1,247 @@
|
|||
<?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"
|
||||
viewBox="0 0 223.33333 56"
|
||||
height="56"
|
||||
width="223.33333"
|
||||
xml:space="preserve"
|
||||
version="1.1"
|
||||
id="svg2"><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" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs6"><clipPath
|
||||
id="clipPath32"
|
||||
clipPathUnits="userSpaceOnUse"><path
|
||||
id="path34"
|
||||
d="m 0,0 167.5,0 0,42 L 0,42 0,0 Z" /></clipPath></defs><g
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,0,56)"
|
||||
id="g10"><g
|
||||
transform="translate(45.9624,26.0979)"
|
||||
id="g12"><path
|
||||
id="path14"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 3.223,0 2.826,-9.246 3.066,9.286 2.574,0 3.064,-9.286 2.829,9.246 3.141,0 -4.666,-13.754 -2.611,0 -3.081,8.933 -3.086,-8.933 -2.614,0" /></g><g
|
||||
transform="translate(71.4436,26.1007)"
|
||||
id="g16"><path
|
||||
id="path18"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 2.772,0 5.851,-13.757 -3.14,0 -1.249,3.066 -5.774,0 -1.25,-3.066 -3.065,0 m 9.017,5.719 -1.813,4.427 -1.814,-4.427" /></g><g
|
||||
transform="translate(83.3424,23.2318)"
|
||||
id="g20"><path
|
||||
id="path22"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 -4.155,0 0,2.769 11.318,0 0,-2.769 -4.154,0 0,-10.889 -3.009,0" /></g><g
|
||||
transform="translate(92.7909,26.0016)"
|
||||
id="g24"><path
|
||||
id="path26"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 10.302,0 0,-2.669 -7.316,0 0,-2.772 6.44,0 0,-2.677 -6.44,0 0,-2.868 7.413,0 0,-2.672 -10.399,0" /></g><g
|
||||
id="g28"><g
|
||||
clip-path="url(#clipPath32)"
|
||||
id="g30"><g
|
||||
transform="translate(106.4226,26.0016)"
|
||||
id="g36"><path
|
||||
id="path38"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 6.246,0 c 1.735,0 3.081,-0.487 3.98,-1.387 0.76,-0.759 1.17,-1.83 1.17,-3.117 l 0,-0.042 c 0,-2.206 -1.189,-3.591 -2.927,-4.235 l 3.335,-4.877 -3.513,0 -2.926,4.371 -2.358,0 0,-4.371 -3.007,0 m 6.049,7.024 c 1.465,0 2.304,0.78 2.304,1.932 l 0,0.038 c 0,1.288 -0.9,1.952 -2.363,1.952 l -2.983,0 0,-3.922" /></g><g
|
||||
transform="translate(121.1346,26.0016)"
|
||||
id="g40"><path
|
||||
id="path42"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 3.003,0 0,-10.927 6.396,0 0,-2.731 -9.399,0" /></g><g
|
||||
transform="translate(130.9953,19.1345)"
|
||||
id="g44"><path
|
||||
id="path46"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 0,0.04 c 0,3.88 3.063,7.063 7.283,7.063 4.211,0 7.238,-3.142 7.238,-7.025 l 0,-0.038 c 0,-3.886 -3.065,-7.066 -7.279,-7.066 C 3.028,-7.026 0,-3.884 0,0 m 11.376,0 0,0.04 c 0,2.337 -1.715,4.291 -4.134,4.291 -2.42,0 -4.099,-1.913 -4.099,-4.253 l 0,-0.038 c 0,-2.341 1.717,-4.295 4.14,-4.295 2.416,0 4.093,1.911 4.093,4.255" /></g><g
|
||||
transform="translate(146.3582,19.1345)"
|
||||
id="g48"><path
|
||||
id="path50"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 0,0.04 c 0,3.88 3.063,7.063 7.276,7.063 4.217,0 7.241,-3.142 7.241,-7.025 l 0,-0.038 c 0,-3.886 -3.063,-7.066 -7.278,-7.066 C 3.024,-7.026 0,-3.884 0,0 m 11.377,0 0,0.04 c 0,2.337 -1.716,4.291 -4.138,4.291 -2.417,0 -4.097,-1.913 -4.097,-4.253 l 0,-0.038 c 0,-2.341 1.718,-4.295 4.134,-4.295 2.42,0 4.101,1.911 4.101,4.255" /></g><g
|
||||
transform="translate(53.5874,32.9135)"
|
||||
id="g52"><path
|
||||
id="path54"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 0,3.596 1.385,0 0,-3.561 c 0,-1.024 0.512,-1.554 1.357,-1.554 0.846,0 1.358,0.513 1.358,1.51 l 0,3.605 1.384,0 0,-3.55 c 0,-1.907 -1.07,-2.842 -2.76,-2.842 C 1.034,-2.796 0,-1.852 0,0" /></g><g
|
||||
transform="translate(62.7537,36.5094)"
|
||||
id="g56"><path
|
||||
id="path58"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 1.277,0 2.949,-3.875 0,3.875 1.367,0 0,-6.294 -1.179,0 -3.047,4.002 0,-4.002 -1.367,0" /></g><path
|
||||
id="path60"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 72.283,36.51 1.385,0 0,-6.294 -1.385,0 0,6.294 z" /><g
|
||||
transform="translate(77.0661,36.5094)"
|
||||
id="g62"><path
|
||||
id="path64"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 1.527,0 3.173,-4.432 4.819,0 6.311,0 3.768,-6.338 l -1.224,0" /></g><g
|
||||
transform="translate(86.7115,36.5094)"
|
||||
id="g66"><path
|
||||
id="path68"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 4.748,0 0,-1.232 -3.372,0 0,-1.276 2.967,0 0,-1.231 -2.967,0 0,-1.324 3.415,0 0,-1.231 -4.791,0" /></g><g
|
||||
transform="translate(97.8873,33.4526)"
|
||||
id="g70"><path
|
||||
id="path72"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c 0.674,0 1.061,0.36 1.061,0.891 l 0,0.017 c 0,0.593 -0.414,0.9 -1.088,0.9 l -1.375,0 0,-1.808 m -1.385,3.057 2.877,0 c 0.8,0 1.421,-0.225 1.834,-0.64 0.35,-0.35 0.539,-0.844 0.539,-1.437 l 0,-0.018 c 0,-1.016 -0.548,-1.654 -1.348,-1.951 l 1.537,-2.248 -1.618,0 -1.349,2.015 -1.087,0 0,-2.015 -1.385,0" /></g><g
|
||||
transform="translate(103.5326,31.1336)"
|
||||
id="g74"><path
|
||||
id="path76"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 0.818,0.979 c 0.567,-0.467 1.159,-0.764 1.88,-0.764 0.566,0 0.907,0.225 0.907,0.593 l 0,0.019 c 0,0.35 -0.215,0.53 -1.267,0.799 C 1.07,1.95 0.252,2.301 0.252,3.55 l 0,0.019 c 0,1.142 0.917,1.897 2.203,1.897 0.916,0 1.699,-0.288 2.337,-0.8 L 4.072,3.622 C 3.516,4.009 2.967,4.243 2.437,4.243 1.907,4.243 1.628,4 1.628,3.695 l 0,-0.018 C 1.628,3.263 1.898,3.129 2.986,2.85 4.261,2.517 4.981,2.058 4.981,0.962 l 0,-0.018 C 4.981,-0.305 4.028,-1.007 2.669,-1.007 1.718,-1.007 0.755,-0.675 0,0" /></g><path
|
||||
id="path78"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 112.146,36.51 1.385,0 0,-6.294 -1.385,0 0,6.294 z" /><g
|
||||
transform="translate(118.9331,35.2324)"
|
||||
id="g80"><path
|
||||
id="path82"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 -1.915,0 0,1.277 5.214,0 0,-1.277 -1.915,0 0,-5.016 -1.384,0" /></g><g
|
||||
transform="translate(127.4285,32.6979)"
|
||||
id="g84"><path
|
||||
id="path86"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 -2.419,3.811 1.619,0 1.501,-2.525 1.528,2.525 1.573,0 -2.417,-3.785 0,-2.507 -1.385,0" /></g><g
|
||||
transform="translate(144.3397,33.3448)"
|
||||
id="g88"><path
|
||||
id="path90"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 0,0.017 c 0,1.079 -0.791,1.979 -1.907,1.979 -1.113,0 -1.886,-0.88 -1.886,-1.96 l 0,-0.019 c 0,-1.077 0.79,-1.977 1.906,-1.977 C -0.773,-1.96 0,-1.079 0,0 m -5.242,0 0,0.017 c 0,1.791 1.412,3.255 3.355,3.255 1.941,0 3.334,-1.447 3.334,-3.236 l 0,-0.019 c 0,-1.788 -1.411,-3.254 -3.354,-3.254 -1.941,0 -3.335,1.448 -3.335,3.237" /></g><g
|
||||
transform="translate(148.761,36.5094)"
|
||||
id="g92"><path
|
||||
id="path94"
|
||||
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 4.792,0 0,-1.258 -3.408,0 0,-1.341 3.003,0 0,-1.258 -3.003,0 0,-2.437 -1.384,0" /></g><g
|
||||
transform="translate(26.7662,1.8769)"
|
||||
id="g96"><path
|
||||
id="path98"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 -0.368,0.171 c -4.085,1.89 -7.381,4.637 -9.535,7.94 -5.163,7.923 -5.334,16.107 -5.514,24.772 -0.014,0.656 -0.028,1.315 -0.044,1.974 l -0.021,0.896 30.947,0 -0.022,-0.896 C 15.427,34.194 15.412,33.531 15.4,32.871 15.218,24.211 15.046,16.029 9.884,8.111 7.736,4.813 4.445,2.068 0.367,0.171" /></g><g
|
||||
transform="translate(26.6949,26.9619)"
|
||||
id="g100"><path
|
||||
id="path102"
|
||||
style="fill:#ffd74f;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 -12.126,-9.545 c -1.948,6.035 -1.894,12.346 -2.051,18.773 l 28.29,0 C 13.957,2.785 14.03,-3.5 12.067,-9.55" /></g><g
|
||||
transform="translate(36.5139,12.2649)"
|
||||
id="g104"><path
|
||||
id="path106"
|
||||
style="fill:#ffd74f;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c -0.298,-0.531 -0.619,-1.059 -0.962,-1.586 -2.156,-3.311 -5.359,-5.763 -8.882,-7.398 -3.537,1.635 -6.738,4.087 -8.897,7.398 -0.336,0.515 -0.941,1.55 -0.941,1.55 l 9.864,7.87" /></g><g
|
||||
transform="translate(18.3941,31.344)"
|
||||
id="g108"><path
|
||||
id="path110"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C -1.432,0.304 -2.708,1.369 -2.4,2.721 -2.397,2.733 -2.456,3.07 -2.579,3.116 -2.589,3.12 -2.609,3.159 -2.63,3.164 -2.685,3.178 -2.73,3.201 -2.776,3.235 -2.792,3.247 -2.859,3.269 -2.859,3.292 -2.885,3.237 -2.88,3.186 -2.917,3.137 -2.931,3.118 -2.952,3.091 -2.972,3.08 -2.998,3.067 -3,3.043 -3.019,3.025 -3.128,2.917 -3.07,2.753 -3.053,2.63 -3.049,2.599 -3.035,2.56 -3.073,2.553 -3.119,2.545 -3.082,2.565 -3.136,2.599 c -0.012,0.008 -0.03,0.028 -0.043,0.034 -0.022,0.01 -0.112,0.022 -0.127,0.044 -0.017,0.024 -0.01,0.032 -0.031,0.051 -0.049,0.044 -0.055,0.133 -0.09,0.225 -0.007,0.016 -0.021,0.096 -0.021,0.114 0,0.092 -0.234,0.239 -0.144,0.163 C -3.56,3.204 -3.597,3.267 -3.721,3.298 -3.8,3.318 -3.892,3.314 -3.98,3.303 -3.999,3.299 -4.017,3.284 -4.03,3.274 -4.121,3.204 -4.205,3.119 -4.323,3.114 c 0.019,0.014 0.03,-0.01 0.039,-0.021 0.056,-0.073 0.016,-0.163 0.049,-0.243 0.033,-0.079 0.091,-0.138 0.158,-0.193 0.064,-0.05 0.179,0.016 0.228,-0.073 0,0.003 0.107,-0.025 0.002,-0.13 C -4.039,2.26 -4.253,2.417 -4.413,2.056 -4.171,2.161 -4.144,1.792 -4.042,1.779 -3.58,1.715 -3.229,1.634 -2.975,1.166 -2.82,0.88 -3.252,0.867 -2.862,0.8 -2.663,0.767 -2.53,0.666 -2.43,0.525 c 0.106,-0.148 0.12,-0.346 0.233,-0.484 0.082,-0.099 0.112,-0.118 0.211,-0.201 0.045,-0.037 0.187,-0.074 0.24,-0.088 0.053,-0.014 0.085,-0.04 0.136,-0.058 0.054,-0.02 0.111,-0.039 0.157,-0.076 0.038,-0.033 0.136,-0.066 0.158,-0.112 0.041,-0.078 0.008,-0.157 0.051,-0.237 0.013,-0.022 0.074,-0.002 0.099,-0.01 0.024,-0.01 0.079,-0.012 0.093,-0.01 0.094,0.023 0.117,0.029 0.187,0.037 0.106,0.012 0.094,-0.021 0.233,-0.014 0.029,0 0.04,-0.023 0.081,-0.023 0.026,0 0.073,-0.028 0.081,-0.004 0.041,0.132 0.11,0.258 0.188,0.387 0.077,0.127 0.071,0.139 0.168,0.274 C -0.125,-0.098 0.012,-0.002 0,0" /></g><g
|
||||
transform="translate(14.8192,31.177)"
|
||||
id="g112"><path
|
||||
id="path114"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.42,-0.227 0.363,-0.784 0.741,-0.964 1.414,-1.285 2.217,-1.505 2.932,-1.153 2.773,-1.651 2.949,-2.067 2.88,-2.123 2.655,-2.303 1.972,-2.089 1.534,-1.916 1.233,-1.795 0.989,-2.243 0.656,-2.204 c 0.018,0.038 0.055,0.154 0.033,0.225 -0.053,0.161 -0.094,0.208 -0.363,0.178 -0.174,-0.021 -0.102,-0.163 -0.362,-0.292 -0.104,0.062 -0.324,0.13 -0.355,-0.066 -0.016,-0.091 -0.199,0.318 -0.161,0.386 0.17,0.306 0.204,0.377 0.192,0.443 -0.02,0.101 -0.39,0.237 -0.437,0.152 -0.114,-0.201 -0.453,0.649 0.546,0.594 -0.269,0.173 -0.238,0.204 -0.175,0.409 0.008,0.028 -0.093,0.135 -0.162,0.062 -0.022,0.079 0.032,0.165 0.094,0.173 C -0.33,0.082 -0.168,0.091 0,0" /></g><g
|
||||
transform="translate(16.8083,33.2369)"
|
||||
id="g116"><path
|
||||
id="path118"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.607,-0.14 1.514,0.643 2.04,-0.28 1.652,-0.139 0.502,-0.754 0,0" /></g><g
|
||||
transform="translate(21.8818,31.8949)"
|
||||
id="g120"><path
|
||||
id="path122"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c -0.012,-0.79 -0.831,-1.644 -0.167,-2.397 -0.271,0.004 -0.593,0.098 -0.782,0.252 -0.105,0.086 -0.082,-0.377 -0.068,-0.472 0.013,-0.082 -0.503,0.487 -0.698,0.348 -0.547,-0.394 -0.785,-0.557 -1.6,-0.586 -0.225,-0.009 -0.344,-0.191 -0.407,-0.389 -0.185,0.377 -0.048,1.236 0.058,1.616 0.289,1.046 1.337,1.356 2.18,1.856 0.605,0.36 0.863,1.062 0.833,1.747 C -0.224,1.439 0.009,0.672 0,0" /></g><g
|
||||
transform="translate(18.0276,22.9928)"
|
||||
id="g124"><path
|
||||
id="path126"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c 0.102,-0.022 0.026,-0.107 -0.014,-0.134 -0.084,-0.055 -0.142,-0.124 -0.194,-0.207 -0.041,-0.062 -0.069,-0.129 -0.054,-0.206 0.011,-0.057 0.029,-0.107 0.051,-0.158 0.014,-0.031 0.043,-0.05 0.066,-0.076 0.01,-0.01 0.047,-0.057 0.048,-0.061 -0.022,0.08 0.09,0.16 0.116,0.145 0.522,-0.302 0.552,0.311 0.865,0.519 0.133,0.089 0.432,-0.013 0.355,-0.285 0.312,0.167 0.403,0.585 0.646,0.848 C 2.422,0.967 3.173,1.353 3.887,1.669 3.628,1.943 3.249,2.173 3.056,2.487 2.961,2.642 2.847,2.947 3.058,2.891 3.935,2.662 4.427,3.197 4.524,3.888 5.823,3.72 6.161,4.948 6.337,5.877 6.421,6.327 6.668,6.366 6.399,7.133 6.286,7.454 6.975,7.559 6.858,8.113 6.825,8.266 6.635,8.42 6.524,8.439 6.63,8.139 6.131,8.065 6.076,7.942 5.991,7.751 5.868,7.598 5.851,7.398 5.428,7.983 5.771,8.689 6.168,9.237 6.748,10.036 7.95,9.616 8.456,9.1 8.465,9.359 8.265,9.688 8.1,9.847 8.574,9.908 9.087,9.618 9.734,9.961 c 0.372,0.198 0.748,0.368 0.923,0.808 C 9.864,10.66 8.79,11.271 8.076,11.395 6.745,11.626 5.851,10.718 5.374,9.634 4.9,8.553 5.204,7.745 5.719,6.937 5.848,6.732 5.262,6.866 5.03,6.747 4.805,6.63 4.714,6.352 4.764,6.106 5.048,6.412 5.801,6.224 5.869,5.702 5.962,4.998 5.252,3.972 4.566,4.28 3.832,4.609 3.416,5.383 3.172,6.255 2.545,5.715 1.384,6.161 0.846,5.633 0.333,5.131 1.645,4.791 2.155,4.555 2.343,4.466 2.531,4.274 2.5,4.037 1.7,4.507 0.737,3.974 0.785,3.119 0.82,2.481 1.601,2.084 2.253,2.03 2.524,2.008 2.687,1.705 2.357,1.499 1.779,1.138 1.135,0.735 0.512,1.389 0.408,1.498 0.034,1.429 -0.039,1.231 -0.076,1.135 -0.087,0.986 -0.072,0.889 -0.038,0.949 0.001,1.033 0.054,1.025 0.115,1.018 0.19,0.952 0.182,0.906 0.127,0.587 -0.292,0.794 -0.423,0.545 -0.426,0.54 -0.433,0.534 -0.436,0.529 -0.444,0.508 -0.455,0.491 -0.464,0.472 -0.549,0.303 -0.667,0.196 -0.457,0.065 c -0.005,0.031 0.104,-0.136 0.102,-0.165 0.01,0.155 0.17,0.152 0.17,0.152 l 0.093,-0.011" /></g><g
|
||||
transform="translate(15.3212,26.0008)"
|
||||
id="g128"><path
|
||||
id="path130"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c -0.083,0.026 -0.169,-0.005 -0.25,-0.042 -0.052,-0.023 -0.115,0.002 -0.146,-0.051 -0.02,-0.032 -0.032,-0.068 -0.022,-0.105 0.006,-0.018 0.014,-0.056 0.031,-0.067 -0.11,0.009 -0.213,0.083 -0.297,0.158 -0.027,0.025 -0.043,0.052 -0.07,0.079 -0.017,0.019 -0.015,0.05 -0.026,0.075 -0.012,0.025 -0.006,0.054 -0.007,0.08 -0.003,0.075 -0.005,0.153 0.029,0.223 0.016,0.031 0.032,0.065 0.055,0.093 0.018,0.022 0.035,0.04 0.056,0.06 0.056,0.054 0.118,0.096 0.193,0.117 0.108,0.033 0.225,0.023 0.33,-0.022 C -0.043,0.562 0.056,0.566 0.142,0.542 0.188,0.529 0.275,0.663 0.212,0.678 -0.061,0.744 -0.06,0.819 -0.162,1.094 -0.209,1.148 -0.271,1.086 -0.298,1.058 -0.299,1.587 0.328,1.621 0.591,1.412 0.979,1.099 0.687,0.489 1.164,0.32 1.413,0.232 1.676,0.164 1.933,0.272 2.393,0.468 1.934,0.932 2.082,1.324 2.383,2.114 3.05,2.157 3.844,1.394 3.134,1.159 2.802,0.218 3.19,-0.401 2.564,-0.155 1.774,-0.568 1.334,-0.85 1.743,-0.44 1.168,-0.109 1.024,-0.182 L 0.849,-0.303 C 0.765,-0.409 0.759,-0.519 0.656,-0.62 0.598,-0.676 0.565,-0.687 0.49,-0.707 0.385,-0.734 0.321,-0.725 0.229,-0.665 0.211,-0.654 0.156,-0.678 0.145,-0.692 0.094,-0.753 0.144,-0.784 0.142,-0.807 c -0.01,0.008 -0.075,0.061 -0.084,0.069 -0.06,0.043 -0.128,0.083 -0.164,0.142 -0.038,0.062 -0.063,0.215 -0.02,0.3 0.04,0.083 0.124,0.108 0.18,0.164 0.052,0.053 -0.011,0.135 -0.074,0.144" /></g><g
|
||||
transform="translate(30.5651,32.9824)"
|
||||
id="g132"><path
|
||||
id="path134"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c 0.057,-0.036 -0.004,-0.139 -0.069,-0.157 -0.076,-0.021 -0.183,0.011 -0.25,-0.015 -0.298,-0.109 -0.299,-0.845 -0.258,-0.759 0.045,0.094 0.266,0.033 0.407,0.004 0.231,-0.046 0.406,0.422 0.557,0.409 0.359,-0.032 0.694,-0.478 0.831,-0.772 0.024,-0.053 -0.15,-0.055 -0.162,-0.235 0.489,0.045 0.902,-0.272 1.254,-0.563 0.173,0.3 0.346,0.485 0.542,0.68 C 2.117,-0.693 0.656,-0.472 0.881,0.831 0.911,0.999 0.722,1.146 0.638,1.228 0.543,1.319 0.327,1.325 0.194,1.355 0.333,1.067 0.082,1.039 0.117,0.581 0.117,0.565 0.076,0.576 0.061,0.582 -0.027,0.619 -0.102,0.675 -0.186,0.726 -0.261,0.773 -0.332,0.761 -0.416,0.749 -0.466,0.741 -0.513,0.718 -0.556,0.688 -0.625,0.638 -0.66,0.574 -0.709,0.504 -0.719,0.491 -0.728,0.475 -0.739,0.464 -0.754,0.448 -0.786,0.399 -0.788,0.374 -0.75,0.378 -0.631,0.368 -0.611,0.337 -0.577,0.283 -0.576,0.223 -0.535,0.172 -0.486,0.107 -0.443,0.105 -0.37,0.075 -0.255,0.026 -0.153,0.004 -0.028,0.015" /></g><g
|
||||
transform="translate(32.4656,33.5074)"
|
||||
id="g136"><path
|
||||
id="path138"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.458,0.034 0.913,0.386 1.421,-0.209 1.327,-0.164 1.218,-0.149 1.161,-0.195 0.6,-0.647 -0.082,-0.495 -0.442,0.067 -0.295,0.089 -0.118,-0.009 0,0" /></g><g
|
||||
transform="translate(34.4505,31.8424)"
|
||||
id="g140"><path
|
||||
id="path142"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c 0.755,0.381 1.516,0.688 1.827,1.623 0.06,0.183 0.2,-0.272 0.208,-0.297 0.4,-1.142 -0.395,-2.276 -0.233,-3.441 -0.264,0.163 -0.564,0.274 -0.854,0.283 -1.036,0.03 -1.281,-0.599 -1.339,-0.541 -0.285,0.287 -1.1,0.534 -1.04,0.479 C -1.915,-1.446 -0.519,-0.265 0,0" /></g><g
|
||||
transform="translate(32.3895,24.246)"
|
||||
id="g144"><path
|
||||
id="path146"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.103,-0.16 -0.034,0.091 0.084,-0.181 0.629,0.048 1.195,0.31 1.797,0.065 1.53,1.292 2.427,1.59 2.497,1.773 2.611,2.069 2.012,2.654 1.561,2.49 0.985,2.284 1.225,1.558 1.117,1.05 1.057,0.769 0.708,0.562 0.419,0.663 -0.057,0.826 -0.249,1.269 -0.366,1.768 -0.445,2.1 -1.09,2.139 -1.23,1.868 -1.625,1.097 -0.994,1.957 -1.035,1.373 -1.042,1.273 -1.498,1.348 -1.6,1.001 -1.669,0.765 -1.445,0.607 -1.163,0.524 -1.112,0.509 -1.218,0.641 -1.147,0.671 -1.096,0.69 -0.89,0.58 -0.913,0.565 -1.185,0.4 -1.255,0.015 -0.77,-0.153 -0.767,-0.154 -0.805,-0.014 -0.769,0.013 -0.389,0.296 0.006,-0.009 0.006,0" /></g><g
|
||||
transform="translate(24.1812,16.4836)"
|
||||
id="g148"><path
|
||||
id="path150"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.454,-0.209 0.601,0.016 1.198,0.112 1.28,0.126 1.616,-0.092 1.714,-0.204 1.117,-0.298 0.388,-0.819 0,0" /></g><g
|
||||
transform="translate(23.9382,16.0061)"
|
||||
id="g152"><path
|
||||
id="path154"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C -0.027,0.031 -0.067,0.043 -0.104,0.058 -0.141,0.075 -0.181,0.089 -0.224,0.094 -0.234,0.097 -0.31,0.114 -0.321,0.118 -0.324,0.091 -0.288,0.021 -0.309,0.004 -0.356,-0.04 -0.373,-0.029 -0.412,-0.087 -0.426,-0.11 -0.44,-0.132 -0.446,-0.158 -0.457,-0.21 -0.479,-0.27 -0.487,-0.329 c -0.001,-0.03 0.012,-0.102 0.018,-0.128 0.004,-0.015 0.036,-0.08 0.045,-0.097 0,0 0.072,-0.078 0.069,-0.075 0.084,-0.086 0.014,-0.036 0.118,-0.139 0.053,-0.049 -0.024,-0.135 -0.074,-0.122 -0.352,0.102 -0.401,0.51 -0.721,0.634 -0.232,0.09 -0.567,-0.091 -0.603,-0.445 0.079,0.023 0.161,-0.007 0.176,-0.073 0.086,-0.357 0.609,-0.143 0.622,-0.395 0.009,-0.164 -0.392,0.029 -0.55,-0.077 -0.21,-0.14 -0.237,-0.541 -0.053,-0.775 0.19,0.18 0.427,-0.084 0.612,0.047 0.129,0.093 0.176,0.224 0.308,0.283 0.402,0.177 0.52,-0.193 0.431,-0.566 0.218,0.101 0.728,0.207 0.846,0.239 0.211,0.058 0.221,0.546 0.48,0.726 -0.368,0.001 -0.822,0.161 -0.924,0.52 -0.011,0.038 0.016,0.082 0.019,0.125 0.009,0.137 -0.003,0.27 -0.056,0.395 -0.005,0.013 -0.018,0.03 -0.028,0.047 -0.014,0.019 -0.027,0.04 -0.041,0.061 -0.036,0.051 -0.091,0.074 -0.143,0.108 -0.022,0.015 -0.052,0.019 -0.069,0.042" /></g><g
|
||||
transform="translate(21.2365,13.474)"
|
||||
id="g156"><path
|
||||
id="path158"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c 0.161,-0.313 -0.632,0.188 -0.93,-0.275 -0.094,-0.149 -0.043,-0.484 -0.043,-0.673 0.182,0.166 0.363,-0.149 0.704,0.153 0.037,-0.034 0.078,-0.055 0.026,-0.108 -0.125,-0.127 -0.196,-0.286 -0.129,-0.437 0.041,-0.099 0.323,-0.299 0.325,-0.281 0.03,0.203 0.378,0 0.432,0.4 0.024,0.166 0.072,0.441 0.312,0.34 0.218,-0.09 0.263,-0.337 0.212,-0.583 0.348,0.115 0.96,0.472 1.326,0.207 0.491,-0.354 1.298,-0.501 1.873,-0.68 C 3.726,-1.671 3.605,-0.98 3.669,-0.53 2.763,-0.708 1.814,-0.678 0.975,-0.29 0.745,-0.183 0.776,0.082 0.707,0.3 0.628,0.546 0.319,0.774 0.038,0.752 -0.112,0.74 -0.474,0.424 -0.406,0.408 -0.429,0.414 -0.429,0.362 -0.44,0.339 c 0.068,0.043 0.154,0 0.185,-0.073 0.022,-0.052 0.044,-0.107 0.087,-0.15 C -0.117,0.067 -0.028,0.055 0,0" /></g><g
|
||||
transform="translate(23.4055,8.5282)"
|
||||
id="g160"><path
|
||||
id="path162"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.176,0.215 0.322,0.101 0.398,0.099 0.583,0.092 0.57,-0.166 0.551,-0.331 1.27,0.017 1.955,0.514 2.8,0.332 2.309,0.846 2.483,1.95 3.178,2.087 3.18,2.087 2.729,2.16 2.683,2.19 2.078,2.574 1.338,2.939 0.933,2.136 0.73,1.737 1.102,1.414 1.379,1.085 1.429,1.026 1.348,0.989 1.284,0.972 0.622,0.803 -0.596,0.704 -0.65,1.693 -0.656,1.792 -0.911,1.874 -1.076,1.87 -1.566,1.855 -1.558,1.232 -1.502,1.274 -1.396,1.356 -1.068,1.326 -1.108,1.076 -1.144,0.844 -1.6,1.2 -1.782,0.964 -1.935,0.77 -1.93,0.447 -1.822,0.231 c -0.021,0.079 0.071,0.137 0.12,0.145 0.507,0.085 0.537,-0.092 0.386,-0.582 -0.011,-0.038 0.15,-0.349 0.257,-0.377 -0.009,0.003 -0.007,0.071 0.008,0.094 0.014,0.025 0.039,0.042 0.065,0.051 0.054,0.017 0.111,0.015 0.167,0.03 0.026,0.008 0.046,0.025 0.072,0.039 0.039,0.025 0.066,0.062 0.095,0.097 0.118,0.149 0.222,0.339 0.421,0.358 0.091,0.008 0.15,-0.032 0.229,-0.083" /></g><g
|
||||
transform="translate(28.6573,6.2339)"
|
||||
id="g164"><path
|
||||
id="path166"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.463,0.461 0.799,1.075 1.295,1.525 0.752,1.846 0.077,2.18 0.005,2.899 0,2.947 0.081,3.001 0.099,2.992 0.856,2.568 1.876,2.534 2.422,3.307 2.861,3.932 3.053,4.945 3.911,5.004 3.625,5.552 3.947,6.185 4.416,6.475 4.257,6.534 4.054,6.665 3.875,6.631 3.66,6.595 3.566,6.301 3.319,6.256 3.708,7.566 2.957,9.395 1.514,9.362 1.244,9.356 0.893,9.14 0.804,8.844 0.722,8.565 0.679,8.214 0.88,7.975 1.352,7.409 1.693,6.793 1.544,6.047 1.88,6.336 2.191,6.764 2.18,7.221 2.178,7.334 2.384,7.252 2.416,7.3 2.81,7.878 2.166,8.235 1.824,8.6 1.729,8.697 1.969,8.85 2.001,8.839 3.237,8.469 3.354,6.946 2.824,5.955 2.683,6.132 2.16,6.073 1.983,6.134 2.561,5.841 2.411,5.801 2.387,5.704 2.344,5.53 1.824,5.606 1.724,5.477 1.55,5.256 1.419,5.158 1.406,4.421 1.646,4.68 1.96,5.073 2.301,4.898 3.029,4.524 2.265,3.265 1.578,3.057 0.991,2.88 0.449,3.066 0.086,3.577 -0.44,4.316 -0.059,5.21 -0.432,5.961 -0.742,5.883 -0.672,5.477 -0.833,5.55 -1.406,5.815 -1.731,6.427 -2.145,6.939 -2.316,6.878 -2.392,6.718 -2.558,6.726 -2.803,6.737 -3.265,6.812 -3.364,6.689 -3.478,6.546 -3.561,5.507 -2.55,5.13 -1.864,4.874 -1.32,4.646 -0.888,4.11 -1.178,4.088 -1.279,4.227 -1.516,4.236 -1.749,4.244 -1.896,4.154 -2.072,4.064 -2.24,3.977 -2.438,3.646 -2.404,3.383 -2.247,2.125 -0.769,2.108 -0.089,1.311 0.028,1.177 -0.267,0.63 -0.545,0.409 -0.782,0.219 -1.351,0.694 -1.258,1.096 -1.184,1.416 -1.959,1.632 -2.231,1.264 -2.123,1.277 -2.096,1.206 -2.106,1.156 -2.154,0.858 -1.786,0.847 -1.798,0.697 -1.816,0.489 -1.995,0.784 -2.136,0.811 -2.45,0.873 -2.76,0.764 -2.944,0.513 -2.999,0.439 -3.122,0.317 -3.068,0.189 c 0.24,0.115 0.364,-0.257 0.588,-0.141 0.134,0.068 0.246,0.189 0.409,0.147 0.065,-0.017 0.133,-0.105 0.074,-0.143 -0.436,-0.28 -0.785,-0.672 -0.469,-1.118 0.008,0.104 0.09,0.177 0.157,0.196 0.127,0.036 0.295,-0.052 0.419,-0.011 0.203,0.07 0.098,0.269 0.176,0.415 0.121,0.227 0.533,0.602 0.764,0.328 0.043,-0.049 0.009,-0.233 -0.115,-0.234 0.128,0.001 0.242,-0.124 0.351,-0.1 0.03,0.006 0.063,0.006 0.091,0.02 0.024,0.011 0.053,0.017 0.071,0.037 0.051,0.052 0.11,0.105 0.118,0.187 0.094,-0.008 0.212,-0.017 0.273,0.063 0.06,0.079 0.134,0.142 0.198,0.202" /></g><g
|
||||
transform="translate(26.5492,15.3331)"
|
||||
id="g168"><path
|
||||
id="path170"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.81,0.228 1.71,0.647 1.905,1.548 2.15,1.4 2.227,1.064 2.23,0.859 2.249,-0.269 1.755,-1.244 1.995,-2.427 2.02,-2.559 2.265,-2.979 2.154,-2.929 2.019,-2.869 1.735,-2.601 1.577,-2.725 1.381,-2.88 1.394,-3.121 1.3,-3.066 0.944,-2.848 0.567,-2.529 0.393,-2.116 0.327,-1.959 0.355,-1.625 0.311,-1.673 0.04,-1.968 -0.514,-2.031 -0.924,-2.094 c 0.094,0.084 0.178,0.42 0.162,0.49 -0.322,0.162 -0.787,-0.391 -0.778,-0.32 0.017,0.178 0.036,0.234 0.053,0.282 C -1.246,-0.935 -0.793,-0.219 0,0" /></g><g
|
||||
transform="translate(19.9531,34.1083)"
|
||||
id="g172"><path
|
||||
id="path174"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.034,0.015 0.052,0.039 0.048,0.043 -0.247,0.455 -0.601,0.415 -0.749,0.047 -0.852,-0.2 -0.26,-0.121 0,0 M 0.575,0.438 C 0.785,0.444 0.94,0.574 1.073,0.715 1.063,0.597 1.236,0.43 1.172,0.303 1.091,0.145 0.889,0.051 0.85,-0.097 0.767,-0.398 1.009,-0.692 0.832,-0.991 0.312,-1.87 -0.824,-1.579 -1.6,-1.774 c 0.053,0.095 -0.013,0.236 -0.071,0.275 0.344,-0.045 0.801,0.031 0.894,0.291 0.114,0.321 0.17,0.558 0.019,0.823 -0.248,0.437 -0.764,0.232 -1.153,0.081 -0.06,0.27 0.194,0.434 0.34,0.472 0.411,0.108 0.783,0.286 1.166,0.429 0.334,0.125 0.638,-0.167 0.98,-0.159" /></g><g
|
||||
transform="translate(35.002,34.2648)"
|
||||
id="g176"><path
|
||||
id="path178"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.032,0.019 -0.026,-0.025 0.001,0.003 -0.321,0.163 -0.737,0.374 -0.885,-0.055 -0.992,-0.369 -0.278,-0.15 0,0 M 0.514,-1.377 C 0.403,-1.474 0.218,-1.471 0.092,-1.557 0.015,-1.61 -0.054,-1.667 -0.134,-1.714 c -0.037,-0.024 -0.148,-0.073 -0.189,-0.083 -0.113,-0.03 -0.089,-0.017 -0.193,-0.03 -0.063,-0.009 -0.092,-0.011 -0.155,-0.011 -0.061,0 -0.253,-0.006 -0.314,-0.005 -0.148,0.003 -0.173,-0.006 -0.321,0.016 -0.085,0.013 -0.167,0.037 -0.246,0.064 -0.054,0.017 -0.111,0.028 -0.168,0.029 0.006,0.059 0.014,0.124 0.06,0.162 0.062,0.054 0.074,0.006 0.164,0.014 0.004,0 0.127,-0.01 0.132,-0.01 0.021,0 0.046,0.001 0.067,0.004 0.04,0.006 0.072,0.013 0.106,0.031 0.045,0.021 0.093,0.033 0.133,0.065 0.014,0.012 0.03,0.024 0.044,0.038 0.03,0.027 0.07,0.042 0.096,0.076 0.085,0.102 0.148,0.202 0.157,0.334 0.008,0.099 0.016,0.2 -0.002,0.3 -0.003,0.016 -0.006,0.032 -0.007,0.047 -0.006,0.077 -0.044,0.151 -0.082,0.223 -0.225,0.429 -0.765,0.009 -1.136,0.028 0,0.082 -0.007,0.233 0.034,0.286 0.265,0.341 0.672,0.173 0.884,0.33 0.713,0.527 0.902,0.147 1.646,-0.059 C 0.799,0.073 1.12,0.213 1.331,0.303 1.383,0.326 1.382,-0.01 1.355,-0.079 1.266,-0.315 1.023,-0.302 0.937,-0.515 0.812,-0.824 0.792,-1.261 0.464,-1.418" /></g><g
|
||||
transform="translate(26.5934,17.0555)"
|
||||
id="g180"><path
|
||||
id="path182"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C 0.127,-0.047 0.505,0.161 0.641,0.238 0.675,0.257 0.698,0.289 0.724,0.316 0.726,0.319 0.722,0.327 0.716,0.328 0.608,0.351 0.51,0.359 0.405,0.37 0.325,0.38 0.265,0.434 0.186,0.449 0.165,0.454 0.146,0.451 0.124,0.443 0.094,0.431 0.083,0.41 0.059,0.398 0.02,0.38 -0.034,0.38 -0.069,0.348 -0.104,0.317 -0.135,0.286 -0.145,0.241 -0.159,0.189 -0.148,0.111 -0.11,0.067 -0.083,0.03 -0.04,0.014 0,0 M 0.979,0.577 C 1.308,0.499 1.668,0.488 1.881,0.776 1.987,0.33 1.577,0.273 1.501,0.056 1.386,-0.277 1.393,-0.609 1.071,-0.781 0.43,-1.122 -0.371,-1.532 -1.107,-1.592 c 0.006,0.09 -0.056,0.254 0.062,0.261 0.258,0.011 0.458,0.202 0.516,0.355 0.081,0.211 -0.011,0.726 -0.202,0.826 -0.222,0.118 -0.417,-0.062 -0.62,-0.151 -0.085,0.225 0.266,0.599 0.817,0.566 -0.014,0.001 0.273,0.314 0.26,0.304 0.36,0.247 0.754,0.123 1.253,0.008" /></g><g
|
||||
transform="translate(37.5694,20.7538)"
|
||||
id="g184"><path
|
||||
id="path186"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C -0.011,0.109 0.26,0.432 0.267,0.67 0.292,1.477 0.779,1.857 0.793,2.72 0.796,2.944 -0.135,3.156 -0.176,3.64 -0.195,3.881 -0.275,4.229 -0.034,4.223 0.275,4.218 0.579,4.273 0.797,4.466 1.771,5.324 0.949,6.495 0.831,7.531 0.805,7.758 1.225,8.246 1.213,8.407 1.145,9.285 0.982,10.086 1.295,10.948 1.05,10.729 0.976,10.367 0.771,10.182 c -0.1,-0.093 -0.149,0.111 -0.143,0.143 0.125,0.759 0.426,1.422 0.777,2.144 0.416,0.854 0.207,1.549 -0.561,1.804 -0.705,0.235 -1.385,-0.421 -1.462,-1.095 -0.071,-0.619 0.121,-1.36 0.268,-1.865 0.043,-0.149 0.017,-0.318 0.049,-0.448 0.125,0.512 0.14,1.046 0.131,1.588 -0.002,0.131 0.103,0.308 0.239,0.347 0.458,0.133 0.694,-0.199 0.664,-0.456 C 0.632,11.535 0.468,10.914 0.275,10.11 0.054,9.19 0.382,8.279 0.479,7.387 0.126,7.593 -0.256,7.604 -0.392,7.054 -0.466,6.763 -0.202,6.456 -0.122,6.197 -0.114,6.548 0.217,7.028 0.539,6.814 0.935,6.551 0.949,5.291 0.862,5.124 0.67,4.759 0.355,4.498 -0.083,4.629 -0.33,4.7 -0.23,5.066 -0.377,5.22 -1.163,6.032 -1.521,7.004 -1.588,8.125 -1.599,8.29 -1.513,8.721 -1.536,8.731 -2.564,9.154 -3.038,8.732 -3.463,8.125 -3.537,8.309 -3.929,8.566 -3.961,8.509 -4.156,8.147 -4.099,7.49 -3.807,7.236 -3.015,6.551 -2.23,6.092 -1.785,5.112 -2.26,5.05 -2.724,4.913 -2.906,4.415 -3.097,3.897 -3.031,3.175 -2.484,2.965 -2.037,2.793 -1.27,2.986 -1.103,2.964 -0.628,2.902 -0.097,2.492 -0.172,2.044 -0.176,2.021 -0.375,0.974 -0.829,1.234 -1.074,1.374 -0.937,1.949 -1.311,2.038 -1.815,2.161 -1.939,1.457 -1.874,1.517 c 0.16,0.153 0.272,-0.1 0.583,-0.273 -1.056,0.23 -0.727,-0.738 -0.689,-0.631 0.054,0.15 0.245,-0.008 0.624,0.019 0.014,0 -0.082,-0.08 -0.088,-0.088 C -1.503,0.448 -1.532,0.4 -1.575,0.297 -1.596,0.25 -1.594,0.196 -1.587,0.147 c 0.005,-0.053 0.023,-0.098 0.052,-0.143 0.005,-0.01 0.014,-0.018 0.026,-0.024 0.005,-0.001 0.019,-0.026 0.022,-0.026 0.023,-0.002 -0.02,0.074 0.041,0.078 0.015,0.002 0.059,0.008 0.07,0.004 0.029,-0.011 0.065,-0.028 0.095,-0.036 0.026,-0.006 0.055,-0.012 0.084,-0.017 0.073,-0.009 0.099,-0.011 0.161,0.011 0.054,0.018 0.106,0.029 0.157,0.065 -0.068,-0.047 0.075,0.067 0.069,0.055 0.065,0.141 0.106,0.1 0.12,0.125 0.113,0.213 0.21,0.234 0.458,0.204 C -0.208,0.441 -0.163,0.39 -0.148,0.368 -0.13,0.342 -0.079,0.207 -0.088,0.257 -0.071,0.158 -0.009,0.096 0,0" /></g><g
|
||||
transform="translate(29.9568,30.4717)"
|
||||
id="g188"><path
|
||||
id="path190"
|
||||
style="fill:#cd1543;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 0,0 C -0.064,0.04 -0.085,0.139 -0.129,0.179 -0.143,0.194 -0.155,0.21 -0.169,0.227 -0.19,0.248 -0.2,0.28 -0.209,0.312 c -0.044,0.149 -0.022,0.327 0.114,0.427 0.006,0.005 0.005,0.014 0.007,0.02 0.007,0.014 0.027,0.021 0.031,0.032 0.004,0.013 0.027,0.013 0.02,0.03 0.009,-0.005 0.01,0.008 0.014,0.012 C 0.003,0.869 0.005,0.932 -0.047,0.948 -0.004,0.945 0.041,0.946 0.084,0.936 0.101,0.933 0.118,0.928 0.136,0.926 0.303,0.904 0.512,0.828 0.556,0.661 L 0.615,0.595 C 0.789,0.191 0.729,-0.802 1.695,-1.04 2.198,-1.164 2.704,-1.32 3.22,-1.312 3.095,-1.815 3.097,-2.452 3.496,-2.816 2.916,-2.5 2.53,-2.566 2.026,-2.09 1.801,-1.876 1.277,-1.586 1.024,-1.628 0.92,-1.647 1.167,-1.294 0.936,-1.224 c -0.153,0.046 -0.56,0.036 -0.629,-0.069 -0.334,-0.502 -0.686,-0.5 -0.804,-0.602 0.136,0.116 -0.547,0.673 0.301,0.975 0.081,0.029 0.111,0.214 0.011,0.26 -0.166,0.076 -0.305,-0.037 -0.468,-0.134 -0.187,-0.111 -0.231,0.297 -0.525,0.147 -0.062,0.872 0.716,0.946 1.178,0.403 0.032,-0.041 0.162,0.008 0.108,0.054" /></g><g
|
||||
transform="translate(40.4906,34.2664)"
|
||||
id="g192"><path
|
||||
id="path194"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 c -0.119,-5.727 -0.237,-11.233 -1.919,-16.549 l -11.88,9.431 -11.928,-9.458 c -1.693,5.326 -1.809,10.844 -1.928,16.584 -0.011,0.545 -0.023,1.092 -0.036,1.64 l 27.727,0 C 0.023,1.097 0.011,0.548 0,0 m -5.169,-23.437 c -1.95,-2.994 -4.94,-5.498 -8.652,-7.246 -3.717,1.743 -6.712,4.248 -8.666,7.246 -0.327,0.501 -0.631,1.005 -0.917,1.511 l 9.604,7.613 9.561,-7.59 c -0.289,-0.514 -0.598,-1.025 -0.93,-1.534 m -19.98,5.21 11.349,8.997 11.302,-8.973 c -0.285,-0.74 -0.602,-1.477 -0.958,-2.209 l -10.343,8.211 -10.388,-8.236 c -0.357,0.733 -0.676,1.47 -0.962,2.21 m -3.105,20.424 0.007,-0.281 c 0.015,-0.642 0.028,-1.281 0.041,-1.919 0.175,-8.323 0.338,-16.184 5.258,-23.736 2.03,-3.115 5.147,-5.708 9.012,-7.497 l 0.116,-0.055 0.115,0.055 c 3.86,1.795 6.971,4.388 8.997,7.497 4.919,7.549 5.083,15.407 5.257,23.728 0.014,0.64 0.028,1.282 0.043,1.927 l 0.007,0.281" /></g></g></g></g></svg>
|
After Width: | Height: | Size: 34 KiB |
|
@ -0,0 +1,11 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Archives for {{ SITENAME }}</h1>
|
||||
|
||||
<dl>
|
||||
{% for article in dates %}
|
||||
<dt>{{ article.locale_date }}</dt>
|
||||
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
{% endblock %}
|
|
@ -0,0 +1,44 @@
|
|||
{% extends "base.html" %}
|
||||
{% block head %}
|
||||
{{ super() }}
|
||||
{% if article.description %}
|
||||
<meta name="description" content="{{article.description}}" />
|
||||
{% endif %}
|
||||
|
||||
{% for tag in article.tags %}
|
||||
<meta name="tags" content="{{tag}}" />
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section id="content" class="body">
|
||||
<header>
|
||||
<h2 class="entry-title">
|
||||
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
|
||||
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
|
||||
{% import 'translations.html' as translations with context %}
|
||||
{{ translations.translations_for(article) }}
|
||||
</header>
|
||||
<footer class="post-info">
|
||||
<time class="published" datetime="{{ article.date.isoformat() }}">
|
||||
{{ article.locale_date }}
|
||||
</time>
|
||||
{% if article.modified %}
|
||||
<time class="modified" datetime="{{ article.modified.isoformat() }}">
|
||||
{{ article.locale_modified }}
|
||||
</time>
|
||||
{% endif %}
|
||||
{% if article.authors %}
|
||||
<address class="vcard author">
|
||||
By {% for author in article.authors %}
|
||||
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
|
||||
{% endfor %}
|
||||
</address>
|
||||
{% endif %}
|
||||
</footer><!-- /.post-info -->
|
||||
<div class="entry-content">
|
||||
{{ article.content }}
|
||||
</div><!-- /.entry-content -->
|
||||
</section>
|
||||
{% endblock %}
|
|
@ -0,0 +1,7 @@
|
|||
{% extends "index.html" %}
|
||||
|
||||
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
|
||||
{% block content_title %}
|
||||
<h2>Articles by {{ author }}</h2>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ SITENAME }} - Authors{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Authors on {{ SITENAME }}</h1>
|
||||
|
||||
<ul>
|
||||
{%- for author, articles in authors|sort %}
|
||||
<li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
|
@ -0,0 +1,78 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ DEFAULT_LANG }}">
|
||||
<head>
|
||||
{% block head %}
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>{% block title %}{{ SITENAME }}{% endblock title %} | {{ SITENAME }}</title>
|
||||
|
||||
<link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" />
|
||||
{% if FEED_ALL_ATOM %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
|
||||
{% endif %}
|
||||
{% if FEED_ALL_RSS %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
|
||||
{% endif %}
|
||||
{% if FEED_ATOM %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
|
||||
{% endif %}
|
||||
{% if FEED_RSS %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
|
||||
{% endif %}
|
||||
{% if CATEGORY_FEED_ATOM and category %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM|format(category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
|
||||
{% endif %}
|
||||
{% if CATEGORY_FEED_RSS and category %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS|format(category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
|
||||
{% endif %}
|
||||
{% if TAG_FEED_ATOM and tag %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM|format(tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
|
||||
{% endif %}
|
||||
{% if TAG_FEED_RSS and tag %}
|
||||
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS|format(tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
|
||||
{% endif %}
|
||||
{% endblock head %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<a href="https://csclub.uwaterloo.ca">
|
||||
<img class="csc_logo" src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/csc_logo.svg" alt="Computer Science Club" />
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<nav>
|
||||
<ul>
|
||||
{% for title, link in MENUITEMS %}
|
||||
<li><a href="{{ link }}">{{ title }}</a></li>
|
||||
{% endfor %}
|
||||
{% if DISPLAY_PAGES_ON_MENU %}
|
||||
{% for p in pages %}
|
||||
<li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% if DISPLAY_CATEGORIES_ON_MENU %}
|
||||
{% for cat, null in categories %}
|
||||
<li{% if cat == category %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div class="content-wrapper">
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="content">
|
||||
<a href="https://uwaterloo.ca">
|
||||
<img class="uw_logo" src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/uw_logo.svg" alt="University of Waterloo" />
|
||||
</a>
|
||||
<p>Copyright © 2017-2018 — <a href="https://csclub.uwaterloo.ca">University of Waterloo Computer Science Club</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<ul>
|
||||
{% for category, articles in categories %}
|
||||
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
|
@ -0,0 +1,5 @@
|
|||
{% extends "index.html" %}
|
||||
{% block content_title %}
|
||||
<h2>Articles in the {{ category }} category</h2>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{% if GOSQUARED_SITENAME %}
|
||||
<script type="text/javascript">
|
||||
var GoSquared={};
|
||||
GoSquared.acct = "{{ GOSQUARED_SITENAME }}";
|
||||
(function(w){
|
||||
function gs(){
|
||||
w._gstc_lt=+(new Date); var d=document;
|
||||
var g = d.createElement("script"); g.type = "text/javascript"; g.async = true; g.src = "https://d1l6p2sc9645hc.cloudfront.net/tracker.js";
|
||||
var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(g, s);
|
||||
}
|
||||
w.addEventListener?w.addEventListener("load",gs,false):w.attachEvent("onload",gs);
|
||||
})(window);
|
||||
</script>
|
||||
{% endif %}
|
|
@ -0,0 +1,28 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<section id="content">
|
||||
{% block content_title %}
|
||||
<h2>All articles</h2>
|
||||
{% endblock %}
|
||||
|
||||
<ol id="post-list">
|
||||
{% for article in articles_page.object_list %}
|
||||
<li><article class="hentry">
|
||||
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
|
||||
<footer class="post-info">
|
||||
<time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time>
|
||||
<address class="vcard author">By
|
||||
{% for author in article.authors %}
|
||||
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
|
||||
{% endfor %}
|
||||
</address>
|
||||
</footer><!-- /.post-info -->
|
||||
<div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content -->
|
||||
</article></li>
|
||||
{% endfor %}
|
||||
</ol><!-- /#posts-list -->
|
||||
{% if articles_page.has_other_pages() %}
|
||||
{% include 'pagination.html' %}
|
||||
{% endif %}
|
||||
</section><!-- /#content -->
|
||||
{% endblock content %}
|
|
@ -0,0 +1,15 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title }}{%endblock%}
|
||||
{% block content %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
{% import 'translations.html' as translations with context %}
|
||||
{{ translations.translations_for(page) }}
|
||||
|
||||
{{ page.content }}
|
||||
|
||||
{% if page.modified %}
|
||||
<p>
|
||||
Last updated: {{ page.locale_modified }}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,11 @@
|
|||
{% if DEFAULT_PAGINATION %}
|
||||
<p class="paginator">
|
||||
{% if articles_page.has_previous() %}
|
||||
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">«</a>
|
||||
{% endif %}
|
||||
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
|
||||
{% if articles_page.has_next() %}
|
||||
<a href="{{ SITEURL }}/{{ articles_next_page.url }}">»</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
|
@ -0,0 +1,11 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Archives for {{ period | reverse | join(' ') }}</h1>
|
||||
|
||||
<dl>
|
||||
{% for article in dates %}
|
||||
<dt>{{ article.locale_date }}</dt>
|
||||
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
{% endblock %}
|
|
@ -0,0 +1,10 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ SITENAME }} - Tags{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Tags for {{ SITENAME }}</h1>
|
||||
{%- for tag, articles in tags|sort %}
|
||||
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,9 @@
|
|||
{% macro translations_for(article) %}
|
||||
{% if article.translations %}
|
||||
Translations:
|
||||
{% for translation in article.translations %}
|
||||
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
Loading…
Reference in New Issue