From 867171ceaff0cf421f0550faa32114f8a3f945df Mon Sep 17 00:00:00 2001 From: Nils <> Date: Sat, 4 Apr 2020 23:12:09 +0200 Subject: [PATCH] Recreate current site --- .gitignore | 119 +++++++++++++++ README.md | 28 +++- directcontent/index | 24 +++ generate.bash | 89 +++++++++++ modules/10head | 29 ++++ modules/20aftermenu | 6 + modules/90foot | 9 ++ projectinfo2modulepage.py | 54 +++++++ static/.htaccess | 24 +++ static/css/layouts/side-menu.css | 248 +++++++++++++++++++++++++++++++ static/css/pure-min.css | 11 ++ static/images/README.md | 8 + static/images/fluajho.png | Bin 0 -> 8929 bytes static/images/laborejo.png | Bin 0 -> 12314 bytes static/images/patroneo.png | Bin 0 -> 10810 bytes static/images/software-suite.png | Bin 0 -> 9744 bytes static/images/vico.png | Bin 0 -> 7461 bytes static/js/ui.js | 46 ++++++ 18 files changed, 693 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 directcontent/index create mode 100755 generate.bash create mode 100644 modules/10head create mode 100644 modules/20aftermenu create mode 100644 modules/90foot create mode 100755 projectinfo2modulepage.py create mode 100644 static/.htaccess create mode 100644 static/css/layouts/side-menu.css create mode 100644 static/css/pure-min.css create mode 100644 static/images/README.md create mode 100644 static/images/fluajho.png create mode 100644 static/images/laborejo.png create mode 100644 static/images/patroneo.png create mode 100644 static/images/software-suite.png create mode 100644 static/images/vico.png create mode 100644 static/js/ui.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0a4767 --- /dev/null +++ b/.gitignore @@ -0,0 +1,119 @@ +temp/ +out/ + +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + diff --git a/README.md b/README.md index 581771e..83d754a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,27 @@ -# laborejo.org +# Generator for laborejo.org + +An assortment of scripts and programs that pulls in info from our repositories and puts out a website. +Everything is a low-tech as possible while avoiding editing redundant information (e.g. copyright +date on every individual page) + +This is specialized for our own website and *not* a general purpose CMS or static site generator. + +1. `generate.bash` +2. get out/ into your public html +3. ???? +4. profit + + +## Directories + +`static` holds the base structure and all non-generated files such as css and images. These files +do not get parsed, combined or modified but simply cp -r into `out`/. This is done as first step. +If you have conflicting files names later they will overwrite static files. + +`modules` are parts of static html that is the same on every page. + +`directcontent` texts and content exclusively for the website, like a welcome, are also found here. +These are not generated from projects but written directly in these files. Watch out for redundant +information. Dates, version numbers etc. should not be in here. + -An assortment of scripts and programs that pulls in info from our repositories and puts out a website. \ No newline at end of file diff --git a/directcontent/index b/directcontent/index new file mode 100644 index 0000000..98c48ac --- /dev/null +++ b/directcontent/index @@ -0,0 +1,24 @@ +
+
+

Welcome to Laborejo Software Suite!

+
+ +
+

+ Laborejo Software Suite is a group of programs to make music (and also the name of its main program). + Everything is free in every sense of the word: free of cost, free to share and use, free of + spyware or ads, free-and-open-source. +

+

+ The programs have very different target groups. For example: while Laborejo itself is made for + advanced composers with classical background Patroneo is made specificially for beginners who + only know the very basics about music. +

+ +

Help and Support

+

Every program has a comprehensive user manual in multiple languages.

+

You can write an e-mail to info@laborejo.org for any comment or question.

+

For bugs and issues a service has been set up that works without registration. Thank you for your help to make our software better by reporting bugs.

+ +
+
diff --git a/generate.bash b/generate.bash new file mode 100755 index 0000000..5a3c4fe --- /dev/null +++ b/generate.bash @@ -0,0 +1,89 @@ +#!/bin/bash + +set -euf -o pipefail #exit on fail, unset variables, file-globs/expansion and piping problems + +function finish { + read -n 1 -s -r -p "Press any key to continue" +} +trap finish EXIT + +ROOTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +cd "$ROOTPATH" +echo Running from "$ROOTPATH" + +#Create initial structure and data-set +mkdir temp || true #in .gitignore . Make dir, ignore fail if exists for set -e +mkdir -p "out/images" || true #in .gitignore . Make dir, ignore fail if exists for set -e +rm -rf out/ +cp -r static out +cd temp + +#We loop over all projects several times, each stage of the generation. +#Instead of doing one project fully at a time, creating one giant nested loop. +#Administration first, the processing! +PROJECTS=(laborejo patroneo vico fluajho argodejo) #The order here is the order on the page. Each of these gets its own entry. + +#Gather and update data +for PROJECT in ${PROJECTS[*]} template +do + GIT="https://git.laborejo.org/lss/$PROJECT.git" + echo "$GIT" + + if [ -d "$PROJECT" ]; then + cd "$PROJECT" + git pull + cd .. + else + git clone "$GIT" + fi +done +cd "$ROOTPATH" #reset for next step + + +#Generate Menu. n^2 loop. For each project all projects +for PROJECT in ${PROJECTS[*]} +do + echo "" > "temp/$PROJECT/module_menu" #empty file + + #Index/Home is the same for all sub-pages. index is not included in the list so we do not care about the "this is the current page" highlight here. + echo "
  • Home
  • " >> "temp/$PROJECT/module_menu" #automatic newline + + for EACH in ${PROJECTS[*]} + do + TITLE=$(echo "$EACH" | sed 's/[^ ]\+/\L\u&/g') + if [ "$PROJECT" = "$EACH" ]; then + #Special line for ourselves + echo "" >> "temp/$PROJECT/module_menu" #automatic newline + else + echo "
  • $TITLE
  • " >> "temp/$PROJECT/module_menu" #automatic newline + fi + + done +done + +for PROJECT in ${PROJECTS[*]} +do + echo "" > "temp/$PROJECT/module_page" #empty file + +done +cd "$ROOTPATH" #reset for next step + + +#Combine Modules to real html in out/ +for PROJECT in ${PROJECTS[*]} +do + ./projectinfo2modulepage.py "$PROJECT" > "temp/$PROJECT/module_page" + cat "modules/10head" "temp/$PROJECT/module_menu" "modules/20aftermenu" "temp/$PROJECT/module_page" "modules/90foot" > "out/$PROJECT.html" +done + +#Create Home/Welcome page +#A bit of redundancy first. Generate a menu. +echo "" > "temp/index_menu" #empty file +echo "" >> "temp/index_menu" #automatic newline +for EACH in ${PROJECTS[*]} +do + TITLE=$(echo "$EACH" | sed 's/[^ ]\+/\L\u&/g') + echo "
  • $TITLE
  • " >> "temp/index_menu" #automatic newline +done +#Home-Content +cat "modules/10head" "temp/index_menu" "modules/20aftermenu" "directcontent/index" "modules/90foot" > "out/index.html" diff --git a/modules/10head b/modules/10head new file mode 100644 index 0000000..56ab85c --- /dev/null +++ b/modules/10head @@ -0,0 +1,29 @@ + + + + + + + + Laborejo Software Suite + + + + + + +
    + + + + + + + + + diff --git a/modules/90foot b/modules/90foot new file mode 100644 index 0000000..24af588 --- /dev/null +++ b/modules/90foot @@ -0,0 +1,9 @@ + + + +
    + + + + + diff --git a/projectinfo2modulepage.py b/projectinfo2modulepage.py new file mode 100755 index 0000000..b6d78ef --- /dev/null +++ b/projectinfo2modulepage.py @@ -0,0 +1,54 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +This file is called by generate.bash and will put out part of our website. +It pulls the info directly from the projects metada dict. Therefore we need this to be a python +script. + +The projects themselves are oblivious to any html website format and style. We can change the website +at any time as long as the data structures stay the same. + +Output is to stdout, we rely on bash piping in generate.bash to write a file. + +We expect a directory "temp" on our level with each project as lowercase name: +temp/fluajho +temp/patroneo +etc. + +The image file is a static file. At this point in time manually copied into the static/ dir + +""" + +import sys + +project = sys.argv[1] +config = __import__(f"temp.{project}.engine.config", fromlist=["METADATA"]) +META = config.METADATA + +assert META["shortName"] == project, (META["shortName"], project) + +htmlDescription = META["description"].replace("\n\n", "

    \n\n

    ") + +template = f"""

    +
    +

    {META[

    +
    + +
    +

    {htmlDescription}

    + + + +
    +
    +""" + +print (template) #stdout. our job is done + diff --git a/static/.htaccess b/static/.htaccess new file mode 100644 index 0000000..98dd902 --- /dev/null +++ b/static/.htaccess @@ -0,0 +1,24 @@ +RewriteEngine On +RewriteCond %{HTTPS} !=on +RewriteCond %{ENV:HTTPS} !=on +RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] + +#Remove html extension. +#RewriteRule ^([^\.]+)$ $1.html [NC,L] + +#Remove extension and add trailing slash +RewriteEngine On +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^([^/]+)/$ $1.html +RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ +RewriteRule (.*)$ /$1/ [R=301,L] + + +#Old URLs. Don't use them anymore publically. +Redirect /patroneo.git https://git.laborejo.org/lss/patroneo +Redirect /laborejo.git https://git.laborejo.org/lss/laborejo +Redirect /fluajhjo.git https://git.laborejo.org/lss/fluajho +Redirect /vico.git https://git.laborejo.org/lss/vico diff --git a/static/css/layouts/side-menu.css b/static/css/layouts/side-menu.css new file mode 100644 index 0000000..7abd61c --- /dev/null +++ b/static/css/layouts/side-menu.css @@ -0,0 +1,248 @@ +body { + color: #777; +} + +.pure-img-responsive { + max-width: 100%; + height: auto; +} + +/* +Add transition to containers so they can push in and out. +*/ +#layout, +#menu, +.menu-link { + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} + +/* +This is the parent `
    ` that contains the menu and the content area. +*/ +#layout { + position: relative; + left: 0; + padding-left: 0; +} + #layout.active #menu { + left: 150px; + width: 150px; + } + + #layout.active .menu-link { + left: 150px; + } +/* +The content `
    ` is where all your content goes. +*/ +.content { + margin: 0 auto; + padding: 0 2em; + max-width: 800px; + margin-bottom: 50px; + line-height: 1.6em; +} + +.header { + margin: 0; + color: #333; + text-align: center; + padding: 2.5em 2em 0; + border-bottom: 1px solid #eee; + } + .header h1 { + margin: 0.2em 0; + font-size: 3em; + font-weight: 300; + } + .header h2 { + font-weight: 300; + color: #ccc; + padding: 0; + margin-top: 0; + } + +.content-subhead { + margin: 50px 0 20px 0; + font-weight: 300; + color: #888; +} + + + +/* +The `#menu` `
    ` is the parent `
    ` that contains the `.pure-menu` that +appears on the left side of the page. +*/ + +#menu { + margin-left: -150px; /* "#menu" width */ + width: 150px; + position: fixed; + top: 0; + left: 0; + bottom: 0; + z-index: 1000; /* so the menu or its navicon stays above all content */ + background: #191818; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} + /* + All anchors inside the menu should be styled like this. + */ + #menu a { + color: #999; + border: none; + padding: 0.6em 0 0.6em 0.6em; + } + + /* + Remove all background/borders, since we are applying them to #menu. + */ + #menu .pure-menu, + #menu .pure-menu ul { + border: none; + background: transparent; + } + + /* + Add that light border to separate items into groups. + */ + #menu .pure-menu ul, + #menu .pure-menu .menu-item-divided { + border-top: 1px solid #333; + } + /* + Change color of the anchor links on hover/focus. + */ + #menu .pure-menu li a:hover, + #menu .pure-menu li a:focus { + background: #333; + } + + /* + This styles the selected menu item `
  • `. + */ + #menu .pure-menu-selected, + #menu .pure-menu-heading { + background: #1f8dd6; + } + /* + This styles a link within a selected menu item `
  • `. + */ + #menu .pure-menu-selected a { + color: #fff; + } + + /* + This styles the menu heading. + */ + #menu .pure-menu-heading { + font-size: 110%; + color: #fff; + margin: 0; + } + +/* -- Dynamic Button For Responsive Menu -------------------------------------*/ + +/* +The button to open/close the Menu is custom-made and not part of Pure. Here's +how it works: +*/ + +/* +`.menu-link` represents the responsive menu toggle that shows/hides on +small screens. +*/ +.menu-link { + position: fixed; + display: block; /* show this only on small screens */ + top: 0; + left: 0; /* "#menu width" */ + background: #000; + background: rgba(0,0,0,0.7); + font-size: 10px; /* change this value to increase/decrease button size */ + z-index: 10; + width: 2em; + height: auto; + padding: 2.1em 1.6em; +} + + .menu-link:hover, + .menu-link:focus { + background: #000; + } + + .menu-link span { + position: relative; + display: block; + } + + .menu-link span, + .menu-link span:before, + .menu-link span:after { + background-color: #fff; + width: 100%; + height: 0.2em; + } + + .menu-link span:before, + .menu-link span:after { + position: absolute; + margin-top: -0.6em; + content: " "; + } + + .menu-link span:after { + margin-top: 0.6em; + } + + +/* -- Responsive Styles (Media Queries) ------------------------------------- */ + +/* +Hides the menu at `48em`, but modify this based on your app's needs. +*/ +@media (min-width: 48em) { + + .header, + .content { + padding-left: 2em; + padding-right: 2em; + } + + #layout { + padding-left: 150px; /* left col width "#menu" */ + left: 0; + } + #menu { + left: 150px; + } + + .menu-link { + position: fixed; + left: 150px; + display: none; + } + + #layout.active .menu-link { + left: 150px; + } +} + +@media (max-width: 48em) { + /* Only apply this when the window is small. Otherwise, the following + case results in extra padding on the left: + * Make the window small. + * Tap the menu to trigger the active state. + * Make the window large again. + */ + #layout.active { + position: relative; + left: 150px; + } +} diff --git a/static/css/pure-min.css b/static/css/pure-min.css new file mode 100644 index 0000000..474ba32 --- /dev/null +++ b/static/css/pure-min.css @@ -0,0 +1,11 @@ +/*! +Pure v1.0.1 +Copyright 2013 Yahoo! +Licensed under the BSD License. +https://github.com/pure-css/pure/blob/master/LICENSE.md +*/ +/*! +normalize.css v^3.0 | MIT License | git.io/normalize +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{letter-spacing:-.31em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){table .pure-g{display:block}}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class*=pure-u]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-5-5{width:100%}.pure-button{display:inline-block;zoom:1;line-height:normal;white-space:nowrap;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;box-sizing:border-box}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-group{letter-spacing:-.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-button-group{word-spacing:-.43em}.pure-button-group .pure-button{letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-button{font-family:inherit;font-size:100%;padding:.5em 1em;color:#444;color:rgba(0,0,0,.8);border:1px solid #999;border:none transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:focus,.pure-button:hover{background-image:-webkit-gradient(linear,left top,left bottom,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;border-color:#000}.pure-button-disabled,.pure-button-disabled:active,.pure-button-disabled:focus,.pure-button-disabled:hover,.pure-button[disabled]{border:none;background-image:none;opacity:.4;cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;pointer-events:none}.pure-button-hidden{display:none}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-button-group .pure-button{margin:0;border-radius:0;border-right:1px solid #111;border-right:1px solid rgba(0,0,0,.2)}.pure-button-group .pure-button:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.pure-button-group .pure-button:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px;border-right:none}.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 3px #ddd;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 3px #ddd;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=color]:focus,.pure-form input[type=date]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=email]:focus,.pure-form input[type=month]:focus,.pure-form input[type=number]:focus,.pure-form input[type=password]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=text]:focus,.pure-form input[type=time]:focus,.pure-form input[type=url]:focus,.pure-form input[type=week]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;border-color:#129fea}.pure-form input:not([type]):focus{outline:0;border-color:#129fea}.pure-form input[type=checkbox]:focus,.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus{outline:thin solid #129fea;outline:1px auto #129fea}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=color][disabled],.pure-form input[type=date][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=email][disabled],.pure-form input[type=month][disabled],.pure-form input[type=number][disabled],.pure-form input[type=password][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=text][disabled],.pure-form input[type=time][disabled],.pure-form input[type=url][disabled],.pure-form input[type=week][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background-color:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form select:focus:invalid,.pure-form textarea:focus:invalid{color:#b94a48;border-color:#e9322d}.pure-form input[type=checkbox]:focus:invalid:focus,.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{height:2.25em;border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=color],.pure-form-stacked input[type=date],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=email],.pure-form-stacked input[type=file],.pure-form-stacked input[type=month],.pure-form-stacked input[type=number],.pure-form-stacked input[type=password],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=text],.pure-form-stacked input[type=time],.pure-form-stacked input[type=url],.pure-form-stacked input[type=week],.pure-form-stacked label,.pure-form-stacked select,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned .pure-help-inline,.pure-form-aligned input,.pure-form-aligned select,.pure-form-aligned textarea,.pure-form-message-inline{display:inline-block;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 11em}.pure-form .pure-input-rounded,.pure-form input.pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input,.pure-form .pure-group textarea{display:block;padding:10px;margin:0 0 -1px;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus,.pure-form .pure-group textarea:focus{z-index:3}.pure-form .pure-group input:first-child,.pure-form .pure-group textarea:first-child{top:1px;border-radius:4px 4px 0 0;margin:0}.pure-form .pure-group input:first-child:last-child,.pure-form .pure-group textarea:first-child:last-child{top:1px;border-radius:4px;margin:0}.pure-form .pure-group input:last-child,.pure-form .pure-group textarea:last-child{top:-2px;border-radius:0 0 4px 4px;margin:0}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-3-4{width:75%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=color],.pure-group input[type=date],.pure-group input[type=datetime-local],.pure-group input[type=datetime],.pure-group input[type=email],.pure-group input[type=month],.pure-group input[type=number],.pure-group input[type=password],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=text],.pure-group input[type=time],.pure-group input[type=url],.pure-group input[type=week]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form .pure-help-inline,.pure-form-message,.pure-form-message-inline{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu{-webkit-box-sizing:border-box;box-sizing:border-box}.pure-menu-fixed{position:fixed;left:0;top:0;z-index:3}.pure-menu-item,.pure-menu-list{position:relative}.pure-menu-list{list-style:none;margin:0;padding:0}.pure-menu-item{padding:0;margin:0;height:100%}.pure-menu-heading,.pure-menu-link{display:block;text-decoration:none;white-space:nowrap}.pure-menu-horizontal{width:100%;white-space:nowrap}.pure-menu-horizontal .pure-menu-list{display:inline-block}.pure-menu-horizontal .pure-menu-heading,.pure-menu-horizontal .pure-menu-item,.pure-menu-horizontal .pure-menu-separator{display:inline-block;zoom:1;vertical-align:middle}.pure-menu-item .pure-menu-item{display:block}.pure-menu-children{display:none;position:absolute;left:100%;top:0;margin:0;padding:0;z-index:3}.pure-menu-horizontal .pure-menu-children{left:0;top:auto;width:inherit}.pure-menu-active>.pure-menu-children,.pure-menu-allow-hover:hover>.pure-menu-children{display:block;position:absolute}.pure-menu-has-children>.pure-menu-link:after{padding-left:.5em;content:"\25B8";font-size:small}.pure-menu-horizontal .pure-menu-has-children>.pure-menu-link:after{content:"\25BE"}.pure-menu-scrollable{overflow-y:scroll;overflow-x:hidden}.pure-menu-scrollable .pure-menu-list{display:block}.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list{display:inline-block}.pure-menu-horizontal.pure-menu-scrollable{white-space:nowrap;overflow-y:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:.5em 0}.pure-menu-horizontal .pure-menu-children .pure-menu-separator,.pure-menu-separator{background-color:#ccc;height:1px;margin:.3em 0}.pure-menu-horizontal .pure-menu-separator{width:1px;height:1.3em;margin:0 .3em}.pure-menu-horizontal .pure-menu-children .pure-menu-separator{display:block;width:auto}.pure-menu-heading{text-transform:uppercase;color:#565d64}.pure-menu-link{color:#777}.pure-menu-children{background-color:#fff}.pure-menu-disabled,.pure-menu-heading,.pure-menu-link{padding:.5em 1em}.pure-menu-disabled{opacity:.5}.pure-menu-disabled .pure-menu-link:hover{background-color:transparent}.pure-menu-active>.pure-menu-link,.pure-menu-link:focus,.pure-menu-link:hover{background-color:#eee}.pure-menu-selected>.pure-menu-link,.pure-menu-selected>.pure-menu-link:visited{color:#000}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child>td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child>td{border-bottom-width:0} \ No newline at end of file diff --git a/static/images/README.md b/static/images/README.md new file mode 100644 index 0000000..9167563 --- /dev/null +++ b/static/images/README.md @@ -0,0 +1,8 @@ +#Logo Images Origin + +The original .svg sources are in a private repository for copyright reasons. +See out/web , there. + +The websites logos and images are created statically and copied here, by hand. + + diff --git a/static/images/fluajho.png b/static/images/fluajho.png new file mode 100644 index 0000000000000000000000000000000000000000..09398a5931a493fa268e7f26cf295c279b23b0ab GIT binary patch literal 8929 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 literal 0 HcmV?d00001 diff --git a/static/images/laborejo.png b/static/images/laborejo.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed541d6bd75637f3656ff89d07fa29d7ac7173d GIT binary patch literal 12314 zcmZ{KRahHL({_Mj!JXg`++9=L-QC@b6DUwLxCVDGPM|>176=wxixi4$fnrY!rSkPX z{15)?+TGc?cV=e~@12=seO)yIAPo=z01#-XD;oj;Xg>e;Z*X4xTQeN2(*KDUZVEaI z06<43-Y*Bte>#(sx}gpL5Y7$&M8^XFKmS3|X8=I3AOLV-4**CP0svHgrTqqwe+TG} zT58IGzloW%AOC5%e(Dy10080G|0Y@<4ul0tdGKhnO8qPtgI-bpfpS8T+@atf`r-@4r{Z@a*?kiDN_Q6tGMHgEi}BqgSv`t`1>!+)rzB=N zQ3oC6+EzqC2|_IB-9LbQ`RS$NvMJ|2$dI;wUueueBgj-udkg6Mq0&Z4;w6lFcCm0* zJGmEz%#q)&nI= zi6AP+q!ApC7JPqaNP#P_DA%nBm1q!$V-hoUx;csB&=)+(bUU5t%R~MH+J3OmSfv^` zN}TPgrW9@XoL7X)1SKQtb=EdU97oys%UN^lsgzr@=NQjZTXX*S0d}p8FSN?C79?gW zIgIk$B)@hl(Ad<$_ddJ+=fK#=E5>#O+4?#idT5iOuEltiUq~ziBg5e06=J)(QXr}I zE=8Ww!E*&pnCS?18mS$l$te@eyJe^$$9snL1`dzPm~S#kLh%VQosEjR6~(};dh9}_ z`AItT1I3PqF3_LX(Z*a)v++9aadNC!46tP#G3%+D4fB==uqGOh^?oh!5uYrOHwlih(fh4C$Anr>f!3?ThewV zu>y#L@zg|`CeBlw*BfJ&0h~#d352>%Oux@GS1R+6N?flk<|3j_5M8i&-byk4?N|iG zk}pq)_XZ+aZyEi75fhWjh0Z}l%VIVpPOnqoT@uyrd!V7Q@$#qq_ZNS>D89Wr*b|yS z3t<GbtX3>oa69`_*aCe?ttPMBXMS zcvrP44bm8Lea`+7t5{TGvzf-eR9Wuo-4givy$E|WT|eCJ)Y6V3SO@1hd2@Cn{dM`yjbrTrrVk*#kF*g*o%@5eSx{<<=ck&p4? zI{pguInLbeG1m&AsA@)0vCQ63pGzF#vu{HIY5wf}xnp2H_=CX3&(|Azzh?H#H_}4c zSbAxcHWR*0JH+<~vJ3LGy#K3tDtHD?I1Re8_>3g-W;pbU*E3UZ&xv zx?3$3RdC`OG{N$qXU!R*A^{dx&%5OP0Uyt&%~8;K_L>Yu1oQ)LQ<&7b17tHv1R5K+ z{Qb(Am`|OpY$YsTiJfPkIBtt?TS-ITg2--BgU{*M`&{#$X9wLgXt9)p9St{RrR2qd zdM%k=F~TY_*eZbLC3L#>K|mB-L~e+x=2;gJbN4CZ*}$Wn>nr4fYM(?f{PrMG9;G+; z-l+I0CZml-q*eGiHp^4Kata^{)-RT(m$_%4dTXgIh) zRD4tlceiM?GH7?M=;DCmTmMm`4%mRl$@ZUMRn&j8bf!KVtjG=At)BT5(2d&{MRvp+ z{C<_xH*C1Le3+j6LbIhl`6MbodF>%2E{@mvE>2-H0t-8DFa{kNKGRE)B+;T4!dLa0 zdUeSViIsnWK|M2vv@zV#cZM1WhwVp+^VL;(nJt@}-SMBRA%xBZH+OERhjs*e!(+{Wm#!@<35rzz}qTR6tdyEISkJQv}0nC#*@FXxDgfEIV+P`L+|hV9X3z#-M%`Y zIC={L5kfD~mrbYkn*=3cUZMl5sav$B?3&#CwQhxDZm^Rad-H@+T33Qw!)ya44~guk z`a~%mGhvII@B@DhS{OBg9|)wdex?8OouI}*od*7(8~TNIuIF8v`atshL|dV3|G@fw z{_1~ku!ca|9SSHNENqWxR zM=2d+PF3)2w`yoH-SB$`F^Dk+7PxGrCY;dJp5`@y7w4f33JoC#M&c`4r?NvPKPsIm za6hW9P4{pZz0PUPha3=Ac@kjXre)Ez=BVI0*LGw>X*weRK=RWR~eFwaE!D z)2`mW(G`GU|E7$3ZKjpn5u^M_*Xpk8X#den}W z2aPG;{(B^|LCdL!w;U<8M=zZG-Iv-EQc8{MhrQB<&sOYgKC#~`rd(@Mh(I$KX-C2^ zVX;bf3!9ja6&zBpd@47Nc4ju+9tV&?R|z|_S=-4@lDoI=i!299bw6cgxGd3=K56oc zTGC9zy_Rae#Lf2Pj{RrdASDq*C~5rUUx-m3+@6)?z=Bcj+g>`=bb&x@Bq1k6%lGM{ zm=aSszjpW~RB6PN-rhUB$r|N=Us$iEmuS_4)&e=t>nzAJ-(yjJrX#6eBdJ6>|;QNRHGE{~;)<1npe1@iKXjj?g z@-4H(-Q&M$cX)pusQb}WP_cJon2av_%X^`$Mu?v2BK=<}<&kH#tPphYi;DcYA34HQ z#eVwPhoZ>RII%&MjGqMwvZSclD&onLh#sx$E{SeKAtjM>%AtjLlk6%HBWNZzXdJ;w z=sj}Axr8IFqy0M4oG}k)G&#`%GRzDYwtyhX`Ed)C{@PxRKm7|sB-Vdo=&DYrkly#< z%U}-eeXoMHq{O$I#*=TxN|Chk4mgyR7v&ZxY*lblhiSq3y znv@HD21DLKj#|tlk|zCVu5Hioiw-{_yZc&QuS-T1iMls0Jcz&;(VF?4mi-AfC@zDK z3I@l_ru{-OUU8b_cXSJ1$6U{sdH1U79{X~3=?&O#XLHL{G#|xMe*SE@2n&s`R&)x= z;gwlq_FBlCu52@$8afrqNvn&8D2Q2MxGZ=ygi|z?Bg0hFXve+?JMFQY1v#fEv)K?_p(;)3jUPT zGpN)V-pN_{2!)4KhsU?r69RZPxjT-e%g}zwG`%-xjd!i#qFPMxj$-Dpzt_(9R8zX| z$?IihRE5^tn%-W&(A_6g)e7w5&F21MHs_dJhK=YCL=X_eLSyT_BuY zuiYeMt=ry zpRrBV?fLb7$H+S`14 zwf~E@8h8EAjKheU1(Z8;PMHuOp7_iKj=|Th7ofs%s3GySr&>6~oNml+S@4LDRg(5y zqAPyz%bpaK1y-Gkj543(Xu9bxrM1>Es1K-43veW?GFy#qU|^7B_|%mA*K%s4dP9X# zb&F2Ouxlcdyzgi~G`lJmnk?#Ttksr$pmW^fK)_QtQewRz#;%>7Ad^s)X&tj8dW2oU zv@bh!*?!;9dg@!A6pLUkcH76;_#vjDA9ovzv&xW z<|Ag%lv%T@Qg+SfF(#dI6%}6gwLY*=L-~U6O*GPFoA6mu zUAzQ?P6ZBXyT<9kF{^a;wO23~vYyN089F59L3w6Sw=IZ=-{pBcr-2zMv=WMid&4St z*gnNd2yL!j&kcUDd!nc~oBI*=;L6(P3@6KD`(hB44c!c??)I?1fU^z2*5mE`R9t=- zj?49_6R7&5{ayYb|Dk*8+rz2Q7gzQ`sIJ8RP;6-D!UlT+Og<)P88KIlzDJg zHL@-o6)mcoO>9*AXMWX$h1?wVm~_hck0yfiY#|HAYxN7Gentm3Da7A83Emeu7!!rz zrJKxlZv8I5HPJ4h%k0-g*Lqw;4i8{JvyT4s6CT475_D)5pZs711+8KgiAMC zswY?z8Y+_1#0_3 zX|}4Z^hK2cM0SO+)1;6!SnDNenh{IUmPSsWAe$!NO53N%zqG6188PmK!1$$>NiK`3 z(7?X2(LOME)qOF_yzWX}{P9sYztdoH_38#tAu{i`2AWVK-M8o97kXTqo5Z@-71qc! zEjf3_QesWX+mE0edo`oRoWQCS$W6O`UjD>)sjp(Gee8;KseEZBqITuABzFA&fSu4ULgdG*7u8?t$qGG@6wd16tH3RLbYv zQpLM9Is{`>3-uLw43-lBLE*I;YN8fu53kKx=o7xiS!R0(167}<|52iApJQ(@`5;W~ zhN~Y6=$1@Z!!Kl|{c(1N%v`7wQvK!kNkQ6F=3Vjl0}#$M_7RI7k^?Q~wkcvE$-bid z?jH5h^~~xz5fWb?J6aBiS(#%mGWxJqG!t47KX0sWPSS<_QoY*&Wr9{EPz4epn9f_T zFI*h)R{rn24ThCg_uZ0w??Z5jC{D-dER!o+Stz=q>Gh|Ujv=x3I7X|XIwz3^^l2Ejl);jbBdzq#LSw9peX#}YQY90tS@JA%XA4J60UPrg ztbS5n=uvhPQZQ^rJiahdW%T-l2UfzQ8qD>QlWl+DjPGM)YV7O9#NQp_G*VB+G^$g) zVa;QXRRa!Z+n(jXVpD7j{5)3TTN|r$wa##wDPg{Wr2U{V1v);EOEG#A47XGjOsdY5 zY-&AzS!v$FBi6|S@+i=vs+G-=U!)kELtPN=6h7kzHmzfAzL}||5~)E@J{%JK=R}J` zSY1l*a-J|#fhX;J62rq0n)uPIvj~GR6&*AZkZQH&1xeo$tG~q> zcpR#&O`W%84Tm^3t+mC}*J`oITCF%kaS=Z{9}TFxVoA7Q!PZ=}wGUI+cO>dXo0IPg zY-)~Ok=SG`?6xk!D|Wi#Y&%-k@%0+&*W@Qvs*5R{KBQGnMIOS-I%y{s9)6PGY%l&y zzk>OPk=a(>pLBD{7gLNitGcnqx-_7S9NxUNw;($F(QX_q@u_}V*==$}OxUcW+7#Mz z5iRvZYbpIQaaWE>#He<%gT7(mrw~e=K5+k)H1)HA;*mWbm8H^_B(4V|;eKLNZpZ9N z2rRy;Yr%=80#jo&gUI7;<3R?J{By$3VZ4hF(!ww10>>@?g}ieQsIlT?VxSf4Ri^** zuq=MyPc6urET67kex)~k`8CI+Hnhhc8I$hZ;t6W6Pwzf2h+MGLkI#Px3jj(^5sJS{ z9z@ifP>5uomo6~P*U@_@(AFq&g|+OdnHCp zK=sGs_wO=gznIXP{OnEz%BVf^5Q?b{m=Tw#;WxcW>Q*xKT5=(c)$yQ|N2@X@!_SYLx8 z&j6E~)0OfasuqJ|CHq8_odHiQ*RRmJrz16%xOrOP8ks^y#jjBQA>^^NFXHf+DdR<1 zy*~w`J-8xZx{+LO;1(OTsY&qO$>0W7dCZ|o zwP}UbCt^x8Q#NKodfw@2*1O`$u@LQ^tLf!=d?x>I`mfvzTK_S6w;%3|e+r`)Eg>$@ zwC26e2G4swl?=qs+jx}FT@2@IcqKcGdw=xsYU$5z^y0|J3%u-l{wAIlQXdcBT(sRh z9KwCq`KhG~mIeJt|MwkIq8=RCx>}Z6hlk^S2cx6XD}btW*7||thxQdWSC`PFJ$X~3 z{pvV(d#AKwV^>)!l6ek z;J>Dxq+*^fb?|K8A$dKvzq)lZ$h}g2^3JD)?TR%#fQ@RUj)9z2s1#@870q&=#mhR5 z_5`@ktbHfDZXy0}ZI_3gDM6HzQ@p6H>C>f7+K;k~h}yDYCf~zf4RHK%KbC{aMrxm+ zp;`{?8$)IOX7e%6l}nMR+Q97d--M+OIlm>TaUpNRap+F`-_$e9EXJFGYy=Eovxj_% zlS3*Khg{3M>EEC=d(2=tLzO@AhTmRwz}-4qiH?{tdTJoUxbnC{6>LYH3IDaYg}&G% z(iQm+lHkmr8QpaS8I7zKzz#!*FZI%^pE9+7Rkmi>L7bbQ#r%LQf6R^k_<+&c;7R$? znWX9^mXSwxetrUOMrl_Kiih~gYS197Cv1S1F2Co1Wr8-o@iG0Bb9FPi@Q2MlXM({Q z;d4S43^evAc<9G=N2~|52_?)dtX<34|HvTTCf@aA%Y}Ppx2x{rq5f5w=tsPXnU^f_ z$vfWt&hdEfe~+eh@%tFzgHyjSjdbOpfdBSh3z4`J~J4N_BB=b!tC8Eo%V((1)IV}EsS?m_L_Y=P*X-5h zB#$i>K=!ACvPk4PKJAUqt+S&2Hb*K@!qZa?888i>OqD%?@6r*x-t%6U$4q#SF=e?O zmM_Gy+)P;jV1bV0=A>N0+h0sgw}|xa)xEkxyN&eG zC^78-$nL@Fi&v6xbn=jQ#lS)1JKE1ThPrYS25hnH0%ZQB%g|DKI!9bN18u25<-R_F3Or?*8E9V}C_6|DosEVMLj60+U7U?#Mhna(lgA}*4-PDtEqY= zQ8!*)a@S>a>bOy3-Gd0t|5epXCj@dEVuBXx0SPGX$xTL%nKMPRkQzi{Th}o*1fRM5 zmXouExZ^v`tq`yepEcXL&6yVX3vf>M>x?P_jBHEQp;f%ob! za>B?k6Hu(#nnaX_eA~U!h!+WUr3!TC+cQGsrm1I9b48i4qo=VPI)@_DeLy@v>CgHN z&YZW-0kn0zOlVUFTIA#@$|XM5s?6`kA|9*Dw5z~`2OtHZry#7Y4j`t)dondLSYVQO zF+jsH=mTqv=pRi?pcVc*)om}*#kpTJjCFyrxIclyU+R7;n?v;m=NB-#S*Q|zdslMZt<$;1_hJI2BHB zv;W+2wG|ciD~4Cd{Ye(#j^t5n^t}b7V!T^CoSfuM%At72+kh@G)f?-J} zz&hG(L<-B#17sl7ppgAv=A^lVpf}IPaV67@0Z748lbNUSi+AdWzfd*pSWDe4Z97`l zxG;H05pr3LGEAHcjizx~8WGy1D!UVERx;lPy^;ud2)dDk*fsM%m@ z59@Y>@5J)N==FC5V5YCUuQGhWD*7aCWLoy5F?hiR)30Cs*s~_bM_za#`LTz>_^WmW zsruMNYu8A@*aO89ZDxIUI?7e>K3W8X)w1?*EO&{81$=ha8-8aZx%PhT4~?3%fd5-{ zdADPx#ORf<7~|oZj5CT-BHr&M2?x%Uy9Pk>7mU7Wm(Dk`5C^li>5tiNixGlJ8^U4w+ zBi135@23^bHIPR?s1EX@_>pQ3{vcr;j}a8sFVTtNuA&zrB*B?Kfp(H2K_I`+n2WA7 z4(zVjRIs2+EhHlcH}Y`QNZhp(ql)-RXLTsrI~mTVW}HdAsl#*QhV?%j3Wy$fQJ(R# zP%x#o_of7sW1KF(*l0VSVfX|+G4WMHtD+}(3-hQibN((2Hu=Z98RqdNkG#O>oO zQ%46Nyew_zt6M*BF}N-qOrO8-N~60dIApxK8`nvvnFDd4Q1<8|%f6aie;qg$%VwgX zZH^?(`qA~IeeQf_9}-Z}Wm-=Xy8(4oRIXMn@*S>`Lc)gKHw0w*h&!gZH8HM?o@ldz z)9y6LFbzw+0V&vgg3c7phX7eJ<4>ybVoU7X7^WyyT0))*pmY^Z&Nuoqxz-0S_p$nrS!pV7aIA$ zR+AyFj)V`}BO*b#;i1BO=i^?bgxUn=6S}8=FL+hH%|eaL954#uAyTwY41RuK+@Kn~ z-GC&|qgtB*&t7OUZY~-w{vHp5IFoN8^|HP=zS!Uh9aCAs84K2DZbHv3%OS-=xAKBP zsOg@W>b$a#DCt9w0|8%l}&@w zRv)o`s#?ee{E?+ex7=&;ag!tplx_o%2H(-(#b{3~TWsIEpgIb(suFmhxqF#m(;fIMyuLhZ|G@f75-)Zg$U|bEQ@7rax;HwoHx?50wve02#__fN68pgas0B=Q zMoGdLicghQ1)fy)me2N8+}(d&Ng}WaPQvE~%?Ppw;3pmOx2^Zu~ z*Oz*Iol0A+e&q~%AFv#fr67yQmXZhmnXv!xR#V%d36W`{j3YW=X;-R$<1CbBRD?|5 z9%X0RVTzeh<&H7ZHmd)*UhiFAgHNrkHyEuJPa&fu;*s2im4V3?yP_NNn*S}2(Ni{& z2DbM$bxiBGkd$b6kcPz89^li(FC9&2zK*;E47;Va5&r-ZwJ(70hHHQ7ILEuHKL+_T z@0nfajp19F%KrE^uP3^sJNmDrt(N<3FM33Yrqrn9gaIY1;&VDx0|2%}Poxi4{Q4kd z-4ij?u*b=GCycofJTSptenes2<S*U=Xe{8HM%yN-zgL7Gn z0>j-fwyRcK$M&Lm4d{Kq#~ZZ>tawQ*%*a}f1QB>3S zE?+PD6NJ+<^)RG3Aj_ZT6B7Y;R;{kBbj@SB-cw8;uOkpITG`jcqFOm8TDk0z8$_FQ zXe)Lo1=wyoAvjy88|L^0ln>Mq?_vbG4U5)h$xC#cQyHSQj9}E-V=j-OFJ?Sb%d=op z>xrQtwXpS}>^5V;j5vUIC04J#vzM2$TnNy1TT^&XKeVeT)9mmVn|3dh==QlH`}6>dMP@?4~(?=v1rXB|!7L8&kYXzp?fG?n#uW zQPzVIsz7n9RDA3bP%J&dpYe$^SETGTEZM_*zul9Ev^OEL_bD-a_3KCoxh?4%F<108 zXwj@7|7m3Dk!Q6Rt4OW|C#Pf>yj-69RdtrmD}!ngJbnF!6WjxTKagEz<=(LfKe5;H z6EE^~PDnKZ0NzX=b-g||ymq2m8|3+pxHnH5_0GFodBjSfke-ha%;VHPrGW|K65+XH zmU2L_Qla@@A8BXw3$-A`3uJUk4$KmMTnh&3vP4Z4o@7zV3Jwf4edVajLqmllq9kXA z8ET}?uQ)L0c68jof(U^?vo~_{sQRYMa`$6{s)Jm`o#-n>l31x4os;r>Quj70eNdhO zNQ6O^girjMIyS+T1-=A?*|U{}k#M_lOATY?zbh3xGOVQ;Hq~5KRY~}~iE`}`Nib%L z!_;O2NtOhAyO2p8-O-p1Pg6uJ@ZU)dyM8fJx#tT@tJqkGx-&00{xZNpD9mUW>r>+jiG;;+s}+bgEqFPRc` zju5H1=I0}p0UIN!)nhxCtcg0_PMAI((~#RxLYXI+=LY>X0j z!>l$Ye-~pqkc({284$wfpz|-J5ji%+TRn)fIsCB+w@YV{l1-GeVRWL@7{m8FF2ZX( zuvzvuZYQ1lx zPyHkvCJz?Ys4hnDDBGACgHd79G62`Ewp5LlJN(kn%g~X!(x$xTTqZsbmtBVq{1++^ z9S!81LB>Ufx4-kjN`WQ95NUAW9vhqBc^d&Xysfmy1l}%_H(P$uVYcOUJ{WG!zf~jY z&Qc(w%gt%uQn7T`h5$`HISs9rX(WmLamsftPNNdN%G&0X^Mu*>P1gj zuU!N`KSlp_R~=r@mz+kKS#&^!5$>@wR)|VJ@&xwLfOcgQ3@LZD7~SGBdCJCKN$#yv zCNeL1AARL?YWme%%{nRF!Cd$#?+S!y@0j}a=9p#YrUIJS_AIMXO6dYZ`bBQ$z8+eI zLT>6fWH_2^YyHR?IhdVd|JZXUFtG^N-tqWG{+%ZOO zcy>=YRZY@fN??gPxYUO@`gG^sMud$s<6lgw3k*Iyf za;&9C-YVg?gDmgO#roIebAfzbd_9QTDj8BG{1NEXqK|i;hT`^2(B{=p@U2HCGwd*t zRaX3{=e0(KyK2uh*qveIvt!aek+POj%$K3%J4#u7Et50+D5s?T7fN{SSdH@^#k0e$ zn}vlc$`&>M_4xi{6kiXJ+}$FhKJRs?))^4>%!iX8@%cM|r8heGUb|Jv>l(~}K9aQ|zAXA4p>4{~-0a*=il zaQP004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt010qNS#tmY4#WTe4#WYKD-Ig~000McNliruL3N4|8(5r$VMMQe<@KP)&QdFcUMX3sk0mK3b zf^?*WWLTITZq}1XxqG*qvv+S2AYy*|$<6MZIdf*_%ro=M(Zg3nQmXMLjwJykO zM?!N%jS{Mg?vcAAsa1<=$-I`g1TFQuSv5etuk5#S|uf=!@-dv{F{={VzF61@TRxSs`xqGoM%TpRI78Gx60<- z%*CoSYtgJlisr11)h$kPpvJH#o3+SDsJk$85?epld(ym_O4wF%Dx#VZLJ3lCj*=YBsQ|7E}Gpou08Is(`d=Kd`e8I#sPejkSGhlAg{n(6mmGQlN(c zUh_mz>g=WLq;58|nL}Odjt&{7gadMfzyYo+JG^Q;Jw?Q!RkejneRnV0`>JF8#$B2^ z$h*Fi9c(}cx%%48F23sz?zEuf>in|z4t1Vmi&m+Y*fjPfV(at^Gu>YH{%=}4?^nuUk+WhOqUY9T^}58=VzDMw z5v@q;XM&j#%XdDS)M-|uPYelm^&?fzj@bhCaJEx)D@twjrnfAxicJkKDYwf0Ht=JQ z6r{dmaY;G(NIBgL{#}svo|YJ9vd#zipo217Es{Y(wJs68R29P@ZRAS3mZZ)x&IbZ( z+1#onR|h!XM$YhYVRDTzZtL`HwU&?k0IPW0d7ZqMubFB0lGL8|aIs0DoT2nH!!I3T zUnlyTc`&?n21(y>g9;H@UXAy0%~pU zMh%fqe5_zvTxwDn;=>#%oV%PzA&am0IHt3n&dn-m`}rUy*C@%@=k9DlN&Z`6SDB<+ zi}K!Q!|=*|F{E&KZZKV_vEbS@;gxm05=+JdbI%^&x>#bEQ2Yu}?XsMhHh*~SRFrQQ z6C=x<5;3#ZI7f5r(9O6oqNfMBBQHzP+IunOjV~argc0s2>Vcn>JZ&A%MwE0< z5s`NBbM=wWd@w&}@sifv@Csxm8H3blMT@{-Tb3Dq?U?0b9ZQ;?^SBdYuC+a-#r@K5 zh~y6s@Mq&A?@l;SkCN2gY+ND_$)cM<1;3wma=4#K$4(t>HJtAfLmi!WWlc32G0D9) zkGZ>@eVOHKL+uusYXb+kqA2ZXrIH!o+uXnkA zPK$WrUe58;c0okps&KTq=6Cq1vp}nRoa$VkXjE6hJqtaS8;Ipr1x}A$74ipil^bI6 zof=c_I^K`We_2faH40|1y1W`!yFX^8JTmY8EzQWg_NxA2`u;`hMf<8yNP2r&6w|^d zi*_TMM6QvKMDDy2E{rMlh6oAF5oOkezzan+&i2g%x$A$3c>durC63Qq6Wg$znRz+x zFIvA(jVP(r$&v4Jpywi=y2!!pnF>ka^fC=!*3VnH*{D1z92vp$mXZQri`g;U8zE1J zlVezpcdQwie@k=na{WDTpj1W*=>i68h7q}XFNmo};lS$S`Iw%ZRyd2{SR_Z( z7$)h(w&xZvs>`C}?+8JKrPo)O@3j&kU>55|FaY#)Knz*UESn%%3hlkIIW zCQr26*E-?1#tO|v<{1}rrH|F~e(h+#h&+=#6La?zw?(FRcTx!h+0h>IxQJ)BtL>r$ zsP!G1eYB(1!_gmrC zc)nER>aerTyik(bX!=sE25ktux=iis8pFWW=d6Uf*fBCkT?h4kB}TJ9#K=feXf`j_ zuBq19#(6XMyWMKHbL&eRs%>El>lh&85^qQ37?xu;3o*5u&Gc^hVQ>s7)cGX*HZWBB6=Qw}#xU>aN+?9FO(WAA zUE{;p(uO%VLSwVELYR%*<7%fl!oHEEvYEb->C-w8NW2tn2~M#M~89oaU27_(~hvUX*Ag^8Us;f5}@4y`~wOZ1F1n)tM+OHvLDcMnrM zZ<+;>5|?%Cn~h?u*ooZ&?; zE|+$1pL?q<1>5m9RL4$Q<&Ddkp)T^>rwy%)6#nM2P8us`4E4C7%cWz=VPItaCl!&x zx;X=e7fiLl1lvZIc8Hso+Gk?)Dsowg=9s}@bae;bYVl}^eY@2Xm6O8Z&a1#+ zAZe04V)@YJi|r#tYER^e^=2D7KqYy12OvSM4i4NKLOl+$&ommyC zVqZ@ox_nMT$yJ@IYf0)n*A=iwDF=nQ>WvOxQoVb8E3)Oi9p>5P_$oVxDjV6TY>ve) zDRMxKt7~sJa$}C8M^ZeocC=aqv8`?tEPr9@=dnj% zh|43@B{vtj84l06q)f=uC_E9Xpx?7%&*0A=6aB#D1@l@amKE*R;UpJ#eMyJx?c=U0 zGhKYgo=Z6fO3O?|3d@^g=k|`=f#cVW1^<197uAk3KtH?LB;xARE-#wX_A)s9_NY&D zsngwO(Kly8Jg>-+{a)XW zDd%7}mbGO0A`o~hk`Tn!w3luj#F*$2lRmA(@G{JGz71oA8{k_#OlQz00(jY9^V%IH*lmmz z%dFnPZlO9RYQ{nzw~<0h7hQCzcx$|LNa~_i7gc2>*Bzl-dsgAa*Lt;$$M!LqxlGKl4ltw-C++3oNh*48D$M}Vp;;)~X z4(7R>iZ6PkWMYi-S)+q!NIhe&PctRUAhp`n1F~UV*Yeq6Ew^eypug@*C8tT4V`0I3 zR&TO@y46b&bJ=>i(1i^KIlf>84D>QThDrFUZHsghpAQ0!8a(S1w?|szZ|H0%6iLP> zn;a?4sj^<#XLX5T4`&vI&WvBbm$=BL9Z0;E4(}UnYrWNIiJ9f!&=5%^1Fe>~BP_*$ z7*cq{Y|@(CZf;I&HCs(dWP#;_7Guo}hvRI|l(naiL(+>5v57&tV}YsOG2Yae7q)k9 zX6)+hPCTWj!#uTAF}jxz#`?WWA_a;2_=X1xQs((jO#F;Zq{_6RcZ?74>qTL*5@kf= z@4C?Sv3riC#|+0?MSr~|y$4oRV|Jc7$avEt?U4FdzeuZ8h@mm|v;WpYTHqG9)G<%el{XkwI0K74;_Pc}=8U=o=<_-s4_Tk7-_xB!w#5 zxVucbBO}@CX;}e$>9+Z^+c;NRa@?@3>Xb?O4w2&4%CJVH=WHc)T$c8=iw>v8zR;aY zgqY99ctEcmBQDNjGrc2HKQ0j_)P!|PM%n;3yTY@}&=ZBd64x)Q`?{fabDjs?VskWm zC`J+Zl`;a=E-~xpli9T=E#W{r=N;`(t^=0^)lPMA?x2v_u8sAxic^Dh?S$yJ+95e^ zGSH&Y5{()(YSNfH-=NyIF<$$gjMr&O-I-)oYQ-#Y3ufQ;hxR`u25onYP5~H7k)l)y5EezHQCh#^wjB%EJzJ zb#Fn+tqzZr7wutGjM#CVNKc4qZYo*1+vH5C$W;WMFv>4Gv0lfuzDvv&x!M7FD^f!k z!d2N?fR|z_mr{%ktf?kL{%IMG8BIIW{8oIe#dbO$X*}-ZzcaInDD6A9dL3_SQ#F1U(|Hzj`>WKzROP zPFOnKuOc-=gPa!GzxzjcsRaJm9^a~X{{4KcO3OW^r)^@d9U2kuxfHcd&0`o=jpVu8 z5O0T>^8Lv8Yt%S8R+Y1TjGKHr(zcJe(yhQlY;vrmtkzG8!f;J>ZlqV*Fqf39ZQYy| zvA3A+XAunR{&{kmuh=@aP2*fv;UroW+xnDmmTb+don8cmWLWpOKiao`vmy2WKvt~axl$a-UHNx-8*6`nU)+?6SyE-oRY>2==3I^`CEQ!te zsBLsBc*+UpN9Me*U}fm%iijwv^CHeJ=<5X23v!LML#%yK*NC{S%_Xsxx;jx^Y?~H1 zDQ~Zpw!W)Mdf-O|<@NTr$dcwer{K+P?wN>OFBDG+D-J1aVw7iMj)iFdw3_4rzl-tm z`l`oE;#4pX5+hdnUQvu<)piDqC87kSLWGIzEZ z>#W?0Gr+55^3L*D!R9yR>XxOWQfolM$yd%=Yb~S#&+ucroHl%=VZIVtD#t zB|(V`Nnx;yJzlo;fyJKiTj%<@OWoz8i2f-Sa4l0TeUPuZD#U7nf`KQiTOP<=#sMu9{ zq1lmv`7=hBGKrN7!7_sI?Ba5tOeZ3q7Gw2JPW%m&6ST!Vt z&Rg3QpL{mBqPQWoc~Ypy%ev7t6p5BIZgZ%IB5hS`_0_B7Z8y2kA?{JkahHn-RTV2) zyT9xakAs)PK6FWhh0z>8^@A7#z3%!&h_`3?rQ=Ese=1j6-RX6e=!+MZHHeBwB35!8 zjoxZYf|PWPS-i8k3x`NehmIa?W%lri>ZLG8Sw*@)RNJqjyQ=bD-YX`RA;G$c!z5pF zl!KgT^A2r{o4n#W_e4rzx|X>w9lP^t@f%wgY>V>;e}Bu4MUlY?8vVssCpx48o!DIe zaINQ}Msnq(@NTSW?D9b(d;x8XSev0n5MFKjn+WY;qIAzSx{+f865$<5NnJ~ZMzt=4 zi*~zFNRWF<*6t>uMh&XMf!toZ(tFzfCMD2KRe@Zkdzd?udt%|8iBQYaE^Pe7GbN-lSyW~yknD6wu&Pck zhk;wYs6msa@L-`W#P zv)1q_a?i^8PbJmpqSY)kyUu8hnl)*bkqu0e$laN>AIchDq*SX>Yi7|p^oW`2HEPr< zBNImXN#|OYR;xyJp5H~_UhA4|p2Zev(5yKW{{{jd#U8Ue+g-UUA zF4RjhoJxX_^s@g_(q@!720rkPcl^=XM%chm1N4xV(P)k-CVJDm&F9ZR^hx9k{3Py3p?9b-(V%KYC%LRAIfy~-mU#x`p0Fq*~kKvGw& zT5_S~zZfK>RY?gnYpKlOzLHg;qmU$@U-N1!-sY$O%L5}XZv-rp_h9FqRkiGeEENhT zjUZfgqsDkd)QlD1%|E5LLDn+NdInWk--Iq-*y~t{FA9Mr6|Q;-R~5NHS&>Ph)MLgyr4*$5cfCk?jSF#P7 zhG$fPl?{buOI?;Uov!UlEN2vx!aNJ4DtHx1wI1<;9*)<$BDal{PdhlfC)43s zTJ8Aa4g^_=FDZ&i;ePL{>W~xytNX1-{6Sy)c*KnrD6|r$mr#a2T`xFdgxCOII)w5a|C+n_60_&UWt{6Kw6XQ zy|)yM(!-v{e7{|)D66w8KGLExRH@GMM$2k2>I)Q5X*H2&c=b@N#bPZ;hoxlCu5VQ> zEkI*fQd&)@uSiJ9$7!j341G{ zRg*3fc{R`a!8J;$33D`tSF%0QUSG1lhY1bg+iB~y_OcS1H08A{At}(jyu;UhSs0Z) z{WRw;l8ySj#90OQhu^iQlZ!$EZ{S4R>Y>R*quu2z&I@05tDpOi|8ta#I%kBZ4s78P zsgP(=noaSDhw}!@j?VSV+!>)m{8oQK==DZQTGG3IL*a=M|ts5dpXiRR+Tc%Sbs6Y z*Iba(g=hP#)z7>b=HJkvw%1qE3{SZyjMcrh3ngTvq+H}lJNcQ6YInNbH3nW5I?o#dOPrHiQB$rL_)AVey@fgp{LU{d5%|z4Zq#CeRs2@q zB|kDoAaJuEc~#&nTX|9-@Vf6g*-e(1WjJ;WLt2evA!EL2`q6u=;p^} zYH?|vFL8~lHMqr*F1JLpeKEv!S_S4f%XeL2s=%Qj>1ZEV;3|hX(?o&sVPMMDT`wb$ zaicY{rn?2+u!FRd!th}?Il)<;5x4{WU0}9A;7V0UILI3U_k=+cb}>$qzdOnS{;0`( zUsvT+vjhTvc7k)fAaH|(?#?h*ATY{NuChSjwcJ^IE0KrwOc!`Fv}rw2i*M&$JwSuN zvjtHnelGAAFx+Gx7=+clAQ1Q!Ncp?_3LI1WdrjaI8)8$F1g7PD{5CLIV0!NL?5)*h zSkI>dV^ynlpPANopIJ7?B?5utu%kt;#y8aq+#Bj_ex*JP|9+@uft$fLW(Z8NL0F?# z1p*)D0y+NPTLoc^w=&O11|#hjfy2RI?+Hu_!vY_y!I@xRa|F%~`GqaLEifgFW3jf6 z1SaP~>}+V7AB5lkB+%+;Fx2aw(G3YV%SKOXi@*1O=7ga@H#bq>Z{bAK#rr@L|^0G9P;YpT&>k0Khgz_mY_bzrPrCA3-wc%YYQLy zjYq-~>a_@TbG|LWbo0!YjfXl+oj-;)2=&IAZ4rXd04H14Bv<%H7!07j?*mV1#PG6# zYC4544=J=Ez=5{$lf2`uMq1w=HK}n_uImDev6HK8qScv>4PWYLO<`2r>Y2#QEA5#&H5WI*$A#7=LylzJB?lGod2OB8W z2bEgr1{mfC9(HLMr7Gny&th#C>5tZMM>otam}Elk-a8!{9(B@gJG_DKyT|1bTjcC1 z9P^gnk-1+sQb=3Xwk|IUL%F|?{mJ{-F)y_E0MN9gD*k@TtFOk#va7?Bb@f zhJU@VI1H%1qn`fcSqux0F9}K{OxgHCv_!nX{JgaW+QStQoNz|9gN?-4Tzt2ru`bep z@8(vde7s=-w(vK%+e2e0C(1HFDFbZkvRnZD5xQb}UR`FGgg&ux2lJ88%Rr|%E6?>R z>0{@ZirxK0J2|bRKR(G@bEkN*U^VM)bw6@ON#v9OYdBVwW}{bFosRJKzrFyL4G!HpB=RN&^SFo8&&5YHz1X$PCFxG3Ra0?g8Ole(X`b*sO$B1vq-R{LLBjVPn5$h+Y0CIpq@3vq$7?9EXHNO9 zYmBy!87^_>GWBx-zHFrMso%K9qJrZrc9k>+clZQ*3;iq}bfM=}7mTX}ZgLZP z_=U~F;h)vN^ob2Hlx-- z`Z-5NwFCw_Bs^%Tmu~Lzxc!}Cq;8IIZ#WPC%XCA0T*gW_sgDV6abL(D?Q3<%ItV>b zU8J0-C%pzGIvN*7B%{N$BDLgvb|N= z+f})vrWSj|)V!hpz7}cg>Y5v5)mA~B5A)id$bCx|%-Ml)Za2qwN<32lnwlG9-jm?d2u)nl16DY1lp@ z{CVX@h)GrEIMD-kcTnEEnK8?yK9F)k?rfq&?vUGOU8r7_)r%CTdwI%Xn*GbMZblb< z@@kXDFI{Ye6ZP@3kFb&Ta(Ay`U5xV%p@z46j(hK-wrC)y@K48B=)`cRlMJ=bQ^Os@ z8ex0h^%~YFIefRUtcM+^*>?(p(zSTb?*#_O95uC+`0|iK_I%4KX*6kdn#-(?!%TLf zQ=H*ve&Qtzb0E@&*({8*|EAY5IX91|RG}uq$S^CctzfdfiJrcZa{jJt!_K~r~ zc1GDxcJ*vKI;CxMpC!Tt{$#PFAJ{He(|+OlRE?CHu&f=8@~yCUvO;O@Fadko^K%(n z|5fPfI~EHp@I52{WrVGqV}WSeAz3k^)PdNgc8Yd9A+ZHx< zxHrQ?OSUy$AnK%u#2qxjr_*N9I}JeEc%ZH{V^l zO1WOMMHV>AA*PsPu6uJU!&gi;rhpW-cBg6P`p{(WI8Sfv;={1NrhD5Yvn}*sIH-C$ z#mnZJ>?6%4J3Oz}UHsSti!CtO2W|`dptpaRZ=Sh6^`3XkFyCZb*~lB_nCrFN>6>f# zw-0kuQ?(;JWu6ubed2jP(8~Z%p+6XmTWh7OZ@9jKB zsE_r-Q1B_dWigUA&<)KdXv8Yk)v7hr3%436l`CzIi8&s9upwcL=ai(k)nRP|!(i({ zt`$>EGh9E-NLylp7Hb-=LB>a#4Higg@>VDUP1sW4KLwlW8fzP*s|DUSMS%W>hYGT` z{z|CJt6hKV7+?b@Si^lr8JAbu8rIfZtEnc2VuorX)o2Y%%kB+Yy)9)}cxuFi+#w;u zt?tD5XDxWPncbd*h{O@6cMS8f$C=W%RgtihZ@jrva|3)z9 z{|C7ltgx{ipgjNp03~!qSaf7zbY(hYa%Ew3WdJfTGB7PLG%YYRR53R?FgH3gHY+eN zIxsNaI_Vhz001R)MObuXVRU6WZEs|0W_bWIFfuSLFf=VNG*mG+IxsgnGd3$QFgh?W zuV+!E0000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$Q07*qoM6N<$ Eg7Gik>C_5X24ughm1Yk1wXsQvkph2mqYh000uX004zYVV|zl%K|D) zU0D(EFD7MX=taZ!P%-re0PsKmZ%4`E!KZmKV*03RLNJfe(TOlQE$)Oj007n8^|-G8yzipFx!%~?c+Ge1 zn=djlKChIKIGSiOJ&iH^Q|c%>Ja@hJiow#mukNw%{G96K>d(%!yNsIeihi|LfL72P zi3Mw#MlK_he9ay^wg9xQMqo*094%A#EOZlsLoMt$6&yxG!EX_X&3#53mcT3MsKheh zXrQaYKID&>ED-uOO z2G#R?JSvA(Ncn9c1VeLz9XrW6UTkzD;PUL)nV#v5u;CX%454RPkGOy7sw^2vQfe() zNyZ5UxpMq60|V1TlBL@FRDC)cZ;t9jwA23mxmWVpAJ!&ALCw_t1jYBv9YLoONJ==> zX6ReY)X?)p3z-sEN0Bt0R>I$?Tu&Jyu8jAZ!lpi7Ov>@myV+;KZl3eu7kVP~jC}73 zqfth1?T$OvUF$30g%p)%PDe7<0hvP)Mz;RTD~;_m-4&@1aMh6hNRx&gDVk+It7eXhEJ4QMfmtLAmpQR$+YD1lCOC!(mMCl! zTK4<$-%jesD@uMV5kwa^KU!!)_qpi`HPgxR;t5SrKu%qxp45oDYKm&LB*%HtS}?yb z;&)C^l`-;1(2ka5@S!ZL@RxWBF7?y?>Okf$UrEo2#p$^*Mq!Dzc|B}f+JPTEEJk(l zVEXr(V8|odgO$AXSkTEWn|V!U6~!K(nVFvRFgYfkwOZb#P*+$2u9H?0_&BPzJYB60 zo7)+lUfey4zx5yr686CkB%Z<%0hI*0>a^J83iNy`)DaZD#g%jgdlataQR{cc?eFAn zJcH8@2Up^#f}O!9!1S$$f~d6F4CuX1n8k0sc7i1 z-#Q!^xddhWI$pYJPd0Zd2$#0)bRt3kTWCr$F>eyd%lHqX6`seETc$09D zb^LL9TdD!&oaQ43ce%c=jqhHRP+?xc0H$9HRJE9*C^oT*QKOGi==PoYl2IWvBdoek0#xM?55e%1!H z=OwIFa{beAh~awDoOI-3@7v1CSn?q$iuuYaB=_2okKee#Hi3#vVav4lq{zAag0rYg zSZGf0OZv(CWGXzR0;PY=8WE8a?(-^Y&n-S`!5U@?MPv!hYV68b<UL;ttR=bwjh&%=%>TS$_d9ivpilK<-%fJ2p}Y-bK-P4yyas zZSkzoQmGWOXzNSO{vmLo;efBi$sA%PHF51#F!TEl49#kg&RQwT+TV_PauDc9p{Iok zS(9 zsUC*1s2?FxWoTiNmP|exN`IA>n0?Lnj%>GR)bH%sDy_)9<53vWDm+eBEzdH>&F1m3 zXH1t`OZySEP)|x6-b4Qh3mYQ*d&=imt3lB2G%2;|x%&G^+cBmoGHo*xBP1Dik&j!c z#*oBx3OhD4T>^_J#9V&_B z-BwXAHh{+{Yk~EVZ$)-3t2pP8xQOByHLX4PfMPN|lJN1`a@(L#q(qzP^3No&rF-9* zOA`em!sUL@VsFkMhru#YuRr^RlSA>s;H)rEIzVjnSuI;{_$i83Nv#&&`!jn|(G#n5 zu{w;jL`15>cNI)mr8ecUpqQ7Aefcl zDp|>mRN^3MO0nawAb9I2Cph2IspU(7MEYdx7^e&a*j#lB(SDWn7DSKz2x=z>X@jtL zKSh20<|4Xa@$4F{EBLxh=CuYMssCYD zuUfk@)LjTA(WKSYFx4dAop2!!Mj<)TmKD8J+SC9CQ!Vj8-0YxI z^@hu23)|qy-paJ|j!dxYVduMkwMSxeSN0o{`d@lhH}Q}sNM&%2(K9jTEp9VkJzPka z+jHfhhKae8>o+W9IIXlKu0jfdS2i>)CS}p5_Qc-j26C1NY6G1KjFWbqHuWi^mMC(6 zcjJn0iyO(e)S9w!PEYPgqteukWdFRRo*09mh56J759yUlmQ@0;&m=xsT;$5B+bxMA zW-2*3I;c;dFluW^F_uc~zg|!0S*Ynpwfsi#N2J^;DX55n9ib!@Z0Z1kI97qDU{k29eF!_uOYPW^7F~cRPy3 z+j&hQ2uQ?-<*n=!0uGD{^**oB<8vu?X&qY-fU_Bs&KlO2QI76{rCrMYX4}wjPjTD~ zHqvU+c!7bT)A#jwu*3e`_c-Ue7Tb)yj+4!~)2zcP=h3moNl>=enTP0?J@NY%ZliFQ zUV*S5rV30A4HXZg>1uzgg=s4SDVrJior1aM)CpR2Ud^+IeyZ$3?=&}96W6q4W@26t^2ZNwULu~V^eZ(sd)ndZdK8Cb~3 z8R-o{`Wf=gvR2<ME=>BRy-5q0vEgg8Cb+W?8UrI2s8axq8l$I})5j)9DevOwubDbP--T1@kc1yj1%kq62@Tr?^q>RG!h{nw_T zOiAkosf-I&84>2nFAi?Cgnnz~tp~rkehSY}&rSz`W(~k|Z3&B+{T)8+tsTXv<7|Zn zw2r@fA_F6{IN}-|o%F1A{MIWOEd^wvDZiCM|MTBW)(@a#M6?_Q)TC*rqx2__O0h<4xVN-?8@b{S*xM!`-uzfunTCMZri$iQEq;c?|nJi@Qsc ze#+ai^1)tC*XDSbP)N6i;&>xDyiM>S579E}IPx#u4clUh)KGg9l&h6^giS7}-jGvN zuC_t;xbwkY2^_^*fqB!G7M_BI%*Ny!pQ@Q$Q z5=X8^`FE!rOlxxAh&`2)oJ$1V66vJPE3s_pwKgAPKt(`ipj=CjAoR(cWOV5tOx1#? zJDzvWlo#s7a}77Y;yhN5R&ny`$>;=KbSTB&z9ajkPvsIo+%Q__&rp)L&Gm)3 zsFhd0LA5!nDQV5*(s--g8j5_X6xui;AHp44{Z3G!xZOWr#d*0=|6uh7w*4nI{O6m* zq)!l9!v!O14gNVJ9m4_jwl){=?|WsIQw=;6Jt5 zWa+Iz>%~zad==Uf3-_}$*$edt5c@nq$`?^fun8swCf4P0ue}62bYY)7>sbo9;gKTx< zZ=3pFY9ZlB3XF4oZ>M>>kf@aJT5w6^&X+DA^RBnCs5^J;u7%vHh9LHn*Tp9a#?+1{Hj9u`%_Rs$-75ROZWk6a9#Q?1p_;8fah|m0AydtBavMB&Q+FG# zsY|3=STM=!S{R71s*pHJwCBg_+xP-FzVObauA*@ix`h5g)>xirQ2~F~VFQ@<(3IUw z=_M1rB{CX!D&D*|7kKSoyb8?<+I?hoON&8t*C|^{lw4!O@+D9*|=E&0mqXi49^R|5xs}uUB*3gPaUwSa5jcX)7XN4o4XiC52{w4r>XEbq{gPzcb&i zpDmUgr0_y9*2Hw0YZ*&&CNrGxM7qQcfjN^ELmzU5yBa#Q_ji~U&BR!m3?E_kT~p`? zsaY?$M-dv$1GUi|j`eu{O@L~1yP*y#HAfaIR`-z(vUV|qC8k30Ek84TpE?&@V9Rvg z==gU85mR<+G)kf^B^~L1bMs7thhQV_6%u_~zjcjaN2Y9`Dc2T3o3?3nTnL4rLc_n$rK)m1(1_}6AR!U2@0U>4rBWm zpgIykL0}b5%a}yLRfQuf7yjUpp-7xpsXn87TU#3L{N#v^eZZ^&xZYH^+-(oU(5yjCDp}4VW%%TA#=fWru*y#K*Qu`(^ZP+-%91Bq;MPt_FO&c+Vbe9 z%n}8K$-4*l(AK5*SBu_)knymO2NeYd`AbXtg1@Bxt}LwAE~v+q=5&12UaX}r;1`W@ z^VcKhFP=0-p~YV1p;w&)tNH3@ z<5@msNbv<}*_3}~g?bW0n5R_>{nx9b!>&Z`w|yidryTj9$O|eJOiZHuxx;^&PYsD= zC?55PdtitwUb;^2 zCtD<+JCr()G}5ylmx^-Q4lGorOQRuaYK?Wc`1a~qYEA(~pdC-cXjZ<-Nk_Ki>y0dV zg>ONGTJ}vs&>w1vlslbIqsye%Orn2z@_1WEW5{vKW%)dbPDr=b*;nk;%4v+35@;ni|cp#!Y@qw}&+i38%lma|18>FfplmlD-b15~PGyK&VdlJex#tqzn`H~N9ED1^W4 zaYP9Pzg!~CSC|{4Mj0A|XhZT9`GhZwYL8;mf0d~t)R0Qs&^g=_oVGB=nDsFud}4Hq z#0rkA2kiZ^m>8d~8!CWpPbSV&fJ#MTcMY7Hu4bWgWx%n4rKGthd;iO+?hj_OXnvvX z2M-jPVAl5V;H#=vh7TyROcss-DkD*^8EOlUX1xh9RIo+6+lDLQ#3!WRO*`x@arfRQ z%sQl^4LE{y16h()k$i8AG2!4SiwR*6d3p@q)By=r*-bL=wU%gJbfai3supYPn04hb z1F7v8`7@6L83|rdm+VSc?_Zt$DaN8*({Flcv&N}uKBD8|If87wHP3&QP zzr+8XxfE^Cb~de|)vg}P!81|TsB^nB@uvYQtvtCzc6Yn3VSdF*#tCD3jg2FqknlS^ zLWl#c21Xv^sBEm84&1#H;qjf-7bRGtaU5CeLs3el_Hv4%5gT=BAP!VJnYY00unA)w z@P7r(f6a66wR7UVs;5Nr!UK-`8njtyPp53{(Y0op^4ik%-z<@edPL5%!i)t{Zp1XX z;35ny*|=Vw84!&2S`;BKCl>PCEZ!5oXTp!s_#H^RZ->4{B%ifyH{&I0VO-$faf|n8 zBd+_eyOvCiWdsiBRtd|6-E1(e2`j03A9I8TVf-!|@?^8uD8~c-T2HC!i&~<1A)50R z~dB(2|LFiPTO|=zF%q zS&n)ek~VxwrG&-6`UgVcG`Wji-l|upM|WdJY!m&rpXK7kJ1Z|o{!Jt2SKbUiO>lOZ zF0)jbf^9_ZPurzXR++UA$Eb9XD8IDwQ8jbpqQ^LTLPcCj?{pijlX0tbW0jyIZY>`4 z3oxK%7-QgLenX})*O=?!y*mA8%*^XpU>6RsgsQLA2w$6qHrIeAc>Bu<^91={4QwLg zZ$$sX7{D>5T-9k=o1($!l}jj`hYI@~BQ9om_@o$}wzzZCEOL$A=H>iJL_5mt+)oZq ztcjM+cx!celR4#1Nm}ULI3%4lX?cSs!h2hy!B4Wk1oaDhaMS_lFAzk_|C3Rddy!ndU z^S;Pp-@c2)h2EZsNod@$whEU^MvF4T} zfH&ue{o$4ic&J*>;rx(yv06ivB@fZOAVI0LAT-u$@(-@hUp94sZX;&7p>D1h%F3=j zsy^`poV>S2)-X_2YhpDhAU2~-Jin(JL@@)G=)Z@{OkoN^v!D=C&E@t(-G(YqIa`pnqMR_E;2}=#<;l8Um_1D z_Gps9%3=hxPUf|pX1i!6>30+0CKfP3w1E<`fIu5uSV%Jp}~6`*%EX z9wJ7BDqp#`Mj{f&tX}(zYUfe62@lz$5OB*^J{u3uGMH${eE6);b5%7rH-BU7)s6fU zOmg*AS^{ls)+?U*TSO4m>qC<{uWS$z)_Br(;|O^xXwsh1tqJXx(>`g!U!)>Tro)aW z2G`w6nPat$ic>UTgWmQq9D&^o&iNpiEL0jhpId`Vn5W^+U(v~*-8#xk-|-pR7dmuH z5L4DcgTdeD!B%twrLY0<6YEl%PVq_EV*3P;{mbzwHPOhW(&JgE;jL8@?1V4npZvJ$ zh44~X_eay;SEM7}v_jQrAp8+w-*Fu}l6uGhjL1Hb^um<&$kiOP&)?f76)S7`QWWm!oMwBD67IoK` zI3a#*iI~10)~u>{xGIQfvwP1lkm6n3r=S_yN+ z5!KkVW%TT{vtRs0DAX&G#%VmL$sQ0vIRcCZC7!_!s7qr#^a@J+Kd+04!69FX|0&IT z)i3sBL4v6ci$5v5OL&$INBMxXFYXjoj=shQ1eGB!%}_Z=Z-WE(M2!o-uGSL@qo2)j z@TzZ9Zk)xEo9blf4R;kFaZ@68@A%hE|@IG!b>7Dfg19 z+YYxAbe1mc1zy{+*p=S8GhZm20=iYfo$N66qE>Wo?Sy4T%GKdA&=*jdzOkC5k z;64A&6;c7CYKGjBWqOZaBJK4yEsZ)Ou4l*zhWi)JZW0ZF^BB3$|CQ2(~_g9Pd_V=(g;1#!%29?g3%1;X0a7xXQ&Njxe@L{hnu2w>hL@5J|!HvtVBBi8NbP zTM^3qZ|Rg=~dIBX<#bTj2SDgnYIGU z+TWEu(WfAOc7MKrDE&u$S++u^M5S26Y(tn}3YG+(ETWHNPa9XiR+;$ksr|5uB?6k5 z9X}~p6a~_L?o+F;s)w;Ra2{zq>dku3d}VJ!kcbChd&fTWe)S%W=L~0&ns9Y1m%W^1 zj{`_ zR+&(bD`S@`w26=_y{JHCaH2h~5$p6wQ)?~WP2#musJCL`T*Mh-)eD8ZQjwg8 znTqt}5bD{<&zh;sIBX6mNh;-=KBZ}i1>hx?WZr=fy%u$deP?Sz} zzfxyhl^sHX)pMiEe)^x?Yxgz6xKDu?1bGj5Y@m~FwxrtCf~tJI^od~vIDf-48B>&B z%79ZF59}x>;TBG+@5s_JQ7L}bgY6leK`udI+N05sDW5C&+?}F?uHml8yWp&T$R5M0 za8*&;a|5t?ic2W{OOmQ&)?t=$`tRlQ6Ppjj#K#WmV=rOrW&a`ofl^b7tSY6>s~005xYhib#`@b{gWkP+Q^zar6$ zJ0Nn`Fwy`3nlmY{oQUr@mopS@1OP+|0041`0Knh7P~3L_AOr#c{BQ&SlnMZV`~F2; zrYd)ddq_h)ZNP1E=Jba_Gdr=w8?J>)JYVSsX1xrZGdW)}B$b}P3M4-&>^2C3;@tQN`y?M@ddhBTr@ z3D$FYifnP?y*!tG{rm}acq!e5teRSVg-$j%dbOlvPoEH_6)t6prKf!XHfC@O>L)Cl#n{#Fo=g5_?lQ0W++i z$x$GYZct&!+B+$7y^S})y8++iJd{XGIiMZL0Q_%)xAdND{LJxE8VJY?BLW(*+(+p5 zVf(CV`wtc?!1DBHl%|A#zBUbT*6Qs8J8sPD#T`rESF-B`LVP)`Y@2k+`h(VK=G}ZL z6{Jzr^`Eal&py$a!D@pM8kJgTcgNHLlG~=N@u@J*EP#)td}^S>6j7#14jkfOvWHz(3dE z&Nd`Voy)Q&z3i*Av+Ly?m1<&;!Y-uOoqJw%-Qd!!ja|oLca{GnyGKkcFaP^2)~-SA z{HDT%bM^R?I=?%B3IIH~WU4P^k@dbBdYJti+RqOaz{YGD zlnJ#BGROuCn{B3ZPc@|R(tyC|oz-`qHd$L_eZ?Y!UY87H5a zKyu|iPnL?OAMR3pzz4$)lid{5k-xw_qX>4!o_VTHb=xQfa-o*Lx4>@29m{XmMo z{5b^%iXzA4PelZ3H(OeYJvr)I_<(k@^kX4ehu>j@zST63j^F6L6#lxNR73OBKwz5Z zvl%MTypqt6@4$mm`VHQNN7AHlz9^4oDnhj;NysAa5mVX?TPb{7`m53S{sG@-6&gl5l|cOZ>0b$u^7(K|5}8bB#XHGRa5buSk)b5s$@ zQiM_E_E?e3M&?o>F@}Zgxl$_W+j{z`lq#bFDVbHcNP z7I;%>H2H3JyBr6^Ul40pTUcVGR@(^ElI0g>N*9IHn~ zv78-(j_)~!B8fX`O)ad4hJ$-yY7?i%81g@bHk}mvxw#^1AXkS{Ian3{U$S>xMhUx| z*xnT;j(qC_*-y6bBSp(pv=sS$c#>@=yv7}q?!S)}&4K124Urw#hmUFOnEth=ui{Qz zL%3zoO4+;YjF-Bdc~SaG;u!&{Ej4ebrnaLJ01zpw&!5>Oy}YbY1x5PxQ-UEZvrSgb zub1ZHxr=gDA5OF8!q?j7k}NP5ZKz!`+Onsvmp09PONL>spSq+^E442Z1h0A8e;Rw+ zI{gr@)i=;lL`x<`63``8W8+Iew}@apBl6o05zAG|4pw}*c`0y~^mR&F{D=3s2a z1CbHWhA1+Qsl$lp#@ZPNE#xwx2DD3$Z>QkiH(CFfGxQCOw5YjrYsC2N@2L2Bzl#;o{vs?Lb@39h=_vNBGPF?`(KA14Ewy06 z#f_?DPFTXRuYio+OKO2?<^DMMUwcWrp)yPl3$_B&3Pv6;UaIVjl zi!3mE%hF}djj!=yw14LwiHVu?95$)Hpj{6@)l7^Uqx@S+SA7}$U5npz`;kP2|K~#~ zl;HTe)&BGQ;&c_^yo%JaPV=b$#y35+>Xbt&cg?Gl4rx0pnLeuvh~MK0dx%1Lm(KR1 zgmIBz;FaGMO`pl-vka+}ldn^m91Wi{bO}T~wg+DuwK<{}S3@i}RD}{0NQ4xobasT& za%jkMlt8kweNxat!jWD!N!Su+AQt(k`T0K%RN0T0UrU8nLti)?M6RfPz!8@~yF?J@ zikU)rLS0ee-3#B#+u9Y&Ia)h~e0a0MdhstxEDOwX&O90F##+38Cya3hjtOg5?*j@W zWJX9r`)e#K0=Ho2HOpVDs$DACSE@Ee(oCUi-FthZpVC)3Dbg>imXShEaQMYtxx zeMV;xLg7e9=W7Ic>A-|Ylr~0f=Do?jj#V^2`gfq_gHaJa!;oA9zLiA5y)X`5?f6cD zQ^v?!f?ua69Gi?mv5a%@`&!B2?37O}+fi?s#EmZ8J3@rURE6_xtN$$!2%t6!4Wn+s zjn#`$nKFpF-!CHKN~?!*#u#1*d0DIjv**XRDAA8zi#=l$aS(8bBs%LHT)};3NH-dW zSYG|>p^fT!YWXgUBJeHMcrUR03&B@;6t?FR<%Y6nuS;F#BZ>i)Q9p|KgGZA0EMoR%gzW5*3%qE}y(i1?-47~Fu`U(+n9P$k+;)Pxh;H&X&I!5;va3X_^QH}|1%_F& z#KursHA3t#BiK$p&GqeX6=xa-+!+LXP%tf*$?dq^Hf-_ zUyjwtQT9_FM=OsJ1B&@^H<{fzs4M2aLjmDynT#M07f24R!fTJPbS!#@CcxmZJ!s=H zJK~x*tV)`bAJEM_XTp8Gf8wQ(Z+J#*Z-juStUsU;CY>5Rv`2VRy*-tYq|BPj4JFS7smldd<$QEIT;K49i|m)Dh`JQcjHNwN$w1s(YnGf*GX*eWZ#1;``h z4wv&7vv5nZ}$fl_T|)DV}nvRvhvD4H|X_$B4LZEml? z`j%Asdr#f>dU@)|inh^9^%rjjh)}r02=);Arp3e}m{JBEX@ro5@ajfNsn4rF&58g- zLG^I+QYN%xmk}7-qo*vx^k$y|YFl5<60eraCTTN!7LaZa?O@ z@Vuqj(D>x2<;>apm8wCb&5TG6pYk}xn{;n|fr!$FNiNK9U|eU;C@X4bFWRFarDLgJ z-z*t22ocWk<}k~B3ImJCjoh05cw9}^a5a>=XhOp223g=w)TgP|hFO;zDw!I+60*(L zkJf&mbb<{Q*}_e^rT2vf|BeP9VZc5@LOT>!^!gQ55pwk zdR^Hkh^Zl@|4_JYz=;O;hq;e}h#O5fJQXWtFP@DcG-^^rMM!lpk@Pu|LN<*>y)ak4RAcYaGGhH zwUo|H47xZgNE}eDrHZ}?^$Dg_OLJm?r_PJH;cPN}}*9v7c=>?@r zF%ckPjwF&&9Do_-iy|&*x+ua*QJ)NYpDNFiZbheT-Iq_=H5~rAFIdP7U2WnPjV|I} zSM|B!H8mRAdwXm&6n@5f*0Bx3zrDBFpbfc3tbA? zmoLNhm%;?d3Opt?b%OD+&obCYrZAO}CsqcO^L8O!x7FJyC4oZIl)sZTmP!+k0{tv@ ztUe+6{^gQVd3d;-3dY0?m+Q=<`7zt;J<^B~N&=RAYA)7EGNmKAbiPLo4NfW_oCpo( zvf8WHX;F9V>3ji!3f}|8eP^C;0rYy|3xLo1Msmu3ib@$x#rwWJ;qgNb8FNgWId^8B zR7NC4QwaBCsOPA5#jPPu0x2egit3N0^AIAqG*XZLnPIvlav)f)WnzuR#%h)sclA9= z;hpEi!>`651BOJaGr`o;;nu?QeZHUBx;mYKBJ-&wH~?O@5BZvm@wFyrmws`M=arUS zor7R{1dN{`&g*QOe~$nlJncj>CV5Z|sMRo|nBaNFXWYS-FZ>KKC^Rgv<*a`Dgu&Tm z6b1p;;bYP~^e0X8;o3;n&*W>-H_`|`@p|4-4n)ZMyjX>o6B+RW3daf znU}aq*oIowrb3PnfYuOn&7tb4M}oA z@jxsymEH(wGMO*w^evu(i|4(h(>9~4hB}AXsoZHJ5G#%9jFmqRS~`2{+xcn@0l*on z3P*hRo`j1pwS&8 zmHl`VmLB)7WHcA9~NdldEy8TU-RaAu^Vm{S)|P|1)6osyx*1D9--+KtupSy zECl!O8S*iwb7@JPH6sG9Yq+>)M9h7MP;8QI_ZyReeOx^K{E2$4td&btc zF1%gnogBUiw>^SkUro-)B`o_-^lyb)SAudbQ!lZb86!v2 z$CPwoGYGO1@FoMS_U7yHpK%^<=1jjRYqF3iz1DL6O`EzXw@=>&6=)j83(5JlKRDyQ z_>Z~F{{y+OjcmMspTEN&$-431M&XFWrMhp{7 zp3qA%A{X?1+(lmM>`kiZ22DEhmb_~K&P&Xm5Oo%i@uTUtj%Y%f0h8b1n8Rv=P2; z=16~MzD*vmG3`LLZFZyS{GdEh#$3Dk>4-WrJT862_t-go*^p-l^ifJyfWS0bml-VA z=OWaqkgog4^e=g6K)mAFrbAWE>?59po_8rYLw7Q#g7EZHk7=%K=8eQlLMmt3Cv$is zHhLxej%lz$>#P3ud{4=HeJrt`tB&6F^a4)-#Ttz&gTweOQ zXOWh(pX2-Uesri}sdQ+OkeFIVFK>j0*dpQ8Of*K<)Ot2*ADGiXDpypRSKH6IUoGpn zt}J`vL7JF4bcIcA>#BQ2LT2W;VS|nJh_oDW9AfL#>uH z_$4`^CP?qSf6|4H7BD6nbx$^*?jzH`q^i@_aV!bVj->LAXkrFF-ZIiMrFfYSaPCPm zJeLu{M!>}+`cWQ+WT;O(P_cW?6lnE~I`}QSI#K&GF1+8>s6K#VybS7v7?PzSn5Wth z2$j-Hl!={PQfJj@3~o?Q`h`){z@#7y1s%phjL-4)n9}7qlGdsn4=6#V{ZbFO@tMqt9*-`g4YrW_~UcBNT)x_U3Ad3iP1u`Uipf9s59CLkv8xhMDm73d~QkW zZ6NY}l@oi*_3d6jG%Tbqp#GHaCri9lnD5=A(o(?y{BvL$t<}#HZ@JTEr&p>##8zOH zn~<}W9%~@+vkU_N04;kyAlbR-NFAuYK%>gAtQ_@}Wl{&$qbpckHeYbGbN}rGvah@d z&wwdo&p}Loxx0l3`}bybQy;M&Jp}bHB)L@l;X_t1u_~-tx&yTkn30)Vw+d-mv&?$} zGRr<9RXA)rK0OKjDv1ptv_+W|kPDIW&B){YnXp8(#TuUA7QRFA@6Yo;_?78NH)d(- zbfKhqljrz&abw}D5;vlSiQi4Wxf`n1^pggwLE~CWIY8+&<6L(}x#m!>V+9aK3-d8T&YqcBLSC2kH6pS+1m(k|c87b5Jcqi9VXmXufP{~L) z=##i7+QuiHgTr zY;{g7Z9P*98szcSzyYhzIf9)Q$Ty3gd}#|9vPz_}ij+Gvdq!aH$f_6jm*nT*K`yCf z4oSi`_ER%fU<#F4(Bz;0cv<_gk|W8=>wJ;Wqd?^LAyUmh`J}-OIIuNW${A7Qo3s_n zTEn6R&N>UiGdCIqDhGSHBh}q?O*y|$ldmF$DnU~w7l5!my#TLVfSAMt5%=A&fx8O@ zQYsR^o)tQ-+0YOadmP|GL%`^TocBQ-M)*q2c&M7?(A1oo@%Kfo?maN2=R_~8e==~R z=_p0vzW@TCh!j(oz_dwq^3iNP0yB?~52KAGqR#!8iO@Yb{ zVTn6Ccu4A)E_q_j_2IV|Suk2tmE4(c*@F$qD0wQU)|B)^Tc#jdwuMF8ums5sK9w>x zi*DGI`~f(a(B;hwi)Iszwcttt745K~*<974plf_T>t>`g0*a0kIH`B}^w7JEmGL)x z&->{!0uw9-10UFq1;(um2PJ693g%m|36>Bsd?#Am<(epR?JdExj8Zmi@r|L~X*X-B z%-7_Nv!Fc3`%awbqAfwE5z0y#Q3VYiVGr*BMaC*BUi^q+c8WXuqm+ZX`+|zbJmhRH z^2v8NYl5-3>&U^b<;mP?Cx4VQhb~prQJUCyRZ5S$;3I=2<7YH7f)WV&Yl_x{^b{u) z%J>WwXF)Wl{qL~h?iFn7NiY~tfC5@gia*x%KJDJe{h+8q-Ik+#MPc zcwQdNu~oxU#1J$%&Vx?fFcxdZ3&9(vJ&FWN0}%ij;Vw;!43-!||2DG{77BfCo$reQ zUAyz~F(}|1YqTypp%+D=2%qh?n5Ed3D h;pzJ%$l1x?Rl+aO{pBwe@Ldr=U&mOxQPVNue*m7BuI~T< literal 0 HcmV?d00001 diff --git a/static/js/ui.js b/static/js/ui.js new file mode 100644 index 0000000..6d7c20b --- /dev/null +++ b/static/js/ui.js @@ -0,0 +1,46 @@ +(function (window, document) { + + var layout = document.getElementById('layout'), + menu = document.getElementById('menu'), + menuLink = document.getElementById('menuLink'), + content = document.getElementById('main'); + + function toggleClass(element, className) { + var classes = element.className.split(/\s+/), + length = classes.length, + i = 0; + + for(; i < length; i++) { + if (classes[i] === className) { + classes.splice(i, 1); + break; + } + } + // The className is not found + if (length === classes.length) { + classes.push(className); + } + + element.className = classes.join(' '); + } + + function toggleAll(e) { + var active = 'active'; + + e.preventDefault(); + toggleClass(layout, active); + toggleClass(menu, active); + toggleClass(menuLink, active); + } + + menuLink.onclick = function (e) { + toggleAll(e); + }; + + content.onclick = function(e) { + if (menu.className.indexOf('active') !== -1) { + toggleAll(e); + } + }; + +}(this, this.document));