From 8b33873c97a94c496b3786d7b3454cd4adf4f394 Mon Sep 17 00:00:00 2001 From: balderino Date: Fri, 25 Jan 2013 22:45:48 +0100 Subject: [PATCH 01/13] added_new_files --- doc/Chats.md | 52 +++++++++++ doc/FAQ.md | 140 +++++++++++++++++++++++++++++ doc/Home.md | 33 ++++--- doc/SSL.md | 168 +++++++++++++++++++++++++++++++++++ doc/andfinally.md | 26 ++++++ doc/de/Chats.md | 53 +++++++++++ doc/de/FAQ.md | 137 +++++++++++++++++++++++++++++ doc/de/Home.md | 34 +++++--- doc/de/Quick-Start-guide.md | 2 +- doc/de/SSL.md | 169 ++++++++++++++++++++++++++++++++++++ doc/de/andfinally.md | 27 ++++++ doc/de/groupsandpages.md | 16 ++++ doc/de/guide.md | 17 ++++ doc/de/makingnewfriends.md | 16 ++++ doc/de/network.md | 14 +++ doc/groupsandpages.md | 11 +++ doc/guide.md | 13 +++ doc/makingnewfriends.md | 11 +++ doc/network.md | 9 ++ 19 files changed, 919 insertions(+), 29 deletions(-) create mode 100644 doc/Chats.md create mode 100644 doc/FAQ.md create mode 100644 doc/SSL.md create mode 100644 doc/andfinally.md create mode 100644 doc/de/Chats.md create mode 100644 doc/de/FAQ.md create mode 100644 doc/de/SSL.md create mode 100644 doc/de/andfinally.md create mode 100644 doc/de/groupsandpages.md create mode 100644 doc/de/guide.md create mode 100644 doc/de/makingnewfriends.md create mode 100644 doc/de/network.md create mode 100644 doc/groupsandpages.md create mode 100644 doc/guide.md create mode 100644 doc/makingnewfriends.md create mode 100644 doc/network.md diff --git a/doc/Chats.md b/doc/Chats.md new file mode 100644 index 000000000..ba5a64bd8 --- /dev/null +++ b/doc/Chats.md @@ -0,0 +1,52 @@ +Chats +===== + +* [Home](help) + +There are two possibilities to use a chat on your friendica site + +* IRC Chat +* Jappix + +##IRC-Chat Plugin + +After activating the plugin, you can find the chat at [yoursite.com/irc](../irc). Note: you can use this chat without any login at your site so that everyone could use it. + +If you follow the link, you will see the login page of the IR chat. Now choose a nickname and a chatroom. You can choose every name for the room, even something like #superchatwhosenameisonlyknownbyme. At last, solve the captchas and click the connect button. + +The following window shows some text while connecting. This text isn't importend for you, just wait for the next window. The first line shows your name and your current IP address. The right part of the window shows all user. The lower part of the window contains an input field. + +##Jappix Mini + +The Jappix Mini Plugin creates a chatbox for jabber- and XMPP-contacts. You should already have a jabber/XMPP-account before setting up the plugin. You can find more information at http://www.jabber.org/ + +You can use several server to create an account: + +* [https://jappix.com](https://jappix.com) +* [http://xmpp.net](http://xmpp.net) + +**1. Basics** + +At first you have to get the current version (via github): + +cd /var/www/virtual/YOURSPACE/html/addon; git pull + +or as a normal download via: https://github.com/friendica/friendica-addons/blob/master/jappixmini.tgz (click at „view raw“). + +Just unpack the file and rename the directory to „jappixmini“. Next, upload this directory and the .tgz-file into your addon directory of your friendica installation. + +Now you can activate the plugin at the admin pages. Now you can find an entry of jappix at the plugin sidebar (where you can also find twitter, statusnet and other ones). The following page shows the settings of this plugin. + +Now you can activate the BOSH proxy. +Next, go to the setting page of your account. + +**2. Settings** + +Go to the account settings and choose the plugin page. Scroll down until you find the Jappix Mini addon settings + +At first you have to activate the addon. + +Now add your Jabber/XMPP name, the domain/server (without "http"; just "jappix.com"). For „Jabber BOSH Host“ you could use "https://bind.jappix.com/". You can find further information in the „Configuration Help“-section below this fields. +At last you have enter your password (there are some more optional options, you can choose). Finish these steps with "send" to save the entries. Now, you should find the chatbox at the lower right corner of your browser window. + +If you want to add contacts manually, you can click "add contact". \ No newline at end of file diff --git a/doc/FAQ.md b/doc/FAQ.md new file mode 100644 index 000000000..73a9968cf --- /dev/null +++ b/doc/FAQ.md @@ -0,0 +1,140 @@ +Frequently Asked Questions - FAQ +============== + +* [Home](help) + +User + +* **[Why do I getting warnings about certificates?](help/FAQ#ssl)** +* **[Is it possible to have different avatars per profile?](help/FAQ#avatars)** +* **[What is the difference between blocked|ignored|archived|hidden contacts?](help/FAQ#contacts)** +* **[What happens when an account is removed? Is it truly deleted?](help/FAQ#removed)** +* **[Can I subscribe to a hashtag?](help/FAQ#hashtag)** +* **[How to create a RSS feed of the stream?](help/FAQ#rss)** +* **[Where I can find help?](help/FAQ#help)** + +Admins + +* **[Can I configure multiple domains with the same code instance?](help/FAQ#multiple)** +* **[Where can I find the source code of friendica, addons and themes?](help/FAQ#sources)** + +User +-------- +***** + + +**Why do I getting warnings about certificates?** + +Sometimes you get a browser warning about a missing certificate. These warnings can have three reasons: + +1. the server you are connected to doesn't have SSL; + +2. the server has a self-signed certificate (not recommended) + +3. the certificate is expired. + +*(SSL (Secure Socket Layer) is a technology to encrypt data as it passes between two computers).* + +If you dont have a SSL cert yet, there are three ways to get one: buy one, get a free one (eg. via StartSSL) or create your own (not recommended). [You can find more information about setting up SSL and why it's a bad idea to use self-signed SSL here.](help/SSL) + +Be aware that a browser warning about security issues is something that can make new users feel insecure about the whole friendica project. +Because of this, Friendica Red will only accept SSL certs signed by a recognized CA and doesn't connect to servers without these kind of SSL. Despite of the negative aspects of SSL, this is a necessary solution until there is an established alternative for this technique. + +Also you can have problems with the connection to diaspora because some pods require a SSL-certificated connection. + +If you are just using friendica for a specified group of people on a single server without a connection to the rest of the friendica network, there is no need to use SSL. If you exclusively use public posts, there is also no need for it. + +If you havn't set up a server yet, it's wise to compare the different provider and their SSL conditions. Some allow the usage of free certificates or give you the access to their certificate for free. Other ones only allow bought certificates from themselves or other providers. + + + +**Is it possible to have different avatars per profile?** + +Yes. On your Edit/Manage Profiles page, you will find a "change profile photo" link. Clicking this will take you to a page where you can upload a photograph and select which profile it will be associated with. To avoid privacy leakage, we only display the photograph associated with your default profile as the avatar in your posts. + + + +**What is the difference between blocked|ignored|archived|hidden contacts?** + +We prevent direct communication with blocked contacts. They are not included in delivery, and their own posts to you are not imported; however their conversations with your friends will still be visible in your stream. If you remove a contact completely, they can send you another friend request. Blocked contacts cannot do this. They cannot communicate with you directly, only through friends. + +Ignored contacts are included in delivery - they will receive your posts. However we do not import their posts to you. Like blocking, you will still see this person's comments to posts made by your friends. + +[A plugin called "blockem" can be installed to collapse/hide all posts from a particular person in your stream if you desire complete blocking of an individual, including his/her conversations with your other friends.] + +An archived contact means that communication is not possible and will not be attempted (perhaps the person moved to a new site and removed the old profile); however unlike blocking, existing posts this person made before being archived will be visible in your stream. + +A hidden contact will not be displayed in any "friend list" (except to you). However a hidden contact will appear normally in conversations and this may expose his/her hidden status to anybody who can see the conversation. + + + +**What happens when an account is removed? Is it truly deleted?** + +If you delete your account, we will immediately remove all your content on your server, and then issue requests to all your contacts to remove you. This will also remove you from the global directory. Doing this requires that your account and profile still be "partially" available for up to 24 hours in order to establish contact with all your friends. We can block it in several ways so that it appears empty and all profile information erased, but will then wait for 24 hours (or after all of your contacts have been notified) before we can physically remove it. + + + +**Can I follow a hashtag?** + +No. The act of 'following' a hashtags is an interesting technology, but presents a few issues. + +1.) Posts which have to be copied to all sites on the network that are "listening" to that tag, which increases the storage demands to the detriment of small sites, and making the use of shared hosting practically impossible, and + +2.) Making spam easy (tag spam is quite a serious issue on identi.ca for instance) + +but mostly + +3.) It creates a natural bias towards large sites which hold more tagged content - if your network uses tagging instead of other conversation federation mechanisms such as groups/forums. + +Instead, we offer other mechanisms for wide-area conversations while retaining a 'level playing ground' for both large and small sites, such as forums and community pages and shared tags. + + + +**How to create a RSS feed of the stream?** + +If you want to share your public page via rss you can use one of the following links: + +RSS feed of your posts + + basic-url.com/**dfrn_poll/profilename + + Example: Friendica Support + + https://helpers.pyxis.uberspace.de/dfrn_poll/helpers + +RSS feed of the conversations at your site + + basic-url.com/dfrn_poll/profilename/converse + + Example: Friendica Support + + https://helpers.pyxis.uberspace.de/dfrn_poll/helpers/converse + + + +**Where I can find help?** + +If you have problems with your Friendica page, you can ask the community at the [Friendica Support Group](https://helpers.pyxis.uberspace.de/profile/helpers). If you can't use your default profile you can either use a test account [test server](http://friendica.com/node/31) respectively an account at a public site [list](http://dir.friendica.com/siteinfo) or you can use the Librelist mailing list. If you want to use the mailing list, please just send a mail to friendica AT librelist DOT com. + +If you are using Friendica Red, you will also find help at this forum: [Friendica Red Development](https://myfriendica.net/profile/friendicared). + +If you are a theme developer, you will find help at this forum: [Friendica Theme Developers](https://friendica.eu/profile/ftdevs). + +Admin +-------- +***** + + +**Can I configure multiple domains with the same code instance?** + +You can do that. What you can't do is point two different domains at the same database. As long as .htconfig.php exists to keep it from trying to do an install, you can keep the real config in include/$hostname/.htconfig.php All of the cache and lock stuff can be configured per instance. + + + +**Where can I find the source code of friendica, addons and themes?** + +You can find the main respository [here](https://github.com/friendica/friendica). There you will always find the current stable version of friendica. The source files of Friendica Red are [here](https://github.com/friendica/red). + +Addons are listed at [this page](https://github.com/friendica/friendica-addons). + +If you are searching for new themes, you can find them at [Friendica-Themes.com](http://friendica-themes.com/) \ No newline at end of file diff --git a/doc/Home.md b/doc/Home.md index 4c33c64aa..b54ce3585 100644 --- a/doc/Home.md +++ b/doc/Home.md @@ -1,22 +1,26 @@ Friendica Documentation and Resources ===================================== - **Contents** -* [Account Basics](help/Account-Basics) -* [New User Quick Start](help/Quick-Start-guide) -* [Creating posts](help/Text_editor) -* [Comment, sort and delete posts](help/Text_comment) -* [Profiles](help/Profiles) -* [Connectors](help/Connectors) -* [Making Friends](help/Making-Friends) -* [Groups and Privacy](help/Groups-and-Privacy) -* [Tags and Mentions](help/Tags-and-Mentions) -* [Community Forums](help/Forums) -* [Move Account](help/Move-Account) -* [Remove Account](help/Remove-Account) -* [Bugs and Issues](help/Bugs-and-Issues) +* Generell functions - first steps + * [Account Basics](help/Account-Basics) + * [New User Quick Start](help/Quick-Start-guide) + * [Creating posts](help/Text_editor) + * [Comment, sort and delete posts](help/Text_comment) + * [Profiles](help/Profiles) +* You and other user + * [Connectors](help/Connectors) + * [Making Friends](help/Making-Friends) + * [Groups and Privacy](help/Groups-and-Privacy) + * [Tags and Mentions](help/Tags-and-Mentions) + * [Community Forums](help/Forums) + * [Chats](help/Chats) +* Further information + * [Move Account](help/Move-Account) + * [Remove Account](help/Remove-Account) + * [Bugs and Issues](help/Bugs-and-Issues) + * [Frequently asked questions (FAQ)](help/FAQ) **Technical Documentation** @@ -25,6 +29,7 @@ Friendica Documentation and Resources * [Plugins](help/Plugins) * [Installing Connectors (Facebook/Twitter/StatusNet)](help/Installing-Connectors) * [Message Flow](help/Message-Flow) +* [Using SSL with Friendica](help/SSL) * [Developers](help/Developers) diff --git a/doc/SSL.md b/doc/SSL.md new file mode 100644 index 000000000..0067206e5 --- /dev/null +++ b/doc/SSL.md @@ -0,0 +1,168 @@ +Using SSL with Friendica +===================================== + +* [Home](help) + +If you are running your own Friendica site, you may want to use SSL (https) to encrypt communication between yourself and your server (communication between servers is encrypted anyway). + +To do that on a domain of your own, you have to obtain a certificate from a trusted organization (so-called self-signed certificates that are popular among geeks don’t work very well with Friendica, because they can cause disturbances in other people's browsers). + +If you are reading this document before actually installing Friendica, you might want to consider a very simple option: Go for a shared hosting account without your own domain name. That way, your address will be something like yourname.yourprovidersname.com, which isn't very fancy compared to yourname.com. But it will still be your very own site, and you will usually be able to hitch a lift on your provider's SSL certificate. That means that you won't need to configure SSL at all - it will simply work out of the box when people type https instead of http. + +If that isn't your idea of doing things, read on... + +**Shared hosts** + +If you are using a shared host on a domain of your own, your provider may well offer to obtain and install the certificate for you. You will then only need to apply and pay for it – and everything will be set up. If that is the case for you, the rest of this document need not concern you at all. Just make sure the certificate is for the address that Friendica uses: e.g. myownfriendica.com or friendica.myserver.com. + +The above ought to be the most common scenario for Friendica sites, making the rest of this article superfluous for most people. + +**Obtaining a certificate yourself** + +Alternatively, a few shared hosting providers may ask you to obtain and upload the certificate yourself. + +The next section describes the process of acquiring a certificate from StartSSL. The good thing about StartSSL is that you can get an entry-level, but perfectly sufficient certificate for free. That’s not the case with most other certificate issuers - so we will be concentrating on StartSSL in this document If you want to use a certificate from a different source, you will have to follow the instructions given by that organization. We can't cover every possibility here. + +Installing your certificate - once you have obtained it - depends on your provider’s way of doing things. But for shared hosts, there will usually be an easy web tool for this. + +Note: Your certificate is usually restricted to one subdomain. When you apply for the certificate, make sure it’s for the domain and subdomain Friendica uses: e.g. myownfriendica.com or friendica.myserver.com. + +**Getting a free StartSSL certificate** + +StartSSL’s website attempts to guide you through the process of obtaining a free certificate, but some people end up frustrated. We really recommend working your way through the steps on the site very slowly and carefully. Don't take things for granted - read every word before proceeding and don't close the browser window until everything is working. That said, there are three main stumbling blocks that can confuse users: + +When you initially sign up with StartSSL, the first certificate you receive is simply installed in your browser (though you should also store it somewhere safe, so that you can reinstall it in any other browser at a later date, for instance when you need to renew something). This authentication certificate is only used for logging on to the StartSSL website – it has nothing to do with the certificate you will need for your server. As a first-timer with StartSSL, start here: https://www.startssl.com/?app=12 and choose the Express Lane option to get that browser authentication certificate. Then seamlessly continue to the process of acquiring the desired certificate for your server (the one you actually came for). You can change the website’s language if that makes things easier for you. + +When you are first prompted for a domain to certify, you need to enter your top-level domain – not the subdomain Friendica uses. In the next step, you will be able to specify that subdomain. So if you have friendica.yourname.com on your server, you first enter yourname.com – and specify the subdomain friendica later. + +Don’t quit too fast when you have received your personal web server certificate at the end of the procedure. Depending on your server software, you will also require one or two generic files for use with this free StartSSL certificate. These are sub.class1.server.ca.pem and ca.pem. If you have already overlooked this step, you can download those files here: http://www.startssl.com/?app=21 But once again, the very best way of doing things is not to quit the StartSSL site until you are completely done and your https certificate is up and working. + +**Virtual private and dedicated servers (using StartSSL free)** + +The rest of this document is slightly more complicated, but it’s only for people running Friendica on a virtual private or dedicated server. Everyone else can stop reading at this point. + +Follow the instructions here ( http://www.startssl.com/?app=20 ) to configure the web server you are using (e.g. Apache) for your certificate. + +To illustrate the necessary changes, we will now assume you are running Apache. In essence, you can simply create a second httpd.conf entry for Friendica. + +To do this, you copy the existing one and change the end of the first line to read :443> instead of :80>, then add the following lines to that entry, as also shown in StartSSL’s instructions: + + SSLEngine on + SSLProtocol all -SSLv2 + SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM + + SSLCertificateFile /usr/local/apache/conf/ssl.crt + SSLCertificateKeyFile /usr/local/apache/conf/ssl.key + SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem + SSLCACertificateFile /usr/local/apache/conf/ca.pem + SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown + CustomLog /usr/local/apache/logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + +(Note that the directory /usr/local/apache/conf/ may not exist on your machine. For Debian, for instance, the directory might be /etc/apache2/ - in which you can create an ssl subdirectory if it doesn’t already exist. Then you have /etc/apache2/ssl/… instead of /usr/local/apache/conf/…) + +You thus end up with two entries for your Friendica site - one for simple http and one for https. + +Note to those who want to force SSL: Don't redirect to SSL in your Apache settings. Friendica's own admin panel has a special setting for SSL policy. Please use this facility instead. + +**Mixing certificates on Apache – StartSSL and others (self-signed)** + +Many people using a virtual private or dedicated server will be running more than Friendica on it. They will probably want to use SSL for other sites they run on the server, too. To achieve this, they may wish to employ more than one certificate with a single IP – for instance, a trusted one for Friendica and a self-signed certificate for personal stuff (possibly a wildcard certificate covering arbitrary subdomains). + +For this to work, Apache offers a NameVirtualHost directive. You can see how to use it in httpd.conf in the following pattern. Note that wildcards (*) in httpd.conf break the NameVirtualHost method – you can’t use them in this new configuration. In other words, no more *80> or *443>. And you really must specify the IP, too, even if you only have one. Also note that you will soon be needing two additional NameVirtualHost lines at the top of the file to cater for IPv6. + + NameVirtualHost 12.123.456.1:443 + NameVirtualHost 12.123.456.1:80 + + + DocumentRoot /var/www/anywhere + Servername www.anywhere.net + + + + DocumentRoot /var/www/anywhere + Servername www.anywhere.net + SSLEngine On + + + + + + + DocumentRoot /var/www/somewhere-else + Servername www.somewhere-else.net + + + + DocumentRoot /var/www/somewhere-else + Servername www.somewhere-else.net + SSLEngine On + + + + + +Of course, you may optionally be using other places like the sites-available directory to configure Apache, in which case only some of this information need be in httpd.conf or ports.conf - specifically, the NameVirtualHost lines must be there. But if you're savvy about alternatives like that, you will probably be able to figure out the details yourself. + +Just restart Apache when you're done, whichever way you decide to do it. + +**StartSSL on Nginx** + +First, update to the latest Friendica code. Then follow the above instructions to get your free certificate. But instead of following the Apache installation instructions, do this: + +Upload your certificate. It doesn't matter where to, as long as Nginx can find it. Some people use /home/randomlettersandnumbers to keep it in out of paranoia, but you can put it anywhere, so we'll call it /foo/bar. + +You can remove the password if you like. This is probably bad practice, but if you don't, you'll have to enter the password every time you restart nginx. To remove it: + + openssl rsa -in ssl.key-pass -out ssl.key + +Now, grab the helper certificate: + + wget http://www.startssl.com/certs/sub.class1.server.ca.pem + +Now you need to merge the files: + + cat ssl.crt sub.class1.server.ca.pem > ssl.crt + +In some configurations there is a bug, and this doesn't quite work properly. You may now need to edit ssl.crt, so: + + nano /foo/bar/ssl.crt + +You'll see two certificates in the same file. Halfway down, you may see: + + -----END CERTIFICATE----------BEGIN CERTIFICATE----- + +This is bad. You need to see: + + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + +You can enter the carriage return manually if the bug is present on your system. Note there is a single carriage return for -----BEGIN CERTIFICATE----- to start on a new line. There is no empty line. + +Now you need to tell Nginx about the certs. + +In /etc/nginx/sites-available/foo.com.conf you need something like: + + server { + + listen 80; + + listen 443 ssl; + + listen [::]:80; + + listen [::]:443 ipv6only=on ssl; + + ssl_certificate /foo/bar/ssl.crt; + + ssl_certificate_key /foo/bar/ssl.key; + + ... + +Now, restart nginx: + + /etc/init.d/nginx restart + +And that's it. + +For multiple domains, we have it easier than Apache users: Just repeat the above for each certificate, and keep it in it's own {server...} section. \ No newline at end of file diff --git a/doc/andfinally.md b/doc/andfinally.md new file mode 100644 index 000000000..c4e8cb948 --- /dev/null +++ b/doc/andfinally.md @@ -0,0 +1,26 @@ +[[!meta title="And Finally..."]] + +And that brings the Quick Start to an end. + +Here are some more things to help get you started: + +**Groups** + + +- New Here - a group for people new to Friendica + +- Friendica Support - problems? This is the place to ask. + +- Public Stream - a place to talk about anything to anyone. + +- Let's Talk a group for finding people and groups who share similar interests. + +- Local Friendica a page for local Friendica groups + + +**Documentation** + +- Connecting to more networks +- Help Index + + diff --git a/doc/de/Chats.md b/doc/de/Chats.md new file mode 100644 index 000000000..e538285d6 --- /dev/null +++ b/doc/de/Chats.md @@ -0,0 +1,53 @@ +Chats +===== + +* [Zur Startseite der Hilfe](help) + +Du hast derzeit zwei Möglichkeiten, einen Chat auf deiner Friendica-Seite zu betreiben + +* IRC - Internet Relay Chat +* Jappix + +##IRC Plugin + +Sobald das Plugin aktiviert ist, kannst du den Chat unter [deineSeite.de/irc](../irc) finden. Beachte aber, dass dieser Chat auch ohne Anmeldung auf deiner Seite zugänglich ist und somit auch Fremde diesen Chat mitnutzen können. + +Wenn du dem Link folgst, dann kommst du zum Anmeldefenster des IR-Chats. Wähle nun einen Spitznamen (Nickname) aus und wähle einen Raum aus, in dem du chatten willst. Hier kannst du jeden Namen eingeben. Es ist also auch #tollerChatdessenNamenurichkenne sein. Gib als nächstes nur noch die Captchas ein, um zu zeigen, dass es sich bei dir um einen Menschen handelt. Gehe nun auf "Connect". + +Im nächsten Fenster siehst du zunächst viel Text beim Verbindungsaufbau, der allerdings für dich nicht weiter von Bedeutung ist. Anschließend öffnet sich das Chat-Fenster. In den ersten Zeilen wird dir dein Name und deine aktuelle IP-Adresse angezeigt. Rechts im Fenster siehst du alle Teilnehmer des Chats. Unten hast du ein Eingabefeld, um Beiträge zu schreiben. + +##Jappix Mini + +Das Jappix Mini Plugin erlaubt das Erstellen einer Chatbox für Jabber/XMPP-Kontakte. Ein Jabber/XMPP Account sollte vor der Installation bereits vorhanden sein. +Eine ausführliche Anleitung dazu und eine Kontrolle, ob man nicht sogar schon über seinen E-Mail Anbieter einen Jabber-Account hat, findet man unter http://einfachjabber.de. +Einige Server zum Anmelden eines neuen Accounts: + +* [https://jappix.com](https://jappix.com) +* [https://www.jabme.de](https://www.jabme.de) +* [http://www.jabber.de](http://www.jabber.de) +* oder die Auswahl von [http://xmpp.net](http://xmpp.net) nutzen. + +**1. Grundsätzliches** + +Als erstes muss die aktuellste Version heruntergeladen werden, per Git: + +cd /var/www/virtual/DEINUBERSPACE/html/addon; git pull + +oder als normaler Download von hier: https://github.com/friendica/friendica-addons/blob/master/jappixmini.tgz (auf „view raw“ klicken) + +Diese Datei wird entpackt, ggf. den entpackten Ordner in „jappixmini“ umbenennen und sowohl den kompletten entpackten Ordner als auch die .tgz Datei in den Addon Ordner deiner Friendica Installation hochladen. + +Nach dem Upload gehts in den Friendica Adminbereich, dort zu den Plugins. Das Jappixmini Addon aktivieren und anschließend über die Plugins Seitenleiste (dort wo auch die Twitter-, Impressums-, StatusNet-, usw Einstellungen gemacht werden) zu den Jappix Grundeinstellungen gehen. + +Hier den Haken zur Aktivierung des BOSH Proxys setzen. +Weiter gehts in den Einstellungen deines Friendica Account. + +**2. Einstellungen** + +In deinen Einstellungen (Account Settings), gehe bitte zu den Plugin-Einstellungen. Etwas scrollen bis zu Jappix Mini addon settings + +Hier zuerst das Addon aktvieren. + +Trage nun deinen Jabber/XMPP Namen ein, ebenfalls die entsprechende Domain bzw. den Server (ohne http, also zb einfach so: jappix.com). Bei „Jabber BOSH Host“ kannst du erstmal “https://bind.jappix.com/ “ eintragen. Siehe dazu auch die „Configuration Help“ weiter unten. Danach noch dein Passwort und damit ist eigentlich schon fast alles geschafft. Die weiteren Einstellmöglichkeiten bleiben dir überlassen, sind also optional. Jetzt noch auf „senden“ klicken und fertig. + +Falls du manuell Kontakte hinzufügen möchtest, einfach den „Add Contact“ Knopf nutzen. Deine Chatbox sollte jetzt irgendwo unten rechts im Browserfenster „kleben“. Viel Spass beim Chatten! diff --git a/doc/de/FAQ.md b/doc/de/FAQ.md new file mode 100644 index 000000000..28cd2cf8c --- /dev/null +++ b/doc/de/FAQ.md @@ -0,0 +1,137 @@ +Häufig gestellte Fragen - FAQ +============== + +* [Zur Startseite der Hilfe](help) + +Nutzer + +* **[Warum erhalte ich Warnungen über fehlende Zertifikate?](help/FAQ#ssl)** +* **[Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?](help/FAQ#avatars)** +* **[Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?](help/FAQ#contacts)** +* **[Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?](help/FAQ#removed)** +* **[Kann ich einem hashtag folgen?](help/FAQ#hashtag)** +* **[Wie kann ich einen RSS-Feed meiner Netzwerkseite (Stream) erstellen?](help/FAQ#rss)** +* **[Wo finde ich Hilfe?](help/FAQ#help)** + +Admins + +* **[Kann ich mehrere Domains mit den selben Dateien aufsetzen?](help/FAQ#multiple)** +* **[Wo kann ich den Quellcode von Friendica, Addons und Themes finden?](help/FAQ#sources)** + +Nutzer +-------- +***** + + +**Warum erhalte ich Warnungen über fehlende Zertifikate?** + +Manchmal erhältst du eine Browser-Warnung über fehlende Zertifikate. Diese Warnungen können drei Gründe haben: + +1. der Server, mit dem du verbunden bist, nutzt kein SSL; + +2. der Server hat ein selbst-signiertes Zertifikat (nicht empfohlen) + +3. das Zertifikat ist nicht mehr gültig. + +*(SSL (Secure Socket Layer) ist eine Technologie, die Daten auf ihrem Weg zwischen zwei Computern verschlüsselt.)* + +Wenn du noch kein SSL-Zertifikat hast, dann gibt es drei Wege, eines zu erhalten: kauf dir eines, hole dir ein kostenloses (z.B. bei StartSSL) oder kreiere dein eigenes (nicht empfohlen). [Weitere Informationen über die Einrichtung von SSL und warum es schlecht ist, selbst-signierte Zertifikate zu nutzen, findest du hier.](help/SSL) + +Sei dir bewusst, dass Browser-Warnungen über Sicherheitslücken etwas sind, wodurch neue Nutzer schnell das Vertrauen in das gesamte Friendica-Projekt verlieren können. Aus diesem Grund wird Friendica Red nur SSL-Zertifikate eines anerkannten Anbieters (CA, certificate authority) akzeptieren und nicht zu Seiten verbinden, die kein SSL nutzen. Unabhängig von den negativen Aspekten von SSL handelt es sich hierbei um eine notwendige Lösung, solange keine etablierte Alternative existiert. + +Abgesehen davon kann es ohne SSL auch Probleme mit der Verbindung zu Diaspora geben, da einige Diaspora-Pods eine zertifizierte Verbindung benötigen. + +Wenn du Friendica nur für eine bestimmte Gruppe von Leuten auf einem einzelnen Server nutzt, bei dem keine Verbindung zum restlichen Netzwerk besteht, dann benötigst du kein SSL. Ebenso benötigst du SSL nicht, wenn du ausschließlich öffentliche Beiträge auf deiner Seite veröffentlichst bzw. empfängst. + +Wenn du zum jetzigen Zeitpunkt noch keinen Server aufgesetzt hast, ist es sinnvoll, die verschiedenen Anbieter in Bezug auf SSL zu vergleichen. Einige erlauben die Nutzung von freien Zertifikaten oder lassen dich ihre eigenen Zertifikate mitnutzen. Andere erlauben nur kostenpflichtige Zertifikate als eigenes Angebot bzw. von anderen Anbietern. + + + +**Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?** + +Ja. Auf deiner ["Profile verwalten/editieren"-Seite](../profiles) wählst du zunächst das gewünschte Profil aus. Anschließend siehst du eine Seite mit allen Infos zu diesem Profil. Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von deinem PC hoch. Um deine privaten Daten zu schützen, wird in Beiträgen nur das Bild aus deinem öffentlichen Profil angezeigt. + + + +**Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?** + +Wir verhindern direkte Kommunikation mit blockierten Kontakten. Sie gehören nicht zu den Empfängern beim Versand von Beiträgen und deren Beiträge werden auch nicht importiert. Trotzdem werden deren Unterhaltungen mit deinen Freunden trotzdem in deinem Stream sichtbar sein. Wenn du einen Kontakt komplett löschst, können sie dir eine neue Freundschaftsanfrage schicken. Blockierte Kontakte können das nicht machen. Sie können nicht mit dir direkt kommunizieren, nur über Freunde. + +Ignorierte Kontakte können weiterhin Beiträge von dir erhalten. Deren Beiträge werden allerdings nicht importiert. Wie bei blockierten Beiträgen siehst du auch hier weiterhin die Kommentare dieser Person zu anderen Beiträgen deiner Freunde. + +[Ein Plugin namens "blockem" kann installiert werden, um alle Beiträge einer bestimmten Person in deinem Stream zu verstecken bzw. zu verkürzen. Dabei werden auch Kommentare dieser Person in Beiträgen deiner Freunde blockiert.] + +Ein archivierter Kontakt bedeutet, dass Kommunikation nicht möglich ist und auch nicht versucht wird (das ist z.B. sinnvoll, wenn eine Person zu einer neuen Seite gewechselt ist und das alte Profil gelöscht hat). Anders als beim Blockieren werden existierende Beiträge, die vor der Archivierung erstellt wurden, weiterhin angezeigt. + +Ein versteckter Kontakt wird in keiner "Freundeliste" erscheinen (außer für dich). Trotzdem wird ein versteckter Kontakt trotzdem normal in Unterhaltungen angezeigt, was jedoch für andere Kontakte ein Hinweis sein kann, dass diese Person als versteckter Kontakt in deiner Liste ist. + + + +**Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?** + +Wenn du deinen Account löschst, wird sofort der gesamte Inhalt auf deinem Server gelöscht und ein Löschbefehl an alle deine Kontakte verschickt. Dadurch wirst du ebenfalls aus dem globalen Verzeichnis gelöscht. Dieses Vorgehen setzt voraus, dass dein Profil für 24 Stunden weiterhin "teilweise" verfügbar sein wird, um eine Verbindung zu allen deinen Kontakten ermöglicht. Wir können also dein Profil blockieren und es so erscheinen lassen, als wären alle Daten sofort gelöscht, allerdings warten wir 24 Stunden (bzw. bis alle deine Kontakte informiert wurden), bevor wir die Daten auch physikalisch löschen. + + + +**Kann ich einem hashtag folgen?** + +Nein. Die Möglichkeit, einem hashtag zu folgen, ist eine interessante Technik, führt aber zu einigen Schwierigkeiten. + +1.) Alle Beiträge, die diesen tag nutzen, müssten zu allen Seiten im Netzwerk kopiert werden. Das erhöht den Speicherbedarf und beeinträchtigt kleine Seiten. Die Nutzung von geteilten Hosting-Angeboten (Shared Hosting) wäre praktisch unmöglich. + +2.) Die Verbreitung von Spam wäre vereinfacht (tag-Spam ist z.B. bei identi.ca ein schwerwiegendes Problem) + +3.) Der wichtigste Grund der gegen diese Technik spricht ist, dass sie eine natürliche Ausrichtung auf größere Seiten mit mehr getaggten Inhalten zur Folge hat. Dies kann z.B. aufkommen, wenn dein Netzwerk tags anstelle von anderen Kommunikationsmitteln wie Gruppen oder Foren nutzt. + +Stattdessen bieten wir andere Mechanismen, um globale Unterhaltungen zu erreichen, dabei aber eine angemesse Basis für kleine und große Seiten zu bieten. Hierzu gehören Foren, Gruppen und geteilte tags. + + + +**Wie kann ich einen RSS-Feed meiner Netzwerkseite (Stream) erstellen?** + +Wenn du die Beiträge deines Accounts mit RSS teilen willst, dann kannst du einen der folgenden Links nutzen: + +RSS-Feed deiner Beiträge + + deineSeite.de/**dfrn_poll/profilname + + Beispiel: Friendica Support + + https://helpers.pyxis.uberspace.de/dfrn_poll/helpers + +RSS-Feed aller Unterhaltungen auf deiner Seite + + deineSeite.de/dfrn_poll/profilname/converse + + Beispiel: Friendica Support + + https://helpers.pyxis.uberspace.de/dfrn_poll/helpers/converse + + + +**Wo finde ich Hilfe?** + +Wenn du Probleme mit deiner Friendica-Seite hast, dann kannst du die Community in der [Friendica-Support-Gruppe](https://helpers.pyxis.uberspace.de/profile/helpers) oder im [deutschen Friendica-Support-Forum](http://toktan.org/profile/wiki) fragen oder dir das [deutsche Wiki](http://wiki.toktan.org/doku.php) anschauen. Wenn du deinen Account nicht nutzen kannst, kannst du entweder einen [Testaccount](http://friendica.com/node/31) bzw. einen Account auf einer öffentlichen Seite ([Liste](http://dir.friendica.com/siteinfo)) nutzen, oder du wählst die Librelist-mailing-Liste. Wenn du die Mailing-Liste nutzen willst, schicke eine Mail an friendica AT librelist PUNKT com. + +Wenn du Friendica Red nutzt, findest du außerdem in diesem Forum Hilfe: [Friendica Red Development](https://myfriendica.net/profile/friendicared). + +Wenn du ein Theme-Entwickler bist, wirst du in diesem Forum Hilfe finden: [Friendica Theme Developers](https://friendica.eu/profile/ftdevs). + +Admin +-------- +***** + + +**Kann ich mehrere Domains mit den selben Dateien aufsetzen?** + +Ja, das ist möglich. Es ist allerdings nicht möglich, eine Datenbank durch zwei Domains zu nutzen. Solange du deine .htconfig.php allerdings so einrichtest, dass das System nicht versucht, eine Installation durchzuführen, kannst du die richtige Config-Datei in include/$hostname/.htconfig.php hinterlegen. Alle Cache-Aspekte und der Zugriffsschutz können pro Instanz konfiguriert werden. + + + +**Wo kann ich den Quellcode von Friendica, Addons und Themes finden?** + +Du kannst den Friendica-Quellcode [hier](https://github.com/friendica/friendica) finden. Dort findest du immer die aktuellste stabile Version von Friendica. Der Quellcode von Friendica Red ist [hier](https://github.com/friendica/red) zu finden. + +Addons findest du auf [dieser Seite](https://github.com/friendica/friendica-addons). + +Wenn du neue Themen suchst, findest du sie auf [Friendica-Themes.com](http://friendica-themes.com/) \ No newline at end of file diff --git a/doc/de/Home.md b/doc/de/Home.md index 9e92f2d83..b2d8c52e4 100644 --- a/doc/de/Home.md +++ b/doc/de/Home.md @@ -3,20 +3,25 @@ Friendica - Dokumentation und Ressourcen **Inhalte** -* [Account - Basics](help/Account-Basics) -* [Schnellstart für neue Benutzer](help/Quick-Start-guide) -* [Beiträge erstellen](help/Text_editor) -* [Beiträge kommentieren, einordnen und löschen](help/Text_comment) -* [Profile](help/Profiles) -* [Konnektoren (Connectors)](help/Connectors) -* [Freunde finden](help/Making-Friends) -* [Gruppen und Privatsphäre](help/Groups-and-Privacy) -* [Tags und Erwähnungen](help/Tags-and-Mentions) -* [Community-Foren](help/Forums) -* [Account umziehen](help/Move-Account) -* [Account löschen](help/Remove-Account) -* [Bugs und Probleme](help/Bugs-and-Issues) - +* Allgemeine Funktionen - Erste Schritte + * [Account - Basics](help/Account-Basics) + * [Schnellstart für neue Benutzer](help/Quick-Start-guide) + * [Beiträge erstellen](help/Text_editor) + * [Beiträge kommentieren, einordnen und löschen](help/Text_comment) + * [Profile](help/Profiles) +* Du und andere Nutzer + * [Konnektoren (Connectors)](help/Connectors) + * [Freunde finden](help/Making-Friends) + * [Gruppen und Privatsphäre](help/Groups-and-Privacy) + * [Tags und Erwähnungen](help/Tags-and-Mentions) + * [Community-Foren](help/Forums) + * [Chats](help/Chats) +* Weiterführende Informationen + * [Account umziehen](help/Move-Account) + * [Account löschen](help/Remove-Account) + * [Bugs und Probleme](help/Bugs-and-Issues) + * [Häufig gestellte Fragen (FAQ)](help/FAQ) + **Technische Dokumentation** * [Installation](help/Install) @@ -24,6 +29,7 @@ Friendica - Dokumentation und Ressourcen * [Plugins](help/Plugins) * [Konnektoren (Connectors) installieren (Facebook/Twitter/StatusNet)](help/Installing-Connectors) * [Nachrichtenfluss](help/Message-Flow) +* [Betreibe deine Seite mit einem SSL-Zertifikat](help/SSL) * [Entwickler](help/Developers) diff --git a/doc/de/Quick-Start-guide.md b/doc/de/Quick-Start-guide.md index 5006d7f9f..eb0fd0539 100644 --- a/doc/de/Quick-Start-guide.md +++ b/doc/de/Quick-Start-guide.md @@ -11,7 +11,7 @@ Hier sieht es ein wenig wie auf deiner Facebook-Seite aus. Hier findest du alle Wenn du deinen Beitrag ("Post") geschrieben hast, kannst du auf das "Schloss"-Symbol klicken und festlegen, wer deinen Beitrag sehen kann. Wenn du dieses Symbol nicht anklickst, ist dein Beitrag öffentlich. Das bedeutet, dass jeder, der dein Profil ansieht, der auf dem "Community"-Tab deines Servers oder auf dem "Netzwerk"-Tab ("Beiträge deiner Kontakte") eines befreundeten Kontakts ist, den Beitrag sehen kann. -Probiere es doch einfach mal aus. Wenn du fertg bist, schauen wir uns den "Netzwerk"-Tab an. +Probiere es doch einfach mal aus. Wenn du fertig bist, schauen wir uns den "Netzwerk"-Tab an. diff --git a/doc/de/SSL.md b/doc/de/SSL.md new file mode 100644 index 000000000..ecb10d9d3 --- /dev/null +++ b/doc/de/SSL.md @@ -0,0 +1,169 @@ +Friendica mit SSL nutzen +===================================== + +* [Zur Startseite der Hilfe](help) + +Wenn du deine eigene Friendica-Seite betreibst, willst du vielleicht SSL (https) nutzen, um die Kommunikation zwischen dir und deinem Server zu verschlüsseln (die Kommunikation zwischen den Servern ist bereits verschlüsselt). + +Wenn du das auf deiner eigenen Domain machen willst, musst du ein Zertifikat von einer anerkannten Organisation beschaffen (sogenannte selbst-signierte Zertifikate, die unter Computerfreaks beliebt sind, arbeiten nicht sehr gut mit Friendica, weil sie Warnungen im Browser hervorrufen können). + +Wenn du dieses Dokument liest, bevor du Friendica installierst, kannst du eine sehr einfache Option in Betracht ziehen: suche dir ein geteiltes Hosting-Angebot (shared hosting) ohne eigene Domain. Dadurch wirst du eine Adresse in der Form deinName.deinAnbietername.de erhalten, was nicht so schön wie deinName.de ist. Aber es wird trotzdem deine ganz persönliche Seite sein und du wirst unter Umständen die Möglichkeit haben, das SSL-Zertifikat deines Anbieters mitzubenutzen. Das bedeutet, dass du SSL überhaupt nicht konfigurieren musst - es wird einfach sofort funktionieren, wenn die Besucher deiner Seite https statt http eingeben. + +Wenn dir diese Lösung nicht gefällt, lies weiter... + +**Geteilte Hosting-Angebote/Shared hosts** + +Wenn du ein geteiltes Hosting-Angebot mit einer eigenen Domain nutzt, dann wird dir dein Anbieter ggf. anbieten, dir das Zertifikat zu besorgen und zu installieren. Du musst es nur beantragen und bezahlen und alles wird eingerichtet. Wenn das die Lösung für dich ist, musst du das weitere Dokument nicht lesen. Gehe nur sicher, dass das Zertifikat auch für die Domain gilt, die du für Friendica nutzt: z.B. meinfriendica.de oder friendica.meinserver.de. + +Das Vorangehende wird die häufigste Art sein, eine Friendica-Seite zu betreiben, so dass der Rest des Artikels für die meisten Leute nicht von Bedeutung ist. + +**Beschaffe dir das Zertifikat selbst** + +Alternativ kannst du dir auch selbst ein Zertifikat besorgen und hochladen, falls dein Anbieter das unterstützt. + +Der nächste Abschnitt beschreibt den Ablauf, um ein Zertifikat von StartSSL zu erhalten. Das Gute an StartSSL ist, dass du kostenlos ein einfaches, aber perfekt ausreichendes Zertifikat erhältst. Das ist bei vielen anderen Anbietern nicht so, weshalb wir uns in diesem Dokument auf StartSSL konzentrieren werden. Wenn du ein Zertifikat eines anderen Anbieters nutzen willst, musst du die Vorgaben dieser Organisation befolgen. Wir können hier nicht jede Möglichkeit abdecken. + +Die Installation deines erhaltenen Zertifikats hängt von den Vorgaben deines Anbieters ab. Aber generell nutzen solche Anbieter ein einfaches Web-Tool, um die Einrichtung zu unterstützen. + +Beachte: dein Zertifikat gilt gewöhnlich nur für eine Subdomain. Wenn du dein Zertifikat beantragst, sorge dafür, dass es für die Domain und die Subdomain gilt, die du für Friendica nutzt: z.B. meinfriendica.de oder friendica.meinserver.de. + +**Erhalte ein kostenloses StartSSL-Zertifikat** + +Die Webseite von StartSSL führt dich durch den Erstellungsprozess, aber manche Leute haben hier trotzdem Probleme. Wir empfehlen dir ausdrücklich, die Installationsanleitung Schritt für Schritt langsam und sorgfältig zu befolgen. Lese dir jedes Wort durch und schließe deinen Browser erst, wenn alles läuft. Es heißt, dass es drei Schritte gibt, die den Nutzer verwirren können: + +Wenn du dich erstmals bei StartSSL anmeldest, erhältst du ein erstes Zertifikat, dass sich einfach in deinem Browser installiert. Dieses Zertifikat solltest du zur Sicherheit irgendwo speichern, so dass du es für einen neuen Browser neu installieren kannst, wenn du z.B. etwas erneuern musst. Dieses Authentifizierungszertifikat wird nur für das Login benötigt und hat nichts mit dem Zertifikat zu tun, dass du später für deinen Server benötigst. Als Anfänger mit StartSSL kannst du [hier starten](https://www.startssl.com/?lang=de) und die "Express Lane" nutzen, um dein Browser-Zertifikiat zu erhalten. Im nächsten Schritt kannst du die Einrichtung deines Zertifikats fortsetzen. + +Wenn du zuerst nach einer Domain für dein Zertifikat gefragt wirst, musst du die Top-Level-Domain angeben, nicht die Subdomain, die Friendica nutzt. Im nächsten Schritt kannst du dann die Subdomain spezifizieren. Wenn du also friendica.deinName.de auf deinem Server hast, musst du zuerst deinName.de angeben. + +Höre nicht zu früh auf, wenn du am Ende der Einrichtung dein persönliches Server-Zertifikat erhalten hast. Abhängig von deiner Server-Software benötigst du ein oder zwei generische Dateien, die du mit deinem kostenlosen StartSSL-Zertifikat nutzen musst. Diese Dateien sind sub.class1.server.ca.pem und ca.pem. Wenn du diesen Schritt bereits übersprungen hast, kannst du die Dateien hier finden: [http://www.startssl.com/?app=21](http://www.startssl.com/?app=21). Aber am besten funktioniert es, wenn du StartSSL nicht beendest, bevor du den Vorgang komplett abgeschlossen hast und dein https-Zertifikat hochgeladen ist und funktioniert. + +**Virtuelle private und dedizierte Server (mit StartSSL free)** + +Der Rest dieses Dokuments ist etwas komplizierter, aber es ist auch nur für Personen, die Friendica auf einem virtuellen oder dedizierten Server nutzen. Jeder andere kann an dieser Stelle mit dem Lesen aufhören. + +Folge den weiteren Anleitungen [hier](http://www.startssl.com/?app=20), um den Webserver, den du benutzt (z.B. Apache), für dein Zertifikat einzurichten. + +Um die nötigen Schritte zu verdeutlichen, setzen wir nun voraus, dass Apache aktiv ist. Im Wesentlichen kannst du einfach einen zweiten httpd.conf-Eintrag für Friendica erstellen. + +Um das zu machen, kopiere den existierenden Eintrag und ändere das Ende der ersten Zeile auf "lesen" :443> anstelle von :80> und trage dann die folgenden Zeilen ein, wie du es auch in der Anleitung von StartSSL finden kannst: + + SSLEngine on + SSLProtocol all -SSLv2 + SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM + + SSLCertificateFile /usr/local/apache/conf/ssl.crt + SSLCertificateKeyFile /usr/local/apache/conf/ssl.key + SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem + SSLCACertificateFile /usr/local/apache/conf/ca.pem + SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown + CustomLog /usr/local/apache/logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + +(Beachte, dass das Verzeichnis /usr/local/apache/conf/ möglicherweise nicht in deinem System existiert. In Debian ist der Pfad bspw. /etc/apache2/, in dem du ein SSL-Unterverzeichnis erstellen kannst, wenn dieses noch nicht vorhanden ist. Dann hast du /etc/apache2/ssl/… statt /usr/local/apache/conf/…) + +Du solltest nun zwei Einträgen für deine Friendica-Seite haben - einen für einfaches http und eines für https. + +Ein Hinweis für diejenigen, die SSL steuern wollen: setze keine Weiterleitung deines SSL in deine Apache-Einstellung. Friendicas Admin-Panel hat eine spezielle Einstellung für die SSL-Methode. Bitte nutze diese Einstellungen. + +**Vermische Zertifikate in Apache – StartSSL und andere (selbst-signierte)** + +Viele Leute nutzen einen virtuellen privaten oder einen dedizierten Server, um mehr als Friendica darauf laufen zu lassen. Sie wollen möglicherweise SSL auch für andere Seiten nutzen, die auf dem Server liegen. Um das zu erreichen, wollen sie mehrere Zertifikate für eine IP nutzen, z.B. ein Zertifikat eines anerkannten Anbieters für Friendica und ein selbst-signiertes für eine persönliche Inhalte (möglw. ein Wildcard-Zertifikat für mehrere Subdomains). + +Um das zum Laufen zu bringen, bietet Apache eine NameVirtualHost-Direktive. Du findest Informationen zur Nutzung in httpd.conf in den folgenden Ausschnitten. Beachte, dass Wildcards (*) in httpd.conf dazu führen, dass die NameVirtualHost-Methode nicht funktioniert; du kannst diese in dieser neuen Konfiguration nicht nutzen. Das bedeutet, dass *80> oder *443> nicht funktionieren. Und du musst unbedingt die IP definieren, selbst wenn du nur eine hast. Beachte außerdem, dass du bald zwei Zeilen zu Beginn der Datei hinzufügen musst, um NameVirtualHost für IPv6 vorzubereiten. + + NameVirtualHost 12.123.456.1:443 + NameVirtualHost 12.123.456.1:80 + + + DocumentRoot /var/www/anywhere + Servername www.anywhere.net + + + + DocumentRoot /var/www/anywhere + Servername www.anywhere.net + SSLEngine On + + + + + + + DocumentRoot /var/www/somewhere-else + Servername www.somewhere-else.net + + + + DocumentRoot /var/www/somewhere-else + Servername www.somewhere-else.net + SSLEngine On + + + + + +Natürlich kannst du auch andere Verzeichnisse auf deinem Server nutzen, um Apache zu konfigurieren. In diesem Fall müssen nur einige Zeilen in httpd.conf oder ports.conf angepasst werden - vor allem die NameVirtualHost-Zeilen. Aber wenn du sicher im Umgang mit solchen Alternativen bist, wirst du sicherlich die nötigen Anpassungen herausfinden. + +Starte dein Apache abschließend neu. + +**StartSSL auf Nginx** + +Führe zunächst ein Update auf den neuesten Friendica-Code durch. Folge dann der Anleitung oben, um dein kostenloses Zertifikat zu erhalten. Aber statt der Apache-Installationsanleitung zu folgen, mache das Folgende: + +Lade dein Zertifikat hoch. Es ist nicht wichtig, wohin du es lädst, solange Nginx es finden kann. Einige Leute nutzen /home/verschiedeneNummernundBuchstaben, du kannst aber auch z.B. etwas wie /foo/bar nutzen. + +Du kannst das Passwort entfernen, wenn du willst. Es ist zwar möglicherweise nicht die beste Wahl, aber wenn du es nicht machst, wirst du das Passwort immer wieder eingeben müssen, wenn du Ngingx neustartest. Um es zu entfernen, gebe Folgendes ein: + + openssl rsa -in ssl.key-pass -out ssl.key + +Nun hole dir das Hifs-Zertifikat: + + wget http://www.startssl.com/certs/sub.class1.server.ca.pem + +Nun vereinige die Dateien: + + cat ssl.crt sub.class1.server.ca.pem > ssl.crt + +In manchen Konfigurationen ist ein Bug enthalten, weshalb diese Schritte nicht ordentlich arbeiten. Du musst daher ggf. ssl.crt bearbeiten: + + nano /foo/bar/ssl.crt + +Du wirst zwei Zertifikate in der gleichen Date sehen. In der Mitte findest du: + + -----END CERTIFICATE----------BEGIN CERTIFICATE----- + +Das ist schlecht. Du brauchst die folgenden Einträge: + + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + + +Du kannst den Zeilenumbruch manuell eingeben, falls dein System vom Bug betroffen ist. Beachte, dass nach -----BEGIN CERTIFICATE----- nur ein Zeilenumbruch ist. Es gibt keine leere Zeile zwischen beiden Einträgen. + +Nun musst du Nginx über die Zertifikate informieren. + +In /etc/nginx/sites-available/foo.com.conf benötigst du etwas wie: + + server { + + listen 80; + + listen 443 ssl; + + listen [::]:80; + + listen [::]:443 ipv6only=on ssl; + + ssl_certificate /foo/bar/ssl.crt; + + ssl_certificate_key /foo/bar/ssl.key; + + ... + +Nun starte Nginx neu: + + /etc/init.d/nginx restart + +Und das war es schon. + +Für multiple Domains ist es mit Nginx einfacher als mit Apache. Du musst du oben genannten Schritte nur für jedes Zertifikat wiederholen und die spezifischen Informationen im eigenen {server...}-Bereich spezifizieren. \ No newline at end of file diff --git a/doc/de/andfinally.md b/doc/de/andfinally.md new file mode 100644 index 000000000..06a1878ba --- /dev/null +++ b/doc/de/andfinally.md @@ -0,0 +1,27 @@ +... und zuletzt +=============== + +Und damit sind wir auch schon am Ende der Schnellstartanleitung. + +Hier sind noch einige weitere Dinge, die dir den Start vereinfachen können. + +**Gruppen** + + +- Neu hier? - eine Gruppe für Leute, die neu bei Friendica sind + +- Friendica Support - Probleme? Dann ist das der Platz, um zu fragen! + +- Öffentlicher Stream - ein Platz, um über alles mit jedem zu reden. + +- Let's Talk eine Gruppe, um Leute und Gruppen mit gleichen Interessen zu finden + +- Local Friendica eine Seite für lokale Friendica-Gruppen + + +**Dokumentation** + +- Zu weiteren Netzwerken verbinden +- Zur Startseite der Hilfe + + diff --git a/doc/de/groupsandpages.md b/doc/de/groupsandpages.md new file mode 100644 index 000000000..0b5f1fced --- /dev/null +++ b/doc/de/groupsandpages.md @@ -0,0 +1,16 @@ +Gruppen und Seiten +========== + +* [Zur Startseite der Hilfe](help) + +Hier siehst du das globale Verzeichnis. Wenn du dich mal verirrt hast, kannst du diesen Link klicken und wieder hierher kommen. + +Auf dieser Seite findest du eine Zusammenstellung von Gruppen, Foren und bekannten Seiten. Gruppen sind keine realen Personen. Sich mit diesen zu verbinden ist, als wenn man jemanden auf Facebook "liked" ("gefällt mir") oder wenn man sich in einem Forum anmeldet. Habe keine Sorge, falls du dich unbehaglich fühlst, wenn du dich einer neuen Person vorstellen sollst, da es sich nicht um Personen handelt. + +Wenn du dich mit einer Gruppe verbindest, erscheinen alle Nachrichten der Gruppe in deinem "Netzwerk"-Tab. Du kannst diese Beiträge kommentieren oder selbst in der Gruppe schreiben, ohne eine der Gruppenmitglieder persönlich hinzuzufügen. Das ist ein großartiger Weg, dynamisch neue Freunde zu gewinnen. Du findest Personen, die du magst, anstatt Fremde hinzuzufügen. Suche dir einfach eine Gruppe und füge sie so hinzu, wie du auch normale Freunde hinzufügst. Es gibt eine Menge Gruppen und möglicherweise findest du nicht wieder zu dieser Seite zurück. In diesem Fall nutze einfach den Link oben auf dieser Seite. + +Wenn du einige Gruppen hinzugefügt hast, gehe weiter zum nächsten Schritt. + + + + diff --git a/doc/de/guide.md b/doc/de/guide.md new file mode 100644 index 000000000..a5ce54a1d --- /dev/null +++ b/doc/de/guide.md @@ -0,0 +1,17 @@ +Erste Schritte... +========== + +* [Zur Startseite der Hilfe](help) + +Das Erste zum Anfang: geh sicher, dass du schon eingeloggt bist. Wenn du noch nicht eingeloggt bist, kannst du das in dem Fenster unten machen. + +Sobald du eingeloggt bist (oder wenn du bereits eingeloggt bist), kannst du unten nun auf deine Profilseite schauen. + +Hier sieht es ein wenig wie auf deiner Facebook-Seite aus. Hier findest du alle deine Statusmeldungen und Nachrichten deiner Freunde, die direkt auf deine Seite ("Wall") geschrieben haben. Um deinen Status einzutragen, klicke einfach auf die Box oben, in der "Teilen" steht. Wenn du das machst, vergrößert sich die Box. Nun kannst du einige Formatierungsoptionen wie Fett, kursiv, unterstrichen auswählen und ebenfalls Bilder und Links hinzufügen. Unten findest du in diesem Feld weitere Links, mit denen du Bilder und Dateien von deinem Computer hochladen, Webseiten mit einem Kurztext teilen und Video- und Audiodateien aus dem Internet einfügen kannst. Außerdem kannst du hier eintragen, wo du gerade bist. + +Wenn du deinen Beitrag ("Post") geschrieben hast, kannst du auf das "Schloss"-Symbol klicken und festlegen, wer deinen Beitrag sehen kann. Wenn du dieses Symbol nicht anklickst, ist dein Beitrag öffentlich. Das bedeutet, dass jeder, der dein Profil ansieht, der auf dem "Community"-Tab deines Servers oder auf dem "Netzwerk"-Tab ("Beiträge deiner Kontakte") eines befreundeten Kontakts ist, den Beitrag sehen kann. + +Probiere es doch einfach mal aus. Wenn du fertg bist, schauen wir uns den "Netzwerk"-Tab an. + + + diff --git a/doc/de/makingnewfriends.md b/doc/de/makingnewfriends.md new file mode 100644 index 000000000..911b7f4a8 --- /dev/null +++ b/doc/de/makingnewfriends.md @@ -0,0 +1,16 @@ +Neue Freunde finden +============== + +* [Zur Startseite der Hilfe](help) + +Hier siehst du die Kontaktvorschläge. Wenn du dich mal verirrt hast, kannst du diesen Link klicken und wieder hierher kommen. + +Diese Seite ist ein wenig wie die Kontaktvorschläge in Facebook. Jeder auf dieser Liste hat zugestimmt, als Kontaktvorschlag zu erscheinen. Das bedeutet, das sie Anfragen meist nicht ablehnen, da sie neue Leute kennenlernen wollen. + +Siehst du jemanden, dessen Aussehen du magst? Klicke auf den "Verbinden"-Button beim Foto. Als nächstes kommst du zur Seite "Freundschafts-/Kontaktanfrage". Fülle das Formular wie vorgegeben aus und trage optional eine kleine Notiz ein. Nun musst du nur noch auf die Bestätigung warten. Beachte dabei, dass es sich um reale Personen handelt und es somit etwas dauern kann. Jetzt, nachdem du jemanden hinzugefügt hast, weißt du vielleicht nicht mehr, wie du zurückkommst. Klicke einfach auf den Link oben auf dieser Seite und du kommst zurück zur Seite mit den Kontaktvorschlägen, um weitere Personen hinzuzufügen. + +Du willst nicht einfach Personen hinzufügen, die du nicht kennst? Kein Problem - an dieser Stelle kommen wir zu den Gruppen und Seiten. + + + + diff --git a/doc/de/network.md b/doc/de/network.md new file mode 100644 index 000000000..37eeec869 --- /dev/null +++ b/doc/de/network.md @@ -0,0 +1,14 @@ +Deine "Netzwerk"-Seite +============== + +* [Zur Startseite der Hilfe](help) + +Das ist dein "Netzwerk"-Tab. Wenn du dich mal verirrt hast, kannst du diesen Link klicken, um wieder hierher zu kommen. + +Diese Seite ist ein wenig wie die News-Seite in Facebook oder der Stream in Diaspora. Hier findest du alle Beiträge deiner Kontakte, Gruppen und Feeds, die du eingetragen hast. Wenn du neu bist, siehst du hier noch nichts, falls du deinen Status im letzten Schritt noch nicht eingetragen hast. Wenn du bereits ein paar Freunde eingetragen hast, findest du hier ihre Beiträge. Hier kannst du Beiträge kommentieren, eintragen, dass du den Beitrag magst oder ablehnst oder die Profile durch einen Klick auf deren Namen anschauen und auf deren Seite ("Wall") Nachrichten schreiben. + +Nun wollen wir diese Seite mit Inhalt füllen. Der erste Schritt ist es, Leute zu deinem Account hinzuzufügen. + + + + diff --git a/doc/groupsandpages.md b/doc/groupsandpages.md new file mode 100644 index 000000000..5cfbc653c --- /dev/null +++ b/doc/groupsandpages.md @@ -0,0 +1,11 @@ +This is the global directory. If you get lost, you can click this link to bring yourself back here. + +On this page, you'll find a collection of groups, forums and celebrity pages. Groups are not real people. Connecting to them is similar to "liking" something on Facebook, or signing up for a new forum. You don't have to feel awkward about introducing yourself to a new person, because they're not people! + +When you connect to a group, all messages to that group will start appearing in your network tab. You can comment on these posts, or post to the group yourself without ever having to add any of the groups members. This is a great way to make friends dynamically - you'll find people you like and add each other naturally instead of adding random strangers. Simply find a group you're interested in, and connect to it the same way you did with people in the last section. There are a lot of groups, and you're likely to get lost. Remember the link at the top of this page will bring you back here. + +Once you've added some groups, move on to the next section. + + + + diff --git a/doc/guide.md b/doc/guide.md new file mode 100644 index 000000000..d76af92e2 --- /dev/null +++ b/doc/guide.md @@ -0,0 +1,13 @@ +First things first, let's make sure you're logged in to your account. If you're not already logged in, do so in the frame below. + +Once you've logged in (or if you are already logged in), you'll now be looking at your profile page. + +This is a bit like your Facebook wall. It's where all your status messgages are kept, and where your friends come to post on your wall. To write your status, simply click in the box that says "share". When you do this, the box will expand. You can see some formatting options at the top such as Bold, Italics and Underline, as well as ways to add links and pictures. At the bottom you'll find some more links. You can use these to upload pictures and files from your computer, share websites with a bit of preview text, or embed video and audio files from elsewhere on the web. You can also set your post location here. + +Once you've finished writing your post, click on the padlock icon to select who can see it. If you do not use the padlock icon, your post will be public. This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts. + +Play around with this a bit, then when you're ready to move on, we'll take a look at the Network Tab + + + + diff --git a/doc/makingnewfriends.md b/doc/makingnewfriends.md new file mode 100644 index 000000000..7eff1eda1 --- /dev/null +++ b/doc/makingnewfriends.md @@ -0,0 +1,11 @@ +This is your Suggested Friends page. If you get lost, you can click this link to bring yourself back here. + +This is a bit like the Friend Suggestions page of Facebook. Everybody on this list has agreed that they may be suggested as a friend. This means they're unlikely to refuse an introduction you send, and they want to meet new people too! + +See somebody you like the look of? Click the connect button beneath their photograph. This will bring you to the introductions page. Fill in the form as instructed, and add a small note (optional). Now, wait a bit and they'll accept your request - note that these are real people, and it might take a while. Now you've added one, you're probably lost. Click the link at the top of this page to go back to the suggested friends list and add some more. + +Feel uncomfortable adding people you don't know? Don't worry - that's where Groups and Pages come in! + + + + diff --git a/doc/network.md b/doc/network.md new file mode 100644 index 000000000..08ddca290 --- /dev/null +++ b/doc/network.md @@ -0,0 +1,9 @@ +This is your Network Tab. If you get lost, you can click this link to bring yourself back here. + +This is a bit like the Newsfeed at Facebook or the Stream at Diaspora. It's where all the posts from your contacts, groups, and feeds will appear. If you're new, you won't see anything in this page, unless you posted your status in the last step. If you've already added a few friends, you'll be able to see their posts. Here, you can comment, like, or dislike posts, or click on somebody's name to visit their profile page where you can write on their wall. + +Now we need to fill it up, the first step, is to make some new friends. + + + + From 04b48688b66f0b5e6c17606af1f02756ed70ac3c Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 25 Jan 2013 13:48:57 -0800 Subject: [PATCH 02/13] add form security to invite page and set maximum per user invites --- boot.php | 2 +- mod/invite.php | 19 +++++ util/messages.po | 184 ++++++++++++++++++++-------------------- view/invite.tpl | 3 + view/smarty3/invite.tpl | 3 + 5 files changed, 118 insertions(+), 93 deletions(-) diff --git a/boot.php b/boot.php index df5231026..5107d91af 100644 --- a/boot.php +++ b/boot.php @@ -12,7 +12,7 @@ require_once('library/Mobile_Detect/Mobile_Detect.php'); require_once('include/features.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.1.1597' ); +define ( 'FRIENDICA_VERSION', '3.1.1599' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1158 ); diff --git a/mod/invite.php b/mod/invite.php index 384161c6d..aea92a663 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -16,6 +16,18 @@ function invite_post(&$a) { return; } + check_form_security_token_redirectOnErr('/', 'send_invite'); + + $max_invites = intval(get_config('system','max_invites')); + if(! $max_invites) + $max_invites = 50; + + $current_invites = intval(get_pconfig(local_user(),'system','sent_invites')); + if($current_invites > $max_invites) { + notice( t('Total invitation limit exceeded.') . EOL); + return; + }; + $recips = ((x($_POST,'recipients')) ? explode("\n",$_POST['recipients']) : array()); $message = ((x($_POST,'message')) ? notags(trim($_POST['message'])) : ''); @@ -66,6 +78,12 @@ function invite_post(&$a) { if($res) { $total ++; + $current_invites ++; + set_pconfig(local_user(),'system','sent_invites',$current_invites); + if($current_invites > $max_invites) { + notice( t('Invitation limit exceeded. Please contact your site administrator.') . EOL); + return; + } } else { notice( sprintf( t('%s : Message delivery failed.'), $recip) . EOL); @@ -110,6 +128,7 @@ function invite_content(&$a) { } $o = replace_macros($tpl, array( + '$form_security_token' => get_form_security_token("send_invite"), '$invite' => t('Send invitations'), '$addr_text' => t('Enter email addresses, one per line:'), '$msg_text' => t('Your message:'), diff --git a/util/messages.po b/util/messages.po index 603ae32ee..b0d454b49 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.1.1597\n" +"Project-Id-Version: 3.1.1599\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-23 10:00-0800\n" +"POT-Creation-Date: 2013-01-25 10:00-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -368,7 +368,7 @@ msgstr "" #: ../../mod/dfrn_request.php:848 ../../mod/settings.php:561 #: ../../mod/settings.php:587 ../../mod/fbrowser.php:81 #: ../../mod/fbrowser.php:116 ../../addon/js_upload/js_upload.php:45 -#: ../../include/conversation.php:1040 +#: ../../include/conversation.php:1042 #: ../../addon.old/js_upload/js_upload.php:45 msgid "Cancel" msgstr "" @@ -642,7 +642,7 @@ msgstr "" msgid "I don't like this (toggle)" msgstr "" -#: ../../mod/photos.php:1422 ../../include/conversation.php:1000 +#: ../../mod/photos.php:1422 ../../include/conversation.php:1002 msgid "Share" msgstr "" @@ -650,7 +650,7 @@ msgstr "" #: ../../mod/content.php:499 ../../mod/content.php:883 #: ../../mod/wallmessage.php:152 ../../mod/message.php:300 #: ../../mod/message.php:528 ../../include/conversation.php:645 -#: ../../include/conversation.php:1019 ../../object/Item.php:293 +#: ../../include/conversation.php:1021 ../../object/Item.php:293 msgid "Please wait" msgstr "" @@ -668,7 +668,7 @@ msgstr "" #: ../../mod/photos.php:1443 ../../mod/photos.php:1487 #: ../../mod/photos.php:1570 ../../mod/editpost.php:142 -#: ../../mod/content.php:719 ../../include/conversation.php:1037 +#: ../../mod/content.php:719 ../../include/conversation.php:1039 #: ../../object/Item.php:613 msgid "Preview" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../mod/editpost.php:91 ../../include/conversation.php:986 +#: ../../mod/editpost.php:91 ../../include/conversation.php:988 msgid "Post to Email" msgstr "" @@ -753,85 +753,85 @@ msgstr "" #: ../../mod/editpost.php:107 ../../mod/wallmessage.php:150 #: ../../mod/message.php:298 ../../mod/message.php:525 -#: ../../include/conversation.php:1001 +#: ../../include/conversation.php:1003 msgid "Upload photo" msgstr "" -#: ../../mod/editpost.php:108 ../../include/conversation.php:1002 +#: ../../mod/editpost.php:108 ../../include/conversation.php:1004 msgid "upload photo" msgstr "" -#: ../../mod/editpost.php:109 ../../include/conversation.php:1003 +#: ../../mod/editpost.php:109 ../../include/conversation.php:1005 msgid "Attach file" msgstr "" -#: ../../mod/editpost.php:110 ../../include/conversation.php:1004 +#: ../../mod/editpost.php:110 ../../include/conversation.php:1006 msgid "attach file" msgstr "" #: ../../mod/editpost.php:111 ../../mod/wallmessage.php:151 #: ../../mod/message.php:299 ../../mod/message.php:526 -#: ../../include/conversation.php:1005 +#: ../../include/conversation.php:1007 msgid "Insert web link" msgstr "" -#: ../../mod/editpost.php:112 ../../include/conversation.php:1006 +#: ../../mod/editpost.php:112 ../../include/conversation.php:1008 msgid "web link" msgstr "" -#: ../../mod/editpost.php:113 ../../include/conversation.php:1007 +#: ../../mod/editpost.php:113 ../../include/conversation.php:1009 msgid "Insert video link" msgstr "" -#: ../../mod/editpost.php:114 ../../include/conversation.php:1008 +#: ../../mod/editpost.php:114 ../../include/conversation.php:1010 msgid "video link" msgstr "" -#: ../../mod/editpost.php:115 ../../include/conversation.php:1009 +#: ../../mod/editpost.php:115 ../../include/conversation.php:1011 msgid "Insert audio link" msgstr "" -#: ../../mod/editpost.php:116 ../../include/conversation.php:1010 +#: ../../mod/editpost.php:116 ../../include/conversation.php:1012 msgid "audio link" msgstr "" -#: ../../mod/editpost.php:117 ../../include/conversation.php:1011 +#: ../../mod/editpost.php:117 ../../include/conversation.php:1013 msgid "Set your location" msgstr "" -#: ../../mod/editpost.php:118 ../../include/conversation.php:1012 +#: ../../mod/editpost.php:118 ../../include/conversation.php:1014 msgid "set location" msgstr "" -#: ../../mod/editpost.php:119 ../../include/conversation.php:1013 +#: ../../mod/editpost.php:119 ../../include/conversation.php:1015 msgid "Clear browser location" msgstr "" -#: ../../mod/editpost.php:120 ../../include/conversation.php:1014 +#: ../../mod/editpost.php:120 ../../include/conversation.php:1016 msgid "clear location" msgstr "" -#: ../../mod/editpost.php:122 ../../include/conversation.php:1020 +#: ../../mod/editpost.php:122 ../../include/conversation.php:1022 msgid "Permission settings" msgstr "" -#: ../../mod/editpost.php:130 ../../include/conversation.php:1029 +#: ../../mod/editpost.php:130 ../../include/conversation.php:1031 msgid "CC: email addresses" msgstr "" -#: ../../mod/editpost.php:131 ../../include/conversation.php:1030 +#: ../../mod/editpost.php:131 ../../include/conversation.php:1032 msgid "Public post" msgstr "" -#: ../../mod/editpost.php:134 ../../include/conversation.php:1016 +#: ../../mod/editpost.php:134 ../../include/conversation.php:1018 msgid "Set title" msgstr "" -#: ../../mod/editpost.php:136 ../../include/conversation.php:1018 +#: ../../mod/editpost.php:136 ../../include/conversation.php:1020 msgid "Categories (comma-separated list)" msgstr "" -#: ../../mod/editpost.php:137 ../../include/conversation.php:1032 +#: ../../mod/editpost.php:137 ../../include/conversation.php:1034 msgid "Example: bob@example.com, mary@example.com" msgstr "" @@ -2877,7 +2877,7 @@ msgstr "" #: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131 #: ../../mod/message.php:249 ../../mod/message.php:257 #: ../../mod/message.php:429 ../../mod/message.php:437 -#: ../../include/conversation.php:936 ../../include/conversation.php:954 +#: ../../include/conversation.php:938 ../../include/conversation.php:956 msgid "Please enter a link URL:" msgstr "" @@ -4686,8 +4686,8 @@ msgstr "" msgid "Edit visibility" msgstr "" -#: ../../mod/filer.php:30 ../../include/conversation.php:940 -#: ../../include/conversation.php:958 +#: ../../mod/filer.php:30 ../../include/conversation.php:942 +#: ../../include/conversation.php:960 msgid "Save to Folder:" msgstr "" @@ -9200,145 +9200,145 @@ msgstr "" msgid "Please visit %s to view and/or reply to your private messages." msgstr "" -#: ../../include/enotify.php:89 +#: ../../include/enotify.php:90 #, php-format msgid "%1$s commented on [url=%2$s]a %3$s[/url]" msgstr "" -#: ../../include/enotify.php:96 +#: ../../include/enotify.php:97 #, php-format msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" msgstr "" -#: ../../include/enotify.php:104 +#: ../../include/enotify.php:105 #, php-format msgid "%1$s commented on [url=%2$s]your %3$s[/url]" msgstr "" -#: ../../include/enotify.php:114 +#: ../../include/enotify.php:115 #, php-format msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" msgstr "" -#: ../../include/enotify.php:115 +#: ../../include/enotify.php:116 #, php-format msgid "%s commented on an item/conversation you have been following." msgstr "" -#: ../../include/enotify.php:118 ../../include/enotify.php:133 -#: ../../include/enotify.php:146 ../../include/enotify.php:164 -#: ../../include/enotify.php:177 +#: ../../include/enotify.php:119 ../../include/enotify.php:134 +#: ../../include/enotify.php:147 ../../include/enotify.php:165 +#: ../../include/enotify.php:178 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "" -#: ../../include/enotify.php:125 +#: ../../include/enotify.php:126 #, php-format msgid "[Friendica:Notify] %s posted to your profile wall" msgstr "" -#: ../../include/enotify.php:127 +#: ../../include/enotify.php:128 #, php-format msgid "%1$s posted to your profile wall at %2$s" msgstr "" -#: ../../include/enotify.php:129 +#: ../../include/enotify.php:130 #, php-format msgid "%1$s posted to [url=%2$s]your wall[/url]" msgstr "" -#: ../../include/enotify.php:140 +#: ../../include/enotify.php:141 #, php-format msgid "[Friendica:Notify] %s tagged you" msgstr "" -#: ../../include/enotify.php:141 +#: ../../include/enotify.php:142 #, php-format msgid "%1$s tagged you at %2$s" msgstr "" -#: ../../include/enotify.php:142 +#: ../../include/enotify.php:143 #, php-format msgid "%1$s [url=%2$s]tagged you[/url]." msgstr "" -#: ../../include/enotify.php:154 +#: ../../include/enotify.php:155 #, php-format msgid "[Friendica:Notify] %1$s poked you" msgstr "" -#: ../../include/enotify.php:155 +#: ../../include/enotify.php:156 #, php-format msgid "%1$s poked you at %2$s" msgstr "" -#: ../../include/enotify.php:156 +#: ../../include/enotify.php:157 #, php-format msgid "%1$s [url=%2$s]poked you[/url]." msgstr "" -#: ../../include/enotify.php:171 +#: ../../include/enotify.php:172 #, php-format msgid "[Friendica:Notify] %s tagged your post" msgstr "" -#: ../../include/enotify.php:172 +#: ../../include/enotify.php:173 #, php-format msgid "%1$s tagged your post at %2$s" msgstr "" -#: ../../include/enotify.php:173 +#: ../../include/enotify.php:174 #, php-format msgid "%1$s tagged [url=%2$s]your post[/url]" msgstr "" -#: ../../include/enotify.php:184 -msgid "[Friendica:Notify] Introduction received" -msgstr "" - #: ../../include/enotify.php:185 -#, php-format -msgid "You've received an introduction from '%1$s' at %2$s" +msgid "[Friendica:Notify] Introduction received" msgstr "" #: ../../include/enotify.php:186 #, php-format +msgid "You've received an introduction from '%1$s' at %2$s" +msgstr "" + +#: ../../include/enotify.php:187 +#, php-format msgid "You've received [url=%1$s]an introduction[/url] from %2$s." msgstr "" -#: ../../include/enotify.php:189 ../../include/enotify.php:207 +#: ../../include/enotify.php:190 ../../include/enotify.php:208 #, php-format msgid "You may visit their profile at %s" msgstr "" -#: ../../include/enotify.php:191 +#: ../../include/enotify.php:192 #, php-format msgid "Please visit %s to approve or reject the introduction." msgstr "" -#: ../../include/enotify.php:198 -msgid "[Friendica:Notify] Friend suggestion received" -msgstr "" - #: ../../include/enotify.php:199 -#, php-format -msgid "You've received a friend suggestion from '%1$s' at %2$s" +msgid "[Friendica:Notify] Friend suggestion received" msgstr "" #: ../../include/enotify.php:200 #, php-format +msgid "You've received a friend suggestion from '%1$s' at %2$s" +msgstr "" + +#: ../../include/enotify.php:201 +#, php-format msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." msgstr "" -#: ../../include/enotify.php:205 +#: ../../include/enotify.php:206 msgid "Name:" msgstr "" -#: ../../include/enotify.php:206 +#: ../../include/enotify.php:207 msgid "Photo:" msgstr "" -#: ../../include/enotify.php:209 +#: ../../include/enotify.php:210 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "" @@ -9500,34 +9500,34 @@ msgstr "" msgid "stopped following" msgstr "" -#: ../../include/Contact.php:225 ../../include/conversation.php:816 +#: ../../include/Contact.php:225 ../../include/conversation.php:818 msgid "Poke" msgstr "" -#: ../../include/Contact.php:226 ../../include/conversation.php:810 +#: ../../include/Contact.php:226 ../../include/conversation.php:812 msgid "View Status" msgstr "" -#: ../../include/Contact.php:227 ../../include/conversation.php:811 +#: ../../include/Contact.php:227 ../../include/conversation.php:813 msgid "View Profile" msgstr "" -#: ../../include/Contact.php:228 ../../include/conversation.php:812 +#: ../../include/Contact.php:228 ../../include/conversation.php:814 msgid "View Photos" msgstr "" #: ../../include/Contact.php:229 ../../include/Contact.php:242 -#: ../../include/conversation.php:813 +#: ../../include/conversation.php:815 msgid "Network Posts" msgstr "" #: ../../include/Contact.php:230 ../../include/Contact.php:242 -#: ../../include/conversation.php:814 +#: ../../include/conversation.php:816 msgid "Edit Contact" msgstr "" #: ../../include/Contact.php:231 ../../include/Contact.php:242 -#: ../../include/conversation.php:815 +#: ../../include/conversation.php:817 msgid "Send PM" msgstr "" @@ -9553,82 +9553,82 @@ msgstr "" msgid "Filed under:" msgstr "" -#: ../../include/conversation.php:706 +#: ../../include/conversation.php:708 msgid "remove" msgstr "" -#: ../../include/conversation.php:710 +#: ../../include/conversation.php:712 msgid "Delete Selected Items" msgstr "" -#: ../../include/conversation.php:809 +#: ../../include/conversation.php:811 msgid "Follow Thread" msgstr "" -#: ../../include/conversation.php:878 +#: ../../include/conversation.php:880 #, php-format msgid "%s likes this." msgstr "" -#: ../../include/conversation.php:878 +#: ../../include/conversation.php:880 #, php-format msgid "%s doesn't like this." msgstr "" -#: ../../include/conversation.php:883 +#: ../../include/conversation.php:885 #, php-format msgid "%2$d people like this" msgstr "" -#: ../../include/conversation.php:886 +#: ../../include/conversation.php:888 #, php-format msgid "%2$d people don't like this" msgstr "" -#: ../../include/conversation.php:900 +#: ../../include/conversation.php:902 msgid "and" msgstr "" -#: ../../include/conversation.php:906 +#: ../../include/conversation.php:908 #, php-format msgid ", and %d other people" msgstr "" -#: ../../include/conversation.php:908 +#: ../../include/conversation.php:910 #, php-format msgid "%s like this." msgstr "" -#: ../../include/conversation.php:908 +#: ../../include/conversation.php:910 #, php-format msgid "%s don't like this." msgstr "" -#: ../../include/conversation.php:935 ../../include/conversation.php:953 +#: ../../include/conversation.php:937 ../../include/conversation.php:955 msgid "Visible to everybody" msgstr "" -#: ../../include/conversation.php:937 ../../include/conversation.php:955 +#: ../../include/conversation.php:939 ../../include/conversation.php:957 msgid "Please enter a video link/URL:" msgstr "" -#: ../../include/conversation.php:938 ../../include/conversation.php:956 +#: ../../include/conversation.php:940 ../../include/conversation.php:958 msgid "Please enter an audio link/URL:" msgstr "" -#: ../../include/conversation.php:939 ../../include/conversation.php:957 +#: ../../include/conversation.php:941 ../../include/conversation.php:959 msgid "Tag term:" msgstr "" -#: ../../include/conversation.php:941 ../../include/conversation.php:959 +#: ../../include/conversation.php:943 ../../include/conversation.php:961 msgid "Where are you right now?" msgstr "" -#: ../../include/conversation.php:942 +#: ../../include/conversation.php:944 msgid "Delete item(s)?" msgstr "" -#: ../../include/conversation.php:1021 +#: ../../include/conversation.php:1023 msgid "permissions" msgstr "" diff --git a/view/invite.tpl b/view/invite.tpl index a47ef0162..e00d27d4a 100644 --- a/view/invite.tpl +++ b/view/invite.tpl @@ -1,4 +1,7 @@
+ + +

$invite

diff --git a/view/smarty3/invite.tpl b/view/smarty3/invite.tpl index a47ee639b..e699f1f0e 100644 --- a/view/smarty3/invite.tpl +++ b/view/smarty3/invite.tpl @@ -4,6 +4,9 @@ * *}} + + +

{{$invite}}

From 488a38cd85bc349d5bc5f5d9541613ccec1f1806 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 26 Jan 2013 12:52:21 -0700 Subject: [PATCH 03/13] Decaf mobile: an (almost) Javascript-free theme --- boot.php | 30 + include/Contact.php | 27 +- include/acl_selectors.php | 263 +- include/conversation.php | 41 +- include/items.php | 28 + include/nav.php | 56 +- include/template_processor.php | 6 +- mod/acl.php | 188 +- mod/contacts.php | 36 +- mod/display.php | 5 +- mod/editpost.php | 9 +- mod/item.php | 4 +- mod/like.php | 28 +- mod/manage.php | 35 +- mod/message.php | 41 +- mod/navigation.php | 27 + mod/network.php | 4 +- mod/notes.php | 4 +- mod/photos.php | 125 +- mod/profile.php | 3 +- mod/settings.php | 30 + mod/starred.php | 10 + mod/suggest.php | 37 +- object/Item.php | 2 +- view/comment_item.tpl | 2 +- view/confirm.tpl | 14 + view/contact_template.tpl | 8 +- view/like_noshare.tpl | 2 + view/manage.tpl | 17 + view/navigation.tpl | 103 + view/photos_default_uploader_box.tpl | 1 + view/photos_default_uploader_submit.tpl | 3 + view/photos_upload.tpl | 5 +- view/theme/comix-plain/comment_item.tpl | 2 +- view/theme/comix/comment_item.tpl | 2 +- view/theme/decaf-mobile/TODO | 31 + view/theme/decaf-mobile/acl_html_selector.tpl | 29 + view/theme/decaf-mobile/acl_selector.tpl | 23 + view/theme/decaf-mobile/admin_aside.tpl | 31 + view/theme/decaf-mobile/admin_site.tpl | 61 + view/theme/decaf-mobile/admin_users.tpl | 98 + view/theme/decaf-mobile/album_edit.tpl | 15 + view/theme/decaf-mobile/border.jpg | Bin 0 -> 342 bytes view/theme/decaf-mobile/categories_widget.tpl | 12 + view/theme/decaf-mobile/comment_item.tpl | 79 + view/theme/decaf-mobile/common_tabs.tpl | 6 + view/theme/decaf-mobile/contact_block.tpl | 12 + view/theme/decaf-mobile/contact_edit.tpl | 93 + view/theme/decaf-mobile/contact_head.tpl | 0 view/theme/decaf-mobile/contact_template.tpl | 38 + view/theme/decaf-mobile/contacts-end.tpl | 4 + view/theme/decaf-mobile/contacts-head.tpl | 5 + view/theme/decaf-mobile/contacts-template.tpl | 28 + .../decaf-mobile/contacts-widget-sidebar.tpl | 2 + view/theme/decaf-mobile/conversation.tpl | 29 + view/theme/decaf-mobile/cropbody.tpl | 27 + view/theme/decaf-mobile/cropend.tpl | 4 + view/theme/decaf-mobile/crophead.tpl | 1 + view/theme/decaf-mobile/default.php | 44 + view/theme/decaf-mobile/display-head.tpl | 4 + view/theme/decaf-mobile/editicons.png | Bin 0 -> 6300 bytes view/theme/decaf-mobile/end.tpl | 24 + view/theme/decaf-mobile/event_end.tpl | 4 + view/theme/decaf-mobile/event_head.tpl | 6 + view/theme/decaf-mobile/field_checkbox.tpl | 6 + view/theme/decaf-mobile/field_input.tpl | 6 + view/theme/decaf-mobile/field_openid.tpl | 6 + view/theme/decaf-mobile/field_password.tpl | 6 + view/theme/decaf-mobile/field_themeselect.tpl | 9 + view/theme/decaf-mobile/field_yesno.tpl | 14 + view/theme/decaf-mobile/file.gif | Bin 0 -> 615 bytes view/theme/decaf-mobile/friendica-16.png | Bin 0 -> 699 bytes .../decaf-mobile/generic_links_widget.tpl | 12 + view/theme/decaf-mobile/group_drop.tpl | 9 + view/theme/decaf-mobile/group_side.tpl | 33 + view/theme/decaf-mobile/head.jpg | Bin 0 -> 383 bytes view/theme/decaf-mobile/head.tpl | 29 + .../decaf-mobile/images/approve-blue.png | Bin 0 -> 562 bytes view/theme/decaf-mobile/images/approve.png | Bin 0 -> 475 bytes view/theme/decaf-mobile/images/arrow-left.png | Bin 0 -> 282 bytes .../theme/decaf-mobile/images/arrow-right.png | Bin 0 -> 306 bytes .../theme/decaf-mobile/images/boldB-serif.png | Bin 0 -> 574 bytes view/theme/decaf-mobile/images/camera.png | Bin 0 -> 530 bytes view/theme/decaf-mobile/images/code.png | Bin 0 -> 488 bytes view/theme/decaf-mobile/images/contacts.png | Bin 0 -> 813 bytes .../decaf-mobile/images/disapprove-blue.png | Bin 0 -> 568 bytes view/theme/decaf-mobile/images/disapprove.png | Bin 0 -> 480 bytes view/theme/decaf-mobile/images/drop-blue.png | Bin 0 -> 425 bytes .../decaf-mobile/images/drop-darkred.png | Bin 0 -> 416 bytes view/theme/decaf-mobile/images/drop-red.png | Bin 0 -> 321 bytes view/theme/decaf-mobile/images/drop.png | Bin 0 -> 305 bytes .../theme/decaf-mobile/images/folder-blue.png | Bin 0 -> 266 bytes view/theme/decaf-mobile/images/folder.png | Bin 0 -> 219 bytes view/theme/decaf-mobile/images/globe.png | Bin 0 -> 1055 bytes .../decaf-mobile/images/italicI-serif.png | Bin 0 -> 398 bytes view/theme/decaf-mobile/images/lock.png | Bin 0 -> 520 bytes view/theme/decaf-mobile/images/menu.png | Bin 0 -> 1019 bytes view/theme/decaf-mobile/images/message.png | Bin 0 -> 708 bytes view/theme/decaf-mobile/images/network.png | Bin 0 -> 770 bytes view/theme/decaf-mobile/images/noglobe.png | Bin 0 -> 1113 bytes .../decaf-mobile/images/notifications.png | Bin 0 -> 923 bytes view/theme/decaf-mobile/images/oxygen/LICENSE | 165 + .../images/oxygen/application-msword.png | Bin 0 -> 3612 bytes .../images/oxygen/application-pdf.png | Bin 0 -> 3285 bytes .../oxygen/application-vnd.ms-excel.png | Bin 0 -> 2763 bytes .../oxygen/application-vnd.ms-powerpoint.png | Bin 0 -> 3087 bytes ...on-vnd.oasis.opendocument.presentation.png | Bin 0 -> 2844 bytes ...ion-vnd.oasis.opendocument.spreadsheet.png | Bin 0 -> 2453 bytes ...pplication-vnd.oasis.opendocument.text.png | Bin 0 -> 3907 bytes .../application-x-bzip-compressed-tar.png | Bin 0 -> 3824 bytes .../oxygen/application-x-compressed-tar.png | Bin 0 -> 3106 bytes .../images/oxygen/application-x-deb.png | Bin 0 -> 3140 bytes .../images/oxygen/application-x-font-otf.png | Bin 0 -> 2565 bytes .../images/oxygen/application-x-font-ttf.png | Bin 0 -> 2565 bytes .../oxygen/application-x-java-archive.png | Bin 0 -> 3172 bytes .../application-x-lzma-compressed-tar.png | Bin 0 -> 2560 bytes .../images/oxygen/application-x-php.png | Bin 0 -> 3805 bytes .../images/oxygen/application-x-rar.png | Bin 0 -> 3824 bytes .../images/oxygen/application-x-rpm.png | Bin 0 -> 3253 bytes .../images/oxygen/application-x-ruby.png | Bin 0 -> 3778 bytes .../oxygen/application-x-shellscript.png | Bin 0 -> 2292 bytes .../oxygen/application-x-shockwave-flash.png | Bin 0 -> 3243 bytes .../images/oxygen/application-x-tar.png | Bin 0 -> 2560 bytes .../images/oxygen/application-xml.png | Bin 0 -> 2278 bytes .../images/oxygen/application-zip.png | Bin 0 -> 3824 bytes .../decaf-mobile/images/oxygen/audio-aac.png | Bin 0 -> 3356 bytes .../decaf-mobile/images/oxygen/audio-mp4.png | Bin 0 -> 3356 bytes .../decaf-mobile/images/oxygen/audio-mpeg.png | Bin 0 -> 3356 bytes .../images/oxygen/audio-x-flac.png | Bin 0 -> 3075 bytes .../images/oxygen/audio-x-generic.png | Bin 0 -> 3356 bytes .../images/oxygen/audio-x-mp2.png | Bin 0 -> 3356 bytes .../images/oxygen/audio-x-ms-wma.png | Bin 0 -> 3356 bytes .../images/oxygen/audio-x-vorbis+ogg.png | Bin 0 -> 3356 bytes .../images/oxygen/audio-x-wav.png | Bin 0 -> 11892 bytes .../images/oxygen/image-x-generic.png | Bin 0 -> 3617 bytes .../decaf-mobile/images/oxygen/text-css.png | Bin 0 -> 11341 bytes .../decaf-mobile/images/oxygen/text-html.png | Bin 0 -> 3656 bytes .../images/oxygen/text-x-generic-2.png | Bin 0 -> 3121 bytes .../decaf-mobile/images/oxygen/text-x-tex.png | Bin 0 -> 3177 bytes .../decaf-mobile/images/oxygen/unknown.png | Bin 0 -> 2260 bytes .../images/oxygen/video-x-generic.png | Bin 0 -> 3628 bytes view/theme/decaf-mobile/images/paperclip.png | Bin 0 -> 821 bytes .../theme/decaf-mobile/images/pencil-blue.png | Bin 0 -> 594 bytes view/theme/decaf-mobile/images/pencil.png | Bin 0 -> 402 bytes view/theme/decaf-mobile/images/quote.png | Bin 0 -> 366 bytes .../decaf-mobile/images/recycle-blue.png | Bin 0 -> 1014 bytes view/theme/decaf-mobile/images/recycle.png | Bin 0 -> 795 bytes .../decaf-mobile/images/remote-link-blue.png | Bin 0 -> 613 bytes .../theme/decaf-mobile/images/remote-link.png | Bin 0 -> 534 bytes view/theme/decaf-mobile/images/star-blue.png | Bin 0 -> 649 bytes .../theme/decaf-mobile/images/star-yellow.png | Bin 0 -> 633 bytes view/theme/decaf-mobile/images/star.png | Bin 0 -> 515 bytes view/theme/decaf-mobile/images/tag-blue.png | Bin 0 -> 432 bytes view/theme/decaf-mobile/images/tag.png | Bin 0 -> 291 bytes .../decaf-mobile/images/underlineU-serif.png | Bin 0 -> 454 bytes view/theme/decaf-mobile/images/unlock.png | Bin 0 -> 572 bytes view/theme/decaf-mobile/jot-end.tpl | 5 + view/theme/decaf-mobile/jot-header.tpl | 17 + view/theme/decaf-mobile/jot.tpl | 99 + view/theme/decaf-mobile/jot_geotag.tpl | 11 + view/theme/decaf-mobile/js/theme.js | 77 + view/theme/decaf-mobile/lang_selector.tpl | 10 + view/theme/decaf-mobile/like_noshare.tpl | 7 + view/theme/decaf-mobile/lock.cur | Bin 0 -> 4286 bytes view/theme/decaf-mobile/login-bg.gif | Bin 0 -> 237 bytes view/theme/decaf-mobile/login-style.css | 180 + view/theme/decaf-mobile/login.tpl | 45 + view/theme/decaf-mobile/login_head.tpl | 2 + view/theme/decaf-mobile/lostpass.tpl | 21 + view/theme/decaf-mobile/mail_conv.tpl | 18 + view/theme/decaf-mobile/mail_list.tpl | 16 + view/theme/decaf-mobile/manage.tpl | 18 + view/theme/decaf-mobile/message-end.tpl | 4 + view/theme/decaf-mobile/message-head.tpl | 0 view/theme/decaf-mobile/mobile | 0 view/theme/decaf-mobile/msg-end.tpl | 2 + view/theme/decaf-mobile/msg-header.tpl | 10 + view/theme/decaf-mobile/nav.tpl | 155 + view/theme/decaf-mobile/photo_drop.tpl | 4 + view/theme/decaf-mobile/photo_edit.tpl | 60 + view/theme/decaf-mobile/photo_edit_head.tpl | 7 + view/theme/decaf-mobile/photo_view.tpl | 42 + view/theme/decaf-mobile/photos_head.tpl | 5 + view/theme/decaf-mobile/photos_upload.tpl | 51 + view/theme/decaf-mobile/profed_end.tpl | 8 + view/theme/decaf-mobile/profed_head.tpl | 5 + view/theme/decaf-mobile/profile_edit.tpl | 324 ++ view/theme/decaf-mobile/profile_photo.tpl | 19 + view/theme/decaf-mobile/profile_vcard.tpl | 51 + view/theme/decaf-mobile/prv_message.tpl | 43 + view/theme/decaf-mobile/register.tpl | 80 + view/theme/decaf-mobile/screenshot.jpg | Bin 0 -> 89002 bytes view/theme/decaf-mobile/search_item.tpl | 64 + view/theme/decaf-mobile/settings-head.tpl | 5 + view/theme/decaf-mobile/settings.tpl | 148 + .../decaf-mobile/settings_display_end.tpl | 2 + .../smarty3/acl_html_selector.tpl | 34 + .../decaf-mobile/smarty3/acl_selector.tpl | 28 + .../decaf-mobile/smarty3/admin_aside.tpl | 36 + .../theme/decaf-mobile/smarty3/admin_site.tpl | 66 + .../decaf-mobile/smarty3/admin_users.tpl | 103 + .../theme/decaf-mobile/smarty3/album_edit.tpl | 20 + .../smarty3/categories_widget.tpl | 17 + .../decaf-mobile/smarty3/comment_item.tpl | 84 + .../decaf-mobile/smarty3/common_tabs.tpl | 11 + .../decaf-mobile/smarty3/contact_block.tpl | 17 + .../decaf-mobile/smarty3/contact_edit.tpl | 98 + .../decaf-mobile/smarty3/contact_head.tpl | 5 + .../decaf-mobile/smarty3/contact_template.tpl | 43 + .../decaf-mobile/smarty3/contacts-end.tpl | 9 + .../decaf-mobile/smarty3/contacts-head.tpl | 10 + .../smarty3/contacts-template.tpl | 33 + .../smarty3/contacts-widget-sidebar.tpl | 7 + .../decaf-mobile/smarty3/conversation.tpl | 34 + view/theme/decaf-mobile/smarty3/cropbody.tpl | 32 + view/theme/decaf-mobile/smarty3/cropend.tpl | 9 + view/theme/decaf-mobile/smarty3/crophead.tpl | 6 + .../decaf-mobile/smarty3/display-head.tpl | 9 + view/theme/decaf-mobile/smarty3/end.tpl | 29 + view/theme/decaf-mobile/smarty3/event_end.tpl | 9 + .../theme/decaf-mobile/smarty3/event_head.tpl | 11 + .../decaf-mobile/smarty3/field_checkbox.tpl | 11 + .../decaf-mobile/smarty3/field_input.tpl | 11 + .../decaf-mobile/smarty3/field_openid.tpl | 11 + .../decaf-mobile/smarty3/field_password.tpl | 11 + .../smarty3/field_themeselect.tpl | 14 + .../decaf-mobile/smarty3/field_yesno.tpl | 19 + .../smarty3/generic_links_widget.tpl | 17 + .../theme/decaf-mobile/smarty3/group_drop.tpl | 14 + .../theme/decaf-mobile/smarty3/group_side.tpl | 38 + view/theme/decaf-mobile/smarty3/head.tpl | 34 + view/theme/decaf-mobile/smarty3/jot-end.tpl | 10 + .../theme/decaf-mobile/smarty3/jot-header.tpl | 22 + view/theme/decaf-mobile/smarty3/jot.tpl | 104 + .../theme/decaf-mobile/smarty3/jot_geotag.tpl | 16 + .../decaf-mobile/smarty3/lang_selector.tpl | 15 + .../decaf-mobile/smarty3/like_noshare.tpl | 12 + view/theme/decaf-mobile/smarty3/login.tpl | 50 + .../theme/decaf-mobile/smarty3/login_head.tpl | 7 + view/theme/decaf-mobile/smarty3/lostpass.tpl | 26 + view/theme/decaf-mobile/smarty3/mail_conv.tpl | 23 + view/theme/decaf-mobile/smarty3/mail_list.tpl | 21 + view/theme/decaf-mobile/smarty3/manage.tpl | 23 + .../decaf-mobile/smarty3/message-end.tpl | 9 + .../decaf-mobile/smarty3/message-head.tpl | 5 + .../smarty3/moderated_comment.tpl | 66 + view/theme/decaf-mobile/smarty3/msg-end.tpl | 7 + .../theme/decaf-mobile/smarty3/msg-header.tpl | 15 + view/theme/decaf-mobile/smarty3/nav.tpl | 160 + .../theme/decaf-mobile/smarty3/photo_drop.tpl | 9 + .../theme/decaf-mobile/smarty3/photo_edit.tpl | 65 + .../decaf-mobile/smarty3/photo_edit_head.tpl | 12 + .../theme/decaf-mobile/smarty3/photo_view.tpl | 47 + .../decaf-mobile/smarty3/photos_head.tpl | 10 + .../decaf-mobile/smarty3/photos_upload.tpl | 56 + .../theme/decaf-mobile/smarty3/profed_end.tpl | 13 + .../decaf-mobile/smarty3/profed_head.tpl | 10 + .../decaf-mobile/smarty3/profile_edit.tpl | 329 ++ .../decaf-mobile/smarty3/profile_photo.tpl | 24 + .../decaf-mobile/smarty3/profile_vcard.tpl | 56 + .../decaf-mobile/smarty3/prv_message.tpl | 48 + view/theme/decaf-mobile/smarty3/register.tpl | 85 + .../decaf-mobile/smarty3/search_item.tpl | 69 + .../decaf-mobile/smarty3/settings-head.tpl | 10 + view/theme/decaf-mobile/smarty3/settings.tpl | 153 + .../smarty3/settings_display_end.tpl | 7 + .../decaf-mobile/smarty3/suggest_friends.tpl | 21 + .../smarty3/threaded_conversation.tpl | 17 + .../decaf-mobile/smarty3/voting_fakelink.tpl | 6 + .../decaf-mobile/smarty3/wall_thread.tpl | 125 + .../smarty3/wall_thread_toponly.tpl | 107 + .../decaf-mobile/smarty3/wallmessage.tpl | 37 + .../decaf-mobile/smarty3/wallmsg-end.tpl | 7 + .../decaf-mobile/smarty3/wallmsg-header.tpl | 12 + view/theme/decaf-mobile/style.css | 4317 +++++++++++++++++ view/theme/decaf-mobile/suggest_friends.tpl | 16 + view/theme/decaf-mobile/theme.php | 33 + .../decaf-mobile/threaded_conversation.tpl | 12 + view/theme/decaf-mobile/voting_fakelink.tpl | 1 + view/theme/decaf-mobile/wall_thread.tpl | 119 + .../decaf-mobile/wall_thread_toponly.tpl | 101 + view/theme/decaf-mobile/wallmessage.tpl | 32 + view/theme/decaf-mobile/wallmsg-end.tpl | 2 + view/theme/decaf-mobile/wallmsg-header.tpl | 7 + view/theme/diabook/comment_item.tpl | 2 +- view/theme/diabook/contact_template.tpl | 8 +- view/theme/dispy/comment_item.tpl | 2 +- view/theme/dispy/contact_template.tpl | 8 +- view/theme/duepuntozero/comment_item.tpl | 2 +- view/theme/facepark/comment_item.tpl | 2 +- view/theme/frost-mobile/comment_item.tpl | 30 +- view/theme/frost-mobile/contact_template.tpl | 12 +- view/theme/frost-mobile/photos_upload.tpl | 6 +- view/theme/frost/comment_item.tpl | 22 +- view/theme/frost/contact_template.tpl | 8 +- view/theme/frost/photos_upload.tpl | 5 +- view/theme/quattro/comment_item.tpl | 2 +- view/theme/quattro/contact_template.tpl | 8 +- view/theme/testbubble/comment_item.tpl | 2 +- view/theme/vier/comment_item.tpl | 2 +- 300 files changed, 11117 insertions(+), 328 deletions(-) create mode 100644 mod/navigation.php create mode 100644 view/confirm.tpl create mode 100644 view/manage.tpl create mode 100644 view/navigation.tpl create mode 100644 view/photos_default_uploader_box.tpl create mode 100644 view/photos_default_uploader_submit.tpl create mode 100644 view/theme/decaf-mobile/TODO create mode 100644 view/theme/decaf-mobile/acl_html_selector.tpl create mode 100644 view/theme/decaf-mobile/acl_selector.tpl create mode 100644 view/theme/decaf-mobile/admin_aside.tpl create mode 100644 view/theme/decaf-mobile/admin_site.tpl create mode 100644 view/theme/decaf-mobile/admin_users.tpl create mode 100644 view/theme/decaf-mobile/album_edit.tpl create mode 100644 view/theme/decaf-mobile/border.jpg create mode 100644 view/theme/decaf-mobile/categories_widget.tpl create mode 100755 view/theme/decaf-mobile/comment_item.tpl create mode 100644 view/theme/decaf-mobile/common_tabs.tpl create mode 100644 view/theme/decaf-mobile/contact_block.tpl create mode 100644 view/theme/decaf-mobile/contact_edit.tpl create mode 100644 view/theme/decaf-mobile/contact_head.tpl create mode 100644 view/theme/decaf-mobile/contact_template.tpl create mode 100644 view/theme/decaf-mobile/contacts-end.tpl create mode 100644 view/theme/decaf-mobile/contacts-head.tpl create mode 100644 view/theme/decaf-mobile/contacts-template.tpl create mode 100644 view/theme/decaf-mobile/contacts-widget-sidebar.tpl create mode 100644 view/theme/decaf-mobile/conversation.tpl create mode 100644 view/theme/decaf-mobile/cropbody.tpl create mode 100644 view/theme/decaf-mobile/cropend.tpl create mode 100644 view/theme/decaf-mobile/crophead.tpl create mode 100644 view/theme/decaf-mobile/default.php create mode 100644 view/theme/decaf-mobile/display-head.tpl create mode 100644 view/theme/decaf-mobile/editicons.png create mode 100644 view/theme/decaf-mobile/end.tpl create mode 100644 view/theme/decaf-mobile/event_end.tpl create mode 100644 view/theme/decaf-mobile/event_head.tpl create mode 100644 view/theme/decaf-mobile/field_checkbox.tpl create mode 100644 view/theme/decaf-mobile/field_input.tpl create mode 100644 view/theme/decaf-mobile/field_openid.tpl create mode 100644 view/theme/decaf-mobile/field_password.tpl create mode 100644 view/theme/decaf-mobile/field_themeselect.tpl create mode 100644 view/theme/decaf-mobile/field_yesno.tpl create mode 100644 view/theme/decaf-mobile/file.gif create mode 100644 view/theme/decaf-mobile/friendica-16.png create mode 100644 view/theme/decaf-mobile/generic_links_widget.tpl create mode 100644 view/theme/decaf-mobile/group_drop.tpl create mode 100644 view/theme/decaf-mobile/group_side.tpl create mode 100644 view/theme/decaf-mobile/head.jpg create mode 100644 view/theme/decaf-mobile/head.tpl create mode 100644 view/theme/decaf-mobile/images/approve-blue.png create mode 100644 view/theme/decaf-mobile/images/approve.png create mode 100644 view/theme/decaf-mobile/images/arrow-left.png create mode 100644 view/theme/decaf-mobile/images/arrow-right.png create mode 100644 view/theme/decaf-mobile/images/boldB-serif.png create mode 100644 view/theme/decaf-mobile/images/camera.png create mode 100644 view/theme/decaf-mobile/images/code.png create mode 100644 view/theme/decaf-mobile/images/contacts.png create mode 100644 view/theme/decaf-mobile/images/disapprove-blue.png create mode 100644 view/theme/decaf-mobile/images/disapprove.png create mode 100644 view/theme/decaf-mobile/images/drop-blue.png create mode 100644 view/theme/decaf-mobile/images/drop-darkred.png create mode 100644 view/theme/decaf-mobile/images/drop-red.png create mode 100644 view/theme/decaf-mobile/images/drop.png create mode 100644 view/theme/decaf-mobile/images/folder-blue.png create mode 100644 view/theme/decaf-mobile/images/folder.png create mode 100644 view/theme/decaf-mobile/images/globe.png create mode 100644 view/theme/decaf-mobile/images/italicI-serif.png create mode 100644 view/theme/decaf-mobile/images/lock.png create mode 100644 view/theme/decaf-mobile/images/menu.png create mode 100644 view/theme/decaf-mobile/images/message.png create mode 100644 view/theme/decaf-mobile/images/network.png create mode 100644 view/theme/decaf-mobile/images/noglobe.png create mode 100644 view/theme/decaf-mobile/images/notifications.png create mode 100644 view/theme/decaf-mobile/images/oxygen/LICENSE create mode 100644 view/theme/decaf-mobile/images/oxygen/application-msword.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-pdf.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-vnd.ms-excel.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-vnd.ms-powerpoint.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.presentation.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.spreadsheet.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.text.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-bzip-compressed-tar.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-compressed-tar.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-deb.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-font-otf.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-font-ttf.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-java-archive.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-lzma-compressed-tar.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-php.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-rar.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-rpm.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-ruby.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-shellscript.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-shockwave-flash.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-x-tar.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-xml.png create mode 100644 view/theme/decaf-mobile/images/oxygen/application-zip.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-aac.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-mp4.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-mpeg.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-flac.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-generic.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-mp2.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-ms-wma.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-vorbis+ogg.png create mode 100644 view/theme/decaf-mobile/images/oxygen/audio-x-wav.png create mode 100644 view/theme/decaf-mobile/images/oxygen/image-x-generic.png create mode 100644 view/theme/decaf-mobile/images/oxygen/text-css.png create mode 100644 view/theme/decaf-mobile/images/oxygen/text-html.png create mode 100644 view/theme/decaf-mobile/images/oxygen/text-x-generic-2.png create mode 100644 view/theme/decaf-mobile/images/oxygen/text-x-tex.png create mode 100644 view/theme/decaf-mobile/images/oxygen/unknown.png create mode 100644 view/theme/decaf-mobile/images/oxygen/video-x-generic.png create mode 100644 view/theme/decaf-mobile/images/paperclip.png create mode 100644 view/theme/decaf-mobile/images/pencil-blue.png create mode 100644 view/theme/decaf-mobile/images/pencil.png create mode 100644 view/theme/decaf-mobile/images/quote.png create mode 100644 view/theme/decaf-mobile/images/recycle-blue.png create mode 100644 view/theme/decaf-mobile/images/recycle.png create mode 100644 view/theme/decaf-mobile/images/remote-link-blue.png create mode 100644 view/theme/decaf-mobile/images/remote-link.png create mode 100644 view/theme/decaf-mobile/images/star-blue.png create mode 100644 view/theme/decaf-mobile/images/star-yellow.png create mode 100644 view/theme/decaf-mobile/images/star.png create mode 100644 view/theme/decaf-mobile/images/tag-blue.png create mode 100644 view/theme/decaf-mobile/images/tag.png create mode 100644 view/theme/decaf-mobile/images/underlineU-serif.png create mode 100644 view/theme/decaf-mobile/images/unlock.png create mode 100644 view/theme/decaf-mobile/jot-end.tpl create mode 100644 view/theme/decaf-mobile/jot-header.tpl create mode 100644 view/theme/decaf-mobile/jot.tpl create mode 100644 view/theme/decaf-mobile/jot_geotag.tpl create mode 100644 view/theme/decaf-mobile/js/theme.js create mode 100644 view/theme/decaf-mobile/lang_selector.tpl create mode 100644 view/theme/decaf-mobile/like_noshare.tpl create mode 100644 view/theme/decaf-mobile/lock.cur create mode 100644 view/theme/decaf-mobile/login-bg.gif create mode 100644 view/theme/decaf-mobile/login-style.css create mode 100644 view/theme/decaf-mobile/login.tpl create mode 100644 view/theme/decaf-mobile/login_head.tpl create mode 100644 view/theme/decaf-mobile/lostpass.tpl create mode 100644 view/theme/decaf-mobile/mail_conv.tpl create mode 100644 view/theme/decaf-mobile/mail_list.tpl create mode 100644 view/theme/decaf-mobile/manage.tpl create mode 100644 view/theme/decaf-mobile/message-end.tpl create mode 100644 view/theme/decaf-mobile/message-head.tpl create mode 100644 view/theme/decaf-mobile/mobile create mode 100644 view/theme/decaf-mobile/msg-end.tpl create mode 100644 view/theme/decaf-mobile/msg-header.tpl create mode 100644 view/theme/decaf-mobile/nav.tpl create mode 100644 view/theme/decaf-mobile/photo_drop.tpl create mode 100644 view/theme/decaf-mobile/photo_edit.tpl create mode 100644 view/theme/decaf-mobile/photo_edit_head.tpl create mode 100644 view/theme/decaf-mobile/photo_view.tpl create mode 100644 view/theme/decaf-mobile/photos_head.tpl create mode 100644 view/theme/decaf-mobile/photos_upload.tpl create mode 100644 view/theme/decaf-mobile/profed_end.tpl create mode 100644 view/theme/decaf-mobile/profed_head.tpl create mode 100644 view/theme/decaf-mobile/profile_edit.tpl create mode 100644 view/theme/decaf-mobile/profile_photo.tpl create mode 100644 view/theme/decaf-mobile/profile_vcard.tpl create mode 100644 view/theme/decaf-mobile/prv_message.tpl create mode 100644 view/theme/decaf-mobile/register.tpl create mode 100644 view/theme/decaf-mobile/screenshot.jpg create mode 100644 view/theme/decaf-mobile/search_item.tpl create mode 100644 view/theme/decaf-mobile/settings-head.tpl create mode 100644 view/theme/decaf-mobile/settings.tpl create mode 100644 view/theme/decaf-mobile/settings_display_end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/acl_html_selector.tpl create mode 100644 view/theme/decaf-mobile/smarty3/acl_selector.tpl create mode 100644 view/theme/decaf-mobile/smarty3/admin_aside.tpl create mode 100644 view/theme/decaf-mobile/smarty3/admin_site.tpl create mode 100644 view/theme/decaf-mobile/smarty3/admin_users.tpl create mode 100644 view/theme/decaf-mobile/smarty3/album_edit.tpl create mode 100644 view/theme/decaf-mobile/smarty3/categories_widget.tpl create mode 100644 view/theme/decaf-mobile/smarty3/comment_item.tpl create mode 100644 view/theme/decaf-mobile/smarty3/common_tabs.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contact_block.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contact_edit.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contact_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contact_template.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contacts-end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contacts-head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contacts-template.tpl create mode 100644 view/theme/decaf-mobile/smarty3/contacts-widget-sidebar.tpl create mode 100644 view/theme/decaf-mobile/smarty3/conversation.tpl create mode 100644 view/theme/decaf-mobile/smarty3/cropbody.tpl create mode 100644 view/theme/decaf-mobile/smarty3/cropend.tpl create mode 100644 view/theme/decaf-mobile/smarty3/crophead.tpl create mode 100644 view/theme/decaf-mobile/smarty3/display-head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/event_end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/event_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_checkbox.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_input.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_openid.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_password.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_themeselect.tpl create mode 100644 view/theme/decaf-mobile/smarty3/field_yesno.tpl create mode 100644 view/theme/decaf-mobile/smarty3/generic_links_widget.tpl create mode 100644 view/theme/decaf-mobile/smarty3/group_drop.tpl create mode 100644 view/theme/decaf-mobile/smarty3/group_side.tpl create mode 100644 view/theme/decaf-mobile/smarty3/head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/jot-end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/jot-header.tpl create mode 100644 view/theme/decaf-mobile/smarty3/jot.tpl create mode 100644 view/theme/decaf-mobile/smarty3/jot_geotag.tpl create mode 100644 view/theme/decaf-mobile/smarty3/lang_selector.tpl create mode 100644 view/theme/decaf-mobile/smarty3/like_noshare.tpl create mode 100644 view/theme/decaf-mobile/smarty3/login.tpl create mode 100644 view/theme/decaf-mobile/smarty3/login_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/lostpass.tpl create mode 100644 view/theme/decaf-mobile/smarty3/mail_conv.tpl create mode 100644 view/theme/decaf-mobile/smarty3/mail_list.tpl create mode 100644 view/theme/decaf-mobile/smarty3/manage.tpl create mode 100644 view/theme/decaf-mobile/smarty3/message-end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/message-head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/moderated_comment.tpl create mode 100644 view/theme/decaf-mobile/smarty3/msg-end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/msg-header.tpl create mode 100644 view/theme/decaf-mobile/smarty3/nav.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photo_drop.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photo_edit.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photo_edit_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photo_view.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photos_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/photos_upload.tpl create mode 100644 view/theme/decaf-mobile/smarty3/profed_end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/profed_head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/profile_edit.tpl create mode 100644 view/theme/decaf-mobile/smarty3/profile_photo.tpl create mode 100644 view/theme/decaf-mobile/smarty3/profile_vcard.tpl create mode 100644 view/theme/decaf-mobile/smarty3/prv_message.tpl create mode 100644 view/theme/decaf-mobile/smarty3/register.tpl create mode 100644 view/theme/decaf-mobile/smarty3/search_item.tpl create mode 100644 view/theme/decaf-mobile/smarty3/settings-head.tpl create mode 100644 view/theme/decaf-mobile/smarty3/settings.tpl create mode 100644 view/theme/decaf-mobile/smarty3/settings_display_end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/suggest_friends.tpl create mode 100644 view/theme/decaf-mobile/smarty3/threaded_conversation.tpl create mode 100644 view/theme/decaf-mobile/smarty3/voting_fakelink.tpl create mode 100644 view/theme/decaf-mobile/smarty3/wall_thread.tpl create mode 100644 view/theme/decaf-mobile/smarty3/wall_thread_toponly.tpl create mode 100644 view/theme/decaf-mobile/smarty3/wallmessage.tpl create mode 100644 view/theme/decaf-mobile/smarty3/wallmsg-end.tpl create mode 100644 view/theme/decaf-mobile/smarty3/wallmsg-header.tpl create mode 100644 view/theme/decaf-mobile/style.css create mode 100644 view/theme/decaf-mobile/suggest_friends.tpl create mode 100644 view/theme/decaf-mobile/theme.php create mode 100644 view/theme/decaf-mobile/threaded_conversation.tpl create mode 100644 view/theme/decaf-mobile/voting_fakelink.tpl create mode 100644 view/theme/decaf-mobile/wall_thread.tpl create mode 100644 view/theme/decaf-mobile/wall_thread_toponly.tpl create mode 100644 view/theme/decaf-mobile/wallmessage.tpl create mode 100644 view/theme/decaf-mobile/wallmsg-end.tpl create mode 100644 view/theme/decaf-mobile/wallmsg-header.tpl diff --git a/boot.php b/boot.php index 5107d91af..62641655e 100644 --- a/boot.php +++ b/boot.php @@ -1935,6 +1935,36 @@ function build_querystring($params, $name=null) { return $ret; } +function explode_querystring($query) { + $arg_st = strpos($query, '?'); + if($arg_st !== false) { + $base = substr($query, 0, $arg_st); + $arg_st += 1; + } + else { + $base = ''; + $arg_st = 0; + } + + $args = explode('&', substr($query, $arg_st)); + foreach($args as $k=>$arg) { + if($arg === '') + unset($args[$k]); + } + $args = array_values($args); + + if(!$base) { + $base = $args[0]; + unset($args[0]); + $args = array_values($args); + } + + return array( + 'base' => $base, + 'args' => $args, + ); +} + /** * Returns the complete URL of the current page, e.g.: http(s)://something.com/network * diff --git a/include/Contact.php b/include/Contact.php index d39d7a28b..c83177dda 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -222,13 +222,13 @@ function contact_photo_menu($contact) { $posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id']; $menu = Array( - t("Poke") => $poke_link, - t("View Status") => $status_link, - t("View Profile") => $profile_link, - t("View Photos") => $photos_link, - t("Network Posts") => $posts_link, - t("Edit Contact") => $contact_url, - t("Send PM") => $pm_url, + 'poke' => array(t("Poke"), $poke_link), + 'status' => array(t("View Status"), $status_link), + 'profile' => array(t("View Profile"), $profile_link), + 'photos' => array(t("View Photos"), $photos_link), + 'network' => array(t("Network Posts"), $posts_link), + 'edit' => array(t("Edit Contact"), $contact_url), + 'pm' => array(t("Send PM"), $pm_url), ); @@ -236,7 +236,7 @@ function contact_photo_menu($contact) { call_hooks('contact_photo_menu', $args); - $o = ""; +/* $o = ""; foreach($menu as $k=>$v){ if ($v!="") { if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact'))) @@ -245,7 +245,16 @@ function contact_photo_menu($contact) { $o .= "
  • $k
  • \n"; } } - return $o; + return $o;*/ + foreach($menu as $k=>$v){ + if ($v[1]!="") { + if(($v[0] !== t("Network Posts")) && ($v[0] !== t("Send PM")) && ($v[0] !== t('Edit Contact'))) + $menu[$k][2] = 1; + else + $menu[$k][2] = 0; + } + } + return $menu; }} diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 675339559..1b9843fd1 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -1,4 +1,7 @@ $allow_cid, + 'allow_gid' => $allow_gid, + 'deny_cid' => $deny_cid, + 'deny_gid' => $deny_gid, + ); +} + + +function populate_acl($user = null,$celeb = false) { + + $perms = get_acl_permissions($user); + // We shouldn't need to prune deadguys from the block list. Either way they can't get the message. // Also no point enumerating groups and checking them, that will take place on delivery. @@ -311,10 +325,10 @@ function populate_acl($user = null,$celeb = false) { '$showall'=> t("Visible to everybody"), '$show' => t("show"), '$hide' => t("don't show"), - '$allowcid' => json_encode($allow_cid), - '$allowgid' => json_encode($allow_gid), - '$denycid' => json_encode($deny_cid), - '$denygid' => json_encode($deny_gid), + '$allowcid' => json_encode($perms['allow_cid']), + '$allowgid' => json_encode($perms['allow_gid']), + '$denycid' => json_encode($perms['deny_cid']), + '$denygid' => json_encode($perms['deny_gid']), )); @@ -322,3 +336,238 @@ function populate_acl($user = null,$celeb = false) { } +function construct_acl_data(&$a, $user) { + + // Get group and contact information for html ACL selector + $acl_data = acl_lookup(&$a, 'html'); + + $user_defaults = get_acl_permissions($user); + + if($acl_data['groups']) { + foreach($acl_data['groups'] as $key=>$group) { + // Add a "selected" flag to groups that are posted to by default + if($user_defaults['allow_gid'] && + in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) + $acl_data['groups'][$key]['selected'] = 1; + else + $acl_data['groups'][$key]['selected'] = 0; + } + } + if($acl_data['contacts']) { + foreach($acl_data['contacts'] as $key=>$contact) { + // Add a "selected" flag to groups that are posted to by default + if($user_defaults['allow_cid'] && + in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) + $acl_data['contacts'][$key]['selected'] = 1; + else + $acl_data['contacts'][$key]['selected'] = 0; + } + } + + return $acl_data; + +} + +function acl_lookup(&$a, $out_type = 'json') { + + if(!local_user()) + return ""; + + + $start = (x($_REQUEST,'start')?$_REQUEST['start']:0); + $count = (x($_REQUEST,'count')?$_REQUEST['count']:100); + $search = (x($_REQUEST,'search')?$_REQUEST['search']:""); + $type = (x($_REQUEST,'type')?$_REQUEST['type']:""); + + + // For use with jquery.autocomplete for private mail completion + + if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { + if(! $type) + $type = 'm'; + $search = $_REQUEST['query']; + } + + + if ($search!=""){ + $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; + $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; + } else { + $sql_extra = $sql_extra2 = ""; + } + + // count groups and contacts + if ($type=='' || $type=='g'){ + $r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", + intval(local_user()) + ); + $group_count = (int)$r[0]['g']; + } else { + $group_count = 0; + } + + if ($type=='' || $type=='c'){ + $r = q("SELECT COUNT(`id`) AS c FROM `contact` + WHERE `uid` = %d AND `self` = 0 + AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 + AND `notify` != '' $sql_extra2" , + intval(local_user()) + ); + $contact_count = (int)$r[0]['c']; + } + elseif ($type == 'm') { + + // autocomplete for Private Messages + + $r = q("SELECT COUNT(`id`) AS c FROM `contact` + WHERE `uid` = %d AND `self` = 0 + AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 + AND `network` IN ('%s','%s','%s') $sql_extra2" , + intval(local_user()), + dbesc(NETWORK_DFRN), + dbesc(NETWORK_ZOT), + dbesc(NETWORK_DIASPORA) + ); + $contact_count = (int)$r[0]['c']; + + } + elseif ($type == 'a') { + + // autocomplete for Contacts + + $r = q("SELECT COUNT(`id`) AS c FROM `contact` + WHERE `uid` = %d AND `self` = 0 + AND `pending` = 0 $sql_extra2" , + intval(local_user()) + ); + $contact_count = (int)$r[0]['c']; + + } else { + $contact_count = 0; + } + + $tot = $group_count+$contact_count; + + $groups = array(); + $contacts = array(); + + if ($type=='' || $type=='g'){ + + $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') as uids + FROM `group`,`group_member` + WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d + AND `group_member`.`gid`=`group`.`id` + $sql_extra + GROUP BY `group`.`id` + ORDER BY `group`.`name` + LIMIT %d,%d", + intval(local_user()), + intval($start), + intval($count) + ); + + foreach($r as $g){ +// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']); + $groups[] = array( + "type" => "g", + "photo" => "images/twopeople.png", + "name" => $g['name'], + "id" => intval($g['id']), + "uids" => array_map("intval", explode(",",$g['uids'])), + "link" => '' + ); + } + } + + if ($type=='' || $type=='c'){ + + $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` + WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != '' + $sql_extra2 + ORDER BY `name` ASC ", + intval(local_user()) + ); + } + elseif($type == 'm') { + $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` + WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 + AND `network` IN ('%s','%s','%s') + $sql_extra2 + ORDER BY `name` ASC ", + intval(local_user()), + dbesc(NETWORK_DFRN), + dbesc(NETWORK_ZOT), + dbesc(NETWORK_DIASPORA) + ); + } + elseif($type == 'a') { + $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` + WHERE `uid` = %d AND `pending` = 0 + $sql_extra2 + ORDER BY `name` ASC ", + intval(local_user()) + ); + } + else + $r = array(); + + + if($type == 'm' || $type == 'a') { + $x = array(); + $x['query'] = $search; + $x['photos'] = array(); + $x['links'] = array(); + $x['suggestions'] = array(); + $x['data'] = array(); + if(count($r)) { + foreach($r as $g) { + $x['photos'][] = $g['micro']; + $x['links'][] = $g['url']; + $x['suggestions'][] = $g['name']; + $x['data'][] = intval($g['id']); + } + } + echo json_encode($x); + killme(); + } + + if(count($r)) { + foreach($r as $g){ + $contacts[] = array( + "type" => "c", + "photo" => $g['micro'], + "name" => $g['name'], + "id" => intval($g['id']), + "network" => $g['network'], + "link" => $g['url'], + "nick" => ($g['attag']) ? $g['attag'] : $g['nick'], + ); + } + } + + $items = array_merge($groups, $contacts); + + + if($out_type === 'html') { + $o = array( + 'tot' => $tot, + 'start' => $start, + 'count' => $count, + 'groups' => $groups, + 'contacts' => $contacts, + ); + return $o; + } + + $o = array( + 'tot' => $tot, + 'start' => $start, + 'count' => $count, + 'items' => $items, + ); + + echo json_encode($o); + + killme(); +} + diff --git a/include/conversation.php b/include/conversation.php index c278ec2f1..d5f87567b 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1,6 +1,7 @@ $a->get_baseurl($ssl_state), + '$return_path' => $a->query_string, '$live_update' => $live_update_div, '$remove' => t('remove'), '$mode' => $mode, @@ -908,7 +910,7 @@ function format_like($cnt,$arr,$type,$id) { $str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS ); } $str = (($type === 'like') ? sprintf( t('%s like this.'), $str) : sprintf( t('%s don\'t like this.'), $str)); - $o .= "\t" . ''; + $o .= "\t" . ''; } return $o; }} @@ -962,8 +964,6 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { )); - $tpl = get_markup_template("jot.tpl"); - $jotplugins = ''; $jotnets = ''; @@ -994,10 +994,31 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { if($notes_cid) $jotnets .= ''; + + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + + // $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); + $tpl = get_markup_template("jot.tpl"); $o .= replace_macros($tpl,array( - '$return_path' => $a->query_string, + '$return_path' => $query_str, '$action' => $a->get_baseurl(true) . '/item', '$share' => (x($x,'button') ? $x['button'] : t('Share')), '$upload' => t('Upload photo'), @@ -1033,14 +1054,22 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { '$jotnets' => $jotnets, '$emtitle' => t('Example: bob@example.com, mary@example.com'), '$lockstate' => $x['lockstate'], - '$acl' => $x['acl'], '$bang' => $x['bang'], '$profile_uid' => $x['profile_uid'], '$preview' => ((feature_enabled($x['profile_uid'],'preview')) ? t('Preview') : ''), '$jotplugins' => $jotplugins, '$sourceapp' => t($a->sourcename), '$cancel' => t('Cancel'), - '$rand_num' => random_digits(12) + '$rand_num' => random_digits(12), + + // ACL permissions box + '$acl' => $x['acl'], + '$acl_data' => $x['acl_data'], + '$group_perms' => t('Post to Groups'), + '$contact_perms' => t('Post to Contacts'), + '$private' => t('Private post'), + '$is_private' => $private_post, + '$public_link' => $public_post_link, )); diff --git a/include/items.php b/include/items.php index 08127c6eb..b0ceb0ed9 100755 --- a/include/items.php +++ b/include/items.php @@ -3874,6 +3874,34 @@ function drop_item($id,$interactive = true) { if((local_user() == $item['uid']) || ($cid) || (! $interactive)) { + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + // can't take arguments in its "action" parameter + // so add any arguments as hidden inputs + $query = explode_querystring($a->query_string); + $inputs = array(); + foreach($query['args'] as $arg) { + if(strpos($arg, 'confirm=') === false) { + $arg_parts = explode('=', $arg); + $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); + } + } + + return replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'get', + '$message' => t('Do you really want to delete this item?'), + '$extra_inputs' => $inputs, + '$confirm' => t('Yes'), + '$confirm_url' => $query['base'], + '$confirm_name' => 'confirmed', + '$cancel' => t('Cancel'), + )); + } + // Now check how the user responded to the confirmation query + if($_REQUEST['canceled']) { + goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + } + logger('delete item: ' . $item['id'], LOGGER_DEBUG); // delete the item diff --git a/include/nav.php b/include/nav.php index d94bf03be..d1d184650 100644 --- a/include/nav.php +++ b/include/nav.php @@ -8,8 +8,6 @@ function nav(&$a) { * */ - $ssl_state = ((local_user()) ? true : false); - if(!(x($a->page,'nav'))) $a->page['nav'] = ''; @@ -19,6 +17,35 @@ function nav(&$a) { $a->page['nav'] .= '' ; + $nav_info = nav_info($a); + + /** + * Build the page + */ + + $tpl = get_markup_template('nav.tpl'); + + $a->page['nav'] .= replace_macros($tpl, array( + '$baseurl' => $a->get_baseurl(), + '$langselector' => lang_selector(), + '$sitelocation' => $nav_info['sitelocation'], + '$nav' => $nav_info['nav'], + '$banner' => $nav_info['banner'], + '$emptynotifications' => t('Nothing new here'), + '$userinfo' => $nav_info['userinfo'], + '$sel' => $a->nav_sel, + '$apps' => $a->apps, + '$clear_notifs' => t('Clear notifications') + )); + + call_hooks('page_header', $a->page['nav']); +} + + +function nav_info(&$a) { + + $ssl_state = ((local_user()) ? true : false); + /** * * Our network is distributed, and as you visit friends some of the @@ -152,6 +179,9 @@ function nav(&$a) { } + $nav['navigation'] = array('navigation/', t('Navigation'), "", t('Site map')); + + /** * * Provide a banner/logo/whatever @@ -164,23 +194,15 @@ function nav(&$a) { $banner .= 'logoFriendica'; - $tpl = get_markup_template('nav.tpl'); - - $a->page['nav'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), - '$langselector' => lang_selector(), - '$sitelocation' => $sitelocation, - '$nav' => $nav, - '$banner' => $banner, - '$emptynotifications' => t('Nothing new here'), - '$userinfo' => $userinfo, - '$sel' => $a->nav_sel, - '$apps' => $a->apps, - )); - - call_hooks('page_header', $a->page['nav']); + return array( + 'sitelocation' => $sitelocation, + 'nav' => $nav, + 'banner' => $banner, + 'userinfo' => $userinfo, + ); } + /* * Set a menu item in navbar as selected * diff --git a/include/template_processor.php b/include/template_processor.php index 6c5908d92..ebc03b8d8 100644 --- a/include/template_processor.php +++ b/include/template_processor.php @@ -259,15 +259,15 @@ class Template { public function replace($s, $r) { $this->r = $r; + // remove comments block + $s = preg_replace('/{#(.*?\s*?)*?#}/', "", $s); + $s = $this->_build_nodes($s); $s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s); if ($s == Null) $this->_preg_error(); - // remove comments block - $s = preg_replace('/{#[^#]*#}/', "", $s); - // replace strings recursively (limit to 10 loops) $os = ""; $count = 0; diff --git a/mod/acl.php b/mod/acl.php index f3e46efa5..f5e04b96a 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -4,193 +4,7 @@ require_once("include/acl_selectors.php"); function acl_init(&$a){ - if(!local_user()) - return ""; - - - $start = (x($_REQUEST,'start')?$_REQUEST['start']:0); - $count = (x($_REQUEST,'count')?$_REQUEST['count']:100); - $search = (x($_REQUEST,'search')?$_REQUEST['search']:""); - $type = (x($_REQUEST,'type')?$_REQUEST['type']:""); - - - // For use with jquery.autocomplete for private mail completion - - if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { - if(! $type) - $type = 'm'; - $search = $_REQUEST['query']; - } - - - if ($search!=""){ - $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; - $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; - } else { - $sql_extra = $sql_extra2 = ""; - } - - // count groups and contacts - if ($type=='' || $type=='g'){ - $r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", - intval(local_user()) - ); - $group_count = (int)$r[0]['g']; - } else { - $group_count = 0; - } - - if ($type=='' || $type=='c'){ - $r = q("SELECT COUNT(`id`) AS c FROM `contact` - WHERE `uid` = %d AND `self` = 0 - AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 - AND `notify` != '' $sql_extra2" , - intval(local_user()) - ); - $contact_count = (int)$r[0]['c']; - } - elseif ($type == 'm') { - - // autocomplete for Private Messages - - $r = q("SELECT COUNT(`id`) AS c FROM `contact` - WHERE `uid` = %d AND `self` = 0 - AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 - AND `network` IN ('%s','%s','%s') $sql_extra2" , - intval(local_user()), - dbesc(NETWORK_DFRN), - dbesc(NETWORK_ZOT), - dbesc(NETWORK_DIASPORA) - ); - $contact_count = (int)$r[0]['c']; - - } - elseif ($type == 'a') { - - // autocomplete for Contacts - - $r = q("SELECT COUNT(`id`) AS c FROM `contact` - WHERE `uid` = %d AND `self` = 0 - AND `pending` = 0 $sql_extra2" , - intval(local_user()) - ); - $contact_count = (int)$r[0]['c']; - - } else { - $contact_count = 0; - } - - $tot = $group_count+$contact_count; - - $groups = array(); - $contacts = array(); - - if ($type=='' || $type=='g'){ - - $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') as uids - FROM `group`,`group_member` - WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d - AND `group_member`.`gid`=`group`.`id` - $sql_extra - GROUP BY `group`.`id` - ORDER BY `group`.`name` - LIMIT %d,%d", - intval(local_user()), - intval($start), - intval($count) - ); - - foreach($r as $g){ -// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']); - $groups[] = array( - "type" => "g", - "photo" => "images/twopeople.png", - "name" => $g['name'], - "id" => intval($g['id']), - "uids" => array_map("intval", explode(",",$g['uids'])), - "link" => '' - ); - } - } - - if ($type=='' || $type=='c'){ - - $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` - WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != '' - $sql_extra2 - ORDER BY `name` ASC ", - intval(local_user()) - ); - } - elseif($type == 'm') { - $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` - WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 - AND `network` IN ('%s','%s','%s') - $sql_extra2 - ORDER BY `name` ASC ", - intval(local_user()), - dbesc(NETWORK_DFRN), - dbesc(NETWORK_ZOT), - dbesc(NETWORK_DIASPORA) - ); - } - elseif($type == 'a') { - $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` - WHERE `uid` = %d AND `pending` = 0 - $sql_extra2 - ORDER BY `name` ASC ", - intval(local_user()) - ); - } - else - $r = array(); - - - if($type == 'm' || $type == 'a') { - $x = array(); - $x['query'] = $search; - $x['photos'] = array(); - $x['links'] = array(); - $x['suggestions'] = array(); - $x['data'] = array(); - if(count($r)) { - foreach($r as $g) { - $x['photos'][] = $g['micro']; - $x['links'][] = $g['url']; - $x['suggestions'][] = $g['name']; - $x['data'][] = intval($g['id']); - } - } - echo json_encode($x); - killme(); - } - - if(count($r)) { - foreach($r as $g){ - $contacts[] = array( - "type" => "c", - "photo" => $g['micro'], - "name" => $g['name'], - "id" => intval($g['id']), - "network" => $g['network'], - "link" => $g['url'], - "nick" => ($g['attag']) ? $g['attag'] : $g['nick'], - ); - } - } - - $items = array_merge($groups, $contacts); - - $o = array( - 'tot' => $tot, - 'start' => $start, - 'count' => $count, - 'items' => $items, - ); - - echo json_encode($o); - - killme(); + acl_lookup($a); } diff --git a/mod/contacts.php b/mod/contacts.php index 6e62ec8ef..ee68863e3 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -225,6 +225,36 @@ function contacts_content(&$a) { if($cmd === 'drop') { + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + // can't take arguments in its "action" parameter + // so add any arguments as hidden inputs + $query = explode_querystring($a->query_string); + $inputs = array(); + foreach($query['args'] as $arg) { + if(strpos($arg, 'confirm=') === false) { + $arg_parts = explode('=', $arg); + $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); + } + } + + $a->page['aside'] = ''; + return replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'get', + '$message' => t('Do you really want to delete this contact?'), + '$extra_inputs' => $inputs, + '$confirm' => t('Yes'), + '$confirm_url' => $query['base'], + '$confirm_name' => 'confirmed', + '$cancel' => t('Cancel'), + )); + } + // Now check how the user responded to the confirmation query + if($_REQUEST['canceled']) { + goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']); + + } + require_once('include/Contact.php'); terminate_friendship($a->user,$a->contact,$orig_record[0]); @@ -239,6 +269,10 @@ function contacts_content(&$a) { } } + + + $_SESSION['return_url'] = $a->query_string; + if((x($a->data,'contact')) && (is_array($a->data['contact']))) { $contact_id = $a->data['contact']['id']; @@ -405,8 +439,6 @@ function contacts_content(&$a) { $ignored = false; $all = false; - $_SESSION['return_url'] = $a->query_string; - if(($a->argc == 2) && ($a->argv[1] === 'all')) { $sql_extra = ''; $all = true; diff --git a/mod/display.php b/mod/display.php index 2ac1c369e..2c9243a21 100644 --- a/mod/display.php +++ b/mod/display.php @@ -112,8 +112,9 @@ function display_content(&$a, $update = 0) { 'acl' => populate_acl($a->user, $celeb), 'bang' => '', 'visitor' => 'block', - 'profile_uid' => local_user() - ); + 'profile_uid' => local_user(), + 'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector + ); $o .= status_editor($a,$x,0,true); } diff --git a/mod/editpost.php b/mod/editpost.php index c62252bc8..258e2e0b1 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -85,16 +85,19 @@ function editpost_content(&$a) { } } - if($mail_enabled) { + // I don't think there's any need for the $jotnets when editing the post, + // and including them makes it difficult for the JS-free theme, so let's + // disable them +/* if($mail_enabled) { $selected = (($pubmail_enabled) ? ' checked="checked" ' : ''); $jotnets .= '
    ' . t("Post to Email") . '
    '; - } + }*/ call_hooks('jot_tool', $jotplugins); - call_hooks('jot_networks', $jotnets); + //call_hooks('jot_networks', $jotnets); //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); diff --git a/mod/item.php b/mod/item.php index 2ed1b812a..addffebe0 100644 --- a/mod/item.php +++ b/mod/item.php @@ -923,10 +923,12 @@ function item_content(&$a) { require_once('include/security.php'); + $o = ''; if(($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) { require_once('include/items.php'); - drop_item($a->argv[2]); + $o = drop_item($a->argv[2]); } + return $o; } /** diff --git a/mod/like.php b/mod/like.php index aaa85928c..77fc0aec2 100755 --- a/mod/like.php +++ b/mod/like.php @@ -105,6 +105,10 @@ function like_content(&$a) { } + // See if we've been passed a return path to redirect to + $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : ''); + + $r = q("SELECT * FROM `item` WHERE `verb` = '%s' AND `deleted` = 0 AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1", dbesc($activity), @@ -137,7 +141,9 @@ function like_content(&$a) { // proc_run('php',"include/notifier.php","like","$post_id"); // $post_id isn't defined here! $like_item_id = $like_item['id']; proc_run('php',"include/notifier.php","like","$like_item_id"); - return; + + like_content_return($a->get_baseurl(), $return_path); + return; // NOTREACHED } $uri = item_new_uri($a->get_hostname(),$owner_uid); @@ -221,11 +227,29 @@ EOT; proc_run('php',"include/notifier.php","like","$post_id"); - killme(); + like_content_return($a->get_baseurl(), $return_path); + killme(); // NOTREACHED // return; // NOTREACHED } +// Decide how to return. If we were called with a 'return' argument, +// then redirect back to the calling page. If not, just quietly end + +function like_content_return($baseurl, $return_path) { + + if($return_path) { + $rand = '_=' . time(); + if(strpos($return_path, '?')) $rand = "&$rand"; + else $rand = "?$rand"; + + goaway($baseurl . "/" . $return_path . $rand); + } + + killme(); +} + + function store_diaspora_like_retract_sig($activity, $item, $like_item, $contact) { // Note that we can only create a signature for a user of the local server. We don't have // a key for remote users. That is ok, because if a remote user is "unlike"ing a post, it diff --git a/mod/manage.php b/mod/manage.php index 1b8e2f1e2..5513ebe08 100644 --- a/mod/manage.php +++ b/mod/manage.php @@ -1,5 +1,7 @@ ' . t('Manage Identities and/or Pages') . ''; - - - $o .= '
    ' . t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions') . '
    '; - - $o .= '
    ' . t('Select an identity to manage: ') . '
    '; - - $o .= '
    ' . "\r\n"; - $o .= '' . "\r\n"; - $o .= '' . "\r\n"; - $o .= '
    ' . "\r\n"; - -// $o .= ''; - $o .= '
    ' . "\r\n"; + $o = replace_macros(get_markup_template('manage.tpl'), array( + '$title' => t('Manage Identities and/or Pages'), + '$desc' => t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'), + '$choose' => t('Select an identity to manage: '), + '$identities' => $identities, + '$submit' => t('Submit'), + )); return $o; diff --git a/mod/message.php b/mod/message.php index 885cdcd62..0a54f9428 100644 --- a/mod/message.php +++ b/mod/message.php @@ -82,6 +82,8 @@ function message_post(&$a) { $a->argc = 2; $a->argv[1] = 'new'; } + else + goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']); } @@ -185,6 +187,36 @@ function message_content(&$a) { if(($a->argc == 3) && ($a->argv[1] === 'drop' || $a->argv[1] === 'dropconv')) { if(! intval($a->argv[2])) return; + + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + //
    can't take arguments in its "action" parameter + // so add any arguments as hidden inputs + $query = explode_querystring($a->query_string); + $inputs = array(); + foreach($query['args'] as $arg) { + if(strpos($arg, 'confirm=') === false) { + $arg_parts = explode('=', $arg); + $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); + } + } + + //$a->page['aside'] = ''; + return replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'get', + '$message' => t('Do you really want to delete this message?'), + '$extra_inputs' => $inputs, + '$confirm' => t('Yes'), + '$confirm_url' => $query['base'], + '$confirm_name' => 'confirmed', + '$cancel' => t('Cancel'), + )); + } + // Now check how the user responded to the confirmation query + if($_REQUEST['canceled']) { + goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']); + } + $cmd = $a->argv[1]; if($cmd === 'drop') { $r = q("DELETE FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1", @@ -194,7 +226,8 @@ function message_content(&$a) { if($r) { info( t('Message deleted.') . EOL ); } - goaway($a->get_baseurl(true) . '/message' ); + //goaway($a->get_baseurl(true) . '/message' ); + goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']); } else { $r = q("SELECT `parent-uri`,`convid` FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1", @@ -224,7 +257,8 @@ function message_content(&$a) { if($r) info( t('Conversation removed.') . EOL ); } - goaway($a->get_baseurl(true) . '/message' ); + //goaway($a->get_baseurl(true) . '/message' ); + goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']); } } @@ -304,6 +338,9 @@ function message_content(&$a) { return $o; } + + $_SESSION['return_url'] = $a->query_string; + if($a->argc == 1) { // list messages diff --git a/mod/navigation.php b/mod/navigation.php new file mode 100644 index 000000000..c14902c5f --- /dev/null +++ b/mod/navigation.php @@ -0,0 +1,27 @@ + $a->get_baseurl(), + '$langselector' => lang_selector(), + '$sitelocation' => $nav_info['sitelocation'], + '$nav' => $nav_info['nav'], + '$banner' => $nav_info['banner'], + '$emptynotifications' => t('Nothing new here'), + '$userinfo' => $nav_info['userinfo'], + '$sel' => $a->nav_sel, + '$apps' => $a->apps, + '$clear_notifs' => t('Clear notifications') + )); + +} diff --git a/mod/network.php b/mod/network.php index 2524ae063..b5046b632 100644 --- a/mod/network.php +++ b/mod/network.php @@ -560,10 +560,12 @@ function network_content(&$a, $update = 0) { 'default_location' => $a->user['default-location'], 'nickname' => $a->user['nickname'], 'lockstate' => ((($group) || ($cid) || ($nets) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'), + 'default_perms' => get_acl_permissions($a->user), 'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), $celeb), 'bang' => (($group || $cid || $nets) ? '!' : ''), 'visitor' => 'block', - 'profile_uid' => local_user() + 'profile_uid' => local_user(), + 'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector ); $o .= status_editor($a,$x); diff --git a/mod/notes.php b/mod/notes.php index 62796ed13..09dac72b0 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -60,8 +60,8 @@ function notes_content(&$a,$update = false) { 'bang' => '', 'visitor' => 'block', 'profile_uid' => local_user(), - 'button' => t('Save') - + 'button' => t('Save'), + 'acl_data' => '', ); $o .= status_editor($a,$x,$a->contact['id']); diff --git a/mod/photos.php b/mod/photos.php index 7035c6690..c6892818a 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -166,6 +166,11 @@ function photos_post(&$a) { return; // NOTREACHED } + // Check if the user has responded to a delete confirmation query + if($_REQUEST['canceled']) { + goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + } + $newalbum = notags(trim($_POST['albumname'])); if($newalbum != $album) { q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d", @@ -181,6 +186,25 @@ function photos_post(&$a) { if($_POST['dropalbum'] == t('Delete Album')) { + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + $drop_url = $a->query_string; + $extra_inputs = array( + array('name' => 'albumname', 'value' => $_POST['albumname']), + ); + $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'post', + '$message' => t('Do you really want to delete this photo album and all its photos?'), + '$extra_inputs' => $extra_inputs, + '$confirm' => t('Delete Album'), + '$confirm_url' => $drop_url, + '$confirm_name' => 'dropalbum', // Needed so that confirmation will bring us back into this if statement + '$cancel' => t('Cancel'), + )); + $a->error = 1; // Set $a->error so the other module functions don't execute + return; + } + $res = array(); // get the list of photos we are about to delete @@ -242,10 +266,32 @@ function photos_post(&$a) { return; // NOTREACHED } + + // Check if the user has responded to a delete confirmation query for a single photo + if(($a->argc > 2) && $_REQUEST['canceled']) { + goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + } + if(($a->argc > 2) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) { // same as above but remove single photo + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + $drop_url = $a->query_string; + $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'post', + '$message' => t('Do you really want to delete this photo?'), + '$extra_inputs' => array(), + '$confirm' => t('Delete Photo'), + '$confirm_url' => $drop_url, + '$confirm_name' => 'delete', // Needed so that confirmation will bring us back into this if statement + '$cancel' => t('Cancel'), + )); + $a->error = 1; // Set $a->error so the other module functions don't execute + return; + } + if($visitor) { $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval($visitor), @@ -284,7 +330,7 @@ function photos_post(&$a) { } } - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + goaway($a->get_baseurl() . '/photos/' . $a->data['user']['nickname']); return; // NOTREACHED } @@ -1024,8 +1070,10 @@ function photos_content(&$a) { call_hooks('photo_upload_form',$ret); - $default_upload = '
    -
    '; + $default_upload_box = replace_macros(get_markup_template('photos_default_uploader_box.tpl'), array()); + $default_upload_submit = replace_macros(get_markup_template('photos_default_uploader_submit.tpl'), array( + '$submit' => t('Submit'), + )); $usage_message = ''; $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit'); @@ -1038,6 +1086,25 @@ function photos_content(&$a) { } + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + + $tpl = get_markup_template('photos_upload.tpl'); if($a->theme['template_engine'] === 'internal') { @@ -1060,9 +1127,20 @@ function photos_content(&$a) { '$albumselect' => $albumselect_e, '$permissions' => t('Permissions'), '$aclselect' => $aclselect_e, - '$uploader' => $ret['addon_text'], - '$default' => (($ret['default_upload']) ? $default_upload : ''), - '$uploadurl' => $ret['post_url'] + '$alt_uploader' => $ret['addon_text'], + '$default_upload_box' => (($ret['default_upload']) ? $default_upload_box : ''), + '$default_upload_submit' => (($ret['default_upload']) ? $default_upload_submit : ''), + '$uploadurl' => $ret['post_url'], + + // ACL permissions box + '$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector + '$group_perms' => t('Show to Groups'), + '$contact_perms' => t('Show to Contacts'), + '$private' => t('Private Photo'), + '$public' => t('Public Photo'), + '$is_private' => $private_post, + '$return_path' => $query_str, + '$public_link' => $public_post_link, )); @@ -1372,6 +1450,24 @@ function photos_content(&$a) { if(($cmd === 'edit') && ($can_post)) { $edit_tpl = get_markup_template('photo_edit.tpl'); + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + if($a->theme['template_engine'] === 'internal') { $album_e = template_escape($ph[0]['album']); $caption_e = template_escape($ph[0]['desc']); @@ -1400,7 +1496,17 @@ function photos_content(&$a) { '$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'), '$item_id' => ((count($linked_items)) ? $link_item['id'] : 0), '$submit' => t('Submit'), - '$delete' => t('Delete Photo') + '$delete' => t('Delete Photo'), + + // ACL permissions box + '$acl_data' => construct_acl_data($a, $ph[0]), // For non-Javascript ACL selector + '$group_perms' => t('Show to Groups'), + '$contact_perms' => t('Show to Contacts'), + '$private' => t('Private photo'), + '$public' => t('Public photo'), + '$is_private' => $private_post, + '$return_path' => $query_str, + '$public_link' => $public_post_link, )); } @@ -1418,9 +1524,10 @@ function photos_content(&$a) { $likebuttons = replace_macros($like_tpl,array( '$id' => $link_item['id'], '$likethis' => t("I like this \x28toggle\x29"), - '$nolike' => t("I don't like this \x28toggle\x29"), + '$nolike' => (feature_enabled(local_user(), 'dislike') ? t("I don't like this \x28toggle\x29") : ''), '$share' => t('Share'), - '$wait' => t('Please wait') + '$wait' => t('Please wait'), + '$return_path' => $a->query_string, )); } diff --git a/mod/profile.php b/mod/profile.php index 25871c240..eea5dc7e4 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -198,7 +198,8 @@ function profile_content(&$a, $update = 0) { 'acl' => (($is_owner) ? populate_acl($a->user, $celeb) : ''), 'bang' => '', 'visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'), - 'profile_uid' => $a->profile['profile_uid'] + 'profile_uid' => $a->profile['profile_uid'], + 'acl_data' => ( $is_owner ? construct_acl_data($a, $a->user) : '' ), // For non-Javascript ACL selector ); $o .= status_editor($a,$x); diff --git a/mod/settings.php b/mod/settings.php index dbdd40bc3..8b3cebfa3 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -1012,6 +1012,25 @@ function settings_content(&$a) { require_once('include/group.php'); $group_select = mini_group_select(local_user(),$a->user['def_gid']); + + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + $o .= replace_macros($stpl, array( '$ptitle' => t('Account Settings'), @@ -1046,6 +1065,17 @@ function settings_content(&$a) { '$blockwall'=> $blockwall, // array('blockwall', t('Allow friends to post to your profile page:'), !$blockwall, ''), '$blocktags'=> $blocktags, // array('blocktags', t('Allow friends to tag your posts:'), !$blocktags, ''), + // ACL permissions box + '$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector + '$group_perms' => t('Show to Groups'), + '$contact_perms' => t('Show to Contacts'), + '$private' => t('Default Private Post'), + '$public' => t('Default Public Post'), + '$is_private' => $private_post, + '$return_path' => $query_str, + '$public_link' => $public_post_link, + '$settings_perms' => t('Default Permissions for New Posts'), + '$group_select' => $group_select, diff --git a/mod/starred.php b/mod/starred.php index 035b81e76..4fbfd1a95 100644 --- a/mod/starred.php +++ b/mod/starred.php @@ -28,6 +28,16 @@ function starred_init(&$a) { intval($message_id) ); + // See if we've been passed a return path to redirect to + $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : ''); + if($return_path) { + $rand = '_=' . time(); + if(strpos($return_path, '?')) $rand = "&$rand"; + else $rand = "?$rand"; + + goaway($a->get_baseurl() . "/" . $return_path . $rand); + } + // the json doesn't really matter, it will either be 0 or 1 echo json_encode($starred); diff --git a/mod/suggest.php b/mod/suggest.php index 7a86d53a1..a86b412b3 100644 --- a/mod/suggest.php +++ b/mod/suggest.php @@ -9,10 +9,38 @@ function suggest_init(&$a) { return; if(x($_GET,'ignore') && intval($_GET['ignore'])) { - q("insert into gcign ( uid, gcid ) values ( %d, %d ) ", - intval(local_user()), - intval($_GET['ignore']) - ); + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + // can't take arguments in its "action" parameter + // so add any arguments as hidden inputs + $query = explode_querystring($a->query_string); + $inputs = array(); + foreach($query['args'] as $arg) { + if(strpos($arg, 'confirm=') === false) { + $arg_parts = explode('=', $arg); + $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); + } + } + + $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'get', + '$message' => t('Do you really want to delete this suggestion?'), + '$extra_inputs' => $inputs, + '$confirm' => t('Yes'), + '$confirm_url' => $query['base'], + '$confirm_name' => 'confirmed', + '$cancel' => t('Cancel'), + )); + $a->error = 1; // Set $a->error so the other module functions don't execute + return; + } + // Now check how the user responded to the confirmation query + if(!$_REQUEST['canceled']) { + q("insert into gcign ( uid, gcid ) values ( %d, %d ) ", + intval(local_user()), + intval($_GET['ignore']) + ); + } } } @@ -56,6 +84,7 @@ function suggest_content(&$a) { '$name' => $rr['name'], '$photo' => $rr['photo'], '$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'], + '$ignid' => $rr['id'], '$conntxt' => t('Connect'), '$connlnk' => $connlnk, '$ignore' => t('Ignore/Hide') diff --git a/object/Item.php b/object/Item.php index 9c06fc8cf..cd42c4008 100644 --- a/object/Item.php +++ b/object/Item.php @@ -588,7 +588,7 @@ class Item extends BaseObject { $qcomment = (($qc) ? explode("\n",$qc) : null); } $comment_box = replace_macros($template,array( - '$return_path' => '', + '$return_path' => $a->query_string, '$threaded' => $this->is_threaded(), // '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''), '$jsreload' => '', diff --git a/view/comment_item.tpl b/view/comment_item.tpl index 5783a409c..1764f99d8 100644 --- a/view/comment_item.tpl +++ b/view/comment_item.tpl @@ -7,7 +7,7 @@ - + {##} diff --git a/view/confirm.tpl b/view/confirm.tpl new file mode 100644 index 000000000..5e7e641c4 --- /dev/null +++ b/view/confirm.tpl @@ -0,0 +1,14 @@ +
    + + + $message + {{ for $extra_inputs as $input }} + + {{ endfor }} + + + + + +
    + diff --git a/view/contact_template.tpl b/view/contact_template.tpl index 48930b48a..f7ed10750 100644 --- a/view/contact_template.tpl +++ b/view/contact_template.tpl @@ -11,7 +11,13 @@ menu
      - $contact.photo_menu + {{ for $contact.photo_menu as $c }} + {{ if $c.2 }} +
    • $c.0
    • + {{ else }} +
    • $c.0
    • + {{ endif }} + {{ endfor }}
    {{ endif }} diff --git a/view/like_noshare.tpl b/view/like_noshare.tpl index 2651ea1f8..777b2e359 100644 --- a/view/like_noshare.tpl +++ b/view/like_noshare.tpl @@ -1,5 +1,7 @@ diff --git a/view/manage.tpl b/view/manage.tpl new file mode 100644 index 000000000..24497b42c --- /dev/null +++ b/view/manage.tpl @@ -0,0 +1,17 @@ +

    $title

    +
    $desc
    +
    $choose
    +
    +
    + +
    + + {##} +
    + diff --git a/view/navigation.tpl b/view/navigation.tpl new file mode 100644 index 000000000..3e03efa30 --- /dev/null +++ b/view/navigation.tpl @@ -0,0 +1,103 @@ +{# + # LOGIN/REGISTER + #} +
    +{# Use nested if's since the Friendica template engine doesn't support AND or OR in if statements #} +{{ if $nav.login }} + +{{ endif }} +{{ endif }} + +{# + # NETWORK/HOME + #} +{{ if $nav.network }} + +{{ endif }} +{{ endif }} +{{ endif }} + +{# + # PRIVATE MESSAGES + #} +{{ if $nav.messages }} + +{{ endif }} + + +{# + # CONTACTS + #} + + +{# + # NOTIFICATIONS + #} +{{ if $nav.notifications }} + +{{ endif }} + +{# + # MISCELLANEOUS + #} + + +{{ if $nav.logout }}$nav.logout.1
    {{ endif }} +
    diff --git a/view/photos_default_uploader_box.tpl b/view/photos_default_uploader_box.tpl new file mode 100644 index 000000000..2f1f69a50 --- /dev/null +++ b/view/photos_default_uploader_box.tpl @@ -0,0 +1 @@ + diff --git a/view/photos_default_uploader_submit.tpl b/view/photos_default_uploader_submit.tpl new file mode 100644 index 000000000..cacb41656 --- /dev/null +++ b/view/photos_default_uploader_submit.tpl @@ -0,0 +1,3 @@ +
    + +
    diff --git a/view/photos_upload.tpl b/view/photos_upload.tpl index 2a820d9c7..7de8d8ab7 100644 --- a/view/photos_upload.tpl +++ b/view/photos_upload.tpl @@ -39,9 +39,10 @@
    - $uploader + $alt_uploader - $default + $default_upload_box + $default_upload_submit
    diff --git a/view/theme/comix-plain/comment_item.tpl b/view/theme/comix-plain/comment_item.tpl index e3c686f05..045a350f6 100644 --- a/view/theme/comix-plain/comment_item.tpl +++ b/view/theme/comix-plain/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/comix/comment_item.tpl b/view/theme/comix/comment_item.tpl index e3c686f05..045a350f6 100644 --- a/view/theme/comix/comment_item.tpl +++ b/view/theme/comix/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/decaf-mobile/TODO b/view/theme/decaf-mobile/TODO new file mode 100644 index 000000000..735f6bdc3 --- /dev/null +++ b/view/theme/decaf-mobile/TODO @@ -0,0 +1,31 @@ +Photo album display? + +- The "lock" icon for private items + - change it to black? + - when clicked, the popup window displays poorly + +- Edit photo page: bottom buttons are off-center in Dolphin Mini + +- BB code buttons for status updates + +- Get "add contact" back on contacts page + +- Allow creating a new private message + +- Admin: access to more pages than summary? + +- Find a way to show embedded videos at the normal size for tablets that can handle it + +- Need to find a way to deal with freakin annoying elements that don't respect screen width limits. + Specifically, need to find a way to keep them from forcing a horizontal scroll bar to show up and + making the rest of the body text overflow the item's borders that is screen-width sensitive (it's + annoying to have a 300px truncated code block on a 1024px wide screen). At least the following cause problems: + - code blocks + - blockquote blocks + - #reallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongtags + +- Needs to be faster! + - Reduce DOM elements (~2400 for 10 items, ~8400 for 40 items) + + +- Sometimes, when "Permission denied", wrong login page is shown diff --git a/view/theme/decaf-mobile/acl_html_selector.tpl b/view/theme/decaf-mobile/acl_html_selector.tpl new file mode 100644 index 000000000..e84b0eefc --- /dev/null +++ b/view/theme/decaf-mobile/acl_html_selector.tpl @@ -0,0 +1,29 @@ + +
    + +
    +
    +
    + $group_perms
    + +
    +
    + $contact_perms
    + +
    +
    +
    + +
    + diff --git a/view/theme/decaf-mobile/acl_selector.tpl b/view/theme/decaf-mobile/acl_selector.tpl new file mode 100644 index 000000000..8e9916c95 --- /dev/null +++ b/view/theme/decaf-mobile/acl_selector.tpl @@ -0,0 +1,23 @@ +
    + + $showall +
    +
    +
    +
    + +
    + + + +{##} diff --git a/view/theme/decaf-mobile/admin_aside.tpl b/view/theme/decaf-mobile/admin_aside.tpl new file mode 100644 index 000000000..da3ed23a8 --- /dev/null +++ b/view/theme/decaf-mobile/admin_aside.tpl @@ -0,0 +1,31 @@ + +

    $admtxt

    + + +{{ if $admin.update }} + +{{ endif }} + + +{{ if $admin.plugins_admin }}

    $plugadmtxt

    {{ endif }} + + + +

    $logtxt

    + + diff --git a/view/theme/decaf-mobile/admin_site.tpl b/view/theme/decaf-mobile/admin_site.tpl new file mode 100644 index 000000000..087de4f7d --- /dev/null +++ b/view/theme/decaf-mobile/admin_site.tpl @@ -0,0 +1,61 @@ + +
    +

    $title - $page

    + +
    + + + {{ inc field_input.tpl with $field=$sitename }}{{ endinc }} + {{ inc field_textarea.tpl with $field=$banner }}{{ endinc }} + {{ inc field_select.tpl with $field=$language }}{{ endinc }} + {{ inc field_select.tpl with $field=$theme }}{{ endinc }} + {{ inc field_select.tpl with $field=$theme_mobile }}{{ endinc }} + {{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }} + +
    + +

    $registration

    + {{ inc field_input.tpl with $field=$register_text }}{{ endinc }} + {{ inc field_select.tpl with $field=$register_policy }}{{ endinc }} + + {{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }} + +
    + +

    $upload

    + {{ inc field_input.tpl with $field=$maximagesize }}{{ endinc }} + {{ inc field_input.tpl with $field=$maximagelength }}{{ endinc }} + {{ inc field_input.tpl with $field=$jpegimagequality }}{{ endinc }} + +

    $corporate

    + {{ inc field_input.tpl with $field=$allowed_sites }}{{ endinc }} + {{ inc field_input.tpl with $field=$allowed_email }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$block_public }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$ostatus_disabled }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }} + {{ inc field_input.tpl with $field=$global_directory }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }} + +
    + +

    $advanced

    + {{ inc field_checkbox.tpl with $field=$no_utf }}{{ endinc }} + {{ inc field_checkbox.tpl with $field=$verifyssl }}{{ endinc }} + {{ inc field_input.tpl with $field=$proxy }}{{ endinc }} + {{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }} + {{ inc field_input.tpl with $field=$timeout }}{{ endinc }} + {{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }} + {{ inc field_input.tpl with $field=$poll_interval }}{{ endinc }} + {{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }} + {{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }} + +
    + +
    +
    diff --git a/view/theme/decaf-mobile/admin_users.tpl b/view/theme/decaf-mobile/admin_users.tpl new file mode 100644 index 000000000..336467924 --- /dev/null +++ b/view/theme/decaf-mobile/admin_users.tpl @@ -0,0 +1,98 @@ + +
    +

    $title - $page

    + +
    + + +

    $h_pending

    + {{ if $pending }} + + + + {{ for $th_pending as $th }}{{ endfor }} + + + + + + {{ for $pending as $u }} + + + + + + + + {{ endfor }} + +
    $th
    $u.created$u.name + + +
    + {##} +
    + {{ else }} +

    $no_pending

    + {{ endif }} + + + + +

    $h_users

    + {{ if $users }} + + + + + {{ for $th_users as $th }}{{ endfor }} + + + + + + {{ for $users as $u }} + + + + + + + + + + {{ endif }} + + + {{ endfor }} + +
    $th
    $u.nickname$u.name$u.register_date$u.lastitem_date + {{ if $u.is_admin }} +   + {{ else }} + + {{ if $u.is_admin }} +   + {{ else }} + + + {{ endif }} +
    + {##} +
    + {{ else }} + NO USERS?!? + {{ endif }} +
    +
    diff --git a/view/theme/decaf-mobile/album_edit.tpl b/view/theme/decaf-mobile/album_edit.tpl new file mode 100644 index 000000000..3fe2d9fe9 --- /dev/null +++ b/view/theme/decaf-mobile/album_edit.tpl @@ -0,0 +1,15 @@ +
    +
    + + + + + +
    + + + + +
    +
    +
    diff --git a/view/theme/decaf-mobile/border.jpg b/view/theme/decaf-mobile/border.jpg new file mode 100644 index 0000000000000000000000000000000000000000..034a1cb63b65268d78567f19cd2a0416f7b06509 GIT binary patch literal 342 zcmex=LJ%Z3brsR%R9! z7G_o;!OF_Y#?HgR4g~z%+?+gu{6a#4{DOkQVlv{wB2uD)f)a`nQnIr0^76vsN-9cn zDl&5Nav(z(fm+$w*!eg(_~b+cMdU~Z{|_(-axfGyFfubLF)#@-G7B>PKf)jmaz7&j zGGJk52TF(upo=pIC4w}7)T3%(WMT$Nhzg% f9U_4e8jYbYT*|B>4vQSR6atx6%@A>8_ +

    $title

    +
    $desc
    + + + +
    -->#} diff --git a/view/theme/decaf-mobile/comment_item.tpl b/view/theme/decaf-mobile/comment_item.tpl new file mode 100755 index 000000000..ee0e8c791 --- /dev/null +++ b/view/theme/decaf-mobile/comment_item.tpl @@ -0,0 +1,79 @@ +{##} + +
    + +
    +{##} + + + + + + + + + + {##} + $mytitle + {##} + {##} + {##} +{##} + {##} + {##} +{##} + + {##} + +
    +
    + + {##} +
    + + {##} +
    + +
    diff --git a/view/theme/decaf-mobile/common_tabs.tpl b/view/theme/decaf-mobile/common_tabs.tpl new file mode 100644 index 000000000..940e5aeb2 --- /dev/null +++ b/view/theme/decaf-mobile/common_tabs.tpl @@ -0,0 +1,6 @@ +
      + {{ for $tabs as $tab }} +
    • $tab.label
    • + {{ endfor }} +
      +
    diff --git a/view/theme/decaf-mobile/contact_block.tpl b/view/theme/decaf-mobile/contact_block.tpl new file mode 100644 index 000000000..a8e34fce1 --- /dev/null +++ b/view/theme/decaf-mobile/contact_block.tpl @@ -0,0 +1,12 @@ +{##} diff --git a/view/theme/decaf-mobile/contact_edit.tpl b/view/theme/decaf-mobile/contact_edit.tpl new file mode 100644 index 000000000..908212b48 --- /dev/null +++ b/view/theme/decaf-mobile/contact_edit.tpl @@ -0,0 +1,93 @@ + +

    $header

    + +
    + + $tab_str + + + + + +
    +
    $name
    +
    $name
    +
    + + +
    + +
    +
    + + +
    + + + {{ if $poll_enabled }} +
    +
    $lastupdtext $last_update
    + $updpub $poll_interval $udnow +
    + {{ endif }} +
    + + {{inc field_checkbox.tpl with $field=$hidden }}{{endinc}} + +
    +

    $lbl_info1

    + + +
    +
    + + +
    +

    $lbl_vis1

    +

    $lbl_vis2

    +
    +$profile_select +
    + + + +
    +
    diff --git a/view/theme/decaf-mobile/contact_head.tpl b/view/theme/decaf-mobile/contact_head.tpl new file mode 100644 index 000000000..e69de29bb diff --git a/view/theme/decaf-mobile/contact_template.tpl b/view/theme/decaf-mobile/contact_template.tpl new file mode 100644 index 000000000..4ef0405b7 --- /dev/null +++ b/view/theme/decaf-mobile/contact_template.tpl @@ -0,0 +1,38 @@ + +
    +
    +
    + +{##} + {##} + + $contact.name + + {##} + +{##} +
    + +
    +
    +
    $contact.name

    +{{ if $contact.alt_text }}
    $contact.alt_text
    {{ endif }} +
    $contact.network
    + +
    +
    diff --git a/view/theme/decaf-mobile/contacts-end.tpl b/view/theme/decaf-mobile/contacts-end.tpl new file mode 100644 index 000000000..fea596360 --- /dev/null +++ b/view/theme/decaf-mobile/contacts-end.tpl @@ -0,0 +1,4 @@ +{##} diff --git a/view/theme/decaf-mobile/contacts-head.tpl b/view/theme/decaf-mobile/contacts-head.tpl new file mode 100644 index 000000000..6c7355f4c --- /dev/null +++ b/view/theme/decaf-mobile/contacts-head.tpl @@ -0,0 +1,5 @@ +{##} diff --git a/view/theme/decaf-mobile/contacts-template.tpl b/view/theme/decaf-mobile/contacts-template.tpl new file mode 100644 index 000000000..76254c1ca --- /dev/null +++ b/view/theme/decaf-mobile/contacts-template.tpl @@ -0,0 +1,28 @@ +

    $header{{ if $total }} ($total){{ endif }}

    + +{{ if $finding }}

    $finding

    {{ endif }} + +
    +
    +$desc + + +
    +
    +
    + +$tabs + + +
    +{{ for $contacts as $contact }} + {{ inc contact_template.tpl }}{{ endinc }} +{{ endfor }} +
    +
    + +$paginate + + + + diff --git a/view/theme/decaf-mobile/contacts-widget-sidebar.tpl b/view/theme/decaf-mobile/contacts-widget-sidebar.tpl new file mode 100644 index 000000000..1c63f9eab --- /dev/null +++ b/view/theme/decaf-mobile/contacts-widget-sidebar.tpl @@ -0,0 +1,2 @@ +$follow_widget + diff --git a/view/theme/decaf-mobile/conversation.tpl b/view/theme/decaf-mobile/conversation.tpl new file mode 100644 index 000000000..d39976f39 --- /dev/null +++ b/view/theme/decaf-mobile/conversation.tpl @@ -0,0 +1,29 @@ +$live_update + +{{ for $threads as $thread }} +
    + {{ for $thread.items as $item }} + {{if $item.comment_firstcollapsed}} +
    + $thread.num_comments $thread.hide_text +
    + {{endif}} + + {{ inc $item.template }}{{ endinc }} + + + {{ endfor }} +
    +{{ endfor }} + +
    + +{##} diff --git a/view/theme/decaf-mobile/cropbody.tpl b/view/theme/decaf-mobile/cropbody.tpl new file mode 100644 index 000000000..3283084ca --- /dev/null +++ b/view/theme/decaf-mobile/cropbody.tpl @@ -0,0 +1,27 @@ +

    $title

    +

    +$desc +

    +
    +$title +
    +
    +
    +
    + +
    + + + + + + + + + + +
    + +
    + +
    diff --git a/view/theme/decaf-mobile/cropend.tpl b/view/theme/decaf-mobile/cropend.tpl new file mode 100644 index 000000000..a27de0e2f --- /dev/null +++ b/view/theme/decaf-mobile/cropend.tpl @@ -0,0 +1,4 @@ +{##} diff --git a/view/theme/decaf-mobile/crophead.tpl b/view/theme/decaf-mobile/crophead.tpl new file mode 100644 index 000000000..56e941e3a --- /dev/null +++ b/view/theme/decaf-mobile/crophead.tpl @@ -0,0 +1 @@ + diff --git a/view/theme/decaf-mobile/default.php b/view/theme/decaf-mobile/default.php new file mode 100644 index 000000000..ad464760f --- /dev/null +++ b/view/theme/decaf-mobile/default.php @@ -0,0 +1,44 @@ + + + + <?php if(x($page,'title')) echo $page['title'] ?> + + + +module === 'home') echo 'onLoad="setTimeout(\'homeRedirect()\', 1500)"'?>> + + + module === 'home' ) { ?> +
    + +
    + + module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) { + ?> +
    +
    +
    +
    +
    + + +
    + +
    + module === 'settings' || $a->module === 'message' || $a->module === 'profile') && x($page,'aside')) echo $page['aside']; ?> +
    + +
    +
    + + module === 'contacts') && x($page,'aside')) echo $page['aside']; ?> +
    + +
    + + + + + diff --git a/view/theme/decaf-mobile/display-head.tpl b/view/theme/decaf-mobile/display-head.tpl new file mode 100644 index 000000000..1c990657f --- /dev/null +++ b/view/theme/decaf-mobile/display-head.tpl @@ -0,0 +1,4 @@ +{##} diff --git a/view/theme/decaf-mobile/editicons.png b/view/theme/decaf-mobile/editicons.png new file mode 100644 index 0000000000000000000000000000000000000000..171a4087655a3dd1c2724cce699fb5e228a1206e GIT binary patch literal 6300 zcmYLu1ymI8_xF;bgn*QYgd!ph(%mT{As}6nONY{u(x8C2Al(v6hcrli1!p9-+@3Nq-v^)I$&!6zRpC1U_JQ^Qw%mZ zo;oV>kjmc-NbrNuN<&2va((m3X)8_!M{c{RzVQT?BW}Jp^6VM!!NFTzYMM&77Vzn4 zL}``Q)P6u9bPQ^Wa(eIQ_A-6-bnPztJJ6eKAsP6%I0Q;Ga@t(odYz=)`UREFraLpF64)7mGViF`~w;rt*ENJ;i@d&WZ6%xYzA#ROh|6cUR(IXC6o>za0)0>5$=T zRNEgO&dXfx8oV-ipDY;^c+etwaO|5cf)AOTnu>RFaG1?|#h&*p=5yz;l_348WBrer z<>l)=m&G5MRg;LDQ(Rn@*0#2`su!oHr>zQg2CL_(Pbll_>vH_NbG2VYA-tEi6 z5iL&lD5LQ)SEv2yLQaBrBCLE=RR=!J&CR7{q^Gz0ZDqdub8&Goiu7`sPgO6BN=)qE z9L^BJVzK3mm3e7R!PnTfDJOlEHWmB?ABvZv?s^o$HkLHdXE&i3{n z^vg&gko2O*7xc{H;&Xj2*4B^dA3Pw~n?@k!XEr8KYVJz#r@eV;xUyegu>HQJUttn) zcHS1z% zNVgPp<@_Q;IQ}?m&?a=7_LB>e8XDd|%BjcY_bh*GfE=Gi)QjeyC60Z1-%3iCVUrsR z#NuZZ#rfHGV?$ZtAkp7X^2vj&><#Vhj1$FLA5C~v9345n@S2lBRJFAFyTWem8CXUs zKKeW6q|dAN`KyoTZoKNk|~c`uiR!f?VUlL>Xl8&Mt|!X;ovS}FacTkMWpC9b0;A6maec(cM-K97SAky2Pta#? zE+RA(m!0Ykm+22GAt9mdrM8xwrKl*Pg_d_C&Mj?zr!`|5uorB~isCN#sp=8I5C5eN zlS}!Zah);Ej7UhTf(akAq1gpQ!@4uRA|C4R)f9p)wE1tid_oT-;i+xDfX6 zscLE}>FVCQa$8$pKkB75?_7IRGUW(eXrh3@V55%pp?*&&qg8yk^GEX1Z0I6cRJ%6@ z)AQIB6_uG;S$`tyR(|7xA?M}ikJZ{~b!9nKAl6>jH8iY&B-jlmgZ#r_+)>lqzZD#z zP<$orP(SWt)cVZZEt6bjdwcuNI)ft1eJ9Uq_X*{?#>V{M4y<9bRbhUX#*dmy02S-W z678>imbm)mh9M0N!aw`_t=IeFTYW0FOkz#_(}sW0kr4Xasa?)|)4r8pX0SVldU8LK z|BaD}y<8a_-XB3so0Ob^2Z@S{3(xLOgl`!|!gO04>*)cPh@gpr~4#dVe|ELhp)(0ed_bxnamy-9df-9vASdMsa za?jBIva*0ZGJ&~(gjW6h$N5iRpYni>0CcJK{>H|}Ze9T9(wp_^Q{tUKy@Q6upFb5J zw53E-oT+Shh%Nb{xXJNDwzut1_9kc{Zr9jAK_MYAhIY1Owb5XGb}GYWk0(T-vQQ}3 z+S(cfg5F9ki>>VW?ZTnBLz8tBD)wl-Z+;S_*lIpElbF$a z#WO6sd9DM!ZqbX?p@V}qbXE?nRYhZKD+5#TUw-9+1li@8-ydBB(sTBFiUv+A7>pWyD-mxzuZ&U&nr zAJwh( zoW*k`2o&j;z{WBAN#jknu&$iOCSJcbGZpgiSp=f-O`%SOeyLt@`N9|X;o)K94G&*) z&a{4eJ~|Sb?5Vj*EJdv)UE~|psIsYv?uNn=gT=f#i4 zt|FXe989rAU((V%8=C3k3GXsWk{6Vk#$!LrpNKqtdh5CEZ&{#m^NV&v-*8lpKbM_| zNJu=mfB*jb^FtO$PD29?*gs$W$iz_5-Fkv{kCmvK(}Z^kUCvKW_f>uq&rFy|j##Ud z_YtBe6&DwWKpsAP*oyO@y)*uK+di4O*7^t!fy*~-BduO(hnBOGv?7NWnF964lDI=4 z1lyxNA1HP09ij5m7hJ6;YZ^&|Hq5HHwtYj=vgt+cD=Ro=ZGd`@H;1j&!n!PgI7g_m z$~!xACp?shG%ydORxhM{^eO6z5Dl#>KuhI>`MWK810=kqXDAEH#>TpKf}Bv*(CEou zd`5MLAVvL2w_jwgKYAa4?eO?mK}m@Kyt1q|RX{+X+rJt2pECCn|NE|p=VTA_^+1a3J#Gk&%x;&VUzs`}Xaw>X$(q(ZEZ=pyQ0?oYvOX=UFHojJMra zsZz1HMC`aAX|qW}`SF{QvNAkK9FquRcF^Us`56c^O)S6DG#7)6`?vUTf?K!3_@B4> z0agKuJ(jPcZE8vi`6?YK-hRGDoUk~U{B*rD1P{u}B`Qki*M?2Yx+*YGd*|@I%x4b? zH-oFZefz{L;7AFu>9&_R;4d!YhPXm}%II*ZO~Igr_dX@GR8+DR`o}v{NUs}J{uzBQ z7lF#1Kr*NOI{Gbf@WGN!&%mH|VaQ(4YI6w2tVW41w*u4_;J`f->o@9Yn%9xlB>ZK7 zN=duvJ@OITi?5wzrT|1?T^}MN2~ApjNUx<&Tqh?dfxh1?9I2ss>_9Y65>bgYH3DXB z#ah{YU-_+b5GXlv`~sb4B!qa5j*dy0nen_G|0th4c>*34qMRR+n0WW66+c+=^73Ap znCyySyz955kyD7EbNYDYfa3#K{Em0nt78|G5Pf`WaZvfM=zC91#x=zAI~IR*>Lnu$xNr4IcJOMJ1k*kySnPRX?JbeTl9TflJ0|X*#VZn^O zIF&hC@Ep0#E%_38FjH;q{_ot~&`tBzD{??r(frnZqNnoT#vJd`sHfT2KQ&8M005+{ z4mXXih&AN$v8Q^u4SyR{URt_JIx9A>NQ68spfDLj9kJo!3Z70Pbw$1Byp2{lG^ITL z5CM0%R%6PGiAclFp-#umc`;z+TFv?YLGI&MS{#jyMBh=l{OVQgj-$ao_PR}5Tl=f1 zdtT0>!bh^)yu5B@US3QlNRTY1Q%Q)$@SKovOI=(X$qU$muf6YlgEKo9N8K!pXl&B= zc++yB$sO|HiN=?i-ElU}^zhkQJ3Poz@O9uqd*J+ZCGp9-&JQ?AQBSs~%4qf5T4E}S z9q1(*4mz7Xx5#N|`h+V18SwK{0IUA#(Csx_FQopice1iTdJ-XOdM^RPdncv+|Gs{sq3yMi)MTblVNw)r|qZ< zo{l+v^ed!%R%gV`P9dT^3Z$v|g$tg%=@e(Gbj`1O{-gGSuh^-8S!8IlF~}?ZooAp^ zN~Q3TL}@2VFT*cFJ_I>Y{J2h~#CgP98xC?#Ie{Vi#B2UyVR@Me-hmbG?(T;Axug|$ zB&cgTlUACwIO=Wzsg0ebl}ifOyz8mr`ua7shldAr2LKkt6D0LkuD8Rblc}G|sj`j^ zUU|&UPSo4m z3mva-TjJ3Op5`dwp`E{YJ4h<@ zV>2b*&Ak@}S)rt;h!5BeV9W0D#0C;xsHmcn|D%XrT3Q;!LHKECKw#k5=nN!(kf>1S z_E%HHg9i^{V`A={UtZ?b*H5tt#T7Y72Aq?#CEpGS2_ZZEJ8s@LG}FW)>=LbKbr3v< z#{YPNxI7M6l~D0{xPis(1dNnB<+xgWSUcEC6|ESByoWcJru^p3eLW6p`V4y0=___N z;^5%mNd%(ylu9WVlxu+3*?D-B-Q4*6H;2u52SoxZ4BDgI<}ZF;y0)L_V zE}ANoKSP$v_ZaXbKYk(>k^iK@mCMT7nk7$>ots<9#)kC{F|p}%*(-LwfOEHmFHKFN zBy@ZbDy7w>Hvg#T=<3-+L)1oLhp)^=HGDbXSd*3Hg{-VBL_k0wDSZyPdBb)RlTu;{Rh() zA35rh?&JI{6_=MhcAl#*4zi^D-GD#O_yM>MI$J{^CnrZI;lssa);ch2LbQpcp`l*e zZLU>i%1i*KS^<0tA7l*M2As{>wHoN%9-9Orz7BZj#w&OC^i=z!T@n@(r7xqb4Wh7= z_#w@nn`@J$x=l%eAr-;kB7U|&l9-s7D%Wf2+=$NxymI7*RTem8Oww_{1Js;`-MZTc zC|>*3s}CL5n1fKWd&sCFTU*;TFlD>^S{kM0&FOwLu4I<)Ca-G%H@l(X&zd?7 zDS!WZa2eGREeE1ASJ=AEK>1fvS*dK=#$C9-y)EnO+dN^M%7A>LMwyzL%Aj5`<*03B z#9@zkh5>v$b9%w^&l$Z;&d5jxiX!3ob={51ao}vDxQ!bu`V$^*FSdv%KBAa(tnbm? zm=>I}>Nav6$&%7GF!*?Gw>BoRljdt&s@Dw_J~pFWk68j@J2^eQHfxvt*7_NQoSYm| zJ3HiW8rNpFL!lX8lby)bYr&V()HI`;PVbH0H~r|dM@wfXNNs`SEqjM*s37;a2(RR) z8gFq~6i?jqL&DRrVAc5kW(RvPx}1~4O!7dOq^;Xe4itpB)i@v!N#<4TAX&J% zNde&{sTY>O;VLg*l2w|voOQ?rKkbmbPfWwLQeFce@qZ{LCT7@SDYZq(Vqm{h{-*YD zOXeC@`yciwF<8;ZM;H{Q0nvnqEjI?w+-FY2wjX?w9vuyl; zLcq7qLw?)u{25HHw(7m3TByTE687yI!#6R{NYWp1bo{syKD#T8^8}v3VkZV%G}hRI zt=a@^&BiYa-#h^r2~*G^3#c=a`1o*oBFSoJ35mz_stw}+>sR^Eav63OHUGEau{&2! zjCYGn5fIe)_&Btot8(1D@j;i;B}(ldOau*B{!^RA(RiUo6(a{I&(9qX40e}C3Z=FL zFq&#=mWkKF=*4%!7d`axk!_k}+ma7fZ)3duy{}!juzf#&R>3`khc*KEd3h5Tse2Xs zn_dK8ouc~N+r5yK{relg(q>Jyq0n*_U>~a|lZ&Pbq)t!J$M5Ls8YHPT_)JUne!K{- zka2oA+t}a)^WPhbmN-F7^kIbTg&eeWD<~54Ev-r$v$MnPzn?N7D^2ZA(EPAvxN@18 zh>Y=L#$OB$rtC4H+2&hq&17GxcoV7@W+9LOF;Xg}>b8u#$D(;1S{_F4$LrEPk88c7 z+y+)yzVWg>eOfD3e)ux?m*6R=uWZc|>G(sf-<=<>mYZH_#*kwIai!1(`BMy+{>Ph| z4O=%&0D!IrSYq&1pX+Q#N5^3sxO8W#Y}Z7>agsfQP@f~!ux>l8#S3&6dQfwQk919+ z7{HRRoCIKpNV{yS)0Q$8%IGRf3?UUYwOrX$o>sQ>t`?ceqab~?@3F0o ztu1g+y9>?t2nYx=-{qhW?ncPtKtL;C&7}XY6X~+KgaHh_xm8}y1)2;)*O-7&LFaX4 zoK8^uRwKhS$v%d?4XHw_Xk|&>mXVRU=|X@c8Ie4W8@}55o!RsKbr}OUxhW4Cu{u1W zlEBafDop-I-uQkeyCEe5>?HTc#cnk=HhOjzPAT$y)$m{G#Q7%feFup|-naxSD=R*a zKdRG}QcZQ{Q`zYY%hS{P3=%?78+X&V8{-Wcj#oaFn@ZCBz&mR62~TTJ%hx|dGN$%ytwnrDO0-V3J4P6+y+4?ny) zn8x*{J8P3aV;G1IR8=<$EB*3F4_>?W|4ON)wVeO)fS+e@TXTnxU*;xOhbkfnb17G- zBUhoHpO+Vk)?v{o8GW6uu1y7+D>v>Rj4~xP^~j9F=60pbYY~}b*632*;8*B=^5*B#=Tx^Rri~jOzo2k2{Y)Q$;h~5}6 zHiiSp;4|x3qn2GeZGXwVbairk>3@d`t%u#j&`eP1fKHa$=cw4&bynAzj|^iG+q|y( zu6)nI8qQu8F2Ms-Q8bH0es^G%)FAJM#ha^J@LpF^%U4>7^H9scceVW4r7#2QV_sc$hb z%EI1c3Mti#85mF{VU(nsuzRt!V7?Mpv_DrLE2URs*+Uq|AVzsJ9^eZ>q9>)N$DEva zB`g-lV3%5b?=c1chA1f08ID_4V~VUkSTg1)UXmMHO+h-f#Wy z{K%zZM~eW18Cktv*{Lu4D(DWTiIO>aFbC+SzJ8<=qVfpK*vu*D4LYd + + +{##} +{##} +{##} +{##} +{##} + + + + diff --git a/view/theme/decaf-mobile/event_end.tpl b/view/theme/decaf-mobile/event_end.tpl new file mode 100644 index 000000000..3e4be6ec6 --- /dev/null +++ b/view/theme/decaf-mobile/event_end.tpl @@ -0,0 +1,4 @@ +{##} diff --git a/view/theme/decaf-mobile/event_head.tpl b/view/theme/decaf-mobile/event_head.tpl new file mode 100644 index 000000000..63a1135af --- /dev/null +++ b/view/theme/decaf-mobile/event_head.tpl @@ -0,0 +1,6 @@ + +{##} diff --git a/view/theme/decaf-mobile/field_checkbox.tpl b/view/theme/decaf-mobile/field_checkbox.tpl new file mode 100644 index 000000000..9fbf84eac --- /dev/null +++ b/view/theme/decaf-mobile/field_checkbox.tpl @@ -0,0 +1,6 @@ + +
    + +
    + $field.3 +
    diff --git a/view/theme/decaf-mobile/field_input.tpl b/view/theme/decaf-mobile/field_input.tpl new file mode 100644 index 000000000..58e17406c --- /dev/null +++ b/view/theme/decaf-mobile/field_input.tpl @@ -0,0 +1,6 @@ + +
    +
    + + $field.3 +
    diff --git a/view/theme/decaf-mobile/field_openid.tpl b/view/theme/decaf-mobile/field_openid.tpl new file mode 100644 index 000000000..8d330a30a --- /dev/null +++ b/view/theme/decaf-mobile/field_openid.tpl @@ -0,0 +1,6 @@ + +
    +
    + + $field.3 +
    diff --git a/view/theme/decaf-mobile/field_password.tpl b/view/theme/decaf-mobile/field_password.tpl new file mode 100644 index 000000000..7a0d3fe9f --- /dev/null +++ b/view/theme/decaf-mobile/field_password.tpl @@ -0,0 +1,6 @@ + +
    +
    + + $field.3 +
    diff --git a/view/theme/decaf-mobile/field_themeselect.tpl b/view/theme/decaf-mobile/field_themeselect.tpl new file mode 100644 index 000000000..5ac310f80 --- /dev/null +++ b/view/theme/decaf-mobile/field_themeselect.tpl @@ -0,0 +1,9 @@ + +
    + + + $field.3 +
    +
    diff --git a/view/theme/decaf-mobile/field_yesno.tpl b/view/theme/decaf-mobile/field_yesno.tpl new file mode 100644 index 000000000..c399579b2 --- /dev/null +++ b/view/theme/decaf-mobile/field_yesno.tpl @@ -0,0 +1,14 @@ +{##} +{{ inc field_checkbox.tpl }}{{ endinc }} diff --git a/view/theme/decaf-mobile/file.gif b/view/theme/decaf-mobile/file.gif new file mode 100644 index 0000000000000000000000000000000000000000..7885b998d578d4523103e1f5dfbcd8133a7f0fe7 GIT binary patch literal 615 zcmZ?wbhEHb6krfwIF`)7#xKb(Aj2uD!Xs-asNo`J94_scC*xeG;M1rUF;y*cx?0ps z_2^mZF>^Fx=V~P{*G^rfleShbd#hf~c7uYwhQ)`B%8nbAoir{#Wm{SZR^k3H=J{9Jm=JO-lh4xYs&@q)(f6(7rfdp`gC0M@46J&eJQBta!B9h@CjEU zCtit~bTwx3)z~T5;-_9qoOUf~`t_6<*HdTSNS}2hbM}p#xi@p?-O8VTt6<^nlEt^n zm)@yZcDHury{0wy+t)wn*zmAxdicePqc2w-f4Szw%e5z8tv~f@)0x*>&c5Dp;q9)AZ+BmMxA*e9{a4-{xcdI^ z^$$mHd^mpV!>KzTPv8A?_TH!S_doro4N&~a!pOx?&!EEq1fV!!U_a7O-_+dF+SU>! zFQMYz-Xh@HBp)OYX*7MhPg@W#w~=pBQbN3eZz~TMmqFs9_?SQ)4OK-ssb;;n#j&A* zd-rW?(vFUgwX!ldG1S#kSCW^J(hQGrGYyNp5g8E{5^SNR78+&d5VFtD$HU2(Cq_BY z%_KY^(BH??#leP8tzN;;s4bxJl1t}A1>2$$i-f1=+Y}7fSVT6ZoamP|_An?=&^XL3 nuk6%xBcZXWg@e6|V^=`pp=K5i9uWlt2ZjcQz9KFz76xkoO@B#U literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/friendica-16.png b/view/theme/decaf-mobile/friendica-16.png new file mode 100644 index 0000000000000000000000000000000000000000..1a742ecdc1016e7033e78e37fbecade08fef6d50 GIT binary patch literal 699 zcmV;s0!00ZP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L03itg03ithOzq;@00007bV*G`2ipS$ z1Ro(nX?n5%00KKnL_t(I%Y~9nh>c+s$A9O2-|OCCKFWd^Wr4v0`G~T$Ae$*+uPn_* zN>i3(p=38qlogSkm8^({Bw6{GjAABaW^%t~?!C{)-{PHnXGY=Fd7jgG&iOshbIvh< z7~>{0+YWS*i-5R9!ykJYm^8C*nWTds#wSL8PQKl_s^|#85xggaR>ua%i+2&%+mCmS zR=vWOzU+~t)As4p#L4kD5AGd4P(;qjPDC%)CFD z4PUsl;p&-gsDwOO4#{KD0e%4#7@tT8>#8`{!UYlf2K4mGxgFX4ySG{wPwaz2kD&na ze4BAp>rE7Mz{*nO<9HVusN!9dD50!mGXZ4)uKF43Szf*r&R+h(gVGt)sDbi|_H68< ztJwm9nSlgA1`7@|zyK&Du=d~)Vs(b)qIO6}vPE<8M1r7%NYc(zk^qWkW`6@LNED|A zyE)o_ljs@%l!}QB-B=OXeauk&4*)o{w+9$obaWd-Q{4%BjtfQmCqM#ASpL_vJ)D15 zU@1WPVu>;OaE@oM%AN3H29;my={3v4P=}PYZ*?(;q!>?LmU%w-oKXJRdDiOvo>(u_ z?rTg79YAfmlCrLmNiwqpTEVdCuUNZ{5<;XBk^sq?H2_O`O58bry^1g@b3xTw#0LnC zI=(rNZ`5<0ui@rvxcREQb2j_ +{##} + {{if $desc}}
    $desc
    {{endif}} + + + +
    diff --git a/view/theme/decaf-mobile/group_drop.tpl b/view/theme/decaf-mobile/group_drop.tpl new file mode 100644 index 000000000..959b77bb2 --- /dev/null +++ b/view/theme/decaf-mobile/group_drop.tpl @@ -0,0 +1,9 @@ +
    + +
    +
    diff --git a/view/theme/decaf-mobile/group_side.tpl b/view/theme/decaf-mobile/group_side.tpl new file mode 100644 index 000000000..0b4564077 --- /dev/null +++ b/view/theme/decaf-mobile/group_side.tpl @@ -0,0 +1,33 @@ +
    +

    $title

    + + + + {{ if $ungrouped }} + + {{ endif }} +
    + + diff --git a/view/theme/decaf-mobile/head.jpg b/view/theme/decaf-mobile/head.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6210b76befb3c2085194217e94e6b6b19d8a5a46 GIT binary patch literal 383 zcmex=LJ%Z3brsRu&*& z29a#6tZW>-931TI90J@toV>yUBEmufLP8?qvXUZVGGanPQp!>?a`K9biXxIK>M9Cq zvI>d{AVU~g+1NPPIrup^_!UHjL={K|{|_(-axl~|urf0$F)#@-G7B>PKf)jhc0V%% z5@2RyWaj`%DF^_4#>m9Zh>#OvViaUy6%7muopcGPLIUV_koOUQiIJIs1tcSgF2f)w z%*gcr76T76BhYqcK?ZwT%fkrCN0aq{`U e%N;)te=@#)^7-|oFLP{6q$G}S_`JRT|4jhcT}_Yx literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/head.tpl b/view/theme/decaf-mobile/head.tpl new file mode 100644 index 000000000..5ad82b4c5 --- /dev/null +++ b/view/theme/decaf-mobile/head.tpl @@ -0,0 +1,29 @@ + +{##} + +{##} + + + +{##} + + + + + + + diff --git a/view/theme/decaf-mobile/images/approve-blue.png b/view/theme/decaf-mobile/images/approve-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..a13668a503af5cbb52ed3e70f80f69c673b522a1 GIT binary patch literal 562 zcmV-20?qx2P)MH000009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pm6$CUe<~3%{0005eNkliPsM3IJ}CH}mVN`r2L(UeW^C7>;FE2}zE=*9(>%hlHl}Bl!s9gGj5!Ro zn3nORGI*TkV_3w|HsufdmMekBX}$^PyG&W= zb+7e!K8@{N?5}#=sL`j_P2}hnIzQr9Xm1GhZ~Vb0yu-~biSmBo)3{wiQ2K@=jXuDm zc!QlKMa88?kKiHP!6_xG5vTbK;==g|XLByphj0-mm8(a?xY7cKy*P{eA(&L53(Yp* zRc%zQCYtKgY@P72y5K7~Qy2V2mP8Nhf{({(UfXLQ!DLMH000006VoOIv0RI60 z0RN!9r;`8x0gy>VK~z|U#nwA(6j2z)@!zh*7$cITkYJO-%6P$2&{To_41yLmeh00> z7QtQuegjdou+h#7Xl0d)U=pwpBnlc(k|x)&m|ZeiW@j_z%$^4x=A1K}_dj!P?;)J# z@eNI!3K+Mi29ad^q@VB$9q@fj_Ucp*1fS@r*D%#D`1PE&^ZkN1a@sZn#V*tp>^eN> z38t$CpT@@=@Vbh(+bG`UfD_DA2|kO@UBDX{s}kPq0#5L#O7IYV6~KG$@8jrR0XR`& z$ZI9Rbu1}9I=^GPRUT+Pccj~K4Xc=I#VMsbivRkk{)3BUz$5q>2%g~0QNbthG$6Qb z53r1{8Gn$b$sydtiweN+Nf$@n%ck_)4h?Pla^1m-?9|CF?V)rjR7(9HJ&Xw-jRoJw z?O5;yyp9E*6mi%G(TD}#!eR{g9&X`F4ES@rB;38djDEBWG2oxFl~wr%|6OSgzmI2F zk>ox#-rgAk RiH!gN002ovPDHLkV1f}w+X?^x literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/arrow-left.png b/view/theme/decaf-mobile/images/arrow-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a312cfa71eeca15d76bc2f14fdf1b6ed752b2d04 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCv1|-9u9Lfh$Y)RhkE)4%caKYZ?lYt`VJzX3_ zB3kd>*vos!K%nj6cjFDrqAY5Oky0-r6m*(gu03#HrZ6$a<-|chy^~+J$^ZO*Zh}~~ zr|JgJH|m@Lo}VV=iA{)Q_#igH?7)Hv@ePg&h7AIn-Z2;Svs664!x<65JS~mE^Z8B2 zE={H|P3Bds1+3d9zLlTUcfeSDk+wp#35PL5!)nH*q6`kE4-!}#-WQn|2Sz9zsPON3 zRq}_sl3Cny{TeN+doybH%v#($M;=*Cy}Z&2}lt z^%GCRbPGSB2TnmM(%c^M3*=H}b8nDgNNL@}l+vi9#4y>J>-il+A;n3FULIfD|8S)k zM|YH;3)STEWNpxHP+IhRR*G&Wzd}i`%1V(V?H9i&o?~FxV%$`gxh8Ek)@d)0&=beIamUiPn4PN&nUJYz A5dZ)H literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/boldB-serif.png b/view/theme/decaf-mobile/images/boldB-serif.png new file mode 100644 index 0000000000000000000000000000000000000000..78ce59a5473d8e6a9ff5dfd97867cb0ebd07e6dd GIT binary patch literal 574 zcmV-E0>S->P)MH000006VoOIv0RI60 z0RN!9r;`8x0rN>jK~z|U#n(@WjZqlK@z0&EA?6w*MY0gWu#goCOIb--SXi*NQdZbV zX_i)s1(}_l@@K1rq?95`G-jbFnbFLo2;;pL@40o|dG9&q&YV2;bniL8^E}_@bi3y~ zr-sMap?7Oy8ow}!cfp^8+&^Q%_d|jlK8?%RPzA1q&jD-=ej2;G6grCsZQ~^v!f^QB z&A#I}ZbsIC8;PA%*$SKrkZ!RB_UC}N>}VvmiPt&dHH;++*wtFxm#So**2JU4nw`1e z@FAhE$_Z~K^r@Wi^$Gp?|AN25n_Tc^*cZ{yw+|K@eh!0Ow5zz4O3=&yd>Er$VhUVT zvC(>}k`8NNykl++R#vPna1SHO+ii}`7v6_W|FEvWodBH;am7O6zwx4DuA$udx{e|b z2ZsseZ+;1%V}M@I_8}a>(@6Xz4(5Qjtd8rE9J4r-3l9Bw8_DwpgE>w(%D(MNL|=^) zx!~|Hp&!Tz|CrD>=7dLEW(?$nFHh*7a>6$!^zoeVJqi78E_e;cBKibw=YpTq)*@Hf zSaxS(u0{<6CA{ggTo`jwBt&e%rVcm`jCk16l{XUcc_oJIov0Bd;hsNYzPPXGV_ M07*qoM6N<$f-a35@c;k- literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/camera.png b/view/theme/decaf-mobile/images/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5935b7c03ad578105846438f2915e0164f91ab GIT binary patch literal 530 zcmV+t0`2{YP)X1^@s6zs*Ol00006VoOIv0RI60 z0RN!9r;`8x0mn&1K~zYIz12Ny6j2n$@!y)b@gokI%jqV4;*G@=YO8_%)QG!#A7oq z;1$-f@t0iB-k;C-Mq>nz`!w#CkFcpp6Q^q$$n#W0JnHmBEz7^78-ZHcbyRZQ#iX?S z#n^}O0Ze?u%hGQ>yvIE5WzX7JFxYYrn@`Xl!9|=K;47PmY5Z(q5mPmbpW;4V;3IZm z1}AZ(rq&{9Pom4Wg5wpUbNEn0v!@394xQlFO=WyYyOrHkMGuFi<X;Y^9U8`KX$vjyQp{yjSm7T9A=nrIhPcLtq*s# z#9eOE#8>PpHR$3Yo=X$4JhmsLDcYEc4QXC%6^m^dAJq-Pyhe`07*qoM6N<$g0w65(EtDd literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/code.png b/view/theme/decaf-mobile/images/code.png new file mode 100644 index 0000000000000000000000000000000000000000..d490cea9da2f8ea85eed828490fa85102dfc1d58 GIT binary patch literal 488 zcmVP)FXxQD|i-Yf8C@h5o8S*#cP->@`}_&oL_ zdALd@o&@IvQjwuhu)oGfY>B6L_4t9^f3i zxKl828)w14e+lOD)+uWAAq6ywd z&bx;ENxaPTj)arCqgq#Pt(*82{D%z;EJ`PwYwZjP%j%D+E8S@wR)f>Wt%CT1^tR5k z+CAwlPE^U$(yKkq$QRNT<=Bn*hk}7Esk^H6`cfCp6!OeT{akIWd`?`$kBDs)YULfb zFU_IGSdu1Por#s$Ka<*Yl!-%W0$&LoY4+!T$4(SK7?IzV{+_1YRz&_A?n%GqgE8}3 ev}n=d-^E{8+LUv1SXk)*0000FN5q>Z`A2;2#g^w%NNN4T` zc8otAr<8sz<)m_J6?eQrb@I7sw-c*Q%cn#Nj0q&UiCd|pxUs&N=g}FZ{hHE`BPrI3 z_U%ak$=}D=Zx|^l-TUN!A1roiv5eduMrXHyF-&JrTYm*iML^*2Xwk5zlsxB$--)u8 z&#SWm#0a6R=aNQB=?p6ABmE=*RRtsUBrUz#Qj*ymh=9q9LuZLzGYl7@_X7Yl3PI&B z>dgQERC>f|!QtlxfKX^1u5y_GE>e)@08qwx>U#^=Y?#I=rMELkP&@WR5s0x9WruT8 zN-vu>5!vbokyBu;wza5Lh6qOM+0TVdU^hG6&VY7X5o!5nP8~oMFnNlIXnW>OJa7+q zm9M^Uy@)8*SP?Pc%@79+A)3a$E-})4ukSiV0Pq%YknAu3)!G(=$}C5jfP@1q$+!Uk(GV|frY8dXz!Tsdu+tHl_K2Vka0G9Mq*zgtBM@y5r9J|W^QoJl zc6!!_?8j0V*VdPo6k{8CGCh^xfKR}OiPY8hE(!L8Py?v1GdZA*Jh}!4QVWc`N-N5T za-f3%Y{O=!H@b2Is-JPDpsF098sb0{&}JFRz#H_8Q#XEB!PNVyttrvp4Q$km`r z=tKd<5pgiY0Tn}x+8~x$0sxaW#e%VIX=#^Xlg+lLuCF?(yr+XOAViu>2C+;47yGQB zYU_?WONcH>7&VirxbB-^Zc+x7+eCdt}M{P)MH000009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pm6$Cju#7V&m0005kNkl z;{yqjsLcq&GPBtvlbsKyIp5*_=bkxt=1fhWTJ7XCuH!fkU=LRDJxy6gFLQmxYs_Ol z4$)H1nx}B2FWjm1C0)h?G;Cb&kfb;B5KYYG7{vSMP;C#v8IZVbO`jv@I7M1;RiQr{i z>H`ma=C|;nB>3$(L~n;puBBhKLuuEK;~;isdSWG$dvw5BOE?^d=;ylN!>ZLzde~cF z-;F~Q)_c^31&?8OfxUwJo0(+R(uD!}({YFvw*=m5CkMH000006VoOIv0RI60 z0RN!9r;`8x0hLKaK~z|U#n(Se9B~lF@z2Q-Lk+9~hRK8Ghdz7=HU~ zNwZ$!9VYMy{kXan4Y^8V(_37kc8~ajPgue*UM2L^hXK#S z3GV}Lj48|})w?3_7l{7OT~XLzC&5wpB<72NKg1e(ihz$`pwr+wyn?-=;5BR(1%HO= zqTs6vShhNRzX)(0zEC9mH!gByTqhOE_<#o)1HWP!-vtA%V?0v7!Dl#@?VD^viUt0d zA@~eW+XWNc?SC_ZFQx&P!sn1+>&NjJytyA!d<|{K3x7!Z9ij{_3ZWl_NN|?j8!1MKGap*0{ Wcg7c)xe}D$SX=Pkzh=^prAC#`V_6MOOz!~BQxP}x}-vG!rq~2SOHi6+KTpAHWOA-su8+ z0Av+lMFfCY0RWKLMj_c5tv-CFz-aYm14J_uaj%JI?vCV1=R{i8!}n6n8sCX|)ZLK; zxJ6$9j2lyP)lMV<>WMF-RqhEn0YDs;RV+2;@zr(|eMdAMSTw!pkzF}r_&;$0Hs-_O Tnrpiq00000NkvXXu0mjfsVbpR literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/drop-darkred.png b/view/theme/decaf-mobile/images/drop-darkred.png new file mode 100644 index 0000000000000000000000000000000000000000..9657d11387ec42093f3e902207a1808ee77175e4 GIT binary patch literal 416 zcmV;R0bl-!P)rsR-6b0aO=z%tt zB4nGehK$;Z6MC=+um{mDmLiUS&|zId9>gX2%aDBJ=5a5;N|RJuV32e|h9;@8Krg8d zeWA9%XaQN^vKKM~E^~h$YY_egbmRbFIq+npmgHv&pd)(#%YjEDok>nN2nQe;;sC5d zxB&D3nvH&gA(Bq>2W_o^UkC#M!H__}HN*lvfHor3PDmu+rw#PPE*O#sn2dC0z#{TO zb^*wdfvb6|qvwu%-7}Mn*jBmPO(+?;zq12Y5&sBr?kXmpcqxDfl3!~Nx#Q@~0`MX- zK)e6|sC>PU9F6pnG6hC@@&SsOiL%$kJ$FZSr*oq2$ahz&Sl)?w)ZI~KxJ4fUOp&3v zDkrK8`NW%%+C)eL0A*xWrR12$XWK>89mP~&N7tf7ROKk)|HL<(;lg>mY^NRo0000< KMNUMnLSTZ_jHjpo literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/drop-red.png b/view/theme/decaf-mobile/images/drop-red.png new file mode 100644 index 0000000000000000000000000000000000000000..91b0260ce1c9f859d04514df1acf718b8a319752 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCv1|-9u9Lfh$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#4!fuTw^qcmeJVhq2c9mDArXhK-gqc@NP(yAVSZ;{;_kj(T6}@m6FRTkfAw2E zMI_1b-4DrkJ122_F4gCjn2>isqn*{qgHd7)Bl9I$&Lt7tkqm{F`RAO%7_t<#86rKH z0(d+bE=^!HP-iN0ZYX5_z-h>IMnL(2Y?DY2W8?|H1I6uk?#@(fZQ$^krgF+@72~m- zdsZ(VeN@d>+`-7#bmR5eeudxK>y1^I)Ge?5d(7ZBq3Qtllc<)4%`(!Heyk6_=o>W6 zdDivLXQG>b-oE%pH20o=$;HU8my)-=-?n>(^{$x*cFlC%J@Zub-}w~`vzI@WTenhe Q1<zopr0KA@h>;M1& literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/drop.png b/view/theme/decaf-mobile/images/drop.png new file mode 100644 index 0000000000000000000000000000000000000000..af38adf5e16e2a88a11bc370a9ca3413a0bd5e0a GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCv1|-9u9Lfh$Y)RhkE)4%caKYZ?lYt`7JY5_^ zB3jShxX9aVz{7H3x1y0-;@oYkFDbr|ifsDVFvY9!R_DVk&3KKA!3ur60sStYSQBnk zzU!U%ghe4zU1d`KB<_{!C>_uw{bCqKMg1K*+D%xL8naf%DbhfdA z?@V){NsM>)Gzopr01wG| A5C8xG literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/folder-blue.png b/view/theme/decaf-mobile/images/folder-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6af9bbec0d4fec502bb2af4c00627662f412a5ab GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCv1|-9u9Lfh$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#4!bD7x=`Hv&PbrpN>3NZkch)?uiJ7RGGJ(Xcs=3^i)~|UHS0&AUC%`3-eozd zX=R~hQOUwTA=0Kz;csE#MaNr{E^*!GzA5x+!UV+ySJH)F|KW>Zes+8h`-ZcdzuXXC z#ITI_nO$S(yrtJKa9kE(Fkn7+?dKAHm)S`VlIHe1$GhK6yvw_T{l1yT5Z> zywvlc_1y6W2M)y+0Vg2wquRxC!@`aR+YOR0LbM(%ct8KwJJ#xlGPBO9Jq-Xln!(f6 K&t;ucLK6T=uV%;q literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/folder.png b/view/theme/decaf-mobile/images/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..86dd21029a453274a905099534bd0b89909f8b60 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCv1|-9u9Lfh$Y)RhkE)4%caKYZ?lYt@=JY5_^ zB3j>G-pF~#L8RfK{v)ou2SR*{Ufkw9xbh~-}7$A_rijd zo9Uuu5y{sI-}UMCB|A!Ov0Zj7OUFgt;SBHTOC4hAI&CZ=@4NTEZFEjpmB8jLpD+DFN zhc09$-H0-}&_fq`u^^K!rX=0y3T1S$pi(RHVJI@QvQR6#(1?&_HDYwfl6+I#JF*{4Hwbf6#SVkV~J2poz%_zhp<6Rg8$sEtB@Tl8Wnwk4%i$2KfM zPuT(;CH#34WyTaS0jmt(+2?o*-{Usnj%JvO zy+)qQN{p{+z+w0x6W)w7@pD?>)#s|$wq=W*)ivCWG^t-u&z}dnbmt_X*$oR`}x@sF5O5f>38LnYriBJ!INpn|Y z3fAIs{3#-2q3YH4we%g75ick)q8qQ^DNMsLi9Sc=SyV@)~pi$f&&FKH1#G(=- z7A6ICCBJJ_#r$rZmnk0<5%e&w5b2;Bn?&}lVX#YdM2CpuZH7+Vj=Rv6(I*M_tP_>@ zczlV8!r$XW#q7llyqFgKMK30?m^j_&PN6=AFbj8MMU&0V%I2O* zT$XPV;km-(i5k^)EQYMX^CGw8cqYx+k`tFC;sKGCb1cXde>VnW1`7I4#=nVoZO-Ts z^}Qyt-9Z_zLzMcr@wlj(?b^5ExH{7{F6pm{hIvGKzc>?IUSt+9O?eAf!%K!gD;~;t z7qwEpGMm({je|Q%4A>^}M;$k0ycO*fcN^YqKcac1gu}JJBWu&VPCSs&OS^3%%dO9Z zHc4UB1asOLu~WRra<{!JvU4SjH{3P#a68NJn7^il0eeKFoIipdQ{e=fVXj8hN|6ECcOk#P32xuoXnGu#i}sMQ)hcom(XXTiop2Z~r?p%x36z1`Lfo%Zi4vu?l)vFfdQI-R{9#tM#8(0^Y3h{P$E4z?*7&fG3>X2&o|6}>2V6<#4+CXK>0G^AjsO4v07*qoM6N<$f(TirTmS$7 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/lock.png b/view/theme/decaf-mobile/images/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b8cd20e0abbfdbfda68fb9a8ca96499a818e1b GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^ia>10!3HElj1GJOQfx`y?k)`fL2$v|<&zm0825U* zIEF;DzP(|aE#fF~;N$(3F3E}>S5&g5p9&Yq&b<=$N2sYcqU%-!$2GA!0egon!5aic zOj3K?CeIO?9V}d=-tf&mA9v%jhcbE(Mbb9%%YWcI z|AFE2k6Q-c1Jnw5WB;rvEG^vHCC%-=F<^7W9Td@rY_?h9H)RITU;X4sFIxY-a}@gD zqBK!cXr`?5vF{Ho(hPc;uhzQ#y5yIve{G}I-^EcYZ)IPtU3zM>s%*@A?E)rs_nE%V z^Ssx;H(gV?4=|$AZ<9cXDPP yo^5{U@7q0^=iX{&GF39mm><4-;a<s4Q^D?%u9)1dpS_V&7KbLh*2~7Z4u;;1( literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/menu.png b/view/theme/decaf-mobile/images/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..44d5285fe04ff6807dc6b88521839204fa3e0bdd GIT binary patch literal 1019 zcmVSPD!JvIiw0Dh)O|x1g?Au#D&kp1##pHaD;Pjhyy~jRJl|rO&}&DsU82F-Iv2o z$j0)nov7i$NUv<~&OFaE@4p$t|9!|U=Nszn7&mI7Nep3d{c7S6+asu4aCy=L(sw6d zZ7tyKcmqvhY}BQab~!&E@bszvJLkm-h`$K6?gbB-X0-y;fI zjO7HnXR4aa-Ia)iMvF+>jNO@Yz2hJVZY{tN#XA@`U^qNdRd?(7iUd&IAPQ=Xdk2e# z#gn)8h~qUtRF%6LAjI(+QELw{b3NdkBUoB_pQwJS-9JtWcD6tLOjUoHiF;)XY_W&*qRW*H=^`7Bf9A@~dL4knL785;D z)yaJ{9aWt$(GwVL%@SYG(rmM38q z*qp+OfPgS;A=0^7PA+{-YSukrWy)&6wusagB(DM6e%&;dB{l1~^z~FdPmUpNdzIk~ zxzQoQT{R?a# zlH7XhAZY*(fE6$=A^k3kfBDfE0P)qm$Q$0>SBcg1pT7eiVS*1ybptfcLG>_lMCyJ4 peg?L@%ZFE2o?HleMIQOj$3Nxqi2<0AHlF|h002ovPDHLkV1mF}(5C&u`N(7=|AwagwHM zRS6*wTo4DKfQFFxoA`e@j00RaAcVwV>wYwA+SnZWrgNiqRi(9;)lya0b^Jblzt5io zhxX8$0U$kk3l(6KJxb50uD;F%z3VWoPQ0Jo>_ys`99z5th%{6K-WXHtLA(IGG#daP zdG9Acv`YwMOc#)rj{p>NZ;detPyz#Ei~+{?tX}{*Ffzu(*p9sg@ID1%O}qpKa_24x zzeS=KKnEDLG#dv<)i;0>#3Mmm-G*xG<|W<-{skIdngW>3Yzx2(;<3iAw}1$pInqW> zgY{#emZkvWD5EBkhzk}N0Z)NHTRP!@F7O2SE74fb&p&g`r4U$6a;=?Q0?&b8aw6U! zUIRVgnQV`>Q6B(ImqSq3Rsc2#LDLlV;<;f19-&zor#NQ}iV&y=+0>A(> zX)X#;8UV0Hyj1@NI0jCXn8^0`z`53(spvHQ<;xGI(iA`xr#NR-EJFJ&Fwt(aAj8MN zN8pRbKIp{MK`vGL?kVY53g=u?0B(_lX)q~M)|V@snd)?W((f|~#x3W{0AdpSXQjEw z(54Wjf%r%O`I?Ncf>J$MQzP=Ahz%6JM%S(?#i^2~DLmPRGvDOET?H!ByhN4tI^1mN zfEDF$B~yNnH(@SEBURS(wgXld#;M}j-NEZX5!{CT7J##&x)5!-!x@$0z;#-e`tsHaNB>mHL;s6hcw*)00006X_cm~`}QZnoE? zlmpswuLr>VZ5oZEYhzxcaf*doJpdqP*1j(NW_H%)pAOH4>&w7w8~_p7Oy+E0vn9__ z@1I);R! zYR5PwgI0e@tXCj_E1>!}3sOt2ii9Gvl31@mg>xmo7Xl|DZV39;6;Yua2!TQx0;~Y? z!K@IGa)@g$D^Z6}09aMTem0b`6A$a_>xA_hFR3I8JY5guBM3E0;k5Gu{lYLSz()X% z0?%S{08=O%2VxvBprr&&Lg4)&)vHLWl5a1kmLP(R1I{yLn;)=Q7vXseo+7&5FxxnbphB0 z&O2TR`Gr0TE)Jr43%UYq0VN@1*9Aagfyp4e0oFkugVunh?ln8hzhMfbNXE6~VyZ>f zyU6@nvgaG$+3 Avj6}9 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/noglobe.png b/view/theme/decaf-mobile/images/noglobe.png new file mode 100644 index 0000000000000000000000000000000000000000..b5aceb6d5f5168fc9fde5f764cff2a5fab33bd92 GIT binary patch literal 1113 zcmV-f1g86mP)Y87gSfNIUAmC8d|RWN6F-35FWN3xbe1nUn`F5)Tsb zB=iLBq?9IzOVl+@st=@Qsv0~LnQ7H6ErO)9WJ(kdXKg;ad!LK{%Rc+t-{t?UZ>|4Y z->EhDOQ23oHELLjORxk3I2L`_haWM8t=NEVlDUgW*R3@Q9ZQJJz^%_{0bv3<8&h*;9NRM0*NHpvvM|E2oTskB3Dr z$0FQ~Kk*p8iJc#Z-WawP`#UA@9}@B5$r2)CxCO&;3`gTttPFoRAtGZM*TzvywIMKe zh))Er#!D>*PGTIN;-QL&xGAi17iL$?lVdn{)>;yVJ8)9$WUNubrQXzqfrt!A1YL(O zu@?`t*oZ>ZoQCO~#3&xdA2=J|VX(oAB@^|B`Gt?X6V7-}nei#_h!icmwz0h%N|-b?0Xx!MPHyZso-Zv1$Akre7as?Un${!=fy5fjHAG+JsX= z59+Y{Y|3pyb2W<2{d92qY^cffoCYwOIfAnS)nqBo0Fz}5xR{C{WBx&Z^hwxpDYoc6DtGxMHh)|NY1-2 zEVB@wN2T>Umiu=j-)EXRA&=QIJcIku(`gtsI4mjc?g=%WOuFn2tH6#7@5Rfd#jF}w z*iMQoh}0tGi%k?AKX=}V3>)L+c${14IDmPbSfGMPhE;h|OK=`eiQgNuaFWlWVMU?y z?rxN@g2?S5>nZMt=M=VOads=CaU`;6KEW^DDq#hYPmjZ&tO{bQastH~v#NmUNyI0`tVnuuD@Z(x8;~_h#+O#xE$$uTC7}yHl|)mD z!MKr)*W27hvlayMvV3s}+B#fRIKnEa-;Xb%^ji}1t*#={?k;*|+(qXkpTEVX(3Tk? z%dPNL81?nayJ!cu^4`ddqb>4F8K%MypTL2RZ{=@S%3y%@~Ly~ooFD%5^#1ly!TzD)HL=wXnhgXR+j%2fI$S|hh*8li1?wQ z9Ec~a6Oo*Hi@{x7{{0YI=;C>p`fX46*_`Sk;WlFCD_R@J#diR0mjCB + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/view/theme/decaf-mobile/images/oxygen/application-msword.png b/view/theme/decaf-mobile/images/oxygen/application-msword.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5aaf31a1ee6ce8c267eb93ebfe26de332376b0 GIT binary patch literal 3612 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 SsV7W;0x~zYHhOB{a_wJ4_>`pp literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-pdf.png b/view/theme/decaf-mobile/images/oxygen/application-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..bc954ff646fb6e096677670844b3b8a31c9220bf GIT binary patch literal 3285 zcma);c{J2tAIE2Gjjg8078xRA8D{KFqbwsvc7_Utq4-$_Lrm7O>o*34vLtI5;U{Z$ z35lOIBv~r^zAsbpj5@#bJkKA`InO=k-p}`(`+nW;`*Y8|pL1i34Rtu#1lRxo04GKl zZAy>u;|^k>kCqGvQS`uKe_aPnkMwq+RToSTtRA{I2><{y;wOQ6d-V8= z2lT9xEdcFb4dUIF8rmiEXO zVDA3RNNADg0iG)fePn_oACfls#St17Mc4GrK`g*Fn6%!<0p_ek`!5srYp7LJ&mn@4 zPr&2H#uo3YEll6<=}tcg>fQ4Xn)B^x(A2{ei-v=LP#y|078I25YC=PRPR(l(;Y_GZ zu{@4PycGf}`6P=>B6;a3?kkWurD{vTKwcT})HEyp-3uGjh}LBh0U*36(4!<_%9te2 zpH5W0i;oM#6KXm<1s%ZQd-_urHiK}EZ!A+4;5T}o3N22#sE0XTzL6XOK0Pl+nvc)~ zb+<(;ziL4AsD+^-kU*f+HBKKv0@*mbvy&u^%8K2gu(2V?BgCh z4|)(TlgY>OdbHg0fxk(%F%>Na5FBflOo}&c-{DH&E7dQcA3;p-;YL}9Q{%Ec?T&ve z?wqpujn1bCMwhkQXzpv}DI5=}?R$P1ytkkxPsB|6i8DAUHnA47yh!Sj^^bw;x%axK z-qCh`Y;O;~gQ$Z@{U6Y9RlYD&Y?40GrvDq-ZrEo$HB0g0oBac_d`~5!<;jw1ad9_s zL)+Zo+Z^XP)sLewcc7UnDqQJEtQ|WR+d1pyl&U>D)9r9qOuV1uQ@{!@8*a?)fMdT|n$nsi=8L z+Wl6}?!co!`MHcggO~Z5Tt9^e&x6H84f*xK;hnj5d`UQUP{3rzD;evNV!v6-i2kw< znN(i|!t8o}iL3yxj5@R4WPsLWwzleJUkktn>XZmmq4~qe$Vk68(!7%5lyA1FcTpen zOVov?9=~@Q%qO(8$11|CquKUPoLndPUp`QB0kN=ry=}qGEdD-%qZN|&H-#KKA8%?u zrkw29Mm3A!3~9X1g?4LD z(d)I~0(5%VY|+A2bRBaxlmy&P=J~KN=uAJ>FYuqjgZi~~A@eJa1vz1F7Ki*!ocxeZ z zYS#8jwGv{!_Pn$_k=fRo`43WD?+KQ^yWIsftC*N7SN_4K{m|uyXX87=H-fu(D3d{# z8GXkie$G6>Ny&>d46#KcqjftpI5@MaD$EtX5zjx&&aAE)*#2NvvHGcv-(^HJHC0pl z{&HqhPFM~*uY5gGVL#|&#*+QYgqm{wbd_F3o)?ctg!9d`2B;Cg(z!UC@KOGAs5OCe zu(q~O_O%$3hmVN*S^OdCHD8gb5Ub%L{yo8bRo zmFYf^v9ma7qeC65iG9XE-n;^d6F#-ngOqN}H_XO+<#He>6fojrf~^!)WD|ja;8%~* zv#KZT_se_Z8{^(NI4#esr~Ate@2=dqeBU-`XXpcn{1E8__N=QjneB;P>MGRog0M&! zdeFvwFa6vdtI?rAfb?tUJ}UpJ>q(BH3S<1rGMWk4vNzdUIbvu)nhwp**dAV3z34OU zvq8KxIieVA>Z_t9*QmQOXvB(=>qc4KdN=Mbmy&n=^lL#=y-Vep9jl2s_3byE7MWu+3nqYnZwI?M@ zW#a*pa(GJTTf`;y*pcs@1pMTc+_jwEv?wq`U4GQpt=@0mJ|bZN)`IeTkBL)2vK5{g zD;^!PRC|6-R|EW(^)vcm940e+t^@c?CU31#>kk1v+yx2Y;PkKUu~}F^|7ZQyRHfWc zV_H)hA&_*pq502yKaFGF_gzt9P>La+DHynx*Wj-KqLnsfG*@XA`#kI3oS8l!02Vl> z6)dfXDhPu_7xOS_a5VnlKfO*mGc{tASvw*zA3IQD^Kq=|bd5WTe?etZzm>}L?R%NcBewm=n7_$a@klZ)?6y$h4a~6XxLt$@L1Kt+M2}k-kc@m zs4Hc5)_K0xFw5BX=zuk1u-AVpTvCVTrA71%3YmNBPvq*F=Ss9>eIDX0n|j31T97 zZ+&cJy6k7WQ@GifHxE!96rrwCo4VZ%5{VSd&{1&OhkAWn0TDhHvYUo~MBFxc;o}Vn zx1HY^F}Y=hfmvDDJri4B%t_CpH5wtGQQXSCX5LpaGBS=gn>43`0$>bETbv*X!4A*9 z(#F);C}9?nb)#orx9MvIZemP1IdhVODktt_TtM~al$9lDW~mz)8R2zwIxf6$KI9vH zA-m2c9S_Zzi-;M9RZpGb%yN)VuQ>`Da2bxbs()%Og~gj~JQ1xeDGxq646dxKY-3DD zx;~Z}x~`{Dk?SouCmfVmns_2-?Yo^^o$PLgT4Feau#m?WiFi=Pa5ijstA5|Z=E;{Y zcDu`?<=6_j9b`Ue~wAMxTJ;8=!2P^0Ejyt2h+yACJH7 z{l_lA6<~-<<_I`aNdXC0g~65SyI?Rd9!CfGk3E{%c{u`neSKw}-CYPcI}gWW zYiX+}0lJ9mx5&o}=Lj(JBi?g#hhT7Y_se`G^Ym$ne^1}Rn(F_P>hWUuUuu~1vHDl8 TYbw+(Is(9G8=^}zZA1SB4wLc* literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-vnd.ms-excel.png b/view/theme/decaf-mobile/images/oxygen/application-vnd.ms-excel.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0d99597efd34822c3dab9429d8a841a5e76db5 GIT binary patch literal 2763 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.spreadsheet.png b/view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.spreadsheet.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8030edd70e4c14901214903343a6e4f7f62a40 GIT binary patch literal 2453 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 I!uy~98)Yd@3jhEB literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.text.png b/view/theme/decaf-mobile/images/oxygen/application-vnd.oasis.opendocument.text.png new file mode 100644 index 0000000000000000000000000000000000000000..1adb56e251b085cd824b074a821c657d1d2930a9 GIT binary patch literal 3907 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-bzip-compressed-tar.png b/view/theme/decaf-mobile/images/oxygen/application-x-bzip-compressed-tar.png new file mode 100644 index 0000000000000000000000000000000000000000..d7dd1d1fb6d183ec9b09d510c64c76d9c4a66e0f GIT binary patch literal 3824 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-compressed-tar.png b/view/theme/decaf-mobile/images/oxygen/application-x-compressed-tar.png new file mode 100644 index 0000000000000000000000000000000000000000..adda685059e518faeee74274944d31036663ba43 GIT binary patch literal 3106 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 X_ph_As#Wx{5P*?^8M;Q_<<`FdPTQB~ literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-font-otf.png b/view/theme/decaf-mobile/images/oxygen/application-x-font-otf.png new file mode 100644 index 0000000000000000000000000000000000000000..68fb5dd01785c0aadd2fd5b61c0e000d1cf5488b GIT binary patch literal 2565 zcma)-c~p|y8paXH(9ER!)EHj5%H>po~^vO(#O@MAekd)X(H&U6}pCn&DLpvz>dQGQbREc%* zS-<#VL}6`GHoLFijkcipR8W3Yxnu>|Ve3LvuGAKr3&EDF&c`IIr zs!T_c_4GiQG2xc08?6z|;NF-#qN`@k&d&$>YBxSSFyq|fm_kj|)-B77LxR@~KK@2K zSw{BEJ(W#U{t#4uM>0}_vn$gfJ8t{%F9P)utQ^6{L?EplLx725N^|2ucdk4s8m+)I zQFbcGObCtgOg2yAV5ha_Wj~l{lmCk*#N#)6M|zxB0e7KSd5a*ooWz9&Uv8X%;g~*H*D~XZ0(kV zitHU%Kmx`e{y9;PPgQgk49!|`Mowi`MOJi;h@QqnHGJy&eti_7lApL4Cr!asg82&8ZS1UYpT7fXk+V|2cZFH1MD&CoBDcO3Kq;wXG#5B#j_(F1iI5$1@d|d!zDTiL5Z`M<2mmojU zV5gTUY0?t{N$wce*%L1m`|?$NeSP0dg$y>a(2p*(O;(w;)h{IIm-@>z$%BWMP_}6m zXL)vPr7GX93&&;Wm+{LH`#e(njya!tNeKPa|L)Ig+isN@ydv0?cBT~xZ9cmfgtj8j zIXmashHxL|Pbo+^OT=Y;DNCXcHgRd$&xsJSXyU~IlQjtftTp-KJxl(XocSmx#e{U| zK~q89R1dG_{{3{)FjE0`S`5lh|DDH6>liIDEj4dZR&oWpQ3p(ER!x-JyLT_g?KyG! zZIHp=-0jY#j(TY303*(Z3r;YsB(aZ-da;7AYUCpsCFG9ay&@FK?F}FoqMY)AX`$VFh*(E8*%Yy}dpI+An zH>c~SnqzF^@jP0u0ZChdZB2+(kVxz~LVKE5Ifb5~owhF#i2S;bdH-fo?DQ1#@^87@ z;K8NH*j5dYsr+AC_T8|=bmkd=k-OMVd{v^>_6Rjcc}O{A%z^+lEfiw!K%aavQr*1^ zcUTgi5W<6c5`BchrST@RSjHb!nVv6iI(AL2e*3D${cRqbd{_hZc*hfO3U_NM%{WRe z)4n&vdv3*D!T#><6vbi6FuUB&ugK<2hwnRj)P8HyD8&2kdA=ti(D? z^rF*uIQJY_)-JEFjQ2OhCdE@J^IbsqvNym1^JW5qBt>5^=afXH{9ajET~pHvG~4p$ zcar3`vR!d*&*PO4KKeQRk0Nt2GIn1I4F#?THtFhAgF@KQk^&*Qee^T_#*O{P-8$=pkCeh*Opx^uFdPKO9ps+(K+1$n(FOw3yPKcNgak- z+(mv{dnQ5{l6R)!8kKUZgjnuaa)IZTeP|#c)2n8AU}a^+;jZ+W70Cd%n_a{Vf4FZw z>Q0L*vXG*+OTf@pl!0m#cw{ir2Y1NHO)zoz@GnqhUc~vEz+rxL`i2;&!efY$gu2cs z(ss+?6;6@$n~Qv(d*TN>)aDWjMFpgk%a<>oPFE9fn`ft|@9#5;_^S9-@I>6IYa~P z_XXircE)5wQVFf4ySsaTPft(uwul|)$fQ|JlJ%+!_efykT+ANCaEFIn*@ZDX{5O>e zqR#qjBV=NXL^>PqV&`u3zTsI0S<0K0oIL4(9i0(pu{yHx<=r*Y(Y2L&Rlmd@w*j7h zEvCgerbiIfjY)-j0t@IU5@`TOq2Q=vj;P}}en^55?ksq)8v?C|M8N1lu>Xg!v9h;89MwZ1&fma${Pg(4 z-hWg9iH4&L98pNzF*FW|g(LNWD%gq!ZUBJFrbh?57chHPE T9{*=MfPjb=cIK4?*DL=5(%XhA literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-font-ttf.png b/view/theme/decaf-mobile/images/oxygen/application-x-font-ttf.png new file mode 100644 index 0000000000000000000000000000000000000000..93b92fb26f651a2a97aab0b710fba5fedaeda2e1 GIT binary patch literal 2565 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-rpm.png b/view/theme/decaf-mobile/images/oxygen/application-x-rpm.png new file mode 100644 index 0000000000000000000000000000000000000000..43149f17e4c9d9124789bf60c0826b40d8339503 GIT binary patch literal 3253 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 lv$MYbPpc=3p?kfyRYte&{R@jy`kDX$ literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-ruby.png b/view/theme/decaf-mobile/images/oxygen/application-x-ruby.png new file mode 100644 index 0000000000000000000000000000000000000000..e640ead732adc265941b43d6c0f74e2f7ed77a63 GIT binary patch literal 3778 zcma)ZE3{CagqZ704@__lnq0n zfAUc_MtPZeJAok}H$4kI0H{qrwufhBw3)~@Mo6G$@YFX(L!4l2V*vmm(f|+{3jjNe zuE?(d5Wtva5eEPoQ~(en(VDHb7z1qA%#2VBWu$HWmI#KhlZ@@i03guwCo>%W~*urXm_RxH}7xtbMrq;h54oQ z=s!z1+Z_`V>*AQQ$Gj%pZ^~_)78@(6E1a2&LLpIL$qcllfb+aCt3nA@5AM%#kp5$%!=IPiI_u1w=bk^>ICJF*h_oIyWM`KJ`T` zQkZdGor{YcGKnf6)lT8!OVzx6u>J7Uyv6T+NJ^rtQN?I_k<|CXJLPDZtM&16lDFhr zK0i4TEsXV+KkFm?jzxHw)w-1ovW~49S=vl2NgPnWp8X2vm1R>IOHMOwFs;R++BzJ+ zNt89(cn$E`XOG*Xz3hRiJ9&AUVBP_`KChn2aur4nkCMsmpBOb^TTG1Woz6WHP~K0ZE)xL^S>`MR}xN-HQs{@5{rWCIjv;gm z%rycbCOn_d;LQuB>dzd7W72I6(l1SuOJwKLE`4>Pohv+K@?5^Ei%=!CrI=Q}a#imP z-5|VmT`qYXkx$1wn~b{cbaC#N0)T!vVI-}TZ3+kzDr~FOE#OAY?IsH&w(q;;%AT5R z{~+?JLii5DZcisf#E0=5YK=7<^J-mZ+kdXotlfiGTYr^o9lg510Ow%;blQnq|IlFl8yX|3(OtUJ(1nWkeBn|t zIUufgX`!;l>En#m9^dPW5PgiH?TX{7qjjyn)1j(STEwjjeMQCI3fgkuxOhqQW2VcN z`^u?i$x^;N55+uxRD77R$C27Yx8dvS>)$_goc81#rEK|q**GzsD_G$Z^6SoiprB=Y ztZa@o>q3^+!pQ-{Ds*AVX3^n`jZFAYq0{(zk%!SRnVY`Ix=_}Fkl8j8lN(pVmDIev z6O5Z|xZ<4)r0Aj4Lcf9oKZGG>DInu!SUttfU9s=k;je|qvwLFY*k;2C-lITzxvcB; zo4pf7Jxt%N>ZtH@|Qrzu4$z98eGh*Pl0z!eQh^lV67-zmB%hG zVLk!_X&57JEVB@l(O)j;?5`x?D@{Co^O_*xQOL5`i6~j( zQKal^u`*In&QDVjF62&LUoa1cBmE(cwcIN<2?>SUglkUa@h5{pOci{=Sha{u`Jo7Q z#jKaDVBzOv7I0O?*84-mVdu2xLvquoOZ}BHx@qJ!Kp8#46kz`>R-*S4i>kSUPXUsd zM%ndNEl}Lat+_U<)wA=F@45Tr-pQl$`GltM?u7QW01Yw`O{>caksX7U5xAJKZEWH% z1e6`RVg=dw`z)RN1l2-@E=Z-Srg9D0tUJ6FFfN4O(P5MB_~rN}ynDZBS6S7vC{{tA zS%39~#H~xo#>dYg>A|P;Is=Z|SL0)V`JAPwEgvQz*Tp|ql>VB zz)jLoL71$f-=#YEzX~9q&DYcmZ*I!@wxsfR9rN#rELjIR@Hn!2@~Z>nedM=B8L1fF z6^<#_BTgK7ty_-K+pH)~kq4HRIDsP9tmSR-t+2flf`=d1sp12gmsywDM?pu_f!mrZ zuFjPKS|wuk1(BW1+dENPJxN9;*>d^8&s^R{EV{wsh%xOfx-GS7W;#0^iCv|=_oAr<4P2cH9AC8giTm;B}(*nSK7rSUC#Z1+P&-{-><)k zgl;h0$T#BEcl~tI(8I9kF(U0#hfYBBx9iz{_U^#TnsJ;nk+C*mxvNidu1I+~-NfheB3vF)icYomPB@eNMjf z$DB&kC_>I*p(6&jwXbD05Zer!fV`KoqkLF)kTunYy7o%yk(c;+FW0pM$wr) z4YBN;W9>GZcb)+ybfl>vrb;54Gq$!3!Zz)-}C_JUgW`TG*{cE>qC#qbz@vB^MQ+xCx_vpS&5JP{2p>0^$>`L zsohH?mmUx`^F*Q_6`#$o0KYy}USAiPl>It8fTNB2bb0l&2ED?4(0eV71;@kMjf~{_ z5zyz4Ey2jbp0w&-kt>brq8R14oOw<>-AS)yR~XYQ$Ic>>r>I7)U3Z6zoXRiX*Ry-W z01mt=~8B=J`PrllQa`Po>;;>_R3K@?GzqgnxH7;8x)%3fY_0Q8><{ACAGz4mTysA^!KS-^Gh=azn!4OQa~h2lV#-a+X!WOg=tAuqTX9 zvOJc{Qy}>^=GSY|T;}ehO%9JQ=;hVH(nVOWI~e4*_j`4Sr9d~mHgw;x5!R_ar(d;W zHRFS@@-*nA)cGKZzIk8lh1`n{xTmoO{BbfU>2pVyE>2b$qicA_&eb-UcuAm;$yk>0 zxm0=y4wQbYSWW)v@JCD%1?G`&T|@=uwik*beona+?Mspbv2oVeDT&A^exCKP0B)hJ z7tOGmqNt3ACFYI>XwOGcFO4W*s(;3Jm%;flo+|Pk$6F+qRgTLwN_=b*qocdjJF{j2 z2ImVb9K$xpa;<1;s|qA;?8)J;ZR)i*aTsd?)DY`&zpk;d_aN_tMvYZRk>o5|R!E(+ zVtFYicQsFc6oimrejhvs5Zkw<`8PFgZ)(V!RfF_&OW({5h!9uaUbJEY_rX#PV_fTB z<|(^b7ODAuRPH?WsLpm@^Fkg`kzLBX;)or87SDj~)#N?XC7jB)`WC`IPOY$@=T#B&AHEVeuht zX$?72CKVG)v3TPg7h%HW_JX{ip14Wg`60FlC%B>Sbu__ z3*O&F(V0;Ia41w=5e8F)sbF9T4JcegSw#`bs6fFPapnI4e+v6Z|K}8- z2t~L$2CAX~Q`TVAp{k5ifMrfEFaZ8P9xoCD{0J_9RZy^-i;uVofnn^sa1Gt<8 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-shellscript.png b/view/theme/decaf-mobile/images/oxygen/application-x-shellscript.png new file mode 100644 index 0000000000000000000000000000000000000000..11e27543f64f2c179a250a1204b66a0a4c583052 GIT binary patch literal 2292 zcma)-cTiJZ8pcBiRgtQo;AaRhh$bYVg&L{`LhnUE0t5(xi3v(g1V2RhK^3ZWV`3&aLkC=xn^>_x}f-9L6_@60*RnK{qzp67km0&TyQed`=mi2 zkc@-9od=+(?I9@+%)a2Yi-3rSIO6O81+F#Q_H%$pQSAL`Adnb(dx*5n9Ngxl&Qh!+ z0R72>`e(C!0d&y8&e|(-yzk1fTqV+8);aPS(VPLaqA6UxY4mXxmqCyJ)TQc)UG@#qPwov7VVJ=3T1Q>{5%~tA;7z_4hla&!pe{c6=$`{UW2i zy1t!RLP0Ziqum=v zw88sU&HH4647qf|xw)zQFWyL~dxMXDpRJq~fBEADvDX|#y5EjWrfQ<0ChdA&Wb9OJ4ESIM*#dt)yv+ zte=)JJCiRrvGRld_^@n&WGgr3IA`YD8dZM4KI{p8=Y3naqux4AO@gyT2~_5s0c>tI zZ>Ng$^9Eh9WykFPNS?x3PA(xIKjOYb$Fup(@KR-D(8A`Lc1QeL!Tq;Ar>~9-SKcdE zz-QRWXMhfM@y1j!@$0cg6M`*SgMBh;tnSll(Oh-OO|NeX>FxG8?|P3|(Uv!8v{!w7 z*Z+PpbF8hTtc*ydDsb;hbyYZG>+UTE7a7q1cr3e|MH8Z~7$8|9C)lW8P-; z0UK=6?9o=UX8xv0ag1X6(>hPjSII({XHB(VK){Edc8Y(9xvt z?n7qpqE3=ZhaF^MrG1aRC=TizT-Ah7W%E(ly|bqs7Cvj(_OkBJ49X2;-s8q>QH7#C zJv}hD7af*l)ud!Ub{jV)1)d6`q*j=VTw2=PG*?tqtWxIV>&mlMZ@^&xsD5!bg53nq z!dIP-;V$r={Amd`ODPi!xJN?0tk38dDJ2_SCRRvo z+|@_y-rin`%g7U3i20pO;stI65~Zc3gD-xl-i7CfO|up3zpjS_O{|#bhTqMc+sMw% z^=#yrBrIrde>$U4%}gfKSYMw{3zk{6v)fFSv>Lgv-;!~4baYfVa7xR^z2!^ia5n?4 zJZ$iQHnj^>O&W?eA{mw5ZfFopZLaa#QqGB*!9IK*Ye$N7p^TH3;Sv2;bp&V))k~1r zmOR%zOJ-(f(PXk{u)mKqgH9KGbiAxP1}X=0VIP#VatX&%Q{UFi?7SFXm-56)_&Cf%Fqod(PeMN_T?~r3+5MZI$D+Z4*nZ3AV zJ*YEdrck}t%B#Zc!oD7oNhX6P?8r=X3ML%&a4jkvq(sNr!^1M=n{e* z?C9B(AB@C!BoquYqWJZU2H2lb51(&I(C0g;->Ktzz@JVl_K06>D3wTvB_hIr38aTY znIO<;1lrIGjWI>(nd%!NP{0Bumv^E1H?ZwA{Y3!)8ihas0NM*>VycfaHAMdcEX^=) z{tJj9hmpb){x{$fo*M=L5!;cRNTI}2G$JT6HkM+FME*RBbe0$jJOc75nl70dfsFoT zp&>&O5Htc(Ul)ahlBv-Dhj7BVIU)6Q(a2-D=Apkc{)+b>T|nt0&?a7Jpdx)!lraKj z1a!f9Xe<{1_HJkNB!|bw5vW8^TwI(k>C{PDD1k!Uj#fHrz7H@d{xY4Rh7v)p@d**c zQ&5LcApLihJJZ0n_P@7JczZbgE_M56k literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-shockwave-flash.png b/view/theme/decaf-mobile/images/oxygen/application-x-shockwave-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9ca59ee90b587255236cae7dc423251e7380dd GIT binary patch literal 3243 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 YQ}>^}Zt0fxvk-uViH&ik5%&In0CbnYY5)KL literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-x-tar.png b/view/theme/decaf-mobile/images/oxygen/application-x-tar.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7d023f79ed86ee58f11ad05a997ee15a3cba05 GIT binary patch literal 2560 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/application-zip.png b/view/theme/decaf-mobile/images/oxygen/application-zip.png new file mode 100644 index 0000000000000000000000000000000000000000..9d349a89a6263e592a2f29c9d3df11b03c88dede GIT binary patch literal 3824 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-aac.png b/view/theme/decaf-mobile/images/oxygen/audio-aac.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d5177d9a48bd35f55be16af267a5418983f086 GIT binary patch literal 3356 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 SDo=V@2mozpYEX@GiuyN)iyvkH literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-mp4.png b/view/theme/decaf-mobile/images/oxygen/audio-mp4.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5fd740f6ab7f280b53b4a8f9bdc0813a156e8e GIT binary patch literal 3356 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 PSqK1QV4`1zc8vTNvrr&h literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-flac.png b/view/theme/decaf-mobile/images/oxygen/audio-x-flac.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f11e8636c8c29efa0bddbf0cd7a7198ab47c48 GIT binary patch literal 3075 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 GIsRXNC2ThU literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-generic.png b/view/theme/decaf-mobile/images/oxygen/audio-x-generic.png new file mode 100644 index 0000000000000000000000000000000000000000..fe7b0527721f69e6254369bb0db9db8baf5145c9 GIT binary patch literal 3356 zcma);c{r3^AIE2y7}=#lLQg7UR{PE%MkOZMvX8+S`&gqaSswcy5_&KXrN}UdP!vkG z#u7q!HQ8lt7`)@@dfw%)_r0&{oZoew^ZnfC`@7Hio$HP_F*e{nE^-_I0C1xX^)So` zKWbn$W^chlk7EWlr>h2f%*cG`x=rECz~N(PMFarOR2?;-ok+Uq(O{sDjw>_%#RGa* zk}Lp#<8-v1j+xtJPu_T{XlFo2_^qLdagCgUi3>r(W3>foNURI3i3Tp)73YQ)9 zp3~_rJI5=}YdTSTmiVU%(cj<88;?`%PwlJd*)PuG%|LQb9kJXPBR{Fkas^c4AV&xVSc`Y=?6)BUFOm#R^k(Nv`0RwrLTp8cDwW|5Gw2c%%erBfkDa5YE zI3Rqtf%4$R#KnYSN0DS}M^Kuez=e}mBmH1qO^@dGR86g`Susr_&=yWTQ@x6bm8v3^ zb7c#`TH@b_lvD6^*3MSLtf0M{hMTpE=$uT>OHbx!zl>SV#uc@GAnj=h@5aiyDR(0u zCbO9eYP>p@AVHQb8TBYGEwzDCy(ph2CwoiYr_mEFKmzeHwk=!V>woUi4kODhw{}t} zH|PhH)eVU|5rTd%K9OI(MAwWmvGb%-yQ)mwXt0QQ7t20DDAqqC+K3c2{IH2YkY5N$ zLg;=G--?OkmHMOn7%^;PQ;D8GwXb&YT_*fvTo7!dcRA=qvB3!}mztW|mzPBL=L$77 zHIisl#gJ1gG8=V;VEz0QMw%hvKp-S4C*&3tb#A?ik2-z#bv6(9g{4@Y*1MfThS&{R zjW^>(tv$x%`+@>}8ZBLM@})Or6jOflu+b?TE-LYxk;B7+$QXxf01 zWu@C$D!4O)0wa;ge8gf;akPlYnd=feGFWMO%X0NTU35G}F_p{e0r!A&#u^G-JLDfQ zoDZ{zemvyK?~1rYxMYf%6G2l2NrF0j4$t+aV`w39K{IcVnsRcPoVHKQd~ECMQ7P5^ z;){nVV{9ZT(vcwsx3#OtLW7vVETcKPT%A zxo0aUxYdu#LLj~~Z{r^oX<)!y59_?BOT!#$=h_UPu81y6mS&bZ1kyw0l@kQp@7y%1 ze(@q=R@qP*ubBU{<;F{!4(t38R#qt%U)!9Q^pJ%uRZ~HPl2ROBahYRR=iC^}Vq_rKn1ZEaY_#}bB8NfvQW*EfZlnh&=CPvfFe7f z-<{HSrGy{hS9?!FoKM#?^5jgU(dUpT9(~-BQR>(a7H11SfRB#II1;x z7Z$Rd!jYRTl7=0ErFr^xO`v!Iyxg-Ib}ZZ zCRuiwrp=R50&a)ze!b6ou>bC~J!52VXLah&pjs~;F72c@nSa`*G<5#Vq=xr0dayR$ zj3oGkF~|N13#+wixGz8Mmv-@uHpInVm> z`JoDn@bwQeRgY|KZJT*KsC&9Z<>Si=39pG7ErEKTpT~M$|1w$ zJ;UW$mm3Nb7aK!R=B3vK_1~h~-e+Fg=()zc&j|#XrhEIlb2;|+=H&uYdhAya0*Hm>x`>4yVjqal+!vi+>^*}YOL zRldo}%1UVKkB&1{EnCC4S6O!=e6n`lA@{#{6=9M_OZH0wl$^&jBeG<>!BG)`pQ((6 zg@sGB-h#c(8rMF%LF*~t7&Tf89&@okK-{@oiA}M?@{_#2QA}1w!E%8I4mUSTr1duY zZ7+=`cI2{hggXG%d|J&qt%~anx7_AJpr(SPkt+McwXG5R@U0%DDaI4TH!u6(yJ_B{ zLJ?)SUrdtskGhelXLBTb?3*-yVQuirFJ?iP)MWn@;3L_yMz7Rj{Ud4 z7YEZmWXou262E;UF%*5Ctj%DmjhOV-$)wis&X9l9EAHEkoNJoq_OCV_KZqU|b zb7*~}YV*nMHF2j`-gmS)*68-Jqa5!(5&IkLx7v?uaYRTB9`-q@NKSQT9|9}--`+CR zU%JEmBfj9TZ|RTq!#VonAkNGVfP}+UAP6J`u55;oQ-vc{<&+_CB~>{5kzS^#xmV62~~b)PG9=>wEZp2wZBt6dYSiMY6$*F{a3E5 SN>96)2mq~btXGM0i25f25+V%% literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-mp2.png b/view/theme/decaf-mobile/images/oxygen/audio-x-mp2.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac79099200ae25d216c0804fe7466722155df9a GIT binary patch literal 3356 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 PLI4;86a7lGW8}X8%z+=8 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-ms-wma.png b/view/theme/decaf-mobile/images/oxygen/audio-x-ms-wma.png new file mode 100644 index 0000000000000000000000000000000000000000..86cb3e51c8cf7ae4e061134dc5f40e599dacce94 GIT binary patch literal 3356 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 SdfLlI09Zp)gDQ+u)PDg!ARw*) literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-vorbis+ogg.png b/view/theme/decaf-mobile/images/oxygen/audio-x-vorbis+ogg.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac79099200ae25d216c0804fe7466722155df9a GIT binary patch literal 3356 zcma);c{J4PAIE2y7}=#761u5~F`Ioih*612wrd}QG4`>hGGw{-JtTB3mr`UIL?{X+ zTegc3t|q%MreW|Kw{y?${Qmfz-|u_Q^L);Ep7-nfyg%RP`8?+vXKG@|dtCH5007{{ z80lkK5q{Lb9IW1wjSE7JQ6tS+r&hT3!Q2AtwSa$F4@$F5 z56l16!L_O4GCyi)5~Yr6?vWyMO9uqr3Z^mo7=2G}jzoSp*r>2x(FNTibE~wWb>vck zGLIA3`?~K7fyM7`55it;v~!o;nV~T>AxX}d8^KDKil==FL7voB_j#pEk*R!;hB2oMF)k0}<|595BD$?Rmr z6&`!}d(Nl3?VYYXukAwbSrMKpMtys)U@|%6aB5#w-(h*4U=Bh(b;9vtjs2xF$`yf$ z5EL~6@LQxW)?_CF;~16d>9+jHAvELsSCzIyinip&ooAG09iS}8`3wJk{aM@srv9Nv zgk}I_WJh6*TUXC#vtJfA)S}t(zPRkiZd@0E9AZ~+uYCJNSv;L&ZuY=&wsH9eC= zs`WI}rT^9Z)65#GGCQxh=xfLXPlRl8(vah!s*F^!DHzDV;>P^8qg^eitz)bR@;5iT zPa$^;w5Y3ipM>RN=j_yhrB6&PEYq0zfWZ(Sb~J&WbImM-x_}GQ4b@^ zF1K}2C^r}fl=Usi+hk$?7oTcgzQojyv#|4}CH7Sr`0)@?iEg%iA|xgtJ<7N=a`a&{ zk*Kf~n26B(EJ2Ho;Ftcr{21xZ*0wSuZ)RWp;G1mt$Jk)lR^Mvyiz34lI39I%_0KO! zoX-_&Yip%2=!y~NHe?q13eo2IDXa`r(ve6^P>IheEbOAaii^kWw4KkS;rPw$cjg<&U zSBI5d^Hgk^X}VMiAzlI$Wu^~_8TL@r=^Cp$I zQWu-#NhDI84Rm5vNmpQCH7IUAhk*YDK!i@2u=1^37K%AXcwlxpYezrUPZ$lBJ7w3s z$4OjD`vUGV?y^c58?>OVXZPS)TQ%i9-z47&QOh?uNb)PC>XGVTFcs zOwg<$CDU53t3;SShXx~&$UMYyZ&8$}=$Y%1bXlB?f>pUjzaA!zqLjj8{eXASC4B=8 zt{Vvm9Lk$i_}B`ycEyo^O?Dq)!whLEjXl6 z{j&0g$_Cw2rMRwMy((S$+k6h|6tC}vQMFQ!0lNHho?9SnGNiZ?5)v|vFVr_Qgjq;? z?v|#8EdQh{cmltbOt!!+5NygQUvW`h6_F9(T zGvJ>|`Xe4$D)H_OlX6g~-`v}{M}?YLFwet!@1d1ZF7Ij8ImN6(}lms<7@~ z+sJL{^ax0*2-cn(UA=)(a@5l7Ong?uNbt&8eiwS~wupy!T6-tn$q7h=CSAEN*TbqU zLz!sAAK47?PPPtdP$`y+2u+^fZnzV#Z^(T1U8^wfWC_fD$T5MFiL`dD70-C4*L1#G zoliqcV?oE42<^;a-bN;RU9bf7ILReQpPJVtb>SJ=U>fty)qiQ!y!;eWg z6{*^utF~aB?caNDf^9h>h-X64$|)vFVmM;seg)-0Zf>sFM@h7%7}>e$wQtSN7N>;Y z*QKj(?W1lAeN;VJ&uo6C+Rz;dDdVZ+H;%;0Q?RhGvnTC|Nff2FQ!fjAWcC1j`P|pl z4p0_bGxW+AHLdaGLDgp_&7)It*HfFgYDrrDZ;F<=2LJdv{7I%@x3?@zt2nT4(K&2P zh#jEB2^jF8v|lL}MEKX;lavt9^NKk6g-aq!O)5X<%Acv9syj5`@$G7| zaQqBoPC4XjxAG6d{@G9P3kkf|&PK1~%^nKY^OOzG-`RVjy})1iL#aKUsq?seU*S3? zJxV2cG3aKE+$vRvFS!`p0pI;{pZ{S0-DwBr*dBd-=8xbyZ$2KK#5Wm#*d;f1{m2*! z?_>7jY<-xC@F}OeQ#H_Ix^-_CcL?{IHx*LKXPo!f)G*NZ%4mb@moV+4UoZNlOP2lu zX5LxwYM5Lcsjv*+{2*KP$j;8Lh0k+nPmiQ>d{r_2HA%BIh`B75uiDqLE1LJ5cg}=| z>qllebhNy8v^?{2V?n}lQz+V^vtk<8knda9}C>VwL1@s)T!t5v6W}a zTFI>j<*lxIwbayXekWG7?A*VaEpNBTU6^>{KnJinuN9+=OrHPJv^Ib;2nWVQL8s|* z1MKkmy%K9Rf$7T1O8K_$ooA|AX`{ccv(w4Gne=za{m1pwW(GJh6r~N1zL+m0;nJhbq10*hNx{H4Ix{_gHQy7D zUzjIR`&#^WR>l)LbJ)4U9RVA@ZRTCpMGZzY_k~b-GvU&)Du=@j+L%K)tyg)5`2_LR z+acs`s*f0ie0Fz{zJY(OBy+*~LG)Oq-CjS+t?$+C?{n``$a^at40a$yv*hv)@5H-< z{oT&}x4#vIP(NhJYHN|cek5kY99oZi!d-vA4FO!lq&JRuXhJ~igfn!^K6?c(_BZF< z0q=$m`b^vQ&Q(~;HcZ+3b0g3balu@igM2KVJ{`8svC+`F&Y2N}9{TXD@Ie}4l2ro1 zGk1e&(=A~Q5o#?bcQz!PU-{hD;o4w0#Ef&j`$QUObf9${*XANi4GFZ9I`Xjy&U|00bNgM?et>bGWJ+3c-^81hl-ZmHq?p@^K-!hW>Zp25L5*1-Knqx<f^ryXu#ulc4YcSAN>V PLI4;86a7lGW8}X8%z+=8 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/audio-x-wav.png b/view/theme/decaf-mobile/images/oxygen/audio-x-wav.png new file mode 100644 index 0000000000000000000000000000000000000000..101f8fe5b1ba0a72edb9a904929f35914ace4f22 GIT binary patch literal 11892 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

    +whH&NhzG$FRn{%5pLQS`hX(_jrM(s}>jnO|f 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/image-x-generic.png b/view/theme/decaf-mobile/images/oxygen/image-x-generic.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d4e256c803e0d6ec2068182872862af6059174 GIT binary patch literal 3617 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/text-css.png b/view/theme/decaf-mobile/images/oxygen/text-css.png new file mode 100644 index 0000000000000000000000000000000000000000..119aec52cc122afc1d0a5f106760008047916d81 GIT binary patch literal 11341 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�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 S@^1#H2mo^nt68pL8~z_zIi9Zo literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/text-x-generic-2.png b/view/theme/decaf-mobile/images/oxygen/text-x-generic-2.png new file mode 100644 index 0000000000000000000000000000000000000000..70be9bfc3a9f0c8caa6d7becd26185e9048117a4 GIT binary patch literal 3121 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 literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/oxygen/video-x-generic.png b/view/theme/decaf-mobile/images/oxygen/video-x-generic.png new file mode 100644 index 0000000000000000000000000000000000000000..81fe23e7e8899cbd922549252c2f5baffafcbd99 GIT binary patch literal 3628 zcma)#P3 zo>>9_^t5^~EpxG;qK-h)MzQ0Y5u@0pjL3a(6cLu684hb#&<&q&2G7q zS*-a~?hMvK{iW6pm0{^rb#@n(z&TS5tGCL+Sq#l?kP1aM#d!UZ6=vfl!s z>(=fN1DRTd8#8i z=u+$Nu{YN(9YgHL`#GTRvU03K=i_1(Q-6=n_)AdcUDM(1TO!uwuiUtw5M|=*Yy3C|1Gzd|Sq2n=MViyfV5D3GF#%gQm3md$gL&bv81{3dfyWZ$FXO=dfqCZl^A%^p5~9Q$QaZ&QvmW8`9~VmsKI#@WC-(Mo zshyqN4ukO2BB)A=uf3@r;q0UI%+}1i#;&b97$Hp6Xq%LseZxCBSyn-zw>M8UWHy$E zC81-qwkTRS|3O-64Jx&VjS$n88I1!{{i6B#+UwFyDvgs_GqPF2*il~T_KY7;e%k)x zwh{w$pg)kyaG+m4u?CMnEQ>h3_D4;!sVF)g=G@)g?K{_Q42*rex4$_*y2B$42J7nU zNA_-Syl85Aj>Rf*adEXzjQ<&f%PO_13v-t9?4nG(>0-s!a`x-9u8rTuq3>K(6@XLi zL5h0>k+O8F*JWQeQdO`LNw*9&t|Co8s} z2b+tX!iPWbD8}7R?dZ~SWCs6FiF!W{8Gf67dpbY?TW*=r%1ueL`Ii(kD zd9BR&moVz%4v+XUTG~)Us(DW_2IqM4NTYM%I;we}L3`whPo#QiknbV!d=%~KyE7;F zh}1NKL>UtY&5Q}d!&nfJBQ8bwxdk5-NIyVzxtM=-f&>sY;w-B3ry)D@KiIe^dX<=a zg<+4h(@k(E-k>fYRCDhQgYM>{q@OWiOj4Hfe~KM!j2U9?y6hbrLR3O2Ud`Rh(UQYd zwbgD4*z4olZYx~iurs5#ZR~E%5Sx52k3Za$=3K=4G}GJCJk!anALKjAd5;$NuO@hm76DO?t4xsw3)mtg+`T^+z~)6coo<$pEo>wy~L09 zb}cX#*WK3_>Nv-gcnf&Z=8Ie1WV3&!)6MMz9l0?LD|f_tc&$poF}v!3W-Okkkc^fbQ`D8_`BlP*(UoXjonZO$0)=1QY8GgH6Szczhp z+SpF)A1NM4U`-G-^#_Swy@YI9n|FjKPqJ`r80WC)TQC1sY90R& zM_#LKMj6%6iE`Aw`O4{~92LEbYY(s2`ekOiBo$%OiJw02 zM@o2kB4w48JNNeF&+1w0KJ{-2nlge4_ebFT%>;Y{hm2 zZ4(5z)QxrcFZYIrZA~`%zJO_`enc_66DDo^I6@c;h-8W)9zLfw0^a|+u~~T(27!0* z?O-2N#rxl9v(!bBb6~v)%yi_<4-??{Ve2%tk{;RtMw_SL!4bqTh@8F<+qCWam=XiBxrFEMz zrAxvFhr<#o4le<7DUkMresrVZ0XGpcAgFE#7_u| zBqjN(;N^GdHX0tykwCKT)s9=C0RaKuhb$e!oqc?KfLWAZR4(6ty?Kw=`F#?Hn^z}{Mn=AYf z@?)ug0@d;hU!tE$txgmiMw)CFv?+~Mdmc6vEv}57fl3}}BUX!72f!k%bi*qvD;dGlACkQe zlEHKud+#MK8~9w6XYeEnk@LiB;%I%O#z8G)cVT_Gui%V1YY`&d0=m%i2{XpXy+6Vc zen-P$Uxf8(LUeSryHUQ{(Lrl#D>$W44>Qg{VIi9Fw5zL&RPmFe2OY4!$u75~X%Su# zUzyIA*|n(gbK~2XrG3a^i}&O^U&_1pD9b15C}>3N-ucW@6O*GfU%1x&lakj}2&{;mK-K!A^ml+@qvLI$}yqrALO-u{v(KX)n5-x7Z* zrw|E$M=4oJuoN%KkN5u}40KEkq+}$erEHSbod5Co+ur~93b=hzFd4XU?$He877*;{ z=L!f84wgiEd-yv$`naB3%iU6ACyQ8qivs-`qLfl=wdG(yh?l-PiuaKvO|1<4i kVQTPCsprX1f2$>s=jy*}-BzsVA|n93TSl;I=)K4P0(lzL7XSbN literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/paperclip.png b/view/theme/decaf-mobile/images/paperclip.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2ee26966d0cf5c03f059f6ac30653ca12bb640 GIT binary patch literal 821 zcmV-51Iqk~P)s9?p@hsLGdEdDNn|DHDg+fLAtlXF`_%l%M$NIN#W}-Vhxg6$zIW3f zF1+u3{`Wcmd!F<4G^rkAFavEkg)i|_1MC#y4!nyi=&SksiH~r1qXo>uuW4`-=3qKH z(S=@|!y}Cn(2leC5fA2fEx56U(}5pS==iDy48vFGNkeVI6BqFpw&DKd&KAeBx@r+? za^r;pL|75{v4itfY9^$2JYZoDAe+L@bfF5$nH>x&I!&MtLk!>hUJ3%Es0N8gLd zX)qoT(Z2&Da7cOP{3oo$JEG`p5yALG0dII3J%`)zW{RIzuYg)So13mLSznv$&*AYD zyR}LIV{saXaZ|ziqXy=OR-6zGs;x>98`H?Fg0;~&hLdS@v+zh~l>%m@fDI+<{ptEN zp2_E~Dh0p?q61DSS>Gv!lv_pdI*OaC6fi;*sV&#wHQ`e+vOQF#0AfP!6V2zJut8eLGt%hNP@WzYc?E5iATzIaCtY|1k30L>w z2;RdNqA~Tj`hL++jKnfAvR@KI?%SfP{=e`y9$d(qQPk`m00000NkvXXu0mjfM*)i* literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/pencil-blue.png b/view/theme/decaf-mobile/images/pencil-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..f51ddd4fe2f981e81ab71d168f5c368cb590b381 GIT binary patch literal 594 zcmV-Y0dEMbz2_{To(WtwgpFAr>jL5FrQ_7Itpq7f3`1SR@vL zC<-<&a2|JNFSqYrxBG_S$IQ-fmk1{-s$;l`(`e%pmQj>>`c1@>1i(d<*w-WG4Q9$b z{T&SvD)1V6d)$A=*)mUG#;imOx9R}0qS}=e)nqKhd>sHD;#F2u(=ib3nt%%!$7<7% zR+xf1fUVOwq=m-=0HQ!zD8d-l1vC!X+7r9C_CQTQ=UK;mnWt}uLUe4+K>>|GT3yc* znA<^~p<43~qRi8^us7C62}ydr42f1lVzFD3^t%`(B>CUvs36I90i%E5Zs}uHUW;p#^6;K7$QRj0DjII*hAW3afl+ gZpDUcb)KSXq;H_ z6PP&3%7lvv11v5W;-BH#Kq3&D^l<4f>CpDlK6&rG%dtoc_ZVZ2A#QMBM>)d`KP#>Q zDzO1Ae69g};50S>9<~IOQHzBbZwYwBJDM>N^DP1C`zVlM20%2(ZAL&8$f2+dvjCz% zmiK{e0nw%=Ds&oWsCk7&g z3@nu*&mLM8gK5NX=NDwyFb`C&(xf_=Os&+D-va4a<8NT|*z0i?at-31~|S*S!` wsKD|*vaWZcrY=-ql0Ys>o5x2@73Vnl1-3#$$uT=L%>V!Z07*qoM6N<$f>r^f=l}o! literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/quote.png b/view/theme/decaf-mobile/images/quote.png new file mode 100644 index 0000000000000000000000000000000000000000..93127c5e7176758a7cbcb86426c3cfcd18efc0ec GIT binary patch literal 366 zcmV-!0g?WRP)|<5y&9|IYgkp&~7EhHgO&4OL=G7S9RdF zmry6VU$>_^LkEU&5%CVbnzS2Jc#IU>Nq7r*iFm73g483$o-vp3b|c;cCd-DX;V@FL ziJ^!$fJVeSR^cFw;Vx2eFX2t&DdKH*6H>`;upa4~(D@(=G{qk+lZp9~?E6?r3mb_5 zff|l{-V@7J1HcF_aW1_ni;QdE4-M@T_ibh{TEUye;73c4VVf%1GWMCfZu^HQkM4sQ=Cy(lAQ7ZMc4<-00sdc z0gb>`UkjOTVD;Fj4An-z;NKVfQ`&>MxD=`gkazzFd@d}8c+$G1E!}W zaYEX+R@&1O+K#$}1OPshmed7Qq6TOMd~pJ?NoeaQ0viK@mph}*0DlMg_5d4#fT^v| z0sDauQiA>)0o~4kBz8HY?gk~{jCu{U01p!az5>2>M!l5ZZNTLO|672~L{Vqd5dmFW z%(^CL)CH+riO}|wge2BEqk6UV725iZQtf^#iCg82x(|G%tzQl_0V5;3+ETQUo4{^h zv|Qzp`+tDr+WPgtCZJ5J{Bu7=we^)ibp!(=gt{d%2U>vtfS-U`pvD>1o?+bA0(*c- zk;jjLN@vu)LM2LpRYguw8}E#&($>!fW(ylaUOrxMFmHgrM*_{j{QhC3tsgEUcvMWx zDreN`47)D}ZU7&qxGr=?9W4NJLqY-oJBq=SWP+z(16-T6^`r9I`pLkzDbCYk%9>=~ z0sp5BJD@QSGysDGf^OH=56V!Dhr)(5TbdVUq*(`00W8i~jaJ}7iqECIoRmrS0$2ci z9-tqJtI-F11N6nXJOGyFwDogwo~IN^+{Es@?`*VZ?S^676Wa8*vnvVrKiB^K=&QasK+7lt`lg_I33%C zQAu`HbOb^24mc_!cV^1>$&;v-l<(6qA_E^qfYP3aCx557Zy?>AA|37=1 zE?96`ckSQ){`cN%?R|*1!5D$1xQM zJx#>7VHj>ifE@e303VkKKgB{UiGb+Chc62-7}qLK)gG zGnQ;)akxbE+d^JlDB1fJ5T9ka zZlbqvK0+`|GYS8ON->Q(ht+l2#A{)3Gd-?#DGPK5To%= zgziqN_pRs`@kS!Z>ImH)s_Q%VOG24`nFuie=UZr>gHtV%9t&GG2D1_&2-oP;Sn;sV$$z~Qj-B+MmtV6$!)`1!U~MVFG5FsX4^f#3cD~~f4?vD;){A?i`=3= z!Hh=A;ri?P4n~P9-yEVH_Yxp>H(4pLCQJARA4Q7g5I-gWJXG<@stY|~p0L-k5Yv>G zVKd)WoOD0~M6Yn~_h3R9X%qXyixp93-PjtF*e>n@DsIOok@;&QVG-&*1%hzcs&cRB ze>^?2s_VIiuY?2IxNSvShrhDFM+$vnjPMh&JBvTc;+=)u*J@t~U!8i{y>k0W_?;SM Z{{d$6;Rkf1z7PNa002ovPDHLkV1gt6YO4SM literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/remote-link-blue.png b/view/theme/decaf-mobile/images/remote-link-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..de8d21db64d55c6f86c48ceed5fb584d1b9fa02e GIT binary patch literal 613 zcmV-r0-F7aP)1aCX&BG9|lqkQ+3m@2HUX}>#z;G8=NtO?i9oORv>QSe2QVbOuQDya0)w`tmGID zrx-?NLX7@`ek#TAu}r=amvI`)=Af0&IG$p7P!Cb07`D!0LOaoq4f7=0N%Yp5aKVGP zi>328Ig|KUs|e7A+w%l<``6|M0W%Af5JmN#v8oDl5#|Q zaJ0dB_i-Y{@Oj#-DnOi`v3`Lo=$~mib=9jifVhU<6vN~XjyX#!mSS(Y9LFVGPceLL zviuV`lVZ5}Q`?^9;ce)|OB_itjLt=X<%@OHyKNPS_2qYBUy9*Fivm29Vt8EwWcY%C zW*|Obe~SRq0xT!&3NGSgQ|(AG47NCek4oWw7vQ-PKr5PPDN+n?XIxs|?w^{r{$o~- z`gW|!@}lQA&og&~co?~<~LMPrfvGF@h;C&*0 zFUD~m_pq8J)GEXrZedSmk8YvlV|a*H1$(@d)3B)m9^qiL?j(kV=Bsj$8s=phwlOh{ zh<^kRu-ruQIDU#6wlVl2TcR9X#-}YNkK+$UI};K&a05@#RbfpT{^C1nmFN}9 z_pd5Y!#Bauq=@LyT=NyhN5RMte4-3DaVcl~2d0Eq?lZn(A5P)6@G9qF5_j+`9xSWG zROS>jxU2XpIUv6R2 z9>ow{^z zP;~ImA{IKBp+zjZDT+>7q^-0|7C{OQMF_aqrIQ8}1UE(Epn~8aDB>R+I_Mr36+r}R zK@>!3)z;R*3?*KBX>wlQs0#D0e(ucA;8HDLU~wcX|Okk|=oBu1*XraY6mFapLL92dX)gCF;Y*W;30bPs?7jz(3?cT<2oc!@Dh7)r%eENu{*2# zuTO+=I*JQe_aBPS;VdpDQLwPAS%q=BH|xsQ76MFRFo}YRLbjbm!Ei^_4h0l)&r zai|eM&Sl55qWN0;S0cx+-0^3GNfg{~>d}8)b}WI&t~x~u z8&O1KBL-5~B#0Sp#5c6kAW6g!un{C+Ay!s4=`2iTr-&9R2o{1OzF?8U{Qx#9f`}#o zQ4l53O-yXIkoDf&&2GH+G|SA+&UxniXV0144kay3bm9&U;R!}UG*@P>n(}rI$IyuZ zoGm+16^K*0_DI=@I!a2>jW@aOC2SAT`&LC_sKJ5;TPep-gZ|-`$k9NGN|Ka`#Bh^E z4Yop#!3vPo*ldr-00^>&uE^IVSTrDv6TZk4r(!>eeC;4cLm1uq=}v~k!U8xJT9O+yUv%5YOSOcpKvfl6Cqj((FFEo{VQHn zqqNvVRYKMF4UzkI;wb_>OCMP;cxX!E=KK TP^1hR00000NkvXXu0mjf13D8p literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/star.png b/view/theme/decaf-mobile/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..f8a61a497c6f89176297eb1ca40cbd6ffd97d0e3 GIT binary patch literal 515 zcmV+e0{s1nP))jtE8~835cW&iiJ%;3rodVt^`2~4Z*~imttngW}VkNyR!!_%gj7;?*HDi^UM&g zE7-(7Ug2^DuV6jJY1ddD2E@l6i1&2^TqVpKAvA63=@7(I5P)V$j5Q)pp{Wf`7y` z-Kq%C88`A)nx%zc{66~Z=+91k3I&)hIKkI~b=T7-%8Daz3y-iO`r2BFkFzwNb3IWX zq_3*&|L&L9Ww*-$Oo~3clFZ(Ux@nTKy6iC~%0N6$Fgd}hsEcN)71wndUH5oc24bn_ z<{!9I#sG8iece8bWehIi1@^FosgeL4P2mlGV@=8~o&joeg=kVQfqDP{002ovPDHLk FV1lH>=#BsY literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/tag-blue.png b/view/theme/decaf-mobile/images/tag-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5cec80ed701751dea46f703872ae4b08805b15 GIT binary patch literal 432 zcmV;h0Z;ykP)>%zQw{Fs@% z8DS)@|j2>j({W(@c=}Jh$kQ_L;?WOAQA|O0x1lDSKtb`13ol$ zj(}ZNw+mmy6yOawX;gXHsPY`RFx2vf6q>P3qssTe_k%?}FNhAYtm=073ok8eIzyzY z+fU8-EpP)I0@uKCioLPhy*yXhrtGT3lvChU|fLqsmTP zXGVhj04DoHV#qImHzEM?4-ka#fQ$ly5e|?^Koo=pL<@+9&_Ij;)05vR2Ay>abiln0 a0N@Mc%evrA+|Wz_0000GQRHJX6li@Y?;jx3@YUlSgZe`~8OHrLlh+(BWPHNb>YC``kRY|`t>5jLX|C!k zt80Ir;psWgSiv}dqB%qF^ZB=07+e*E8Z=ed5|}(0S2z_hWK9rwz&EEstRmW}W+{Kd z+b4a(9XcKBH~c-V%i59BvHlI0&YU}b9Ue_Br_LP^yTQDj!^K1;UHgi{VHpMA))0@@ zGa{R2GB26$G^N2tl_T3j-8I5d?|>HDLS9d%45v*DQUan5d@iCBm<$<@IQTFMc?ddi k1c^Lws;XPQV=~jeeVum4rV93M2l|o0)78&qol`;+00CfUU;qFB literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/underlineU-serif.png b/view/theme/decaf-mobile/images/underlineU-serif.png new file mode 100644 index 0000000000000000000000000000000000000000..745ca2cd6bf236ce16d3c503ebb57df66844d922 GIT binary patch literal 454 zcmV;%0XhDOP)Za{Fgs_?|IF+ToULFL zgYxMm)>Gy`;A2*j3WhO+0gPiJHh+i(Y-2MN_$MV_4@S`+Yzp1@f@N%lTy=Vd^O!AW zRh^;5kY^_Tu%*eQ4XK2d&=OigOK1tbztFbe|D{1s661$WLc4-LPJ{kTjC-1d_6Gku zE$9*cx@=ee<8gz)zF3~#_(XE2r|P@CR=jQy`ZoAIRI`Go)i-CmitqNBsB1jOT%HB3 zqLwiZUP4Ds;0V5lbyYmcTWKGDCBQp)b3>8`c!5ti3-PCz%nPh(5E}__?c>_P8b0Hz z%cHE>0mg~~Yih^48{pSj6|*wFfl7e_p5nRa_oGvE%qKV!-S1U=E0FJQb=^+ii;n6x wwTYFqfFJU`zalmt2ei4WebGI;O&!Gt7aWFk@aB}tegFUf07*qoM6N<$f}RG=8~^|S literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/images/unlock.png b/view/theme/decaf-mobile/images/unlock.png new file mode 100644 index 0000000000000000000000000000000000000000..81d9740e81ddad0705355bd0bfc5421c4d4d64d0 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^ia>16!3HFovXx%~DYhhUcNd2LAh=-f^2rPgj2}H+ z977^n-`+f%B^)Tx{xN=wSBB`tEB$5KO+li9h0CSG*X`jf4cx;J_(AGRkQT?fU8PHR zXnMp(OuRIU-%u;0aACKl`=raBb5xQxTk!K3&$Rsi-Nv~s<=)I$7gs!H%X?@fcF{pP zx}sBb&7H0;unc81R>nR~Zt!{Q6%H!~M)u8>f<{N~q$7|njK zu04l;cKz(Wp|SGgf>j6hJnE@FJil;TR^x%76JM{rd=xSDgY53}58ib!O?)~jYWr%I z`Kk+f&-7>-HuHP#T^`yrf6|4=hOA2dld9g99N71ySk`@V?RvE-9-n&+&O3A-ouo8d z*lWtu-_JZ%pLsFat4-1Pt^9hn`qUf3n_N`9U5@=#m1)iIy1g&1?BDhy*)fu430nL5 zbOdK|bq4C4Ve@Nw8WJJT|Jyo4^Vg)e8}i!zPF2xMR2110V3fw%UYNl0@WgqA>p>+M zXXm}O|DD|>-D{hwwXRb~@TAa0oW$R*Z~4I&&EIL<+WTw6g_e?!a`__u1!3%af39TT zdGA>H!t~!M7Sqg*-0qrQu+j3~rTZG&r`W{&<^8L_jQ!8Gua|(yfx*+&&t;ucLK6Vh C5(kL@ literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/jot-end.tpl b/view/theme/decaf-mobile/jot-end.tpl new file mode 100644 index 000000000..59585d01d --- /dev/null +++ b/view/theme/decaf-mobile/jot-end.tpl @@ -0,0 +1,5 @@ + + +{##} diff --git a/view/theme/decaf-mobile/jot-header.tpl b/view/theme/decaf-mobile/jot-header.tpl new file mode 100644 index 000000000..c239aeecd --- /dev/null +++ b/view/theme/decaf-mobile/jot-header.tpl @@ -0,0 +1,17 @@ + + + diff --git a/view/theme/decaf-mobile/jot.tpl b/view/theme/decaf-mobile/jot.tpl new file mode 100644 index 000000000..697a7c809 --- /dev/null +++ b/view/theme/decaf-mobile/jot.tpl @@ -0,0 +1,99 @@ + +

    +
    +
     
    +
    +
    +
    + +
    + + + + + + + + + +
    + {{ if $placeholdercategory }} +
    + {{ endif }} +
    + {##} + +
    + +
    + + +
    + +
    + +
    + +
    +
    + +
    + + {##} + {##} + + {##} + +
    + + +
    + $jotplugins +
    + + + + {##} +
    + {##} + {{ if $acl_data }} + {{ inc acl_html_selector.tpl }}{{ endinc }} + {{ endif }} + $jotnets +
    + {##} + + +
    + +
    +
    +
    + {##} + diff --git a/view/theme/decaf-mobile/jot_geotag.tpl b/view/theme/decaf-mobile/jot_geotag.tpl new file mode 100644 index 000000000..3f8bee91a --- /dev/null +++ b/view/theme/decaf-mobile/jot_geotag.tpl @@ -0,0 +1,11 @@ + + if(navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function(position) { + var lat = position.coords.latitude.toFixed(4); + var lon = position.coords.longitude.toFixed(4); + + $j('#jot-coord').val(lat + ', ' + lon); + $j('#profile-nolocation-wrapper').show(); + }); + } + diff --git a/view/theme/decaf-mobile/js/theme.js b/view/theme/decaf-mobile/js/theme.js new file mode 100644 index 000000000..cd9a17f0d --- /dev/null +++ b/view/theme/decaf-mobile/js/theme.js @@ -0,0 +1,77 @@ +// For Firefox < 3.6, which doesn't support document.readyState +// verify that document.readyState is undefined +// verify that document.addEventListener is there +// these two conditions are basically telling us +// we are using Firefox < 3.6 +/*if(document.readyState == null && document.addEventListener){ + // on DOMContentLoaded event, supported since ages + document.addEventListener("DOMContentLoaded", function DOMContentLoaded(){ + // remove the listener itself + document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false); + // assign readyState as complete + document.readyState = "complete"; + }, false); + // set readyState = loading or interactive + // it does not really matter for this purpose + document.readyState = "loading"; +}*/ + +document.addEventListener('DOMContentLoaded', function(){ + + if(typeof window.AjaxUpload != "undefined") { + var uploader = new window.AjaxUpload( + window.imageUploadButton, + { action: 'wall_upload/'+window.nickname, + name: 'userfile', + onSubmit: function(file,ext) { $j('#profile-rotator').show(); }, + onComplete: function(file,response) { + var currentText = $j(window.jotId).val(); + $j(window.jotId).val(currentText + response); + $j('#profile-rotator').hide(); + } + } + ); + + if(document.getElementById('wall-file-upload') != null) { + var file_uploader = new window.AjaxUpload( + 'wall-file-upload', + { action: 'wall_attach/'+window.nickname, + name: 'userfile', + onSubmit: function(file,ext) { $j('#profile-rotator').show(); }, + onComplete: function(file,response) { + var currentText = $j(window.jotId).val(); + $j(window.jotId).val(currentText + response); + $j('#profile-rotator').hide(); + } + } + ); + } + } + +}); + +function confirmDelete(f) { + response = confirm(window.delItem); + if(response && typeof f == 'function') { + f(); + } + return response; +} + +function changeHref(elemId, url) { + elem = document.getElementById(elemId); + elem.href = url; +} + +function remove(elemId) { + elem = document.getElementById(elemId); + elem.parentNode.removeChild(elem); +} + +function openClose(el) {} + +// It's better to separate Javascript from the HTML, but the wall_thread +// items require more work to find since they contain the item ID in the id field +//document.getElementById('photo-album-edit-drop').onclick = function(){return confirmDelete(function(){remove('photo-album-edit-form-confirm');});} +//document.getElementById('photo-edit-delete-button').onclick = function(){return confirmDelete(function(){remove('photo-edit-form-confirm');});} + diff --git a/view/theme/decaf-mobile/lang_selector.tpl b/view/theme/decaf-mobile/lang_selector.tpl new file mode 100644 index 000000000..e777a0a86 --- /dev/null +++ b/view/theme/decaf-mobile/lang_selector.tpl @@ -0,0 +1,10 @@ +
    + diff --git a/view/theme/decaf-mobile/like_noshare.tpl b/view/theme/decaf-mobile/like_noshare.tpl new file mode 100644 index 000000000..5e74850a7 --- /dev/null +++ b/view/theme/decaf-mobile/like_noshare.tpl @@ -0,0 +1,7 @@ + diff --git a/view/theme/decaf-mobile/lock.cur b/view/theme/decaf-mobile/lock.cur new file mode 100644 index 0000000000000000000000000000000000000000..892c5e851eedc16e9844061b199e24194cfbc370 GIT binary patch literal 4286 zcmd^C$KVDWfom`T#)dc~R#4I^Rs~r4O)`b{bmUKcqz}))c5uC(7v?)v4a2P)ZNa- z@$&T2)z|&~{r~^}A^8LV00000EC2ui01yBW000GQ;3tk`X`bk)Wk@<6#nZYULKH{p zEx|?+kif!I0vIL|#ZMubBmjWH2OtmxIFVa~6JQ7!1CK!f5W#StOTv&C3=E8h2vI1s n+#cd5;2fT3B_0kF0v!+!GARoV78n&7dMN`JIW(4+BOw4gP{MS* literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/login-style.css b/view/theme/decaf-mobile/login-style.css new file mode 100644 index 000000000..bbb60ebab --- /dev/null +++ b/view/theme/decaf-mobile/login-style.css @@ -0,0 +1,180 @@ +html { + width: 100%; +} + +body { + font-family: helvetica,arial,freesans,clean,sans-serif; + font-size: 16px; + background-color: #ffffff; + color: #505050;/* ZP Change*/ + margin: 0px; +} + +a, a:visited, a:link { color: #3465a4; text-decoration: none; } +a:hover {text-decoration: underline; } + +img { border :0px; } + +nav { + display: none; +} + +/* popup notifications */ +div.jGrowl div.notice { + background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; + margin: 0px; +} +div.jGrowl div.info { + background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; + margin: 0px; +} +#jGrowl.top-right { + top: 15px; + right: 10px; +} +div.jGrowl-notification { + border-radius: 7px; +} + +.login-button { + margin-top: 90px; + margin-left: auto; + margin-right: auto; + +} + +img.login-button-image { + max-width: 300px; +} + +div.section-wrapper { + position: relative; + width: 300px; + margin-left: auto; + margin-right: auto; +} + +.login-form { + margin-top: 40px; +} + +.field { + position: relative; + margin-bottom: 15px; +} + +.field label { + margin-left: 25px; + font-weight: 700; + float: none; + width: auto; +} + +.field input { + font-size: 18px; + width: 200px; + margin-left: 50px; +} + +.field.checkbox label { + margin-left: auto; + float: auto; + /*margin-left: 100px;*/ +} +.field.checkbox input { + width: auto; + margin-left: 30px; +} + +#div_id_remember { + margin-top: 10px; + margin-bottom: 10px; +} + +#login_openid { + margin-top: 50px; +} + +#login_openid input { + background: url(login-bg.gif) no-repeat; + background-position: 0 50%; + width: 182px; + padding-left: 18px; + margin-left: 50px; +} + +#login-footer { + margin-top: 10px; + text-align: center; +} + +.login-extra-links, .agreement { + font-size: 14px; +} + +#login-submit-button, #register-submit-button, #lostpass-submit-button { + font-size: 20px; + padding: 0.5em 1em; +} + +#register-link { + margin-right: 100px; +} + +.register-form { + margin-top: 15px; +} + +.register-form h2, .lostpass-form h2 { + text-align: center; +} + +.error-message { + width: 270px; + color: #FF0000; + font-size: 1.1em; + text-align: justify; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 10px; + margin-left: auto; + margin-right: auto; +} + +.register-explain-wrapper { + width: 290px; + text-align: justify; + font-size: 14px; + margin-left: 5px; +} + +#register-footer { + margin-top: 60px; + text-align: center; +} + +.lostpass-form { + margin-top: 100px; +} + +#lostpass-desc { + width: 290px; + margin-left: 5px; + margin-bottom: 30px; + text-align: justify; + font-size: 14px; +} + +#login-submit-wrapper { + text-align: center; +} + +footer { + text-align: center; + padding-top: 3em; + padding-bottom: 1em; +} diff --git a/view/theme/decaf-mobile/login.tpl b/view/theme/decaf-mobile/login.tpl new file mode 100644 index 000000000..926ab769d --- /dev/null +++ b/view/theme/decaf-mobile/login.tpl @@ -0,0 +1,45 @@ + + + +{##} diff --git a/view/theme/decaf-mobile/login_head.tpl b/view/theme/decaf-mobile/login_head.tpl new file mode 100644 index 000000000..14734821c --- /dev/null +++ b/view/theme/decaf-mobile/login_head.tpl @@ -0,0 +1,2 @@ +{##} + diff --git a/view/theme/decaf-mobile/lostpass.tpl b/view/theme/decaf-mobile/lostpass.tpl new file mode 100644 index 000000000..583e3dbaf --- /dev/null +++ b/view/theme/decaf-mobile/lostpass.tpl @@ -0,0 +1,21 @@ +
    +

    $title

    +


    + +
    +
    +
    + +
    +
    +

    +$desc +

    +
    + +
    + +
    +
    +
    +
    diff --git a/view/theme/decaf-mobile/mail_conv.tpl b/view/theme/decaf-mobile/mail_conv.tpl new file mode 100644 index 000000000..7aac8370b --- /dev/null +++ b/view/theme/decaf-mobile/mail_conv.tpl @@ -0,0 +1,18 @@ +
    +
    + $mail.from_name +
    +
    +
    $mail.from_name
    +
    $mail.date
    +
    $mail.subject
    +
    +
    $mail.body
    +
    +
    + + +
    +
    + +
    diff --git a/view/theme/decaf-mobile/mail_list.tpl b/view/theme/decaf-mobile/mail_list.tpl new file mode 100644 index 000000000..74274a246 --- /dev/null +++ b/view/theme/decaf-mobile/mail_list.tpl @@ -0,0 +1,16 @@ +
    +
    + $from_name +
    +
    +
    $from_name
    +
    $date
    + +
    + +
    +
    +
    +
    + +
    diff --git a/view/theme/decaf-mobile/manage.tpl b/view/theme/decaf-mobile/manage.tpl new file mode 100644 index 000000000..fec30db9b --- /dev/null +++ b/view/theme/decaf-mobile/manage.tpl @@ -0,0 +1,18 @@ +

    $title

    +
    $desc
    +
    $choose
    +
    +
    + +
    + + {# name="submit" interferes with this.form.submit() #} + +
    + diff --git a/view/theme/decaf-mobile/message-end.tpl b/view/theme/decaf-mobile/message-end.tpl new file mode 100644 index 000000000..fea596360 --- /dev/null +++ b/view/theme/decaf-mobile/message-end.tpl @@ -0,0 +1,4 @@ +{##} diff --git a/view/theme/decaf-mobile/message-head.tpl b/view/theme/decaf-mobile/message-head.tpl new file mode 100644 index 000000000..e69de29bb diff --git a/view/theme/decaf-mobile/mobile b/view/theme/decaf-mobile/mobile new file mode 100644 index 000000000..e69de29bb diff --git a/view/theme/decaf-mobile/msg-end.tpl b/view/theme/decaf-mobile/msg-end.tpl new file mode 100644 index 000000000..607413379 --- /dev/null +++ b/view/theme/decaf-mobile/msg-end.tpl @@ -0,0 +1,2 @@ + + diff --git a/view/theme/decaf-mobile/msg-header.tpl b/view/theme/decaf-mobile/msg-header.tpl new file mode 100644 index 000000000..9ccf5d6fa --- /dev/null +++ b/view/theme/decaf-mobile/msg-header.tpl @@ -0,0 +1,10 @@ + + + diff --git a/view/theme/decaf-mobile/nav.tpl b/view/theme/decaf-mobile/nav.tpl new file mode 100644 index 000000000..45b7beeef --- /dev/null +++ b/view/theme/decaf-mobile/nav.tpl @@ -0,0 +1,155 @@ + + +{##} diff --git a/view/theme/decaf-mobile/photo_drop.tpl b/view/theme/decaf-mobile/photo_drop.tpl new file mode 100644 index 000000000..296b82909 --- /dev/null +++ b/view/theme/decaf-mobile/photo_drop.tpl @@ -0,0 +1,4 @@ +
    + +
    +
    diff --git a/view/theme/decaf-mobile/photo_edit.tpl b/view/theme/decaf-mobile/photo_edit.tpl new file mode 100644 index 000000000..5bfa37c36 --- /dev/null +++ b/view/theme/decaf-mobile/photo_edit.tpl @@ -0,0 +1,60 @@ + +
    + + + + +
    + + +
    + +
    + +
    + + +
    + +
    + +
    + + +
    + +
    + +
    + +
    +
    + +
    + + +
    +
    + +
    + {##} +
    + {##} + {{ inc acl_html_selector.tpl }}{{ endinc }} +
    + {##} +
    +
    + + + + +
    +
    + + diff --git a/view/theme/decaf-mobile/photo_edit_head.tpl b/view/theme/decaf-mobile/photo_edit_head.tpl new file mode 100644 index 000000000..c819e24ce --- /dev/null +++ b/view/theme/decaf-mobile/photo_edit_head.tpl @@ -0,0 +1,7 @@ +{##} diff --git a/view/theme/decaf-mobile/photo_view.tpl b/view/theme/decaf-mobile/photo_view.tpl new file mode 100644 index 000000000..329e0a4e0 --- /dev/null +++ b/view/theme/decaf-mobile/photo_view.tpl @@ -0,0 +1,42 @@ +
    +

    $album.1

    + + + +
    + {{ if $prevlink }}{{ endif }} + {{ if $nextlink }}{{ endif }} +
    +
    +
    +
    $desc
    +{{ if $tags }} +
    $tags.0
    +
    $tags.1
    +{{ endif }} +{{ if $tags.2 }}{{ endif }} + +{{ if $edit }} +$edit +{{ else }} + +{{ if $likebuttons }} +
    + $likebuttons + $like + $dislike +
    +{{ endif }} + +$comments + +$paginate +{{ endif }} + diff --git a/view/theme/decaf-mobile/photos_head.tpl b/view/theme/decaf-mobile/photos_head.tpl new file mode 100644 index 000000000..5c13a0ae6 --- /dev/null +++ b/view/theme/decaf-mobile/photos_head.tpl @@ -0,0 +1,5 @@ +{##} diff --git a/view/theme/decaf-mobile/photos_upload.tpl b/view/theme/decaf-mobile/photos_upload.tpl new file mode 100644 index 000000000..31ad46801 --- /dev/null +++ b/view/theme/decaf-mobile/photos_upload.tpl @@ -0,0 +1,51 @@ +

    $pagename

    + +
    $usage
    + +
    +
    +
    + +
    + +
    +
    +
    +
    $existalbumtext
    + +
    +
    + + $default_upload_box + +
    + + +
    + + + {##} +
    + {##} + {{ inc acl_html_selector.tpl }}{{ endinc }} +
    + {##} + +
    + + $alt_uploader + + $default_upload_submit + +
    +
    + diff --git a/view/theme/decaf-mobile/profed_end.tpl b/view/theme/decaf-mobile/profed_end.tpl new file mode 100644 index 000000000..ff56fda46 --- /dev/null +++ b/view/theme/decaf-mobile/profed_end.tpl @@ -0,0 +1,8 @@ +{##} diff --git a/view/theme/decaf-mobile/profed_head.tpl b/view/theme/decaf-mobile/profed_head.tpl new file mode 100644 index 000000000..02fd46aa4 --- /dev/null +++ b/view/theme/decaf-mobile/profed_head.tpl @@ -0,0 +1,5 @@ +{##} diff --git a/view/theme/decaf-mobile/profile_edit.tpl b/view/theme/decaf-mobile/profile_edit.tpl new file mode 100644 index 000000000..bed1de35a --- /dev/null +++ b/view/theme/decaf-mobile/profile_edit.tpl @@ -0,0 +1,324 @@ +$default + +

    $banner

    + + + + + + +
    +
    + + +
    + +
    *
    +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + + +
    + +$gender +
    +
    + +
    + +
    +$dob $age +
    +
    +
    + +$hide_friends + +
    + +
    +
    + + +
    + + +
    +
    + +
    + + +
    +
    + + +
    + + +
    +
    + +
    + + +{##} +
    +
    + +
    + + +{##} +
    +
    + +
    + + +
    +
    + +
    + +
    +
    + +
    + +$marital +
    + + + + + +
    + +
    + +$sexual +
    +
    + + + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    $lbl_pubdsc
    +
    + +
    + + +
    $lbl_prvdsc
    +
    + + +
    + +
    +
    + +
    +

    +$lbl_about +

    + + + +
    +
    + + +
    +

    +$lbl_hobbies +

    + + + +
    +
    + + +
    +

    +$lbl_likes +

    + + + +
    +
    + + +
    +

    +$lbl_dislikes +

    + + + +
    +
    + + +
    +

    +$lbl_social +

    + + + +
    +
    + + +
    + +
    +
    + + +
    +

    +$lbl_music +

    + + + +
    +
    + +
    +

    +$lbl_book +

    + + + +
    +
    + + + +
    +

    +$lbl_tv +

    + + + +
    +
    + + + +
    +

    +$lbl_film +

    + + + +
    +
    + + +
    + +
    +
    + + +
    +

    +$lbl_love +

    + + + +
    +
    + + + +
    +

    +$lbl_work +

    + + + +
    +
    + + + +
    +

    +$lbl_school +

    + + + +
    +
    + + + +
    + +
    +
    + + +
    +
    + diff --git a/view/theme/decaf-mobile/profile_photo.tpl b/view/theme/decaf-mobile/profile_photo.tpl new file mode 100644 index 000000000..42fc139f8 --- /dev/null +++ b/view/theme/decaf-mobile/profile_photo.tpl @@ -0,0 +1,19 @@ +

    $title

    + +
    + + +
    + + +
    + +
    + +
    + +
    + + diff --git a/view/theme/decaf-mobile/profile_vcard.tpl b/view/theme/decaf-mobile/profile_vcard.tpl new file mode 100644 index 000000000..e91e6125f --- /dev/null +++ b/view/theme/decaf-mobile/profile_vcard.tpl @@ -0,0 +1,51 @@ +
    + +
    $profile.name
    + + + + {{ if $pdesc }}
    $profile.pdesc
    {{ endif }} +
    $profile.name
    + + + + {{ if $location }} +
    $location
    +
    + {{ if $profile.address }}
    $profile.address
    {{ endif }} + + $profile.locality{{ if $profile.locality }}, {{ endif }} + $profile.region + $profile.postal_code + + {{ if $profile.country_name }}$profile.country_name{{ endif }} +
    +
    + {{ endif }} + + {{ if $gender }}
    $gender
    $profile.gender
    {{ endif }} + + {{ if $profile.pubkey }}{{ endif }} + + {{ if $marital }}
    $marital
    $profile.marital
    {{ endif }} + + {{ if $homepage }}
    $homepage
    $profile.homepage
    {{ endif }} + + {{ inc diaspora_vcard.tpl }}{{ endinc }} + +
    + +
    + +$contact_block + + diff --git a/view/theme/decaf-mobile/prv_message.tpl b/view/theme/decaf-mobile/prv_message.tpl new file mode 100644 index 000000000..5d9925297 --- /dev/null +++ b/view/theme/decaf-mobile/prv_message.tpl @@ -0,0 +1,43 @@ + +

    $header

    + +
    +
    + +$parent + +
    $to
    + +{{ if $showinputs }} + + +{{ else }} +$select +{{ endif }} + +
    $subject
    + + +
    $yourmessage
    + + + +
    + + + {##} +
    + +
    +
    +
    +
    +
    + + diff --git a/view/theme/decaf-mobile/register.tpl b/view/theme/decaf-mobile/register.tpl new file mode 100644 index 000000000..b1f39048e --- /dev/null +++ b/view/theme/decaf-mobile/register.tpl @@ -0,0 +1,80 @@ +
    +

    $regtitle

    +
    + +
    + + + + $registertext + +

    $realpeople

    + +
    +{{ if $oidlabel }} +
    + +
    +
    +{{ endif }} + +
    +

    $fillwith $fillext

    +
    + +

    + +{{ if $invitations }} + +

    $invite_desc

    +
    + + +
    +
    + +{{ endif }} + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +

    $nickdesc

    +
    + + $publish + + +
    +


    + +$license + +
    diff --git a/view/theme/decaf-mobile/screenshot.jpg b/view/theme/decaf-mobile/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b18c3a4107b2259cd9ba7f0dc5c0fafa0fde364 GIT binary patch literal 89002 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�#~>th{13t{Os#<>+la? z*Cx5ODr?I5;9B+BcQye?t6dqoOxW(~)eGxbEdJX&80ERgb(bU;dQMrvDahCaAcC{y zT8p!k0A(&HjZHdT0w@#-{lF@iPmJ1$cNE$GOJNmr(kU2cLpSdlc^^@bA7q%V-~( z!C#Sy-^u2BX(G(kj*TwuA|ojxOR`zdfcy>X-CVOsk~1}vt=c=7=}-oN=%`R-Jv4?Y zKikj&QMGqm#iL#EmQNew^SabnKtHtN)5$y!)v z-#J0L#g$di$#nwTqsC+{;ttPu6Pe~o5$%?E22Y&|+EP<+WB@&+>A-6!6m|E=HnF8% zF+o09>%s54PitIWgM+Z66c!`(6}iiI2CxVf!s=4X*AE4Y*R6RcR39bUZkuJ%ct&xU zGU*JgcSSIlBb|MYm7u=kUb_2b^&$eA3z+1M+h!k|)UV6xuorN*&C5b%7|_F?LY3KSwcfwq3gL|9a3Iqg zsVKzrOdu>IG?uw(;&F9i#Cdw3%mH;{BMHcdi#qFN#Yh8GJvvo@!7OWD8MhI@p07EO zga9FOe0j~ZpN_(Wn8(IA`z}lLX?iPSnd0w)m(HI|py2)*I6>c$0cB9|9>v_4AygS? zN_noXsb& z@byfXvgx@>Co(1Ib7sPHx?I(L_D-mg$+%94y@tMJi;Zv*u!Iz+7-metjQI*m`^B3D z?(J%oQ^4KOVdYH|>V)|xo2o}}~g^)p$G0q7FV1X5R zJ3zp+*5E<$5ny_FyRfc=t_oUGQjXH#o5;(j>IrFqt=}kkdZA+83Hjs`D~~Uw`NHib zm2@2twV>*l$!C`Hv*&s)e`2rUzEhrr%P7J4#Wk5bF$6P+?vQGCa2z)2#fUUEE#>eH zyK$3%nhjc&H_=&-v|Wp{7lejAmub_280tTqi! zZCC8matug$-RcZXBA}rxu8KGE`tbFnqjx~7eWj>*$R6kvw9VUK$%jjBil1XU1k6P% zhFXquk1q6IPRkz$w4uMpwlA28ynn$FM)N{5Mlb0$M38FO9+zg}d%7!eiK3W?ZwS_= zhJG-Tjtwjgn6S`3ZB@P#^P(+g$1l-z26uBx&$KQ&uh`4oU0{bkKz8}QAiE_YfA7HB zh`#D}`KIf`Y~d8FcXW$an9XltNRr%TDguPZ4V;U8#IFk1cFCQseY zlk$ODSj>S7*p~!VPf3Wfp1xmFn-agKHX)(mpi9RFKt^VL&s^9vLz##3^$ zy!|P)sWVC>|4U*M`Z)=sfSz52_s7?Ce6k7=Q5l&qFEE+(e@$>g{*vIlRsHbrtpf#F`MmcSb>V0iXg4y*0vh3khmgrPJn1{3MY{HZ zAUvEQ~AzP@ws2Satk-ng^1tF z*G^~`P1M!UBb;-bVir13DSi9G@JVDSi&P@2exiYVDY>t(!4jKHwm>$n%Aj6|z<+2( z!31ncFJBINTAbzb=LAyNndMCSuN0o>jdj;DkP^r!eMKZePnSAdIX><~CssmSx0PRF z>CfHapP(#jBY{lVP+&5Rm&6!PIWkek2%^eS)|3r!&l+OLvRb=ZKat9xq5}v+ZB8Y~ z6yl42Wly_{rYcj;Sh2GnQm}Vp0mlu9fx2E@Oj(LM1H@9jzp8CC3`j1Ys^Miu<2qn2 zf6h@(WvxhXu0ZA-q!Luj*by2rvK20&S87oBg3;>s0;nmK9dd5AuaxR2LU@EQ0!GEV zTU8!6<>CSd5yP-0^L=9pUU0&u#K&9@2&DU+3y_yKOYT1aG-GxVGn{me*IG)%)4>9?#(_BLZ7FjQp$$~)Ha)5Nbg zk~ZlEB&oyLHcDMEhvB%})R3P^zI#CcPqb0$q;LUu!4Y4R*3oI+(jhJ0x^EO#hxP~% z?X3N#XtHg_wi9xhiM1c4W;aXU*?>_{-XOOJiK3m=xkn7L5AETN+D`X8{miVTLCE%L ztOdcCx6DWC;3Y)B7*WVWyTtm?SXtnXunUgQiG-+HemYgE-ZpK>9a$OCXk76J#oiqn0cP9tJf%jSga*x zB#GOLh0qQ|#eB2m)CVYB*<`nu!YXdVicIpJD@+x8ng|@C=z_r37dMU8fF+uk**7%X zL=jHpa+cH$Qf2j$umBbm=>AsM=|#XNx?5m)BULcACu^lC9`AD#nC6&yTkig9x?XP) z?P-YOo^3^on4NF?HXMUrQ}p24ygB1{fpAuQe*Gm#h%O25$`}ad;Zr|XOUDepb2PL5 zHne(0tVM$2^nzmnzs^AH5H(p12WOdnxtu5eO?f8lee-PO#=;}OWBd`2&%BLb*eUVG ze&;=qzCdBEsxVnq;p5i)iUoSo6kF%JJi(Ujj`5B91U8ZGO;T4)VolT@Q`-ZT!6?>^`)R;JLj!=~1s13?sxyiCs||5_r851P!zN(FisfUWM;Q z74C-p)XcluK7?U&Ao(>NfM$N?PTEdIBME|!obEYAwSx{dEWO+X@cpILr(2=E&RlUq z;c^!aik6Dpo7$jTNS|_p5L=uU8Q6^MYH*Z)|K0x)K+}RL=kz0W7>H zBv?@_uBT?OR!?um3CMAhgs%nq67I}pL(HRm7{N-|KVKYPAXh={imXhQby`fZUwDb1 z))bwjvH~8acWf!U%6J64ENCHBB&^9FlJ$6pBPcU&y^=)xrV$T+^V(Wois3pytfzCb zS{`R7?5-P|s?MQxeU&N$`aJA-!>4I}Z{PHA@QRo$nfyc0CRW`6oT-Der@|tejno)T zN>x@V3ZgEnXcZ?7#ct>ECuwaH=c&$sBv_$Ml_iq*7R8o~=de*Y%#=RGo_&g~zBv2G zJ@t5#G)JBy6&pG&clEEX`2;ZsC}vP9YOq1sN7*vbB+w z#5nKI=11ShD9xI1rx03F&!w`$VvlI2&iW+`m}Ju^AEJvW_=zs{70mcO6zd*rCo&aN z#+NX0eI^@pxi&GWm+0J%Z=#1n>$x0UzqIP`VA;y$KqK182Zo?@4F$S8g5a+EVUW|D zYL8E(;vAeG0jyzoFDr2GRh(U1zwF_wlrAgn9Z?m>3wV7wf)gmDAHPqh=wpN#3C+5l zV6z220>FI*U2zkSfVbb3)IH5&yvmQ*j<_%u?1N(oZBPbEhvdh$_{K#psf~ha*?D9O zx9KJb?wrk!xqE}>SM$TZ?aMRcS1hJ`A4+vy7@>CLlj|OyQzg8bxmn>oJ{3~v#=i@_ zEsQ_9NncqPnFpTio{GRS9jdBr>d>BmS}->H{nqqbpC3MS&ec5v?3E$*X!|{Fm0rsi zN^7}%mAjofFLdc_jcj$4dmvP}(@69+5gxtYUaTiFCO_hqEz(!IZK1acqP-EZ>-&;* z|9M2{Yv0S4Y<0U=N$=Qj#a}VXhir9Mq!5+5W|;z;ipenLStuCZrG!ny;O8%mtptXQ zbVZiQd<+V9l0j6?J(MdkN1Dy%=R|AMP|kFsk+0`wnJ6$nQOsXZ&-`E=@Y$0s*fA>f znYR!2*N@pD2egaaV*s^QlD}q-aX!o8S&qunok{ z9pNTXyEi@4YNsW{fMW~*|9aR;o0)CX9k ztAl%K3!Nf267syae`)>H@LIue;=F+`5d3j#*dwIAlQl4XUbpNC3nQWt%s}jtKZC+ z*+!P6qWPuA6yL6Q%CWF-PR%OCC{p&O!V-=OOPk zM_bt@ll$g(ZE;lXSlQ@2oT%} z?(PyGxC9z^cWER9cXxtIaA~x03r?ngGyj)a^ER{AH(xzf-MXvRty|sa?sM)w`;Z{u zDSF}|^-fjeR|pnBKIKaOMgcS&5HHvVSVSb^*3og|U-1&b&2fOJJsNMb))7bhHL4mn z8NVRZ^MPe44<>#>Zr-QrVbBfARSGz$`gk(Lx%u2^xY$!*wO%O)h{Byo+>aS?!&ziT zFE-lA7h5v&2mxuQGeI_G`e!xg!x~jw<8fHiZ2VPC#BWJhCX71v@jwyI3#nq~qQGiZ zKju~eLiJ+9<=~pRAAe4=1skzuDe3GqcrkrPtgdOZLc@iseHWxE3}$)1PvTWAn*S&` zcs!Lo^{;y8;+lE!ST&SZU(HR)Jt-@`A~+QV?@{fUe&+GFHnYacO%jD^j3PSXZ|0!< zx7~cLgx&eP3ks_pweq@W1!ae(Snm!1!I61mKK4(p-J{&EMDO{@W9TyeVEZ|=|5+Ac z+$)iA9XItS*nj%b`7IF<|0i{chgB;|?Odp~}wPqi>e!f1M1c66%xurOLv#jIJ9~o zxX0oOjIl7PsdFncTW6FDzn#g??==VYH(cw$gz{wkIsSKEmc-+>n1dI2oB*yZ7Ak{k z>+93IeBS=GsjqA^wpf)y#nZc1+W@|iEQeXs1y2zUWwbqJP^24Qb(uRdrOTuxcsqCqxPU~ zw2If{A1$C$dhOR8)j@sU?YyIs-7PP3Fy}!L1+iz9zLU+Wc_q(|@A$V*GPfQ-n%;d& z4ii12I1cl~t$}x6orfYm(%hI9(cQ@2#eO2h3{zOvnDKzzqN6Px|h9QCV zd*Kt>HU#@s2vo+myy34^^cJk~kg__~1X}`BFf(#q~-dQ3mtZC8C*TSsCB$XQnLo} z6h|Q0gT7rq^tDFjCLTm&wwh3vzm=*g4m1jfm05o7*nI3aX&Z{v7R?s5gK9C%JJ}sf z4$;BQokSxS^B&Lq3x;S5~8S_gh>^fz&LGCVs$Z=_dj ziMQn`+1e9?`Q%N$tJ>bh(BKyLE@Ni3|RW1|2wY-5#|Lg{^C`2U1-uLuMa0cJOoA(ePn<+(8{Mo7EW+#z`ldBo1cUxtu=uY@;ZY_U5$NLvl$ zB*rQ+`Og0;Y+2g2=R_WVFB?PP>{NvzmsZ0tk2KYVn05G~vrUfhho{kIgA-{?X}BS8 zWRM+x$AXvN!ntPM1xi?lfHyvl9-bxLl9rQ zWExx48078WNh zAWuJHMsr}UnxZBMJs`T^X}_74NRYnCJW|IMJ3~(Dkj~eAr$~w;U?8;!XXv-nJh~=S zFIpOxHp4uLI0Nkr<|TA_mj5ua6R;{GIM(+fBo1y;Ty|<=+R2*8%yML0_^j$joBHJeF-k1S7C>;AkO#|9R}sZE|c&4{nkZV*}@JC0w};?fWUwLMV3~$G|J?k0@gu%ktNhPT6)+bRn^7n`sS1;I_EZrO0CwaIxsdNH{0mE-% zz!37!g83H*F^$*F_4w~@m?NVH9ymodbUE)rdHuIEpjq$(R`m8(@ zp}R1rY-p^=#Yt?B4wlV${>CCE82{*#7G~S}&YTU`)c({BJht(H?@*w*$gu|;ih8z z5J%E@BDi*@;yLol6gy44nM~lFXhOE^c?Jnb^!*1pY7buacAUa5-z9#FB_HqZ&*a6` zk&Xv2&g1P|@$tdL+TB2+3~eYaI1z&Tyyxx z5FdtIwMOjDJV{S=UYL2Kj(bzHZ$hEydx|=){U&r|=(1#<5FRKq97+)#;8w-Bpp7fd^^7$ZHiB3D0OBS#!zgV&xhKK_5KuOh;u=)2FHIovSpLPgC z>SZj*%TF-Mmtk%h*eQn*_xf{@paHwnhiTU#&B{40Sj06WU|+BKx{Z-r^dyzL*arJ= zI>X{9we)0)f+E-W;!i30~ybb0p<8FnCIAfO<@!D@}bA>!gu<8va>a7(Hc5^$Ni2G8Qq zN|_`kQK=^v)%VevxwsMj7nXPT2ub+0bBW9&O>gd*(m!`4WAVM9;eSM5kj3AOz z+`Yt^z*t27jTYaLy=omFf4e(R*;h?s_wdy0azBwupg5e{FMj>~4^Ht;=O$>bOY3Fp zw$vFne?|j$ZtBU?$3gYFKwvN*&)^?idxz>{&vT__&c*IG?1|e3<;sRs;RjNm*2E#w zUv>Hnf)9u9ia^SwbY`CjPWhh=y9wI&V(pBiIPsZZfLpiRP{!!mlBa)g2>QAv|KKRQ zuwNJ7JpWj)H3jXzgqzF7TS^60h)edp%Dyo)Cii$Z|591Z`ur)%Kv7zacI;B4(Bv$w2ZvJt&&_h1bXZaoH|ELq{*uBg1fdN$ud&A4v zB_Ymz5Xvigm)D9-t=CAv$7;R{;!-O#&C?YM&y~6zJ=B6{lzD=#0hU1VH&%RWl&9ea zYUnc-(=i3iV}Mpr`k`{BqjcDXDD1L35a<4}^eZvXdpSuHm;XVPY|OK7X}Pv-56f|W z8O#^j7l%=A8K>G*|G`ZHZ%Se~!z4>E?gPUNQM0u5LUBSFiD@5~e25UX&|kpy`F}rN z7YfROm`2vrOY&O0M{W(EB}~XTMIR_Ozuq_Dm}R5ZnawDZ8|LbhTzoyx2KizFoBl@7zao2ts{u^ z|I3s9XDn}S+0R>}L0Q=M*$=Ofbl784sa?(o=MI z9l(9$+5IeOuI6LB|nhM zZ7@o&(DM`UgAAEFtuBUrx8SNG+CPp~Rf6sStyuCOa1E0h_ z@vhxz-;qAbi07LC+T9e^A)zB&G5uh1~W_eqf(YAwa8L}<6;GsB;ryf*Ahtw5U(ovU!S zIYh~b0SPR0nz%c1z2+~lUy2XREOojC`9EUc$Ul$3zHv~{^^@_wkf8nsx<&NUAC!Q4 zHI9YiiMKb@uYbRvlJjqvi#(a7Y;l^@}B<(@VxT5uiD1XB=;Vf@W z+2tkS9cevUidoJyrLtDr)egCWEckL1=IMcbOnuG;KwnZ4$jR_uDtZ}XCk2NAb}y_E z4RUkNia};^9F@Ne(>N4nl=!U!2|#d8ih!oG44A z8rnd~@S>f3##h#p!BchnGXk*f+`69pN1eg{X44TyS!UzM={x4SqKPw` z;;z(24BRMy*`D(yY8H1^e3%1-NJpW?O% zGH+j^U-Z2T?ptaroocF%n7=NQcAbd-<{9K^&Egu0lhO{~8754ub2r=1VPhRWX(P^# zYFnI`t0Yfqy)M*&Qh+(Eb|;n7U$9w@y;_wWDl$+`a{=*n2K(8Aflb!T{VcEDV^cfs~bmjUFZqA0ZhZMgNmn4!I4fAW9;7nVPE@bI` z!LO#siLx?<{Hy1?1i3IgNiBqY@l%`$XGUCj7S-k?n`})dF6_UA&VJ(8^OhW)nki!QL~^&4y)bgM@0_8iG09e-VKSX$!Ht$yjpD5S zHH=J+^41M?#`{psAS1BqqXvds4~56lH{7GM6AqPsaHLAX#1I;n#ZIDuXVmTN44JK? ziMX%fwxf&Fl*N_ALf7N4$uRjJo;Sv?38#C}gocyiV zwCkHD(>W(=lK#H%j*>u6xwYM&^iSF{}rEOwi@(|Xr-B=NpV z%%UkkB9rtwTFzI~jd`!=rUb3^-um=;+S+3_+SW>PRlVaFYh!3Wxy+nu^cQ5-)>BhVx|e{N1SrLx_6);)>GjwKaDRkcV}8=hlY65haNghnds= z;QHRHDy&X%aE-js5`CpWaU5bS5>e5gq+rXAH|W)BTxn{yX8Q#c_9P;65Qf1~>Ljc7 z+kl3GXFFY=C0w8rayR$!E+6;emZ<{U2YLWu>g1zX3;k-!&$(eBmx$0o;oHqWxGCE% z3gV`*z?tns^5?}p{v5X6%N{%`396sx4_d!()heU-qGm!XoI`$JSMrWI3dPzc{W&|Q z?RbXco4E}J%_m6Xuod_6(p7B8e3!tdKpC#dB1`x+FgPHhA3=PWW@FdBYj!y2t$ee| zV(VDjMH#n>faCaR;iEob?`0B595+$cW#T6GWDrQ5jsz;6cF)o+I!1kvNDg)G5qWF+ zxa`)>FIJao*h8dB7T%nvk7c)icAm8s7txQUBK&4n)|O?;a}C#~dy9c>{en_&xc6H8 z?Ib6^(K**W`ET4!ty|!1x961VD*sg5*t6W@vY@!lme3*N8QJ0g_Fb1Goqr_%gTtNk z3HPQ&fZ?R{@eb?j|3KYWmb3hc{{Y@MaC6Yd|G?gL?aE6x4D08grAQiA!PK`nxqp8BmJm1A4&su-JibPnLm;-~7@O?h1!AESKPaj5#8Gw6v<} zr$Cqgy+rRY<~^~sbSrYGDvwL$o`ng^uqeybdh%WSB>~pcGDam=;4eP;tw5OPW|{sb zZD1qxfFAdsN$>a=ApL7(izMi6#imzDygG-rz%HrZ5ejH&rx(S1; zKk?2F@Cem6pvyj@!r?rx-dgQyue{6gbib(R!uFCZA8vKC)+LPBpkQbuhc1qvkhV|= zYjV0sI;)09sDfKx@i){eQcGhL#xMt$!D(;P;i>~W#}S;2x_~@?U(JdauI;ikxNy== z8wmk96^@Vxp#a0{-_n%}<}uX-RSpTX{8zl_flG zNAR;@Jd3;&I(X0$UNFYSlCy1wQd7%kCp3>nE@q{7O0;`5F&_Q13aw?|!g`zYS;bW! zI$b>Rcy4{}<1>@+w%GRZe*KW78)M3p0<qF&Hue3!)5lf-62(8 z;4JjT*1`#2&XV&;)u1~pGVE!`R`cV^NE|2ohZ1FnLgE+E6zt8w6w0@yuaC;y5NI28 z$is)$OeMGNQR`P?C^LQ6LHYL^pKHsAjPoI+|eTQJtUJiUZ-v6+M4Cl z9~sjZfyq3sG~Dhit-txyR0=~ACp9bypu~cJV=0*!BA0j91wOV3ZbDtRD3~tD37n(a zG;!t>sGPE`oF|Mzjj;!x%a6R{?TFg}DPDwvI*P=*lv{xL~!(RxX|Kgy*8Ie2_CPu$jQK>y~6k z-n3cIT~gBoOCsR#SXt!tgJGbCQ8Dz~=ql!D6tUWGfL5%cWQnVCxdf9oHeQS9n+8>c z73O4GZCB?Oat)eO!9AR<4-w5S33qJlr~4)DMIiTh!B%6I$l0sw>-R0YJ0I-)2}91} z$fvf|EE9O$h}6y8uKsBAiFfHh%ZD!mW77h(axkkg#HTPoii*foqgv8SyNupg61&?J-84yg8#uC z9_bZLMNEqaic1#GT`)!cE=1n@;y^e$g)M&Nnz5U%lulaz>sVmxmMXlV*5MeY5W!ck zTHz;ct9?%K6!9lwnWX_?qggCSrc>lqBV$cWT(NhImLFqWF)mf!w_;yaZQ;|C2^R5H z32v=O;4Lhh1smpkNE4_u^>a=?X)kZ#_9iiO_B*oQXv(NSQ7@EZG4e13ZQ(U zB2*_)vLRK`(MIwJQ`*be*%zE8uAj{p zZ_qPv)X?ms?d7O~r{^Kt0vh2(>a5KRao*%def?}+)pq$?-X5d;g<@IXTKTJXx!gE* zge%Y z(X=9v3&qjMo9?df=1GX}y&6PB`z}J7J%Cdt!-ueDlb~ zwTRZzG@IhgX*nXc0a3>mFjMhP1p8j}Fuk z`dkU&` zM*8)5fF7-;Z6T?&=wN$-C7Xph!x1#()m#*$# z;Z!l)gIi%7=CcBoSd`&J)0zrXd}CN;_vRjBHYAz@3j>EQq>&l^Ff z4{f$82MzKNv#y%rA+fREA&?SDz{U++ZepkDYBNR~bP)6E^7*N=8}JskJD6l6l&*h> zG8}v2j5p~!ieo2ESxBC!R9-dc#Pr!*gNYbBuJ?X6*Kt>GTJRmrVN}ZYi6?3t$Li@B zPQ*h^#er&}ekvc-AvxRi^|iM^eBm#0%3!HGjdii0}{j3yq;Dj_vI zzKaa5SPsiFzeCPV-%#F;jeW%7Tk@2y2!mzjeIA;dy9 zGs^Lb%?G{N}ayn7`V(LTD@q^DZc=nZsL;Q)|TxUl%H>Bb~ z)suuKPtY8&0l;D2i#cGXRn<%FdslPTdc{4iuqwHD|9q6>g5q20gtyCV7G;?UAXRGK z8LZ|704qKY*F-VZPYf;`NZ$E zr>?)V5&C55IDjR8!E@~qWeiAQ>7V0}4=lZ3mQ(h~V$%Q>NAbnoo#jW^Oyg)CU8wG2 z(OHz`iZ$miE*jBuE7xvJ>gUaE;X+ZC`WVGlJ7#+`Y`-3BAE|xK8}ymK!u|Te-;U&2 zuIKVGnvkBuuh*woM^0ZV<5=N9>ZH6jjG|4yu13~JGr-4|Ge|^GvmX;7e+8?IAIYx5th@PAKk2(r=#&t(~Yh3+SCTC zw-hJ9Wj&1fEe1WVr$M%QPf^5Aq5|zo$2|V9R5ly56wtG8L{YEgG>qex_II*W2auCi zC*|oxDSPq&y%YE5HN`*{E+~m(Ajj`(Sv?1nSQ%+2PFFepLLNbU=8idTJA=FBQy4BK z*Zy`cpFTTtl~8MDAEy{NVHHw=R$SVKeXbqVXeijRc$6#~z1ZZ}7wH|;UV=}gdtK6K z4_0{@y##N(CtQ%|pPRNNQKO02aD~L9b!HdeW_;+EO@$Dv2aev~)V+v#lqk4ygB&y- z<~@~$$uVNOjw|f0!O;#pjp!C9tizv5UK1}4wZB3&9(1IKrP`uvd6}Qtv(O4yKxup8 zZASczn4j~KsTbq^+8t+HB#=e7{9sKwDRvYmJ$g2S6)$j1?f3sA_OLd26CfjM8L7H< zHGMpJ4f``%FJ0TtpCVB1=>S*{Vn~K5xU%Xu76n%e=W}FocqkCwMm8;hdjmg5wWLO1 z=$EVU5!ezhmBxNakSw*Uu$GLrJ53cQXjRK`7Ef3VJ!V?tZ*(WbZ=2xS+fjTZA5wKE zRzKpyoXB-K$W{tYgGaZ$homAVIkg#?YANA~cvT3vMM5fVt~ODG(&V$z0XYnRo;E2~ zleU$kimAVa>wY1J zxr4JZv{D@f^tw0@;iw{4fW`%-n2bB_A~ohnc>iZk=^Y!$0==}-$uVS%F1x@f6h#T7#n@UT56y2VSm~&f?cU^0 zRykvi?oGEKimk@@JYuY;oT<9<=sRaNGk#Z)1IsS_372QU>!PcF!ISJ{G(+&TB5v~= zM2Cne-5XEdVKgrjZez977LK z#?l+T`EVfBBgGLv#F~SbgD@B&5v))caZID`ldwLL5@mkcE%swiH#-sw{KIR6Uq}UI zkaD<&gGVvhPqHo5{EMNr=*WOwXO66=%hXH-et`x9*_{MsbcNH0O&i(>25sA9l_J-c z^ev{^+&zYm>LPdWSNCtpLqkdAU!7 z3h6H0jJyt`NxzRtX6kDn0YiQ&(ZVW3*a*he5JIY*$yvEo3QyyrEPGy%PNHjN$eoVE zp}1@e+eic>JtLR*bEbC({_2=9kOzw#-7jU0$;I;dcIDf;gn%8Uw70cu)B|4K^;m zuvSYb=M#M%J=@8?4w#MzkIj@UB8r=MzT0+P;S9A2a)c)6b2wbg?Cf^-(JGkV^=bW4 z3qr21?ub^~%K8&#BWJ0%4PA=d0ZB*DLgaQ}nc0kFv4Yl?XQj4oX`{`2lnjLYD>)cX zp7$q{g?6qBiM$X<4CC@j&dgQ={&h>{-MUztrS9D@LE^*xycP2*@mj<^wNT8$UnM{d zjo&0uRfl!{rW1``W_yNSL3TJzzSDC|gzpD~HVl|0LJFe%U@1V=BQDC`3( zZ{^|)^Hg)I#)D)sJ?!*I?QsJ z6$l#>9qn}#2b}oI{5VVwXTi5$SEcR98S=F7?cq3d4{6$^XRpyO8*zGJHAy$2t#7fH z@}l)WG#jpn`TXz2H2==6)s$F$kTdIR;`id*&>pteGsihMHfT<;CWgksww#KV!`d4S zX`5er7nkMef7+CJ4=vSyuXb-e%snZgvmA6Im{~atANh+sL3)faG~Idgym939H!qP9 z{YNrG;xq-J1tPsDwFM(Pl<WYlEz--0|+&oCJE-y$L-QLjrHg zfohi0RT2vvn(+P@_-TkpnOEK-X-q)01LLjcm0YV`CXVMOCP}xh9kc{~YgdYR=r(MEIur10lrs|~mQ zd|3u@<`G|2(u_@(iDv)7mH5dQyYRkNL-IuUD`9Fo^syXjhs)jTqsEskXGn!Ujyi@( zk>~SyngY!^Oe?%4(I0VD8@6uo##QnXcfvr%{(hYii$1^f_)FG~pDOZ=JFok|e@ItM zJ3v@0$Jt*-dH~QRVDB!ENe-X;8CYw!F8(8WK0D}5%MU}Si!u__Qf=^{Ik%yg5o0?; z8({YNy01>Qz3Emj#uXpW9z*#431{tH(BI(b)&}V#;WDo(+1Pd49X{@I^td6v&xxyRm`Hl;+|k(4PwyuUDV1*v+&s<6Kw5Jc zNi$6GXJ&$f1f=pOT#O=zR|S=a5nMg)=asVIjwb6AxLFCP9Ba* zI&o;4tD7*ta@$Y7#8vz*sN>d{j4?Fa!;^x~oy?qsg4bcZcL1{vA<$wk$cYAZb#=qX zFD%`6?(j~s;%v!47$`uaV_zxM@tW8=-Cd1T;^N975d0%aOY#0}QahynDX7$sFNa*@ z@#fVCx~r8oDvh3c>z#a(gJt2Y(~oMNgsz3TRdb!$TSQ?1oR_OR+KZ6hmV6QtI#jf8 zO~sAiTfbL}Z-Z2Dob=54 z4*h7gftADe)a!-iNOuH5-oXQx!&BkU6iT>9XW9gsE$Z3G*fXHHf;PrLN$QgAbUD8H zCB=!E;}g7~M#-K9z`>SUBh-~;AaUFG(W-8zNy##1k{KZ34Lu|y1qstdaQ6cDY_H`F zl48}z#|Dz=jlK~BNRxbucZDGN)IHoWc>!MDLdKtdN%)ns!H-TY^4L^J>5D+bt68R~ z$*Y>?ctVA`t1;ZK4h<!*)SG$7=rh+S<v)1RgV2KuX*INI(^(bo+L@47EAkH;G=i zhsBhLof5vCJ`Vl>O+V@Azy55F;Iz5{yF}BjPphL(lV+S1*6tDK;J^64{IvO%V@zGA z($1krhT~D@Mw~V;-vWQw#Qg=^+sY)4^lzDu=3Gcxc5~@R`xKIjv~CG3@2Io!myzjF z>cz_OVw}5dEV>`vm#vcJEs0UoT*ZcNd@+D7_e*5e$L`iNiP6NU&@zaAa|8QV{E?Z7 zKt#G*0BOy>81yfhuytaR9p>@+Sk(?@(2_y~` za3sUR=Bn&N7axF*t6MgW!FexM?JP_ju*DWJBUwfA&Nn7*b8k$%1U;IL`6S1j_#C_p zI^It5lE(;Lm=l5SpF8;^PZFKb#xmqGQbD%VH;gu2L(1vnBMN*V!_{y?o*h6T+v%FL z!;PL<5z3u+?2L(d3J(V7z6cvShUnAs5&Kf3IU;$wf9@T%ld7MkosUjSMO`7&&Rys= zi=O1H$*{sEu{Hyhp6j*Vl*NNsrQ*8e71_R!9IS8rm@#apxbpr0?Y2?{jk^*DG)UuB zl=vJGX%MOQE=T&Eitnok1&wPxI1*eF4+x5;rKQbyo^qsazqRQCC@4sb2t{3hSxsH2 zQj_G|YD3P5FaF1Db6RiNAoQF76;bD) zUzuu+-MQIoMgYAlIEfYmY(psJ&^PGNUgsyEYn3WEGMf79FGANt{e;oUbOvU6-N2tz z7qbv`yEY=(ucVDOrl+P5bpz;AqElTt`BR+U#9*qKIpYT(YP?Sao?e#^TCuFYorNps z1uYzYWNp^*0|ha?N2d2-JQ`Peg3F3u)gO%|z(|0HO$2>gre_PXaatS_#w1Lk z8IYgq>zU5qU#cS=q@om31=hv`&VhDN`i>-g$1tN05h}Fif@a8DXf3kIvjnRp*K!&G zdiz}x>FMl%x?Hb$$&#Q}Sn7NH?A$L|K`voQ(nz(E4}U1b*>i`cOH1lW2*;6FBuVx! zo+q8I*QF`Z$^T5*&CnPfNx?WZ>@A60?y=@B_J&2eJ*C+hi_->aLW}N>mA8h%!hnn9 z9UV+s1&egmufiiB{co&!0Zsl`7U2Pe@KEhi4mE1&V5 zr}2#kfs4NjS;jzPxrJ**w@Dkr_lGU%@)#K~kEeIBU0QUgE%b{Xttl9B52S@BPd5uB zVPlj(*}IwU4l@KcMGJH%)}8P^9F%2RrrBB{7$~kxu`uoe5oi69`dtQw3%|_a1J(l^ zR;+^@Rb9~SGnh;_T4uT^2UAToawXynZ+1SbDj5B)^w^a%>gue}SE2)Tc#fR_G}T?{ zLu_94Oa)9&%N15ua-hC|{fvhN+>)gJneztflZ)xAk_eHbuM{5t;0y#pz-VGW4rNJa$wfg{BS4?mwP#4o;{aky#nsFeV9DAmNCk%{U zU@Z`K9DP16=T>&-Gy(wE=&<4MvxNDQiMTjQKf4nmbtc(nIb1HId{dvmT_khD;(TJp zNU}{#`AN)ZI{C~R4#>)vNKRi7iJzs!y}crndRAtc=16nwuSygDUXn(HCpSPH?kCn$ zJ71^zs|c@En)OI>*M9bMk5P^}3d!X(+d@=1JH>BU*(wg5<)&tQY?r{6G`rPXKtb!a zTtF~!KKH&6p(Fj|XgtFBIY_z8j2VuB49U?QEqBtYA#%j%f?dIx|Fa!d$awJ;O{+G$L^y00b$@ET3-n z6dPpcB_)ZN3!r5lsJfJf{}IXL81l8qIn!`4e_y+7VBUEG_Rn0h^f_NNmqx$);x5v{ zP|}KTg`8@QV{^ijZDPFzg5vU!7DHT0+Lqf=ZlDj=&OKIEpGVDi@bepXw6El`Qd%6< zVsqnPvmy|%7Y9~$qFApEzqstY?;HJ0p?7GUu(UmDpmst|_W()dnd_@uTROoZ+Y}_- zRYoo!#v+cBUITf;wq^~*h@QI%j||zhw<;!8bH(3@(!W|+v8fI&e3M-q2&B0fU8b=4 zGZ810rft-XT!0pLhnR6g3$TWC`KjdB&JHZ*LE~fETb<~P9&yzgVl$>-(d|-~?he5z z6>bPf@9#1e{ahv^$@B~IUZz8my~oJc_>wnLJA7}u1Xp_8GrnpJ@<)HBF^sDT;)BuN z7>4(-wZ@7MGrmw=kT%blWq7talr=eKS7@kux=)rnmi#e!LnpvSo6H@=NDO!mSR6Kp z%AzoofT%*G-e zjh5xh<0HxCKr)8}B7F9lPi$OVKPRjYao6$6BgWVix5fZb+W2^v;5Iiq##`+z&lc|%zOx40jpf)8J889|@q3iQ6Oh9xTe8usM^ z#57|dXO_(9HuIdSe5+VD7{lz}!-$qJ4&2HEI-{j1))?i&xeL!Ax<6j$BC$3FfK=rE6`b0uKBud9IdwVqWt= z9*i#RLywM?#`lvz#oq#YsE)XDn=AHolE-Nbj8evl>*39;abxj6$xF_pptgf#42`I!~eo(RgLQIR2>OrF*5Pf$Z z44IF|tX!3O3nc<_rkGa=W#gaz_LEI9Wk;H8ocr}5y1lzOA7i)98l<})cN=07R$|$e zowG3R`#~Z|pfc8LXXHWjt&(rCb(!)Uwq-}Mlovn;4(-}KJUu9mu zwC$I|oKjS5bm9qSR9|fv5CvDPYevM+b*ITAsba3^teIlRh;;dVEv_3nhV^OIG1-q# zqPVSSdUAyM(HoaT9t+;1n1gFWsbik=&G~T>uT&^lO2lb+CyB3?6q{PJ-1q>#%3+eW z*mhdGHQ{(igT3nJ8;>ZH5A3LZ9ou+b<;}5iuJ9=cizun8F6+foi?;r({Q(rJ3ZA-C z-7R(90o_`GTE$5~o@9G>tj`@7E`QXMcyin>YtxMrzF21eT4>v4$PIaM*G3n2=%QSj z7TF7UOk(IZx45?FB$#lY%GKMygmL6t`@3xlb4(%3VDb%(+)B*Utzx8D*}`P~Z8wp} z1+OC|M8Gun+4BZ{hpn#qx^l(yZZGXQjd$DOu6>(<60 zpM9jc2ohkZZot-x+gzi!<%|X_bfr__B36IDH}h3U?)`5+Rbm%U+bJyf9guIO@v6rn zMXsTYQ>_X=!PNvGxu^*)NE}|@r&vVnV}mNlPN~B0Pt<68Fv)6BtfIhqR(;9$Z!Z2v zQpuKMb3)}nv4Qbg88@)updg`;r;k;`DR|I^6e&`LaKym%%Z4%r(2*@zz#v)^|9jA} z^eidiw~JwQIWakmd_?S1?R{DofxS;Mi7d)Q$bUp4B>yyB+9G5pl~}J~PGf=Dkf-I$D#>Q*fX6mQV)#io zrZGgfR3{Ax2X#Ba@A7azVymE=FgI-yoqi{;a1k5+?!32*3njp#L*AJt?e-h9as5^v zYnegBmTnaRWC`l6Bj1~LXw=9`n+Z?aeEKGOC#bN_-TNoD&LEvlN9s80^@~vRU0_{z z_2Ox{W}TsKsG<#oLCHh z7Rbyt4k{5ejc2}cnvW8*D(GdT*m2;t`eZst^h&3T?8sf@M&Zfg{elq4^TR*5Zmn;V zH6cKmWird6!Di+2wG%raSPO)Lf4&5QN3^3F92leJ7K zqftRMvQg_nmo8c4JxqGerQ9{2R4KJ34Yeq&&^B4pOks@@yX$C@OT+b+rGbl!uhD0U zL|H+)^Ou6#wSwEo#cQ=>PZ3vu8Kg4@;bFJ>tT5n{HNN9yfMV-4|D?Lh`PO9gLB z3m{xdMx$d~PsT3SQEAdFA6ovY*v7ZtlVBmbFHh}*K$2XhW+g4ov^c7jTr?N{mI8a4 zeCX`tmNq{2wzo)y@dmPiIiim;ErXPQJ)}vYlf)#EGbPhi+ZJFV2`k^h;eBt`D9c}D zz+%T0j-l7dUz%n3VFJ^B?5FQyxq?VvQDk?_69$c_=AE0fwFK3CN}2Qo`w@C-&e)++r}pYCChqiAdFh%c2I<{%g0 z3#7X|JVE8Y)xrUS`Mu+rucF4&j(N5^^C1SLhBg}YoyYAy9G298)|!UTvT_P0m?NU@ zcq5$MITM)$wm$&90@3lns` z)_yMY%t(o*XZM8@0b^U|UBAQFOXWfbnQOnlVLxTSlCZK@7W?h47pW}SiLw z58U{1k{qYjx9uCz_BzkpU1@G9t_OhGf5 zU9Bu&l?xsa4h1^k?Jl-_{UB^4P+e5I2SBp%V{$~IlzrWPK2fW5KXEKvh)*EoH%PvJ zZF1tX=QwA0NCD?$wNW&V z9{UaE^9L^u+^Gqo0$5Wvg9M1Fb8rsg`Y(ImeWDi^VFElA%i2?UuTW<8$|!0 zLXoNZ`u|PK)uYir9xXIBi|uBt!1z)5_n5gD*@LTZegS5OJ?}NH{nYzHj#Y8wu=jtx zQO;>Cjr{)N!XFXx29EsGMc}8=&{oSory~nG$>F+XpVN2g4CTUq=O!p}VAL~a&dZc! zw0ncLDO_f3xl=4|^S^U5Kn(m}v_QyHT?oq22Xke7Z$Ol!(Y z3pCo?G;;5YsSc4Bqw2}_0sLbwE*FY$z{v*p);-boaf)8!rlq=BMr|T(d%v{aQ5Nn> zNh##|S?$sY1j>M6+SHyA!e(AdmT`Qa$ed&30gpIqj=#^WABm+grJXVLI?!fR$%V5; z>+Rp9?D=FGrw5d}KPTica(#_`i9Y)9M9FUF(%ratWDc1Ay{)>)!QPP z&RU9Vkn4$JqW%~zhv%vkK$Wg0xCZKrjIXdQeFk}N(DIpmWKPMG1fHIETJ;SPjGrxV zc+Ue+WqrDw4W0d_t@q>l1AN%p0OU=7C0N>vQs#cY0kPXrCzd;|XKF@0ql-hfc-inT` zPhSl&i2ZJf%3zy0!0zx*aR5<@gu@&bj>Xl1AI`G><0%&E?HP&*=Z9=}`Kc!0>WRVFw|}mLd7N zhFNw)XgL*u{D@k%|M6msQ0yK^J`dy!D}jW>t3#tT`;N5T00fh!?5jgDzN>OZ!W53< zc&wgj8df7j4sn9%{-I4rPfXy^nZ3OerSq7N_Pg=fS(oB4W+VmzYnpco9U3DZL^@ga z#D{2>z@V7FhD4Tb>T3|xlq^H9X+ zcv8S1Ffp!mgo-}%`IFp@yLCrM3o1iJwPf!JC}S49uBL4`G%%2fr ze-3@;*7*8eoY5SFTCBe3ozpk;aw34Gi=&@_G!jR&j#5;MT+N!zeqJ>uy$!1d!9ZC$ zgI;Uax5JsK{7^ReFq$`38tbtmPJ&?0>q}L>ypFpGN3$<2lU|_4-t;Bf+?sOv35N$s zutZ*eEow*(4Z?Fa5kQ;qlZOb_R5({9osq&(8syYAO-s+BMZ6kMdG|f1{y{rP9`o&5 zWO2H_pC_LjC2M3E4V;965MSIW{6MGmgnz?shwUiQ2Vx3QgJCXF@ukQD)ZVwwGtu5M zEO1Q06F%Q?O43uK(%c*(nczSMt@O8@IMK<2U1(na8%}akfX%hLzkmeBPcP+}ne{>D z=LDWQWhb>#9SmUNXz13!gZ?OqF-j2zl1sERJ&tY`@MDo#wmoc?=k)R4=6~fPT_<2v zU1tuNykF$82YGxFR-1xInpa$!(xC?2D6o8?6YsKVgw;QM`wl>r>6B+^(t<|rQ3)~K z$2+1=W;|nm#>D2wL4}1c^MWs2;gmx(wZ40E>~#da-|ab>`^= z!s%-Kk)3~x+M%A#EBj)*W1XPi3&lKnS7A}qz+U&--Wm#3o8RLhT( zdrtEo?qA+n`TYOvrjWN&XygrzeHcV8hbn(7{`^{R%SbNYjQ6>xv?N9(-`X-7S4}>x z&Ec>H@ZeDEV~ehN#YxrB&vGAM_~8YUhg3CAx|=~Tx0XZ%JppQ+v_-=X8nIA;%LIkE zb<6s}5H)?V3f8`JXKniq`UG1HPJBKzI){h(y!SdY5PZ4;O1qaJcuEfH>tdnc-7Tmb zC@_WUWtCuZoOIZtn_jFx_b`7SznEPH@KJkst0Mm-Ulw;Y?M+1s!IOrU*2$ zjrbb>3Qv?}1IFJR`Sp#DyowF7XG%0p+{KgIe&p8C@YEbYS0=t@-NJkAu60CIzD{g; z#Pza^I+qgiifkauoV3Z5$pyPr3B5ktt+jV2_#gF3-tHXPR=ULXoa-w@IUPUWO*D{o zbTNsoH*KTH2ZYSXsR-{qvaTcjLS^hDu#DEaiXq6t@lZ-ZD_z|N9;$m zWXJW7Y7H9g(>6%rP6V|d)rTLc%c9w%SJTjry^em*zFwHBS=7}82^8owm|91Td>~TM z9i`-IYie^tZ|DeJ*O^lC@IJC`5auv1RyR6H9q8`k%UU%OekDB@ zW<)S4S1{s+GaS%F0uK#&giUUU)A+=yTmu`(fYfS*X`D#zfhjH?zLewu{r4|Lif71KMlMMUs zv8v`;lP_|>HBF?HvMo7K942)h1|*QPg9)ykF1Bq=40(&wAAJQ=zik#N`LkDHZpzac zRPN0dqwpC*?VBInBjW~V{U}|nd=YabCbZ=0cmIGIjbJvWP#X-_D&lY`Y@tysWTl8M zbckhMdG=VS{cAx5=?U@vTN)kH7V(pnB)e)QYul^djqEj-DU9;;JgkC0YfWZbP`~FoS& z#(j~Pr`?26Q-@gdJJ!VuO9-{07)8~pL_?RJyV0!L#;v&)hejmWl(B1?p#t`tycwUS3?)6}Hv&^(E z4z%|y{o0%B76mQ{?nv!C39BR^hctw`A&T^7-8U;9Sz2eA zIT$Y4{73_nf@n>fE(^}Z@!xH4aK(rnQhU|&rd5WVv+#gku!KF9Gs=S74`_L?Y^Mg9 z>ljV#tS3ndv@yg%FwU`XxC|I-!s90>*q%wHoPdxubZ6(h@L}c>kls*Y)DRH*>G9O; zBpr3Y+sVbC6}E!`W(Lih&Pnf3cn#-k>Eh`x$|fe#KQZu&9Ew5Jay;s{6rmKUI&oA< z4&v)Cos;u35KyeEwz#TZ{6xR_!kpf&uQtXmHzc6m$8(#?z&Q;j>yj{f&}cENk!$~? zrh$#$Q8ffn;j0IR-m|80RgE;#TJUDckm9{rYP*0SpBL)Ah~WTBPg0SL;3*XmN3@D- ze?=>u*z6~t>i5elZ(XFQRA}617uwH8Gu4#h*)M4UDefa?bntLMQ(Te$2Hg{{_DT1u zK;1{>s=-zwh%(Td;h1GOTZ-$OfYHioDDzmYmMJU?K_xILaxa|&qrGn*p=t|>*Fh4* zuq)P25*({)KL*x3i=}zUT}_cYb|bc?ZkIBPIN&`z`-S>00)=^`Oj|8#1ydJtqJAnA zD~h|rJ7{RpqLD)_gal{zf`u-(B=4Q(xL`u((lo_jbU3id8853}5;dv>W_fYbNN61n zN^&KDxO@PofryO7>V!9x8J7t8HQq6z47%EsB6x`Iw~LJLd7q5o#PJb94{2usmH=l? zHpfMQ_5`O`KhxTRI`_9@HX9Eq`^7?@o&`~#-GPRA1}Mbpgb-pKOz2IC*ZG{JWl1X9 z0$kv|Qx>}Nd8He6gR~J05ZUA-ZCpZRZo~T|57Y@)7D{h|k0vv#Ws_heE8Qhzth*8W zvj(1d7b|cq#z$OFD~ql@7gGR%<&&eo7jepUAemK7iEx;`nJdbC0IX+$yTdw#6G8+j z2OwSsi<)TCviIS4prPvcQw)G(V=g7FdRBbziC`gwbWl7aj@i^`N`N$p18EQxb@zyK&RQVh96Znz&b0gy zUCbtQ8}A5@)&CCkJq(0g2T$`1oV#v75$C9P+iIck%@inHH6ig$Z{;bP^gfFy`wXmG zr0Qc)+Bm?`C_@MzpF4<$a<-%t`~u8XbXP9@Uzft0mQzNDGUOe<14nd?D(6YhfsHd@5MoUEDpn1G7o}z-?77Ax%*A1Vz z5F>$t>*La@Z+5U|H;HFZk)zyVD~2<@t}F|5*Jm-)^UWliDS~2=Nr!N-j(1fxq~BLq z#~9BzQ`+NpB6U=5%F$`zWiylxpp~3B(7qs~gF*zt ziywOZ84+PV<;Y~Qj(hy26jKIJL*m&cS^>!E{gc?RCJZ@FMQJFl9s6M~$0uH4j@gG` z?5XrJxtqOj?>!Rye);|d8ow3<8~qh?LMlz;ttm7SO9eZ5v6@AL=g_R)&NS*MEda00 zV=h1G30U@i>)ks*Z6s$_7OB#2Q@k6%qbf|Ud9&XtHz}5yVR*8*fC0a}&de&`K|!EY z$X;hepFf-1h0wu!?xJNWj55vu8ef^yGlc|cDdU8>UNg{Aik7HSc1{tmPM=;tKwAxw zr0#Y}JGt`9EQ2&dsmS5$O|i0qJn;BMTWS?L8`?ME zxTdkRCntA}oC^(Au+ZzYI-D-@f&u*Hm1PgEia8=p@Ux!p!PBf>P>~Kr98~LmV|wbC zZ{X8cpPZJXFAHfG@q93=oNyxMPf_o_WxZrD#dJ{xt=2U*tMH^tp&%{_f%Ljgd$mV0 zRqj#PfwU&SDs_c$&y+2fE`4A16N6={hr+F2)lysIl`s383ptRuID13@7JYUp05HZk@=C?-0$xh6<=VFx(S>@21Y$P3U+%L+RaOKQa+4yxj93)&XOuv}{E`^6nwicb{}| zUv##(B=h0tqxf^e>G`@=k6%8_l8lmPesRSqvoHb2DKqu}`OphL&%rihAL|Xpi(C`d zW^ACLlq8_mZgUi;S6 z_AV7|ok$7Comj`)DhLd0aqoazm8DGQ7XY{US`EFGt2?FUV<9pLsA<8H9x~#`O1-g< z-1BM8*QNvPEeOy)`YDRq;C$e*A}#v|mNQ611sw=J6uhgl-gb$#<5Z70H$%DzHOes| z>9Q%#R?8=S<{C-&`LxiO*V+6B5hA8HR}3EP$@z6fvusrR!cb6Oj;vugCzu`?G3pR( zhM@C4RnT6}^|^=&Vo6lmAPg9c?*QHy-e$%7+^T`h;>yfZUEIs(JEJRI31H@NT2CSH z7guK*%DYqVx<15VF`ue!i=4_`KWrZG=eHs!w_cueL0_qk5+UMSlxCLGX~(h%!t4!v z1c#}bD_g)F2?tZKaPQqU>7-tp8CXVM5TOgB5cljIqXk#T2HWZ$Z8mn=LEOsdo1;KYfBrW7(u_E$KX$=AqfB=~R6J6R1h>(GG zn+A|OmXob7;UYt=ZoFmPsv2Fx=nRccXDp>WFe>V6K!Gnul?{r05oO&CMNkZ+Yj-J> zQpDM+q&gU*(6^02rr^}J%x9nCt!HDtrF6UxZGt1f?6=MvJCp=N))|}Z&AyC6X#7H5 zm@JJFUs#S8u{X}8*HKt71sa6cn%7Ok?~hmo?+5zgkWA-w$vLh~}c zs4*ujYnh-8q3d;9q~1RdGstu7c!lfXV{v`vd5>zL_f^~?>!4`HWl+p*DtX)~lU(~q z3(Y%#B_@d+T?+0&oaqzhE5O6?fC!!eOP|+lAb0}-_at5(IIqt946j0HRKkKdAI_7S z$Pwf@Hvy+mZvS}tFIhBM@;R4~K%k$xk9^f;Fig*kdJYmEDaH96vQRN&yF&(&0pmX)!(RJZKq# ziQSv-J=qJOwX)A;L!h)I*g*T~IwWT4fq5y9`UfEMn?CA>y4L#BhHF1a4D<7Xev!?2 zJgjNcFH2AQU1w=1#r%_vTYY6f zj+x=k%f`}J>ku3>MVs0W(pHwW;Gl}qF93mu)4>C9)8!uzgUBiM3fpw#QwH+nJt`^Y zdFTwzE}_vc9W^iK>g<9PJ)rN8I@1TQ^pUSRP-h>f#&2pMYV23|A^d!s!zmhD_GE<0_(FBl} zu$?RKOR6gVQ^@S4r$#7|wSt3_VBR}WiaN3@QkRiMtSMCD8@eLSNK(46?eoy%Pmqs% z5)2J?4|Mv%+{btaeg?+E9&sjPs_Xnt(tmJ=X(B051z`ZhT-KQSsVGNaJY|k3rLkh3 zfn#<*(k`^>2E)1(h7J@Bi$`d^*1vgkS}G92H=$Kk*f+pDB%DtS z66C!kghAC+YYmc0ffdI%hCw~n1PDaIs)QXPxT zK=sclZ6uK`m|9NDf{qv`?xnDEAmWFJZ%?^`nwRIQ6~Z@4ZpMN?rp{}#vr;AH7V`KmSMse!Mwob1q@#MD%N8hy1jv4Je1eWJD>l@k zzKJS+#`b|eggqr$D`p6t5=O+_66FC|LF(?YU!5XA`xWlS(pJmc^^WOF6+Ftfgr+Mo zU1`|((HkR&&yIrOd*kUn>6ptr7o!isphi0C*>B&TofYxT(Rm+m-}ZE6))UjyKXh>3 ze$~dYE4Dz0k~^Xt;;jtC<^(KUGjh}{4?IC9$_EkJt3Crk{`>$+!johAbiLuach9*l z9V;@?OH0!r6nS>hQK=$|VelO63HpW+HmfWOqwH=jqDqS{*299TI8 zX1y;*RIjS7s=P7x;D^A|-ntSwO49N-Ok8k;N5q0O56cg%wxhj<%-CXoK&&|f&9g7s zx8iRvu}AkYI|03Ycwrzku%Ni`Ozt52Xae)cG!9#PEp6B8%XAe3Nn3T0<)_w`Mr6-R zi1ftc>KatxiJ~@0M1-_2$~~wRKFwV;?U18h46Ho%9VqKrzE24`+9g%5 zaY3PQY)#FQBwwX7yzsndMnugkb3uPwDh{cQ*hEkAH?(TxFnB5#JqE4T2hYy17x~Cc z=lj&A&ooUSe$p7pgCY|10? zYQ8V%kf^R;_SPt`mbG?J2SQe_C}3eUZNVzCgnm97yh=YvX!y*%YNHwH2=i%oTK>t; zpV_ZTYZAOgeHV%PsX;p=0$J3x6a-=1^(1RsFb5+Vp20foJwQ&V|( zID}K&mBgpe%<0zh97<0`2SR>mL&LRbp_(tN?>ia|kE;?OnTS^|CP;awzFJ9YWPQY- zbUvLGPVQMMWg*(mx!2#Jl*sq?1Ej9Fzea0C3YM3J_jWAvaP+*PFKb&i*xYdHr=S#o zfTB&uFzOzj66;8e1I+nUGi>yk>uyq`K^RpS66~ZdM>E@-J;i|byCAEvzU;bD>o%+# z&x)vkl)UycidQz3Kjp`H;&kU0x3TIi997_(G+JwlUeL$ZA0TSH6RQ-q3d)e z>5Yi{sMZqE!bdn4w?T36kpV86(kG#mAg0NA{<2Jt8@mV?6MZSM40N|O`^+gSlF?cC zQj-D7esxtqgiidFg$z_#cZKyN3$Z5o2`0uWZiV?}DoTXhv2e01U#6Ltp)D%W)@&$m%R) zdAq`$MYDs6FSlJ&IJvX{vAThMHF`QdYct=Zr+~e3F=wC%$YS}nAhoy<$ffX(v=fUA zdw9b_-BR__Duo%N`14I~FWBgF@>GbbnD$G>*Yg27Hrx-r;IOAv>j_-vp#Y_)($2Tb z&O&}L;}EfRE^BQ*z4nQ-H`#?DXaM6${c72^5+*&kVt|22mLrMYOQ&lnd*v~v>ch@D zaY-#a8xvvTg*}k_x+y>`b+99AZjH$$hQ#iy`n;+8juVv?4qdQn;K0+)EE)`M~|uCI~0!er2%%Fz&4Q@DLulUgED ze-AuJTg?mgrN*JD?^9u3UaRErM*Iy0=(hxaP@%Z} z@M1AVapa$lT=8#_{Oz7pU1@i6iWuiVNlX1L)W4DUce`f#9{@{BZA*Seu@2&c+&6e|GxtGzg{nn`8U9&|3z#3hWY1P&;DO!f!}_?A9E!95AGMePT?d) zVjV@M7u92_GsYD6WgGX%l5-V&rE_FI7LV|* zQ~G0l;pA?~plALbEdS@~vDh=%&T3UrTb!qJf1a>o%e?N-Ew%E(%%lG8v7paNV%v3 zAM?jCm&O4IA&kSZ6yY}6+63sJG!PgFf5j6rb}U7tk(%xe13%SAtoGT@9M+Dd=nuw6 zWgEKwky!p%eQ~On(MrUxtLSdfxv+_ifgD={Ko*Yj%BnzAW7VPpBmg} zPjL~_x9_08_K(H>sTE~8&%u32X`zU(zg<@U7t;O#`yX#(a<)DG0nJ}E5fT31$3B?9?AxYe<8BxGtJc3$ z1#{^^hT$n1wr59c4{se08+c5pL6nvGc*K9w>%o^y3_87Vypi@N$*0vda-VOC{2k=~ zlBoX?#5pOi8&yTJpjtBon|jUT-QnZb<^sZ&Am_tBcQI6ibp1;5Ywl}$WdV72QaUH{A_(x;?Y4vYg?!QX_ zIjy$~vlV5)|LKB6lU?b{{?*bLvnp@#ua=lK{D0g*fgmxfT=#wfcOCzu3gp9*S5>cB zUH!f|408JDaYg0&b&Hbpw(TPBOF4JHhEE!2%hkvDD`sB3^OAUJ8&R=SI)2bq=K9xN&Vx|aNNmiJ1CnbnO=9(4dQfXAh3>}X2TBogz473tH zKRTGJ^SPBH*W*@Qq~E*kdEsrvP)>39q~Qg^_nvP)8ugA;WVaSKKFA4|Ph*8z61o$5 zUi>dBE5OWPd)zGHe)J5iMLO+X%aQl+d0wwO^?^py5IYq+f2_q zDFTf9zfua1zx05I=%tgTD;NaT48OU#-rNjAOXigYvk#38Ced1`#`6@}&gpjEvFEAl zjMlveYZdm^$?1CiL^u-~8<#q*xVwh+8Ote|V> z7eK0;rZPhh3)z~ZGkjln=sJy`3AqL@b6v0^`v*uAGO)y0oKJ{Lco}=eIZGLOjXb?B z6xn3cvsGA{z(IHraydyQsZ<-qq$2FUZ8RECd{FIki>Y>Sq$1MeCrHAM^Hs3MJr8Vn7RS&2nn)G(h*pwnEhj>VpEeXW}RvjL$)QN!mTtF2$y32PNxGC? zPN)w3;;kI`OiQ7BGjsEVmz0LBFUpKRN8DObq^bS|$9y3$%Ef^YWT|kux{ILHLUnh1 zGfOh@hHG*LdbZBH+-B8LN}I*!4i=CEeIB$9?dPAUm@|ums!Q&r6b?7CEZPPOtm`~F z$4GxhLgZwshS-7dB!@QtCB~TG7NgUy?vS{!S7T^E%tw7EWUw}ZV-V%{~$a=&c4v448+h~N$XGMCsh2#ZfURTNVS zww3^FU5jgr<>KC|)Zi8e`$FpLJ9WywMu)V^!76QlV`ihkfHunxmE)xj6P2H`jU5iJMB<>Xx@{R{-BmtA4;WD_yQVBU|_u zGcNy&`U++?iWx-wU>&TWEc7cJku}AudMO5?Y?l=bWZW{KE3lx zpRg7VPKGXjeIW*cAvhnY|MgWiQT!_dMW=$7DNk9w<7YMM26KuUs-=ZRsyM|BZVts( zPoNCCCCGIIsoKHJDG}@k7T4E&FH!yuXgXx{KZMA$@6BE+#b+dx>`LcK( z`lCJ4Lpo~Y&!hX_6U9AUYdlNih@vG1;wLOwXA;gFP`_pE52*@fQ>fYB&tQ9AFiB_r zq*UlINLq1Q&1|=kGfp9UpvZ`-?4Twtyzi~Tm&TOZdr{prQ6Eoc8O3{@5Lo-hkcD-c z(JS>Z3g5;~oH+9;;cYSaDdVMWhFk>m!xwg9o!Xwycg$asE|i^0UufmVzZAJDyS+Ct zL9drrrQx-~#zqhS8m0G`6*tMc`y`>ce8q7G^e(ckBg*sQw84_QK%!hht3SVlNIKllfvCb*KwUM>O%8}bo_pv*?}cI&wiMt1z5W8rAxY=HGW9jGuB~K zQ<`8bNt<_l>$}_s1L@4e&pW0@bK@!A83OnaE;Skz~u_FjAYP#gFc&3muCG#(7C z8uecBzI)bC-aQTQN(B&qkligFT4mJ2Xx+&!U&&_m96DM}KO z6*&XDEM?ZhZ84O)n%!$rotpKEJZ?^WFz2T^q&Z)4nKP#MfsZ~Tlfs6XY05PDT`vJO z;Vsmj=SS%yny?f`@t)3|@GZpm;$3X>YEk)w?DRfMSJoGb6%9!W8NTOH%*LF~F)CEh z?-XzL4$2RVb4zY>I5h-1(<5V(n}-J=>mF?|OVwwdRpEj3e3F7WEZp)A!Q%NL7xY#+b?D3^2>AO2JuD;>9Y zfjbeeB0KEhh(UlMP<2uYRY6Vc-SWI5lB}gOHK7+zeg52&ChzwPiU8(OM6tqxp}ceX zr>ND-X~v!^k5!64U;Y;9k&6w}=XqmfKMBCkhHS0fDG$2BLwtQY?0fXAqx$)k!5h+6 zy6ZKrU3wWE)mWYDI~+f#ha?BvM)=GUY}r)LcQ;1AA8`4|v{&-lV^uqC`C~-u)1FYE z)Z_cj&ToB^6`;N!yF`F>Ky< z|7o-P(UzO%${wB5tiw5>pcmh-c7|C6D2jk|vis}v!ESPH8B0ZX?d+$p6`m` zcP0minl-2yxQfk@OYpBrA&>K)Kgny-h&|A&sCINw-oesnoIT%9zbhjD5uKbsQbu_P zW-AMrTkuD8C=qsEawQcbzd_yD2RB7u*ri$~UD4S*^{`+-pYhteqe(;{q55JWFKjA=4Yjr2|`%)!oESK9M(_E|LB4=kJ`=x8t^zPdRDtG6Eh7w5R zz=XlNw4v_^8e#QkSp4{EU!ZbD8i<>n+XurF)>#p0$sEZA8lx%Q!fB4Gbo@{3$(JL7 z<q3SmR98m)iEU!%|$ z`g!!Z-hk)1Sj9~dh?MXzz-Y)?H8+^)s$0`WQk|k~Gb-xzZD&Q=-Z+PfZ(OChT+Dm4 zCs&3;YO_K|RMH|y28w5A87DQnlL=On1f?z`^zv#{taL^C;A9PFb8?DdTgP)nEd`8~ znQ?Kf>^U)W*7fn;;7605ky)Q2h&vc$EU3JH&0^AIYippRT7lS-xE2s_R0;gj_G z+UNz-_H3$z2M-SJw;8= z$%%^SEbA+{bNl^~hyW9>snO#Nz3E8pecf@-aJeV$Ts+UR&TL*Po`M<46CYap%b{$C zG@D@k<~wptwl7$_=$I0R?w-gH7f!e&2tXHILz7$-IRS#mi+qLh3FaBsQ3cMHj4wjo zu+X9|x7=iTt$d*^De3W2t{d)GEILU{^Q<6syyo03XX9$f1PQQyl`pB|W<v&sd#|)1sIXLy%}aDIl+;p}xL>FZk|V7P$9D9~AQn#Q1y;US zNr}6t96yn@a33!h*(W40^y(@tA& z=i=Sy5DgO^Ud@9h&7(Q>bZ~`@Pm^V=+SzfoTsG$HBKR>h>e0djk=*PFTb!_myd92b z71JQ@#9gJ({M=d0q5lox1l3QjaL)WW_ss^dyH@Q5#2H;LCYvlCHE-e9`2l8GPV60n zrC$Tb&(OujXODd^nXKFA75za&c>3gHc$ZnB$D;cITUO_tCA2LtW_?I^u4xu=uY=mjwwA9f(!gSNJV*QvK3-kT) zsfd>Tre%HiFhICx#iSd$^-9ZTsfaT%{v`cJd0X)enFy_~XMa*b?G0b;{yb0n`B1=c zzoqaVRHay1)9AxtHG_$4&k}k`u~JL)n$(+&^K&C`gVl%B1%)!8!WJ-FSNTO<2aRqT>1@qD zaQ#dl%ZalQjlv4ycK-1L>N>)uhgGPpn2EC-@b(N5`lEsHBOD(#+a0xy%@ zbI89bnsvbgPq^TO|v}B&5+yFK#%AUrz4g zfY~(2sj%YyYQgfBdEi)%Uiq6|Ctm}ecC^S?N)M%`)d zsqq`gS^04$b*&<*Ux0sZIEvTgm8JT2sli}W@@tPtT#_|Cy94ug<ITg^CeB8_i%3=mlL>r&L;V|4eUL zocU@h^6dG{O*-wYY=8FdD)DuvH*WfKLOI^i}1YCJ{ZKWz;kbm_^jMqIEnS=FzbAJ>y)U>YLvg#E|dmU!Tr9|s1ca|}{ zGySyl@T~d;h$nw*=LYQlp=}DFm8|sub=|d$+zYhw zYI2`_+!IQ*)LWBdW0GIpo`Djs8;J5L_^jsM?`$X)_igOnEgM&AjN>n}7o&In_``F- zwS7&NKOkt@!sZ63r%|Y?)nxa*u#4;W3{fdVCGI{H*RuZuaS#eExm=vUG4%Ah;{H|} z`dgTh?mbiFn{e>bxdLgYitN;~XAviuY9tfv5y1$w{iD%hpkL{IA$lKTs@Opv5_O&F9@&9-V^*tUYsT z_f87PrQ-@XWUm1ZKHkNyENhW3u_NyiWo4TvF6;U|+~Y_Xb3L0WfU@zj7K$XV@j+_t(0M>A4%=ki9fN_8S!!pP$~q+Kz>Dok5%4Xk&Vz{pGay6o$W2uzBck(Be}6 z=>VU=Xu>40jw#_B;3@g2U^~mSm~z8CL#in`X}x4|pk!V6_PLt}ipn*xT)RBr%fKX+ zBcu3tR;Bt0ex5R4mFY>F?;dNwK>ea{*f=1ql*r`OG{`P(|gQO64!TC8k zWX}s}!6N5Z_a=WXrdc8u`87Z6T-v78i5DqyVzg>k1FA@nGbdK@?(syi7CT=}P_Rf- z;O&M}vaGm_Cp0ZtCkzZZi#W4du4hO4%p`fm}(zTBo_dhER4pxUk9t7}v_xVG@iHDieK|C|ezG6lKEk-RSqNXMK zls8&#Rf$E*Kva~jo2cAH967L8_m*h~#S8T+oER$MRX6nh0vF>giFKDreP(n+Z%B+B z+QD=p1zP5lF4l3m8yzem8g6Hc=$b2UNPec*`B{08HNVWJ$Mp53Xp7e!cWUv*;}@0# z!$~H7nP|4I^JjH&{zlRpE2Cu*p1DP_g_o2WWX6GLLx4f{O0_S5*zO98Q&lTRus-B;boo^cEFQqgnm{%62E zx^nC_{^_S%_fH+%QPxL$aeue=2q45IfZZ$G^k^?G-h0VI>(uV~T|sfNzUgv9_!VVX zduJ^_oq%kIIlUW0#o%^n$?d6>J7w< zqp$lLqALnF7Pm&!XEe{cb|=t-`<37BzAX|Oy!%3nZfd!B$$aFgMVqCIUUDk57|jnp zUG+pr4KX&5a?)n0HjG_im?0yTM`Y&B^I!jqy7z!;s(aH%PYNM{0HKE_p%>}WYeMf` z1Vp4u?;uz(2`w}UMMOZPi-6J*!4j$zsUp%uIw+`sNK^R!{AT7qckZlvXTCc#_pWub z&RTn)vvzrRIcM*@@4KG|5NncU#4*)WRkt-XJ&++;4|*R-l!-lcy399G`@@6}?Xmdw z-wI>R6dDcZq>6nOWQT^uJ~+EFKRrf|+I9yv)O5zKYeg zEOozS7OT;nFE>0}KI?u*`edGWhsCWAQcd5n2_Wj!*D{ z{cb()LlkosU4_LPAk2QhP* zIWIui?Ur23$iCK$f_utD(zd-RbF(m%FU86P{kqen20%Tw2QB!6W z!A;5OCMz#FdwbEw;f&k-Vo7Zd67B1$Fv%NklKV2B{UzSr@9kEh=_@u7mY>l{s)qO| zWh8uQ!AV}ZF|V~%L?@3Qj9>O~x@Gm`o3n7OX;b6l`oV&YyWE}Sw2*tLZ1F&%6v)?0 z&Pj%jBH!}mc#BUdGelO)pbBUbJ>t-6ea|98$MmXdqtaK!k|n4Q~i1FzwA zI>D|c|K4%u9DQ=Ep(6KNmKpU!(>v5vL+u}HY(*l~LzlCg-4)vLzD&FV%V$4c-KE?k7 z`Fhrlnrr9N|IWqOg<}+6QZwk`XVX3w{>}X*F9CKTNM3+mX`J98Kf*H}_vvv9L;iJN zro}&jJ|i^PpON`?eOmP0K{k;a8y^SVqashtPF{zPOS*4;PS#89(|eFGyu-ItQl1&! zs?U=Yr^ICwWLa3TCl?bI?b6@vM{?gGIoiLKxc`b}f-}@X`L>wU>bIiYO3SIejOz`2 zixmQNNwCWy2r;tMP@09?c15vOE1&Yz{Y(ebMN@1}EYHl9!C9QF^)SOL?Ro*8EgALY zyi1t)iUX>dE6A(4)zxxq@2W-D#@lAEcI$R;$-k8Hp?S~SYeE#({GOMTHyzt8K|fi- zmv6Q7ZmV0T%T%9>3E8s5WC`D|F=&6+w`3 zie#TROn>HR%tJmAui9-meTF)UsgV7)V@Nlt5?Nr4i?&~iEI8-rrkKn_b1ooExJmGC zvbx~9ze;~-zqXD?qqoxQe0jN8{wqtu(e>WL*=teGz3wqdj=|rC2X&%zgx#jRk&mWI zM<=M?}}cj!q*MMtJReBMUwTv{80tw z^KSQn7mYO(<@d_@9zNbyJ|AKuWv*L=^{ckbBc3Zi(IJ{$L+?kuh9&YZQTu^j-}ZAr z<(_p41GD^H@HLX~ADsfT20i(wgNqWIH#pRUZm-_LLX;oK33+jfSey0t_aEoR+jVTs zN@elhv^EN~rb?j=qCL|MCgkYJTMYWECR)0L!*1 zZKaND?-n)Bei`-;Vr#NAgI!U$ZA-XMX1@1jLs;Zt{e09WzMWc?0(K8 z=u#npzV7Lp;?I*WT@ELDAsJT=l=qQxU^i*C(=UnsqRiI-Z|Cx@#9J$P{v! zaOq~cv3*AjDXTBvKDz!ZPd0$anVTa{=zA#JefI^fqhU% zTjrXN^OX$(sb?Ow9+ljskrILR)616Sje;-6Vp1~bpUZoFqcuc6kGITxPhRk5ky19q zY@d;H8(#t;2NnZA=IfoO(M2cZ&%G72wi~SBN zb1&JSsX1x`{ZF-CFZRWt7aPZ&%#9UTG56i6ic((x1zfGwurNA&Fst2cvyEYp{bHSA z3uP+DPa(HVXiYmW1gE5$M)UKB`iQA!AqdK*N_|%l$v$ABRTTFvW}jwsI5W((cY1WN zS*F<2K1qkR+v~8O-t~5@rYSkE(_T|Nq@4M-MV_*X@i)PMnw+KU#n<#NHf#WDpK>Fg ztOoO7x=%-hWc$mmiHB+C>B)OwQ_C#qIt6Y#hh+y?JTY-wn^;$zTD!0^H4ggtYo5*V zOX3fQQTFtC3n9VYl{xD<(ycKcZL61Oyt0m#{ni_CUFygskC}qN091KSd(+%dQ}tAL z$)xM{^wR$0k(74Zx8Ka%SXL9j*W!+fyl{MMfh}gF!u>xkaxap5ayFQoAEfp-!|18h zgk#RrcnX{}vdub_OG+H`+fW8{zggSRQqAa};NO~wPQ9A%(-}?(Eq!;TbkE?Q+-Uy6 zq46KM(FAvFW5yPDWX|A5{)IyW{0}#pzX4GHpCZ`*odhgadjG{s!Henw7u5opmwMZq zFAGC!-~|j5=KjmY{jH3~_fW~ACCQ@tb-HDA!bJeM7X!hBR3?5hVXDJx$3H|Hc~sKc zY}BYHSm$~rAkWIIJWKs|t~UmN9h|OT26`Dw;}35T1ldB6MHnnYHguFI8p(lGwxf?# zftHYl%j$Tyj6e~WP$&qw=skF8P9}^@Ae%0hl~P@ z`2Xrq{H?zGe_r_2`oGtAf2V){f0U*eYP$Nn;7!>5@1ZBdS6>VssKl&G&;5@*S_Itw z=3M#DlU3aL{^$gI>37ZFngPpi)6c0#?fi{k(N*gNhco!Q$(P@rtnxlF0xrOPD0#+V zkJ9bahA3&T6RciN*gB!#C?Dkp+`jcG8sD)b>$v;|g^GLR{_V5&g4+~p(HptBGfJm5 z7&R>9uF|UlemW0-VMR$^dZq^|-e>r%;3=aG2k0#wQBK3jgOek3@s%{0TuFQP`3s0D zK!kJZ7 zVxcd2sNLrP6Hv7T>I_@hJ_#e?4Zxnt@zz3Nxy0yb{|J46#KjNw#-0ALhoFW5a`lHh z;&iUKBruciK@4?5rL4cKM(juXlu-jAoyzJ+wirW~cC9;qaKD#~&Q!5QD8`_NMelS` z7ne%WYOKexrp#>GYWQ}&J>&w$n26aVE3bjf zcoE#?6Y;m%#eUZB;^Wm9qYfT#{v<6j!92HY;jA29Bsm-?ikc1)N2DpHV!}4)i0+P~ zHy-MDSlb!Ws(GP;C4i!CkngOha5y9n4MYp=8{Yc^eT|k}Y$XzY(F8J#z6-aKnG<_8 zdPinRkNqAr7<7b+CAd(*Ftm2ldhy1WB+jgQ#13120B;oTuJ>%4rG!Q!eHS8wc_egc zi=$gLn^1|TV~abW-8aEw>@w*Yl6Zol4n72>)`kaJis6^xZcDAe_ES!xRyAacn*ILhvjCd&m7C8M2a0@j_srqqk zN;wSS+~cn&hovfu7Y;;W*-$ocHjs?&llt@c%4rsmTBh^qqq?=PRE5dMfNTS*piy+R zz8?MF+j&dY#5KOtlKhoR{oz@8+zxXf=OwW(r=pDVx45YL-fr=A1Pe1E8L8laj|+E> zf(+yamHI;rs~yl0`Gp2WCd&0&kuUU6c7*tcI}_%w>{tRO`L-ZKIfP)WSG->FxdAM= zpEH}wf<8#h<|K}9f{n-|c*XV8GhC{0A9@8vHc$+Gi^2db_)pLCFjE&>&$bXTM6QN7 z(GHLc#6r9`0=)#XG$ZS2e35LiaVF6$NdE;;7wDcjH|`C|7$NTVUx$bSVmTATY#W{6 zN`Q*YS_$V8XUr2kU%~t=IC7@Qo|^?k2APfr6tP|4O(nyb=m4V@BL8!uo{PkHHkWK$ z;!@d0NN@CgsR1f321Dd_Qje=VJ^`2;50GoZPtm$B-~h;eBUK=KQvs9W z(YCg;i^2mY(GTFswz%*a9>%H-N98`xAKf@cmgIg9?z$g0l|brPP_ew756DUP1{T!= zXr&*;b$H;ZgaKZoQCf{p%LTW3h%>#Gh0H`~)8kf$=(;OtWb2jtKK^G8$fL*q(Yhsl zGO;ze=($l`ysDF{RS%o}xb6SuFQ6{#AADuvvP`n#mk!77L%cToy87n9K!?0K3ym5J zZX;F#vn~;7jK_A;V`ZzD>*(piASNo$WNBoa;*aOc=|$kpIkb2;#_DY(gs~s~rjxvA z2G+)aP!)aavL6*()H!RH8<{<_UGN~{uKs zusp4&pJ~n~(&xexo}z8-`T01pQgA+%7|Plo@prB;Xq`^#2886ez@potwe!Sr-KQ1- zV0RmHeA@+3NsW!ux3$!LA;il{xP;ZBa}l|$H^bdhoY!zW~Fjk${E{R04KAVw`{jHYKL2>lh#tMmI}tt)bm zpBhdcsn9#G&(?oRv-*bnD>k8y*X2$wT-{*|^oV08g4>^NCCxln(LobKt&Z6T4fAY? z^bzzf#CNG%FOa3s(~LRs_)~jTyl**GAC#`;`pU(^KnUY;VL2q2qYKIcu+xt|h=*5p zpxG@SUHFp#6V`a6b^wP8q#k`^km4WyLVA?KX5`&z9(E7^--S>S>iaaW)&f0}umR_FJz9-p-ZUT1ADF~j z=+?fWAWh}A^>!In@XTO@Mw6Q41u%`K7JqR+^q47z`fI8So_T5)#t`Yye_d9XBy9~L zJn2$F=1Ltt#KI4Z--4Q`#la3V@%|ZruMC-qFGCNB_1_Z6!y814T&(ibkL3oHi8g+9 zKj)`1{L}t@Bx_jZM*rlw3QhfkX|`Lrl9C|0Cs2V;##nR>9}}@PgS`aFuQ_XRKvKLfW$1vdh!8 z$qjr9mL{9(0pm(>%n%*QMo@5OOBEWedpC)Y3B1Dj1UgDfy+N39(|4m7$65`jthjZ! z*&xkj{mvA7mrV2Dxe9=b8AKb{(kZ6Qh<{@J`XChcqTUS!(j`MZEF}R}oql#;!8FC- z@#r4Ecib)5rL{ucDgcu#eRsC9x**1Rywr7&?!iRdlLt0w9%n6hbJg@Mc^R|Mhd`>$e^S zgP|3GP6d1NWg!Fr9&{MwH(Jc(=msZe2_)WY^gKAkDZsTAIW)~JuGz?}RWL@NbDX&& znpg^c)KHwHA?B^!o@qMV*0ro3-0U4G_bT&U?HQDxo5{0Ar^qhJq15)S1KR@_Gp9nSpvdv$B@y~q6sY<@cW0&c#e|NI+|7U+R(>V?*susFEBzIEYIEg z!^fx&5$EtZ&CQaL5LryR{-vpDby*;I z(hTqI7t-&=Oj>68xWn)QHSf2Pp&mkFSS*| z10dWinl!TA5n57XFL0l!=acy^oS>$*LzUn~p_)V2)3Vcf!bo;oXas7R#>8N4E)zlRlhk~H`o10ns?`4hXws5HIJ z_%Drna_iP(V!sIVB>>NcTs#uG%{!@NB1)i$?HgNQEsj7KqCOa?yf7`4wWkc+*(Pw2 zUI+1g+v|gQaY+ZZYw7$_=ng1UQ)Vs{S&nH@{X*k+9E`{KhCrEhL4AGHoM{cl9A`U3 z?41of=r=wC)ZwI2$Sssq(E8(K!QBd;#0H3z;MH4X8N=8`$$mtJ$0TnZUBcM6x6-J1 zL*$NmubwvN;?Lj=-)Nb=q*tT;NSd0i1+iAD#quZ_)QN847$1QQe!f?XfyKJfGRt#k zTa0QQuneK78(l(g%moU)gs5MCo=XzQn4{|(=?1cwPZCe2##+U-QJMO9YI#er0qrSP zy&I3fARR?9l0SCfsU&+vd6%M__*E--4%PyhNm!WU(90^HR=5#V)=uK+Rf=+I25A#j zXaOe1o|-8(GYDV}HGz?+JkAUHekUbd)D}TP66Dm=J0uBJ^57FjhX>IS1A@Gz4@*{J zr!Y;35_I1S142#gP1e|sHxm?y2RQ*mEBKw31Ad*G+ElrOL{`KmaJo>*QX%D`Dn9PTmB0;%fQli?I5%{zz8f0sQzV;{`d`>UhNI07@javnNioVII z#7gH3>Qm!XnRGOSNf4F&N)RtmPuW>SL9QDq8o>@!NLElh<&n~s>w=CK^hJCfPxB2J zlOlnE^=jVtMg}izq0MTI1PK}Im-Xq5VQsrEyc^cbusB=wpY67!Z3K8 z$mfTx!z(INsFjiom7I$U-#X3)*#2UFzG0`Hj#0habERdrJ$~3X1B}M|;px4{*gphXjN$rJL`0XkgBh*oKX$FiNNQt|roB zQASu_&Gw~5zy-?}9((PEE@vPHwr(a-Yz;@HTdFbYHUb$_BNLa)jV zao2^5)4$Qy6jQ7!F(!7hsi12kj95lD&5YAwQ7&fpE7Y&3M&}X+7!SB*3?GO_n4WxX zgz*EqRQEjTkf=)@c7_5}C90kusFeUSe$5^f#av0KY+p#f! zl%aD>52bGi=lFzMWP)bWQiJwd);=#7VMrLW`-F71*p3U=8pmkyMY-C)7oKpc*9r6fs6}+WjH0{YB$H&Jx zlidpmR1J!n+O4!slZ<${VMcwiYWs@!wog~RPceUB5V?>^Ff>gM9#?XXhqF|2sIR|wV z8Q&BxyccRv=5{B~-jkbzj<(2k(tUptBa?~S;D{O;M!=^yEKBj6npbxU`OPsp#eJTP z4XNTJvd?9WDq4J1LpER3y>OsG`v5vW~~3!pMdb8zY|~{Z;~gvSz^^kD>Z7MGVwmEW0lBq0_n)_~AObSuoLA zj}`Pa!&6`KhMhUKgVdR{J}WtO0E>ZmSXW(`eK4BCf2GKrQaI4Shha&nhcmRRhLw{^ zsw#C6#ye%|`e4&NWB!qND^Yk`u9PBDKrgESe9CwEo4Smlz%9=6W(znb;g*+ll=-&o z1LEEtnY(pXGr1xs@@t{upz6V!!p@`#0I!%D>?n``AKf{Ol(CSPQ!VRQ2#r_0tEj6} z`r=W$pjw3#-_uO$PUzb`Xdn{Zd;3jw8!+Flz#jvkrgH88{53`lA|d{CUSrx+7Yy58 zCi+nz615X8-*nXhEjK1e*pz)B`h%_97HZebg7UD2`pJb#>V=VT7dd_j4@hUP279h4 z9?({T16vry`gfp694gucA%Yzfb$xaRj9MVvAig310dB&b=0^_S9*J!C80jv^o#+0P z(r?+ps82hAf`n3_$*&h^8{n~nfRQRJNrx^B#hkyvv-_9|WKVNm5DBTbHTzz`uO@s3 z1v*CU)h$En$Kdee{XYH zy$eMna;2nPe*tOPyx<`IJ&!oLCx??Ao16dAnSi-d>T(;8V5Xnv+;7_&X6V_Sn(|~8 z@Xt(FexhA-i{a2@beBle952iQ{Nc3+tSDNvn|v7mT;>^wiLOk03jGd;5-ful&~?x)1h-!;O*3JF3U z&q#;L?|2TSvLY1g*vvz)M{!=>^oe&hO*+IA0Ht|&G5NtApu{D`zV#U6A3`0`Mx%jo`vV z>5WSkM)`;~UMJ4lEmY$8eD|?!JYR=wK`Hi^eYn8Fo42mIUWPp2Hs8ap4xg(7oI7Q) zb@U7F+Iq~K)l3E)jQv~}GePv0h{3cXAXGaBa^>xqF$4J)`)pnj)?Xk0un$&WjL9X@ z3M*T=rdeQ88jt{WI5v{QLnG;>ubnIWJ=ZkwmWG=Z?BO5W@ik4H70yBesGkl$4toj8 z1jtcPfzkQ}ZO%?34KlRVa&d!M!1ABdAwXDw4iCR`J&p}69a|zW(iEPJH00SAy=XnW zjf=>dJ(Ox`7%WqelUUg_4eA{wZ>aZ?jWi=EU|EAAQLsSok%1w=26e~>xqBF@z3f1t z@BaZ-3XR0iEAo%8{&W{K#i{4|`yP6+z#$6$5>M6Af+CMFjB4VGCRGSAaK7a?V zom~5PigU>*b`EXV<<(j;bcgf8IyO=mS>!n?IWvK+QJyRk7KM1%WNC^?NSSp+9s`Am zE1sDnXLPlTeRrNvTKlLo?z7HITsFf$sPijI7k-8kysS~tiU^haZa0lrwNl!;<_q$; z4-r<)|1Fc(SCB0rY58m~o=bQk=m+DSU_28YHOw3j?oGYB8t;O;q>c3@T*~(81i?M0 zBv>q}Ouap0F${uQ{6X>za5CGhguA--RlIGT35^C~ZZsONr;2CCvsvO=^g5|^n=~AXno(U1^RuTFzdogF!j!?uEuRqr<`U?b1 zTCT2Av|H)LtzfO@ch^2Zv;_-|1i2#2-kzu9ssm|CU#dhhG76WEazMD(iY)Nh-}klvW+I@->hj^GSq2!*U~UD>Uyp47t9$ixY+6ZOod+ zgSp_n@e0FLse<{Ecd?kGFCJg$P`=<;&in1rH|A8-wZT&>Y_lK!0>BU>vm*@Tj7)bC zU|caY$jH7mHN#H=K;>}tcA=Mp?nGx@>M~v#sHE%t%F#B4AMJ#aR}nm>!Mb?=Zn&3j zTr|h)w6t<#JWErgS-W71Q=KJH)XO@G-=qXGlazu2*>Q2WzI+CZ_|E%E1EHe$3D#PUfdk|%6Z`; z4txtN<}PxGXK%8w4eR-8%VLLRIE|kB8e)Z~cKM2esR4=$SP)s{UOFfbe)X$gEUpkF z4uHtls^7#S1STL`vOA}$U9sx4e*tH%wfJ0z=Tr)tJGycXdk9VZshn=>R3l|QNam{$ zR1vaTTl!}O>x>nl$lYT2l_j_KsMl`uVwwx3OQ6rltnHJ z>ZUa?C-HE6zt?dbVhg90RBIN~2k%#m@J9x5qRHgPLxvWOKA&l|a;rrSJq0@Z$+}_v5}W?-K+jgCa_pHlr4- z>E!8$^y4mk?iKO_fiWL+hZp!bDvp?o(9CYw8M^M8RB%nRd=oy5ow&H8x1f6r8S}^FKRpBVFww#|y$6r9r8WS*Okw85i zSJ!t36T5AS=Fq)4aBW&?4fjYDAtl-DaeFhTAat@HMJ@R8<& zEANyC2-WjU`WI9&vl`d_JjGCP2Ps*8-kGUW&%|$K0xLt^k&`IUCqL^?^yJ%01hrQ$ zxYD}ok{KWQeQ%FzK!HMFn)jlEnL9}gH|cJ0BwbHYr+bGY-@bE+vBbfr=rVOH0!;81c0%~=3AEM|=v(#MgYd&X*(qJc+J=v0q{9Gf#$ zF`-q)5DifbzA9R}1|Z6a!5UP6{{&9~gSO%JhCTH)WH3&bbQ`dodgQ?hmFf6hZ0L`; zo`N~ECN5y15_wwNsHcptjIf5>83s+Ksj4cKk>0m* zQ?jq>THYExH<)dYsfPCbs=UPwSkk`y!9e}LMIyP7ul)A9_2{D_>w~);w@7=VcMd`S zs)=DPn4UXFpYCy;h#>+1jB;k`(Yhp4iH^dg{9<&^7$v;m0Lz)`LskPDUgBWQd|L#~ zbMz%$D7N!nN|+jC!Hl012QKP-Ov|Mvd46xQszzbKOFuwg{0j?3E!yhWJ1LS|BxS&i z%W_GpVi_ZO?e~deXJ#x~BCtowk?=q!nSV6gal%`1PXZ z9UuYuh8C3?q?1Q*FoZ)F5Gx980Z|FJFk=-UjK|Y4ls%!05pC~wf9U>+kenXE)m|p> ziPA%UUlAhJ(XFm<#!41$U@D`Po8;33WaGqS(+pJ7B%o<{ki0FZckzOh&)6z1hv0{- zDb8BLgfW480S*qqH=HXbL!*`Vymhtk=%z z9)3n}&oAQMfK{5dl=J7|nMw@!E-lo~UwN|xTOF6+;F%`2f=x#EDK#^tQ~#315w4Bq z!YX-v;TS_1uTj!NG$-Du%d#NTztPN4GWsc3?$EtzF#HM${tEjxoA$X$ln*5og}cn6 zGxd#UL<2bUl_@drQ0DVIcQNPaT({~(@QQRbLxAh|*qPBEcj-s3B@1zncG8`h1lfQ{ z7ij@QF?r4_^rm6cmVyws!tuX=ByT}1kfd@));FZa7;9-S!8M2nSWJfQy}D|{87Itd zsd$MDxDG&5iB>F7$-9TTSyCRlAP-i*@Pjgtls=3Wyx|@H(CAFv;lkBXV*cSa&a_ye z6Sc=)xhNn5ICCvbv4;q#VHJ(Q{(+o*1KYke} z+9$l0{dlGh6*{uS%M0Pfb#(W%by1{0Yh4V{gp8c9WL2ebf(=%)ZM^h`|?ygkKrTFYX;xzp_iSH`TM z$q6X*%Y4Dc&zsvg>vmZN%*&2y7hb{{Lb``&FaVv#;cI5qBtO6n0SrXdEq`|1bON4A z`Qi37+-I;33bWyVdBw4nA7F|V%eZHNj!K9HOw>H_4&n`>uXsKx)5=4riaI5BGFgk7T2cSXSp@+M6eQc|kmWU$<^Y{8XQaSzOVCoQ>e?HODYd%rW$g9hqhpI&zuyb+fq z0i1Wsl1}f2+Jdl#-WYqX`ww9P2y$0D=8g>hAr$rEc~92sWNu{?4LP+F+dcs%f*{Xp+kubF;%c%dSE_`(0n(W|MpWvSA0 z0(&6Ef)XuO$p3J~7Hj{~T737GC2b%3+x}k}{D;vtZx?kdWk!N46&+`ugLmx;1RT8pO1q^q8Q&_@@!~dxc6O zp$E*Zc0YXeMO}4eAREkOeVtiiitb#xJYkn+$O+Ao3}ar^)GShzD*^2;ap?5lMpEZ} z?ntqxxFdsC5Xhw?0-+nXEsl!vxXT)$}zkgE9rBnjz*yH9atc=snh-jr6 zwN=zIRt8d?%y?>+Zc~d*Qq>-N_R#$We2j}?b7gvzrgrts{)>|r$>2M+a|{1gb}JRi z=jRJ_?3a1bDzbQo4v!nrm#fmgoYd3rzte;|f8u^7@#U%YMK#`0(Wr&P`8Ti^lr(TT z>Chr6nc33tSiQDTQz*pm>+_pG&rY+M&Rze#drEjE{IaX+o9rF~9sf`TQ^B?)2YcDulCop2we|U1BA{&a zJ8^=3cC2^&&K7srOI~L(SSx*4zZL00v47dNJd#ScNVv@X+_z}I_3r1X;;XYqMgQEi zZx0(=B8R7E)vo#fH=+{q(#xVAJjVPOc%f`f71Yf)6n;Lhy0^Cz0;%inmxQ; zZ=)r6cn*`#b=S%gJ+nHuxqd9}6#RTBC6u55?DCg@FmG4x{`cGdj}rceU+({pK2iVr z75odB!2a8r{*O51Kc|$y|NA`j|J`|X)|ame1krNEZW@09qJ#IPoL+>k{s%!R1SP{y zO4Ze!|DPDg|NfGYTf3XuCGYZ#QZTNhed|LeirQN*CTrScI zpU;&S{K2BTaJjhKK7yD;-I`ai?a<&AgIJ07n`g~v6?)xS5T`t;>H{TC(lMSl3$)JW zLnq0|Jm0Vz7lZs3KSDx9<=M`Oix)8wx!P5!$;{h4|Oz`e(Z)X{A z{@Ddc={Zj&sdvJ&9SrvGk}rix*HMmgJzytk89FXNifS%8C6`gvt z_~3v;|7POE`4gVCYEP!(-ViSuQ@$hSU(%e}G@MB~n4{%G=|A!pV$IkyB`y*BA81Ej zS*EC9lc&yXYH=bb4__}|m_GeDNxF?8xy_!FKWsg9kxYzBa*$LRz1KOO5({-u#%IT@ui>p?SmU32 z1V0vgN<1fp8cz52)lYHL3_1P08WRuJu|A{0!i_(0X7~POSBRJm{CK*Yd)oYQOw!Y~m*vLoMKsMzv+Y zPsm4aCm5ne2@l1_ITYPidER7=TkRy;Ny^DI{EkDdFY%4k`n$0EKHOMrCO zTbi&Vw=XIcq+B|ic~RHww@Jq7d~s5#WV47v&UP7`livzLo{olwww3kDU%>Xwu4U04 zaiMyZ0L-kp#su>m4WhJ&>UweM<~KIUp+rc2N*P1w%sf*NSW*_cxWK=Jr`G5#P-;~t zz@QQn3N2{mmloL5WYJ@RI=bFxtrb$%?A>H%{W_!H$0_eFXB^5O~6_V*5Zo6N;7 zVfB>s&ufBLdhMn=&m5!K3P*zK&A#c*#~2VW3qBk zjb5HJ&@?J!PvZ4{b>LQZ;3S&U=un=mqPki_qO*E--}Q&ygW-oi`eI(3yyP%+d*Ly? zTB!b-qwd?$c{`{VDkt}ajU{~SLj)&*VfWlcaOP+Xlfc&J-H@(CdT!<5#sAwt#kwVl zp^M$==c#*%u4}MH73=Jq6_fvHKaugiTfsQJ_|y9Lk|jqST~m{fgo{VrOvE6I6{{J7 z#?sW9V;pyS-S@-6{O9#Fqczk?lbV;T%9EY3o}Wi{icw7p(cK`}8E&c0_sn0=l{Xr% z=hq;zeyr4D!-p~@lZDeX)vFy+EQaI)e*fFKKE+4O->$s+3qY?xd|-v;uu1P{8GWK5 zKiG{0x|4=(kCT*pY@_51iu&s*?VeGzaR&C@CF@oUX=-J?{SS^>@d!qK zF)Y)`_xfWwpTgA zmhRbzK>wEJ>3-YSuMZk`T~m8f6r7B^c60{lw`3i@U2G-g<))fFc$v#I;-jtTqpY^r z-2!aC=E1+@O1v*3E?j5{9nRk9? zOnlq%WxjQN&nBT4FQ_{m_d}1iC%!5=ETmXv738HQoWDa&I0MHJ%T86Vh{y2BNGKXR zMBcI<7@i!Dzm96=P2@ujzovLAk8R)n(No;iHl0O(=wN?T%;595Kna~0A}n7k@l%+U zCJ`zrX2IYT#QH&D>u4t|UOH1taMyh?yzcYQuC9eYYZ-w`r^9|xTanMiE|VZsbQd1T zPU_HlTolv5{y6jA#e#alwY`27mDlSvX*qMG^1Eh^O>% zmOl)zl#XNn)~u(C!wh-v>wQac4ULv^D;ae(jPm2?!@wkY7L#%hKleHz7fw`*P_~)= zsiGsdU7VXh1OHXmHaOD3{jy3m--qa)7LYDokD?5QGfU{jXfX{<@uY)8qn2TI0ByfO zPEso8T*KO#Vg>|Zyf7a3sy%=i@S(a9d^yV5OEQIKhkjlr>JzKmxo>q$ zg7fs=R#k>rJWmx~*sovo&!e!X*}CVQ78zp6ajTq~ylIO}I?%E?hLnwEgn;!u`J%Bf z^^o*5bJ?ZfjmV`mi5YHMr#~KsrF)z#1v&-DhXA4?NZV!gFyv<2`xV-mM+Y~5C@j+R z{roBY)mOzX-xqw4{2bwCXFo>S3>ron3lOGtwCiG=F6Bqmqv$e>qnw<|@2!S^;LN|Z z)Mqx1N0?!t3ZtF0$^Li$0{FqLZ68<$ZwFy_ zwL{|E7P7YG9=(=&n0mP&Kr*T2br@cbhp969;?;Y>Rzk7t52>RJyN&HA1O@AaGdU(@@QB0$MjJm3J7EYT=?C9hvtl!818Sp2>{rr}j?zy5{Ap$6m`#`3$ol z^N~+}uVJ6*qgSqV-~9pO_VV=Mg*Yo5^#~b#@suCCZdCbsgH{=wt0wUE8b?mZo_i** zeqIDC+zH38Mb>J$=xQFm9sTpS%!h!9WCC65T;Zkeun_s4aJ6sG&HwydVMTG3=qYVU z?X=4xZLZuj56b@Oa`H?znYmct=9J$t#6&UNtzsb&vI;7_DEWMW!ZI06GXBb=d?>8^ zoY_Ks7nKzidv;P}e;6Eo122@nka(|0J+tT%$=~W{&rz=4xzUJ$TKeJWonH9lLo#?T ze&obX@FLf}6A-8o+`XMXto-XwK~D(@5m!PC6@K(N{j+)kU9`O4Vt1CYwq*LW)`^FY zFTbr<%XYfv6Okwb;Qa`@voo)KcR@eMI3nW9dUnEb&QMd)?m*xcJ0SP&k(5dGPRLv$ zG-x$^XX)&vj<%np00(%sjR3hcb@WRWsZ~p;bor&#R;>>y-6GPbOPX9PM%D%2l@-|} zz-@|%D^VX+hrTbgNE*vVl>YvTq2iknrH+fyk;(?A@kfv9JpFRvZRdrBN6iFVl7DE2 zuMGS8AJVLy5@@w$6ePcOEL+C2Uwov6eLUi#XXyw|iGJ(j)G3r0x2V+>eDUDB?tb13 zT|o?8x%Dca4qPi zkrgehcrodh`x8@Gz7d0G)W=V}2cMOv3u4O0a9{>*)TFRI0kgk~YaDgUcg+9hT6~!6 zQ!cC+>?2zko#u)K~NHbMlt|d%iB%?*3?=`pCGGi6djaHgA`Y!8|+p~_Kx^wKk z-d18TzyjlHRiJwLBr`zgJV;5C;;mXT7(?jeIQX>HsS%=kLQnzlDZm6D0(*W1^1t+6^v$943J?}$X`D_)mgl(JM z{eXZo-gqH74(OIemjcI``<00VNnI&EolZEtKL*G7%*?e56>J5Grt*Iirgc?EaKGfM zG>oOkaxK4T^6@v$kLYidKi?zf$8ImiqevtmzMuYc!BN!C>YQ4T!?5R#KSRIeNS1g0?|Epnanp6M zb+u)|YxJSZHV+B@Lqe!UM$QL}J`w>S_yh@c`4LiX6xTq{$&WD3t3mJYri6zsb(yZL zb3;GL){qNv4-BYVUi*~)S$K`$?Jbp&;1O~|-z+{rkN`r>M+CIdZQW_*KLGa25zpgPB)bK`S3vHMLmwx^| zXm5o3(s{2`jUfkX9tOhF&|uDAz+-3Cn~hY}0+0+Ek%ybY?}~V-tdDzN*2#XiuOy>L(d+}!JLLLf&1U2~U}cL2>Z6wSmK z>0uIluucpzkhx^AgKw$YU?>2O<}B)COhJ(qtXNRavpR_Fl%D4Rdf|g(6q5-^DRf{S zCf*LpyA+f|pUBcgC!kBCN}0>3-F5HkAhafBm8npG(Ow53%G>1U&HEpH7x-&I8de7-dM`4^Q-%ipwR!v#(srJ4!KGU3=VUOTs26F7#)bd{ipr{SiEIWM6ne0AKP*0kK#DX}+jQIw(+9T*4h^W) z3SvtPK*>Ykn)5NIF+;om07?uc!covJuy+s;0ibV`LqSZ?85iJM&NkeA6%nH8 zwJJcU4Rf<3bVUq2z}0Hbb&nxfZMt~j0jskhvM3>fGW!lU_csXwH&-^g+>(y`3K+THHcyaOBN=0Rt-u;7c4aDiKjp5f?xzH;aVV%%iSP zSSv;60|)FGVQv1PC3s5FF+|o?|)k95jQQ-q}64W9!jKGw80E!48gor3(tp5PH z_KfQf#%99|ElvtZjl@&jfq@jZr0`n6)|g+Hw?YG@jG%*6~H4D#Qf_--UPT{?^F|0keXj3A?re6R)YabP(F!f;ESsw3LEd7BMprNklm&z zP{@j*SknYT8yAAJkvZ3CC7^Ohzj+&`fh;FYkw7{w{{U9CBE%a26r-yaM|rXFZHyPr zj(+$dUAXi!?S&O<2=9rf!33^>X%HEkN@sWlK&m67as|c=D#(6)RqVq;!S{n^QUDh( zI7G}GKME@vsxU!*i{GZ=g&I_>7O=y3X+k|UaXc385rWUhq*Mww%*pwOK?cPjPFoZ{ zj_^d~1rSvsG-;;>%%6DyEYxbL>CYQ zXzX!HN4IDggrWl@oS5j&il!w+4FOhQgBhm~n8Qj#OIZe(%|xXl5ESA14ze!N1nltD zYHOG{Vg@!Mn`wGt7zH_9iv6(wFHM{a3bwqbroRNjRx2#;04AMp|GW{ zgvvD}Y(Fv5c&EzXk^7p~Fu;yT(zzbX)GtLu6NUHm(MQIzY-?4(&odsWtUf)`3Mvsx zx1U&?INSx`(`lTN_$nF-7K_TtA3zgPWD!;JZ3OEyw=xWn0NBNNhA9FWgab=x`A;(* ztHKew1)-lY47-^|pyDVUAw1$Sqyw7w-J-=%Dw|NviSWAc4bi(Nyw~XPJxV|jC(`R1 z`UJp@h{yqUb@V%74+*#cSvH0mfYEjlhm~WJ1acM#DnObZzo2~KjQo~1p`?+*t zfz~NTi3Yp?To;pI!J!raCWAMjRuXrgA}kfbTFHJQcTj`)JodYnX;CR^TcENy9 zp@L5Zs)MGW!V=9sjmspCu7taW)`+Crp^&$y*`R@Uj-Py`RRYmO#v2CX{(l<^C8&s+ zRIIQ1MH8yD(rcb|g%|`2Q9y{TNUw;cR1m$tH4uqLrYyZc90di= za?mq`8|{KAs9TY=z@`CE5WuNGUvju*$70H9pxw8|29MAobtr7(g)&QA99fwtAtej-dl*n!RLV3S0VC1G8FMg`4E%o9SKH&GqPoAX>yMKF>Qd>?N7pF=?tqyVfai6fZcCq0Nl>d_tLUOfK*Tt;gM zMJ9L^M_99L4r283L6E@U+>N*-I5ACt-zR4tm#j`i{{X!o+cibbG~^9L>;q*ofbP;j zsXkP40XxQ1L?{Et)#I`eaf;*@36}0WBXI*&PfiNat;+%=A@xnMD96#KAZjOI8!4Ov zxltm50BQIiO}d|<1+Q1e=c|jqBmgNBjl5-J0D>u+>S;jP99;#ixN0thK--NkrjmOQ z5JSoa9+Aj2Paqo6vMzDhlFc>(ZYu(5xg&dJF%DLbB4wHIrqUk{qv1?VZ89Q25g&*m zw&g(p+EW#Gt${Yeil=&4l9YZE7lHywC@j$n7aZY1t-Vhbq_WYPOmiJhhX58k0DYL~ zKT#x;z%X6{aUn=9!R+GEpbeAM281KPAds~n!PG%SuuuRbybRTaT^Tt^ZHkGh7KSBY>`5E6q;vM) znRyJd%KmT+5y{YSqCHd^=LOs6N+f6m?mRbxghcIcWP(M2C@@JP9?-%^jQ}+;GGpbW zf*9V2Ch@GG9AFhvX3wX*N!~4UwuY#Tkc`ASMa3cmLaZ7H9AsPYu96Qfq2&zZjD`UL z;7{~D<8X=Tku*VXrjUuV! z0hJ)7x={oQz#|dX8be${S`CA7^0_F3Y$h6Wq#`}!fq5cYi>j?dK*3}gwgwwPPK^O^ zz4OSGCzh?Xt_SGugk;vuq9~5X0A+_^YAoymJQ_z}{{Tg73z9-oS*>&TKooK{MK0_U z4e9v*01;^(wcW)U3(ZbHN}*8zM2cCYM|zGz#JGG3vHak~Q8R9BXxd@-f(Kp-g>amB z7?ud>UwEqnJHfj};2ik+rV%i@u5xl~N&XCXG6P;I$$VeA#(Ti18o)rbb)YKbp;c)T zA-fcimo$kMffQGE3?MUES`~&dvDg-gRXSs(0yIj^ULu;P20Rcgh*VNBl6t^js!EAn zxPlEeF$fiz7DA5P*6VQ{bms&N=I{C5cjs!%p)pUn>4{uKp-%}g2Z4=jfGT(hVqpk)vp01gdYf| zQg}M97Gt6Zd$>W9NW*a0UKxr$)6_{49>AxZ3K7NO(k8+$5@SjIARStZtHZpR-!-f8 z9K*avIJ=S5Y6K2pqSHY5Hpa9C7#lu7#gIZ4iko04@Qw$cNs`!;5&)t&A&Cqi03i_a zt$=`D*`qduRf7;}+z%x5kbBN9(F$S)tW2FOO&|`4EvY z$+Bc}7omz;hJd#ciW|;@b`K_u6X=7q(G?T}4<{r?+b!8V zVy>KR#il@aub&AtVrgx`M}$Oi69d+8IVGqQR9WT6I;3)7qDA*9Ej5Z*fsf>174#Sj zv~(#Fz@{h4-c0ZR0AUhJzCt2mhK=c$f&#=_shXuAiUmLb0020~91WYKI7)~W96JZS z@JBLQBX+8I?@j5fQ3_Cj47--)K|_)I1%(@J&&MS-0T2z;=Lo8XkO5F=dBSSj!3T02 z1VDi?K87I!FcEIm@g`6n5@A)9cF9#UU3i#&qqJj}lG9UsI1y|5kA0GB%DiHN26|<= z6bZ0NgU@mX1;khY000>mcB)8{(rJp)ArC-VDuU}el@wwcIPs0#j?-0_{3QBtjTAh(M;KOB3cqu6 zA__f6G~ipVGne9<3%U?|i{j;O47DYQIPxE-LL|frkO#^OqPoEZ_w>M#M*wcNA3_zn zD_lT+9q>)(ixNNyF!G7-4Jxmj$^Mg()&P+bE{@p?q_y5~69)qzemQh`Ox>*n9Kr^} z2$0QjP7s=iv?wY9%6;}x(YcW5f7=g+{DQXlPfj337CM6d zme(v&4Fw?{GH)Za-><^dH}-a8|KPQE@ffsEzQ_V_+Z=12w(M zflWIWi=UcWb3SrVdcg=1s6kJK1xO6jDvB~o8w!Q+XP=IpL3QPa?T(oWAYmkfP^`i* zUSJgSe^L$5rYDK`84%g1Hi5vueYe3Zj*`Ag?q72fF{$sNO`P}k6J&9A`q`$|`FYL< z%cm6iKw7tUt`&wq0UVwiE{)+=@GmkBARDwy@XsF5RJ;UDah&-U1;ZPq4a?%pIdLse zXe`iaz)1|$m56l;;aFH!8DrIS+HDpKO*h6@ckzm#T6`XG7)HP{G@2Hqc$fmvE=gy1 zk!-%^cY%hv#g)@X$(HZ-E*%(%D9cFi4zUh?X7)b-dBE(!U2jvgWrqYm$ZwB^Clm2N zz8k|EpKeGQ!Sc3~5rG9nDk%tUu6j8GAWe^_=-g)gxjZVO7m8rs?`Y2Sj!~%m;mPrz zQlJa5P_z>@L_3uN8x#`qhn!?}WkgmGh=WAPKq0FtK#hr_K5-y&XaL3EORI2nY8Z}G z!hUhPQj4b`sdBY1GWUE5zZ;WWv?a3toAe@{GUgQlTs>C zBXuTEe(d3dhiz*Uqs7so1`Hle%m-6tqSghf4T$6*5Y?3+M#Rw{IZ!~tHZ>!^hag@Y z8O(@=u}*E&%IIIpIk5#Clp9P9$r}FvCOr(Pi&}t51&Et+Vqhe~id5JHOURxuA`+`L z7n&xX6XOAeLnp8bBl3L?W)Keql##lz*0L7|dF&uj_&%Q@8(5l$ZEFgk*hMElBth5{ z?shyZD9mV&B@JU)G2vAx6rfOC2;FLxGU){hlSXWgW5}!bm|s1WuF3~WwnF&f{j|9N zA<38|Qr!VXp~K%jVBVSn8rg0Xf>fp$fk@QJ!;N9>0xIzdL@P;$`vP_?Ac)8)xl=R_ zKs@aL7R(~UV6DC)5Z23c+pB>Be$H?gmsZleC{2RQ-n!B3E~<@GsJNQB*Y7sda6uKn zr7EIkEu|}-2jP`HL~K(~M<5TpfI)W84}dBg(}6q`MlYc1Y6x=1u=ar!c!Z)Aq{(RN zt5gjYSG;dj#uC(O28T;G7DFdBfdD+h>ozA4>D;@Kaw*POwG9tE6iC>T%&F?DwBpYM z809do76y%BGgK2KcIepQ1Mndf4kk+*n&gN*tPjpICyB+Rp-enDn1uy$oEE?hLZHR) zuvH;b@^Ow{u-s;#jzAxH16-X6BKUCk_sfwT{X-3b6s{DcdI$sG6uJ&)v=4fflqti^b=8Htbqx*;8#Jc*9VkfUhKg>92zuFoq<8 zf>4%$ry>i(KqD%V=-u_U6u7x+h_|HJ-56}QQXu-gK^w;NahZdW;D{oDwr@BeBz4&t zV428_-s~Uyt&I^Kh>l22PPU-Ogf`s{7>PtJ&76<+n4D#?5C9V3B8>oYmkbb-s7YRy zDCUKVno^ch&uE+>>qx^)XU0Y`3L=d8!=tyrRY{|ybm7y6Yfv$NUxzrV z5(YbUVS-I~LM8(UJae`LWXWW@ZXgsMb%&g*RviVEHnLq|&NfN>)wmjb>nlFUAHrgA zLQrcsawO0q0Y&8?;{ar>3p)i+whI1nho|`1E%eZKVSI-cT8IJ=5p7Z|i*+B6H@znj zxLE9=vjZmiMlb`l7z|gzU{)K!PLV<+3fNQu8#7H8r<^!(*mUa$4NPMITGhdBO5(%x zR1zhOjAkh76@q9}5N*xibIm|z34vT{s;sDkbKL0O@%ZnI}&O z-~|>khgOV409dFy-mqZpy^Tda0kQI9LR@BB<pYket4oxbkS8Y{{RM+ zkT_B60K^(15OP8Wb&7=*;@L_n)g$HcGuoxR4tFNuysliaRmMGz4VFl_;dR>C1mIHkmUtU3^~ z>*B>X1s2n|^vnXboZN}~XagV!1%W_hz{en?P)$ct_ho zP;V8As1*jOiU1I4JqZL$vpWRi_QLOcx*-QkcdZz9`a&i(z7|Jl?XgbDxv literal 0 HcmV?d00001 diff --git a/view/theme/decaf-mobile/search_item.tpl b/view/theme/decaf-mobile/search_item.tpl new file mode 100644 index 000000000..3e14b644b --- /dev/null +++ b/view/theme/decaf-mobile/search_item.tpl @@ -0,0 +1,64 @@ + +{##} +
    +
    + {##} + + $item.name + {##} +
    +
    + {{ if $item.lock }}{##}$item.lock{##} + {{ else }}
    {{ endif }} +
    $item.location
    +
    +
    + {##} + $item.name +
    $item.ago
    + + {##} +
    +
    $item.title
    + {##} +
    $item.body
    + {{ if $item.has_cats }} +
    $item.txt_cats {{ for $item.categories as $cat }}$cat.name{{ if $cat.removeurl }} [$remove]{{ endif }} {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} + + {{ if $item.has_folders }} +
    $item.txt_folders {{ for $item.folders as $cat }}$cat.name{{ if $cat.removeurl }} [$remove]{{ endif }}{{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} +
    +
    + {##} + {{ if $item.drop.dropping }}{{ endif }} + {##} + {##} + {##} +
    +
    + {##} + + +
    + {{ if $item.conv }} + $item.conv.title + {{ endif }} +
    + +{##} + +{##} + + diff --git a/view/theme/decaf-mobile/settings-head.tpl b/view/theme/decaf-mobile/settings-head.tpl new file mode 100644 index 000000000..5c13a0ae6 --- /dev/null +++ b/view/theme/decaf-mobile/settings-head.tpl @@ -0,0 +1,5 @@ +{##} diff --git a/view/theme/decaf-mobile/settings.tpl b/view/theme/decaf-mobile/settings.tpl new file mode 100644 index 000000000..3ab464b25 --- /dev/null +++ b/view/theme/decaf-mobile/settings.tpl @@ -0,0 +1,148 @@ +

    $ptitle

    + +$nickname_block + +
    + + +

    $h_pass

    + +{{inc field_password.tpl with $field=$password1 }}{{endinc}} +{{inc field_password.tpl with $field=$password2 }}{{endinc}} + +{{ if $oid_enable }} +{{inc field_input.tpl with $field=$openid }}{{endinc}} +{{ endif }} + +
    + +
    + + +

    $h_basic

    + +{{inc field_input.tpl with $field=$username }}{{endinc}} +{{inc field_input.tpl with $field=$email }}{{endinc}} +{{inc field_custom.tpl with $field=$timezone }}{{endinc}} +{{inc field_input.tpl with $field=$defloc }}{{endinc}} +{{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}} + + +
    + +
    + + +

    $h_prv

    + + + + +{{inc field_input.tpl with $field=$maxreq }}{{endinc}} + +$profile_in_dir + +$profile_in_net_dir + +$hide_friends + +$hide_wall + +$blockwall + +$blocktags + +$suggestme + +$unkmail + + +{{inc field_input.tpl with $field=$cntunkmail }}{{endinc}} + +{{inc field_input.tpl with $field=$expire.days }}{{endinc}} + + +
    + $expire.label +
    +
    +

    $expire.advanced

    + {{ inc field_yesno.tpl with $field=$expire.items }}{{endinc}} + {{ inc field_yesno.tpl with $field=$expire.notes }}{{endinc}} + {{ inc field_yesno.tpl with $field=$expire.starred }}{{endinc}} + {{ inc field_yesno.tpl with $field=$expire.network_only }}{{endinc}} +
    +
    + +
    + + +
    +
    +
    +{##} +
    + {##} + {{ inc acl_html_selector.tpl }}{{ endinc }} +
    +{##} +
    +
    +
    +
    + +$group_select + + +
    + +
    + + + +

    $h_not

    +
    + +
    $activity_options
    + +{{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}} +{{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}} +{{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}} + + +
    $lbl_not
    + +
    +{{inc field_intcheckbox.tpl with $field=$notify1 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify2 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify7 }}{{endinc}} +
    + +
    + +
    + +
    + + +

    $h_advn

    +
    $h_descadvn
    + +$pagetype + +
    + +
    + + diff --git a/view/theme/decaf-mobile/settings_display_end.tpl b/view/theme/decaf-mobile/settings_display_end.tpl new file mode 100644 index 000000000..739c43b35 --- /dev/null +++ b/view/theme/decaf-mobile/settings_display_end.tpl @@ -0,0 +1,2 @@ + + diff --git a/view/theme/decaf-mobile/smarty3/acl_html_selector.tpl b/view/theme/decaf-mobile/smarty3/acl_html_selector.tpl new file mode 100644 index 000000000..05e82f2d0 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/acl_html_selector.tpl @@ -0,0 +1,34 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    + +
    +
    +
    + {{$group_perms}}
    + +
    +
    + {{$contact_perms}}
    + +
    +
    +
    + +
    + diff --git a/view/theme/decaf-mobile/smarty3/acl_selector.tpl b/view/theme/decaf-mobile/smarty3/acl_selector.tpl new file mode 100644 index 000000000..49f22ef98 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/acl_selector.tpl @@ -0,0 +1,28 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + + {{$showall}} +
    +
    +
    +
    + +
    + + + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/admin_aside.tpl b/view/theme/decaf-mobile/smarty3/admin_aside.tpl new file mode 100644 index 000000000..024d6195b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/admin_aside.tpl @@ -0,0 +1,36 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +

    {{$admtxt}}

    + + +{{if $admin.update}} + +{{/if}} + + +{{if $admin.plugins_admin}}

    {{$plugadmtxt}}

    {{/if}} + + + +

    {{$logtxt}}

    + + diff --git a/view/theme/decaf-mobile/smarty3/admin_site.tpl b/view/theme/decaf-mobile/smarty3/admin_site.tpl new file mode 100644 index 000000000..27773da2c --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/admin_site.tpl @@ -0,0 +1,66 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +

    {{$title}} - {{$page}}

    + + + + + {{include file="field_input.tpl" field=$sitename}} + {{include file="field_textarea.tpl" field=$banner}} + {{include file="field_select.tpl" field=$language}} + {{include file="field_select.tpl" field=$theme}} + {{include file="field_select.tpl" field=$theme_mobile}} + {{include file="field_select.tpl" field=$ssl_policy}} + +
    + +

    {{$registration}}

    + {{include file="field_input.tpl" field=$register_text}} + {{include file="field_select.tpl" field=$register_policy}} + + {{include file="field_checkbox.tpl" field=$no_multi_reg}} + {{include file="field_checkbox.tpl" field=$no_openid}} + {{include file="field_checkbox.tpl" field=$no_regfullname}} + +
    + +

    {{$upload}}

    + {{include file="field_input.tpl" field=$maximagesize}} + {{include file="field_input.tpl" field=$maximagelength}} + {{include file="field_input.tpl" field=$jpegimagequality}} + +

    {{$corporate}}

    + {{include file="field_input.tpl" field=$allowed_sites}} + {{include file="field_input.tpl" field=$allowed_email}} + {{include file="field_checkbox.tpl" field=$block_public}} + {{include file="field_checkbox.tpl" field=$force_publish}} + {{include file="field_checkbox.tpl" field=$no_community_page}} + {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$diaspora_enabled}} + {{include file="field_checkbox.tpl" field=$dfrn_only}} + {{include file="field_input.tpl" field=$global_directory}} + {{include file="field_checkbox.tpl" field=$thread_allow}} + {{include file="field_checkbox.tpl" field=$newuser_private}} + +
    + +

    {{$advanced}}

    + {{include file="field_checkbox.tpl" field=$no_utf}} + {{include file="field_checkbox.tpl" field=$verifyssl}} + {{include file="field_input.tpl" field=$proxy}} + {{include file="field_input.tpl" field=$proxyuser}} + {{include file="field_input.tpl" field=$timeout}} + {{include file="field_input.tpl" field=$delivery_interval}} + {{include file="field_input.tpl" field=$poll_interval}} + {{include file="field_input.tpl" field=$maxloadavg}} + {{include file="field_input.tpl" field=$abandon_days}} + +
    + + +
    diff --git a/view/theme/decaf-mobile/smarty3/admin_users.tpl b/view/theme/decaf-mobile/smarty3/admin_users.tpl new file mode 100644 index 000000000..886b67dcd --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/admin_users.tpl @@ -0,0 +1,103 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +

    {{$title}} - {{$page}}

    + +
    + + +

    {{$h_pending}}

    + {{if $pending}} + + + + {{foreach $th_pending as $th}}{{/foreach}} + + + + + + {{foreach $pending as $u}} + + + + + + + + {{/foreach}} + +
    {{$th}}
    {{$u.created}}{{$u.name}} + + +
    + {{**}} +
    + {{else}} +

    {{$no_pending}}

    + {{/if}} + + + + +

    {{$h_users}}

    + {{if $users}} + + + + + {{foreach $th_users as $th}}{{/foreach}} + + + + + + {{foreach $users as $u}} + + + + + + + + + + {{/if}} + + + {{/foreach}} + +
    {{$th}}
    {{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} + {{if $u.is_admin}} +   + {{else}} + + {{if $u.is_admin}} +   + {{else}} + + + {{/if}} +
    + {{**}} +
    + {{else}} + NO USERS?!? + {{/if}} +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/album_edit.tpl b/view/theme/decaf-mobile/smarty3/album_edit.tpl new file mode 100644 index 000000000..094da70a9 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/album_edit.tpl @@ -0,0 +1,20 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +
    + + + + + +
    + + + + +
    +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/categories_widget.tpl b/view/theme/decaf-mobile/smarty3/categories_widget.tpl new file mode 100644 index 000000000..1749fced3 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/categories_widget.tpl @@ -0,0 +1,17 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/comment_item.tpl b/view/theme/decaf-mobile/smarty3/comment_item.tpl new file mode 100644 index 000000000..63c70aa5b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/comment_item.tpl @@ -0,0 +1,84 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} + +
    + +
    +{{**}} + + + + + + + + + + {{**}} + {{$mytitle}} + {{**}} + {{**}} + {{**}} +{{**}} + {{**}} + {{**}} +{{**}} + + {{**}} + +
    +
    + + {{**}} +
    + + {{**}} +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/common_tabs.tpl b/view/theme/decaf-mobile/smarty3/common_tabs.tpl new file mode 100644 index 000000000..9fa4ed41d --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/common_tabs.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + diff --git a/view/theme/decaf-mobile/smarty3/contact_block.tpl b/view/theme/decaf-mobile/smarty3/contact_block.tpl new file mode 100644 index 000000000..5a0a26b87 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contact_block.tpl @@ -0,0 +1,17 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/contact_edit.tpl b/view/theme/decaf-mobile/smarty3/contact_edit.tpl new file mode 100644 index 000000000..bced55ac3 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contact_edit.tpl @@ -0,0 +1,98 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +

    {{$header}}

    + +
    + + {{$tab_str}} + + + + + +
    +
    {{$name}}
    +
    {{$name}}
    +
    + + +
    + +
    +
    + + +
    + + + {{if $poll_enabled}} +
    +
    {{$lastupdtext}} {{$last_update}}
    + {{$updpub}} {{$poll_interval}} {{$udnow}} +
    + {{/if}} +
    + + {{include file="field_checkbox.tpl" field=$hidden}} + +
    +

    {{$lbl_info1}}

    + + +
    +
    + + +
    +

    {{$lbl_vis1}}

    +

    {{$lbl_vis2}}

    +
    +{{$profile_select}} +
    + + + +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/contact_head.tpl b/view/theme/decaf-mobile/smarty3/contact_head.tpl new file mode 100644 index 000000000..a7fb96108 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contact_head.tpl @@ -0,0 +1,5 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} diff --git a/view/theme/decaf-mobile/smarty3/contact_template.tpl b/view/theme/decaf-mobile/smarty3/contact_template.tpl new file mode 100644 index 000000000..f017744f7 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contact_template.tpl @@ -0,0 +1,43 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +
    +
    + +{{**}} + {{**}} + + {{$contact.name}} + + {{**}} + +{{**}} +
    + +
    +
    +
    {{$contact.name}}

    +{{if $contact.alt_text}}
    {{$contact.alt_text}}
    {{/if}} +
    {{$contact.network}}
    + +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/contacts-end.tpl b/view/theme/decaf-mobile/smarty3/contacts-end.tpl new file mode 100644 index 000000000..adeea280c --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contacts-end.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/contacts-head.tpl b/view/theme/decaf-mobile/smarty3/contacts-head.tpl new file mode 100644 index 000000000..7fa141164 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contacts-head.tpl @@ -0,0 +1,10 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/contacts-template.tpl b/view/theme/decaf-mobile/smarty3/contacts-template.tpl new file mode 100644 index 000000000..b9162c2e9 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contacts-template.tpl @@ -0,0 +1,33 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$header}}{{if $total}} ({{$total}}){{/if}}

    + +{{if $finding}}

    {{$finding}}

    {{/if}} + +
    +
    +{{$desc}} + + +
    +
    +
    + +{{$tabs}} + + +
    +{{foreach $contacts as $contact}} + {{include file="contact_template.tpl"}} +{{/foreach}} +
    +
    + +{{$paginate}} + + + + diff --git a/view/theme/decaf-mobile/smarty3/contacts-widget-sidebar.tpl b/view/theme/decaf-mobile/smarty3/contacts-widget-sidebar.tpl new file mode 100644 index 000000000..bda321896 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/contacts-widget-sidebar.tpl @@ -0,0 +1,7 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{$follow_widget}} + diff --git a/view/theme/decaf-mobile/smarty3/conversation.tpl b/view/theme/decaf-mobile/smarty3/conversation.tpl new file mode 100644 index 000000000..f6810bb10 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/conversation.tpl @@ -0,0 +1,34 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{$live_update}} + +{{foreach $threads as $thread}} +
    + {{foreach $thread.items as $item}} + {{if $item.comment_firstcollapsed}} +
    + {{$thread.num_comments}} {{$thread.hide_text}} +
    + {{/if}} + + {{include file="{{$item.template}}"}} + + + {{/foreach}} +
    +{{/foreach}} + +
    + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/cropbody.tpl b/view/theme/decaf-mobile/smarty3/cropbody.tpl new file mode 100644 index 000000000..5ace9a1aa --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/cropbody.tpl @@ -0,0 +1,32 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$title}}

    +

    +{{$desc}} +

    +
    +{{$title}} +
    +
    +
    +
    + +
    + + + + + + + + + + +
    + +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/cropend.tpl b/view/theme/decaf-mobile/smarty3/cropend.tpl new file mode 100644 index 000000000..e75083f51 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/cropend.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/crophead.tpl b/view/theme/decaf-mobile/smarty3/crophead.tpl new file mode 100644 index 000000000..6438cfb35 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/crophead.tpl @@ -0,0 +1,6 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + diff --git a/view/theme/decaf-mobile/smarty3/display-head.tpl b/view/theme/decaf-mobile/smarty3/display-head.tpl new file mode 100644 index 000000000..294320192 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/display-head.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/end.tpl b/view/theme/decaf-mobile/smarty3/end.tpl new file mode 100644 index 000000000..e75845bac --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/end.tpl @@ -0,0 +1,29 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +{{**}} +{{**}} +{{**}} +{{**}} +{{**}} + + + + diff --git a/view/theme/decaf-mobile/smarty3/event_end.tpl b/view/theme/decaf-mobile/smarty3/event_end.tpl new file mode 100644 index 000000000..63dbec442 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/event_end.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/event_head.tpl b/view/theme/decaf-mobile/smarty3/event_head.tpl new file mode 100644 index 000000000..bd72758e6 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/event_head.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/field_checkbox.tpl b/view/theme/decaf-mobile/smarty3/field_checkbox.tpl new file mode 100644 index 000000000..f7f857f59 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_checkbox.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    + +
    + {{$field.3}} +
    diff --git a/view/theme/decaf-mobile/smarty3/field_input.tpl b/view/theme/decaf-mobile/smarty3/field_input.tpl new file mode 100644 index 000000000..240bed249 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_input.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +
    + + {{$field.3}} +
    diff --git a/view/theme/decaf-mobile/smarty3/field_openid.tpl b/view/theme/decaf-mobile/smarty3/field_openid.tpl new file mode 100644 index 000000000..d5ebd9a3b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_openid.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +
    + + {{$field.3}} +
    diff --git a/view/theme/decaf-mobile/smarty3/field_password.tpl b/view/theme/decaf-mobile/smarty3/field_password.tpl new file mode 100644 index 000000000..f1352f27b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_password.tpl @@ -0,0 +1,11 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +
    + + {{$field.3}} +
    diff --git a/view/theme/decaf-mobile/smarty3/field_themeselect.tpl b/view/theme/decaf-mobile/smarty3/field_themeselect.tpl new file mode 100644 index 000000000..95cfd6bcd --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_themeselect.tpl @@ -0,0 +1,14 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    + + + {{$field.3}} +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/field_yesno.tpl b/view/theme/decaf-mobile/smarty3/field_yesno.tpl new file mode 100644 index 000000000..9cdb95e01 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/field_yesno.tpl @@ -0,0 +1,19 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} +{{include file="field_checkbox.tpl"}} diff --git a/view/theme/decaf-mobile/smarty3/generic_links_widget.tpl b/view/theme/decaf-mobile/smarty3/generic_links_widget.tpl new file mode 100644 index 000000000..705ddb57c --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/generic_links_widget.tpl @@ -0,0 +1,17 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +{{**}} + {{if $desc}}
    {{$desc}}
    {{/if}} + + + +
    diff --git a/view/theme/decaf-mobile/smarty3/group_drop.tpl b/view/theme/decaf-mobile/smarty3/group_drop.tpl new file mode 100644 index 000000000..269322815 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/group_drop.tpl @@ -0,0 +1,14 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/group_side.tpl b/view/theme/decaf-mobile/smarty3/group_side.tpl new file mode 100644 index 000000000..7d9d23ebe --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/group_side.tpl @@ -0,0 +1,38 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +

    {{$title}}

    + + + + {{if $ungrouped}} + + {{/if}} +
    + + diff --git a/view/theme/decaf-mobile/smarty3/head.tpl b/view/theme/decaf-mobile/smarty3/head.tpl new file mode 100644 index 000000000..ad9e1ad28 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/head.tpl @@ -0,0 +1,34 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +{{**}} + +{{**}} + + + +{{**}} + + + + + + + diff --git a/view/theme/decaf-mobile/smarty3/jot-end.tpl b/view/theme/decaf-mobile/smarty3/jot-end.tpl new file mode 100644 index 000000000..88c8e59c6 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/jot-end.tpl @@ -0,0 +1,10 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/jot-header.tpl b/view/theme/decaf-mobile/smarty3/jot-header.tpl new file mode 100644 index 000000000..b0bf78916 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/jot-header.tpl @@ -0,0 +1,22 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + + diff --git a/view/theme/decaf-mobile/smarty3/jot.tpl b/view/theme/decaf-mobile/smarty3/jot.tpl new file mode 100644 index 000000000..61a72154c --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/jot.tpl @@ -0,0 +1,104 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    +
    +
     
    +
    +
    +
    + +
    + + + + + + + + + +
    + {{if $placeholdercategory}} +
    + {{/if}} +
    + {{**}} + +
    + +
    + + +
    + +
    + +
    + +
    +
    + +
    + + {{**}} + {{**}} + + {{**}} + +
    + + +
    + {{$jotplugins}} +
    + + + + {{**}} +
    + {{**}} + {{if $acl_data}} + {{include file="acl_html_selector.tpl"}} + {{/if}} + {{$jotnets}} +
    + {{**}} + + +
    + +
    +
    +
    + {{**}} + diff --git a/view/theme/decaf-mobile/smarty3/jot_geotag.tpl b/view/theme/decaf-mobile/smarty3/jot_geotag.tpl new file mode 100644 index 000000000..d828980e5 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/jot_geotag.tpl @@ -0,0 +1,16 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + if(navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function(position) { + var lat = position.coords.latitude.toFixed(4); + var lon = position.coords.longitude.toFixed(4); + + $j('#jot-coord').val(lat + ', ' + lon); + $j('#profile-nolocation-wrapper').show(); + }); + } + diff --git a/view/theme/decaf-mobile/smarty3/lang_selector.tpl b/view/theme/decaf-mobile/smarty3/lang_selector.tpl new file mode 100644 index 000000000..a1aee8277 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/lang_selector.tpl @@ -0,0 +1,15 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + diff --git a/view/theme/decaf-mobile/smarty3/like_noshare.tpl b/view/theme/decaf-mobile/smarty3/like_noshare.tpl new file mode 100644 index 000000000..9d6a58ea2 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/like_noshare.tpl @@ -0,0 +1,12 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + diff --git a/view/theme/decaf-mobile/smarty3/login.tpl b/view/theme/decaf-mobile/smarty3/login.tpl new file mode 100644 index 000000000..d220321ec --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/login.tpl @@ -0,0 +1,50 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/login_head.tpl b/view/theme/decaf-mobile/smarty3/login_head.tpl new file mode 100644 index 000000000..c2d9504ad --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/login_head.tpl @@ -0,0 +1,7 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} + diff --git a/view/theme/decaf-mobile/smarty3/lostpass.tpl b/view/theme/decaf-mobile/smarty3/lostpass.tpl new file mode 100644 index 000000000..5a22c245b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/lostpass.tpl @@ -0,0 +1,26 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +

    {{$title}}

    +


    + +
    +
    +
    + +
    +
    +

    +{{$desc}} +

    +
    + +
    + +
    +
    +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/mail_conv.tpl b/view/theme/decaf-mobile/smarty3/mail_conv.tpl new file mode 100644 index 000000000..c2b43c538 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/mail_conv.tpl @@ -0,0 +1,23 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +
    + {{$mail.from_name}} +
    +
    +
    {{$mail.from_name}}
    +
    {{$mail.date}}
    +
    {{$mail.subject}}
    +
    +
    {{$mail.body}}
    +
    +
    + + +
    +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/mail_list.tpl b/view/theme/decaf-mobile/smarty3/mail_list.tpl new file mode 100644 index 000000000..538f6affb --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/mail_list.tpl @@ -0,0 +1,21 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +
    + {{$from_name}} +
    +
    +
    {{$from_name}}
    +
    {{$date}}
    + +
    + +
    +
    +
    +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/manage.tpl b/view/theme/decaf-mobile/smarty3/manage.tpl new file mode 100644 index 000000000..f7d72f653 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/manage.tpl @@ -0,0 +1,23 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$title}}

    +
    {{$desc}}
    +
    {{$choose}}
    +
    +
    + +
    + + {{* name="submit" interferes with this.form.submit() *}} + +
    + diff --git a/view/theme/decaf-mobile/smarty3/message-end.tpl b/view/theme/decaf-mobile/smarty3/message-end.tpl new file mode 100644 index 000000000..adeea280c --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/message-end.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/message-head.tpl b/view/theme/decaf-mobile/smarty3/message-head.tpl new file mode 100644 index 000000000..a7fb96108 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/message-head.tpl @@ -0,0 +1,5 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} diff --git a/view/theme/decaf-mobile/smarty3/moderated_comment.tpl b/view/theme/decaf-mobile/smarty3/moderated_comment.tpl new file mode 100644 index 000000000..b2401ca48 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/moderated_comment.tpl @@ -0,0 +1,66 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +
    + + + + + + + +
    + {{$mytitle}} +
    +
    + +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
    + + +
    + + +
    +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/msg-end.tpl b/view/theme/decaf-mobile/smarty3/msg-end.tpl new file mode 100644 index 000000000..594f3f79b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/msg-end.tpl @@ -0,0 +1,7 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + diff --git a/view/theme/decaf-mobile/smarty3/msg-header.tpl b/view/theme/decaf-mobile/smarty3/msg-header.tpl new file mode 100644 index 000000000..8447bb300 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/msg-header.tpl @@ -0,0 +1,15 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + + diff --git a/view/theme/decaf-mobile/smarty3/nav.tpl b/view/theme/decaf-mobile/smarty3/nav.tpl new file mode 100644 index 000000000..87d0bdec7 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/nav.tpl @@ -0,0 +1,160 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/photo_drop.tpl b/view/theme/decaf-mobile/smarty3/photo_drop.tpl new file mode 100644 index 000000000..57f26cf52 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photo_drop.tpl @@ -0,0 +1,9 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + +
    +
    diff --git a/view/theme/decaf-mobile/smarty3/photo_edit.tpl b/view/theme/decaf-mobile/smarty3/photo_edit.tpl new file mode 100644 index 000000000..1cff8f044 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photo_edit.tpl @@ -0,0 +1,65 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    + + + + +
    + + +
    + +
    + +
    + + +
    + +
    + +
    + + +
    + +
    + +
    + +
    +
    + +
    + + +
    +
    + +
    + {{**}} +
    + {{**}} + {{include file="acl_html_selector.tpl"}} +
    + {{**}} +
    +
    + + + + +
    +
    + + diff --git a/view/theme/decaf-mobile/smarty3/photo_edit_head.tpl b/view/theme/decaf-mobile/smarty3/photo_edit_head.tpl new file mode 100644 index 000000000..740c3b425 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photo_edit_head.tpl @@ -0,0 +1,12 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/photo_view.tpl b/view/theme/decaf-mobile/smarty3/photo_view.tpl new file mode 100644 index 000000000..5ccb5fb16 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photo_view.tpl @@ -0,0 +1,47 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +

    {{$album.1}}

    + + + +
    + {{if $prevlink}}{{/if}} + {{if $nextlink}}{{/if}} +
    +
    +
    +
    {{$desc}}
    +{{if $tags}} +
    {{$tags.0}}
    +
    {{$tags.1}}
    +{{/if}} +{{if $tags.2}}{{/if}} + +{{if $edit}} +{{$edit}} +{{else}} + +{{if $likebuttons}} +
    + {{$likebuttons}} + {{$like}} + {{$dislike}} +
    +{{/if}} + +{{$comments}} + +{{$paginate}} +{{/if}} + diff --git a/view/theme/decaf-mobile/smarty3/photos_head.tpl b/view/theme/decaf-mobile/smarty3/photos_head.tpl new file mode 100644 index 000000000..c8bfa62c1 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photos_head.tpl @@ -0,0 +1,10 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/photos_upload.tpl b/view/theme/decaf-mobile/smarty3/photos_upload.tpl new file mode 100644 index 000000000..9c22448dd --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/photos_upload.tpl @@ -0,0 +1,56 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$pagename}}

    + +
    {{$usage}}
    + +
    +
    +
    + +
    + +
    +
    +
    +
    {{$existalbumtext}}
    + +
    +
    + + {{$default_upload_box}} + +
    + + +
    + + + {{**}} +
    + {{**}} + {{include file="acl_html_selector.tpl"}} +
    + {{**}} + +
    + + {{$alt_uploader}} + + {{$default_upload_submit}} + +
    +
    + diff --git a/view/theme/decaf-mobile/smarty3/profed_end.tpl b/view/theme/decaf-mobile/smarty3/profed_end.tpl new file mode 100644 index 000000000..e9c03543b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/profed_end.tpl @@ -0,0 +1,13 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/profed_head.tpl b/view/theme/decaf-mobile/smarty3/profed_head.tpl new file mode 100644 index 000000000..c8ce27bb8 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/profed_head.tpl @@ -0,0 +1,10 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/profile_edit.tpl b/view/theme/decaf-mobile/smarty3/profile_edit.tpl new file mode 100644 index 000000000..7583784fb --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/profile_edit.tpl @@ -0,0 +1,329 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{$default}} + +

    {{$banner}}

    + + + + + + +
    +
    + + +
    + +
    *
    +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + + +
    + +{{$gender}} +
    +
    + +
    + +
    +{{$dob}} {{$age}} +
    +
    +
    + +{{$hide_friends}} + +
    + +
    +
    + + +
    + + +
    +
    + +
    + + +
    +
    + + +
    + + +
    +
    + +
    + + +{{**}} +
    +
    + +
    + + +{{**}} +
    +
    + +
    + + +
    +
    + +
    + +
    +
    + +
    + +{{$marital}} +
    + + + + + +
    + +
    + +{{$sexual}} +
    +
    + + + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    {{$lbl_pubdsc}}
    +
    + +
    + + +
    {{$lbl_prvdsc}}
    +
    + + +
    + +
    +
    + +
    +

    +{{$lbl_about}} +

    + + + +
    +
    + + +
    +

    +{{$lbl_hobbies}} +

    + + + +
    +
    + + +
    +

    +{{$lbl_likes}} +

    + + + +
    +
    + + +
    +

    +{{$lbl_dislikes}} +

    + + + +
    +
    + + +
    +

    +{{$lbl_social}} +

    + + + +
    +
    + + +
    + +
    +
    + + +
    +

    +{{$lbl_music}} +

    + + + +
    +
    + +
    +

    +{{$lbl_book}} +

    + + + +
    +
    + + + +
    +

    +{{$lbl_tv}} +

    + + + +
    +
    + + + +
    +

    +{{$lbl_film}} +

    + + + +
    +
    + + +
    + +
    +
    + + +
    +

    +{{$lbl_love}} +

    + + + +
    +
    + + + +
    +

    +{{$lbl_work}} +

    + + + +
    +
    + + + +
    +

    +{{$lbl_school}} +

    + + + +
    +
    + + + +
    + +
    +
    + + +
    +
    + diff --git a/view/theme/decaf-mobile/smarty3/profile_photo.tpl b/view/theme/decaf-mobile/smarty3/profile_photo.tpl new file mode 100644 index 000000000..6bcb3cf85 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/profile_photo.tpl @@ -0,0 +1,24 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$title}}

    + +
    + + +
    + + +
    + +
    + +
    + +
    + + diff --git a/view/theme/decaf-mobile/smarty3/profile_vcard.tpl b/view/theme/decaf-mobile/smarty3/profile_vcard.tpl new file mode 100644 index 000000000..85c6345d6 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/profile_vcard.tpl @@ -0,0 +1,56 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + +
    {{$profile.name}}
    + + + + {{if $pdesc}}
    {{$profile.pdesc}}
    {{/if}} +
    {{$profile.name}}
    + + + + {{if $location}} +
    {{$location}}
    +
    + {{if $profile.address}}
    {{$profile.address}}
    {{/if}} + + {{$profile.locality}}{{if $profile.locality}}, {{/if}} + {{$profile.region}} + {{$profile.postal_code}} + + {{if $profile.country_name}}{{$profile.country_name}}{{/if}} +
    +
    + {{/if}} + + {{if $gender}}
    {{$gender}}
    {{$profile.gender}}
    {{/if}} + + {{if $profile.pubkey}}{{/if}} + + {{if $marital}}
    {{$marital}}
    {{$profile.marital}}
    {{/if}} + + {{if $homepage}}
    {{$homepage}}
    {{$profile.homepage}}
    {{/if}} + + {{include file="diaspora_vcard.tpl"}} + +
    + +
    + +{{$contact_block}} + + diff --git a/view/theme/decaf-mobile/smarty3/prv_message.tpl b/view/theme/decaf-mobile/smarty3/prv_message.tpl new file mode 100644 index 000000000..6372d306a --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/prv_message.tpl @@ -0,0 +1,48 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +

    {{$header}}

    + +
    +
    + +{{$parent}} + +
    {{$to}}
    + +{{if $showinputs}} + + +{{else}} +{{$select}} +{{/if}} + +
    {{$subject}}
    + + +
    {{$yourmessage}}
    + + + +
    + + + {{**}} +
    + +
    +
    +
    +
    +
    + + diff --git a/view/theme/decaf-mobile/smarty3/register.tpl b/view/theme/decaf-mobile/smarty3/register.tpl new file mode 100644 index 000000000..7dd8c77ca --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/register.tpl @@ -0,0 +1,85 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +

    {{$regtitle}}

    +
    + +
    + + + + {{$registertext}} + +

    {{$realpeople}}

    + +
    +{{if $oidlabel}} +
    + +
    +
    +{{/if}} + +
    +

    {{$fillwith}} {{$fillext}}

    +
    + +

    + +{{if $invitations}} + +

    {{$invite_desc}}

    +
    + + +
    +
    + +{{/if}} + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +

    {{$nickdesc}}

    +
    + + {{$publish}} + + +
    +


    + +{{$license}} + +
    diff --git a/view/theme/decaf-mobile/smarty3/search_item.tpl b/view/theme/decaf-mobile/smarty3/search_item.tpl new file mode 100644 index 000000000..a6da44d3d --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/search_item.tpl @@ -0,0 +1,69 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +{{**}} +
    +
    + {{**}} + + {{$item.name}} + {{**}} +
    +
    + {{if $item.lock}}{{**}}{{$item.lock}}{{**}} + {{else}}
    {{/if}} +
    {{$item.location}}
    +
    +
    + {{**}} + {{$item.name}} +
    {{$item.ago}}
    + + {{**}} +
    +
    {{$item.title}}
    + {{**}} +
    {{$item.body}}
    + {{if $item.has_cats}} +
    {{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}}{{if $cat.removeurl}} [{{$remove}}]{{/if}} {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} + + {{if $item.has_folders}} +
    {{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}}{{if $cat.removeurl}} [{{$remove}}]{{/if}}{{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} +
    +
    + {{**}} + {{if $item.drop.dropping}}{{/if}} + {{**}} + {{**}} + {{**}} +
    +
    + {{**}} + + +
    + {{if $item.conv}} + {{$item.conv.title}} + {{/if}} +
    + +{{**}} + +{{**}} + + diff --git a/view/theme/decaf-mobile/smarty3/settings-head.tpl b/view/theme/decaf-mobile/smarty3/settings-head.tpl new file mode 100644 index 000000000..c8bfa62c1 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/settings-head.tpl @@ -0,0 +1,10 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{**}} diff --git a/view/theme/decaf-mobile/smarty3/settings.tpl b/view/theme/decaf-mobile/smarty3/settings.tpl new file mode 100644 index 000000000..d702cd7d1 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/settings.tpl @@ -0,0 +1,153 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$ptitle}}

    + +{{$nickname_block}} + +
    + + +

    {{$h_pass}}

    + +{{include file="field_password.tpl" field=$password1}} +{{include file="field_password.tpl" field=$password2}} + +{{if $oid_enable}} +{{include file="field_input.tpl" field=$openid}} +{{/if}} + +
    + +
    + + +

    {{$h_basic}}

    + +{{include file="field_input.tpl" field=$username}} +{{include file="field_input.tpl" field=$email}} +{{include file="field_custom.tpl" field=$timezone}} +{{include file="field_input.tpl" field=$defloc}} +{{include file="field_checkbox.tpl" field=$allowloc}} + + +
    + +
    + + +

    {{$h_prv}}

    + + + + +{{include file="field_input.tpl" field=$maxreq}} + +{{$profile_in_dir}} + +{{$profile_in_net_dir}} + +{{$hide_friends}} + +{{$hide_wall}} + +{{$blockwall}} + +{{$blocktags}} + +{{$suggestme}} + +{{$unkmail}} + + +{{include file="field_input.tpl" field=$cntunkmail}} + +{{include file="field_input.tpl" field=$expire.days}} + + +
    + {{$expire.label}} +
    +
    +

    {{$expire.advanced}}

    + {{include file="field_yesno.tpl" field=$expire.items}} + {{include file="field_yesno.tpl" field=$expire.notes}} + {{include file="field_yesno.tpl" field=$expire.starred}} + {{include file="field_yesno.tpl" field=$expire.network_only}} +
    +
    + +
    + + +
    +
    +
    +{{**}} +
    + {{**}} + {{include file="acl_html_selector.tpl"}} +
    +{{**}} +
    +
    +
    +
    + +{{$group_select}} + + +
    + +
    + + + +

    {{$h_not}}

    +
    + +
    {{$activity_options}}
    + +{{include file="field_checkbox.tpl" field=$post_newfriend}} +{{include file="field_checkbox.tpl" field=$post_joingroup}} +{{include file="field_checkbox.tpl" field=$post_profilechange}} + + +
    {{$lbl_not}}
    + +
    +{{include file="field_intcheckbox.tpl" field=$notify1}} +{{include file="field_intcheckbox.tpl" field=$notify2}} +{{include file="field_intcheckbox.tpl" field=$notify3}} +{{include file="field_intcheckbox.tpl" field=$notify4}} +{{include file="field_intcheckbox.tpl" field=$notify5}} +{{include file="field_intcheckbox.tpl" field=$notify6}} +{{include file="field_intcheckbox.tpl" field=$notify7}} +
    + +
    + +
    + +
    + + +

    {{$h_advn}}

    +
    {{$h_descadvn}}
    + +{{$pagetype}} + +
    + +
    + + diff --git a/view/theme/decaf-mobile/smarty3/settings_display_end.tpl b/view/theme/decaf-mobile/smarty3/settings_display_end.tpl new file mode 100644 index 000000000..4b3db00f5 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/settings_display_end.tpl @@ -0,0 +1,7 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + diff --git a/view/theme/decaf-mobile/smarty3/suggest_friends.tpl b/view/theme/decaf-mobile/smarty3/suggest_friends.tpl new file mode 100644 index 000000000..7221dc689 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/suggest_friends.tpl @@ -0,0 +1,21 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    +
    + + {{$name}} + +
    +
    +
    + {{$name}} +
    +
    + {{if $connlnk}} + + {{/if}} + +
    diff --git a/view/theme/decaf-mobile/smarty3/threaded_conversation.tpl b/view/theme/decaf-mobile/smarty3/threaded_conversation.tpl new file mode 100644 index 000000000..e90caf5a7 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/threaded_conversation.tpl @@ -0,0 +1,17 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{$live_update}} + +{{foreach $threads as $thread}} +{{if $mode == display}} +{{include file="{{$thread.template}}" item=$thread}} +{{else}} +{{include file="wall_thread_toponly.tpl" item=$thread}} +{{/if}} +{{/foreach}} + +
    + diff --git a/view/theme/decaf-mobile/smarty3/voting_fakelink.tpl b/view/theme/decaf-mobile/smarty3/voting_fakelink.tpl new file mode 100644 index 000000000..1e073916e --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/voting_fakelink.tpl @@ -0,0 +1,6 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{$phrase}} diff --git a/view/theme/decaf-mobile/smarty3/wall_thread.tpl b/view/theme/decaf-mobile/smarty3/wall_thread.tpl new file mode 100644 index 000000000..97769f301 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/wall_thread.tpl @@ -0,0 +1,125 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + +{{**}} +
    +
    + {{if $item.owner_url}} +
    + + {{$item.owner_name}} + +
    +
    {{$item.wall}}
    + {{/if}} + {{**}} + {{**}} + + {{$item.name}} + + {{**}} + + {{**}} + {{**}} +
    + {{if $item.lock}}{{**}}{{$item.lock}}{{**}} + {{else}}
    {{/if}} +
    {{$item.location}}
    +
    +
    + {{**}} + {{$item.name}}{{if $item.owner_url}} {{$item.to}} {{$item.owner_name}} {{$item.vwall}}{{/if}}
    +
    {{$item.ago}}
    + {{**}} +
    +
    {{$item.title}}
    + {{**}} +
    {{$item.body}} + {{**}} + {{foreach $item.tags as $tag}} + {{$tag}} + {{/foreach}} + {{**}} + {{if $item.has_cats}} +
    {{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} + + {{if $item.has_folders}} +
    {{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} +
    +
    +
    + {{if $item.vote}} + + {{/if}} + {{if $item.plink}} + {{**}}{{**}} + {{/if}} + {{if $item.edpost}} + + {{/if}} + + {{if $item.star}} + + {{/if}} + {{**}} + {{**}} + + {{**}} + {{if $item.drop.dropping}}{{/if}} + {{**}} + {{**}} + {{**}} +
    +
    + {{**}} + +
    {{$item.dislike}}
    +
    {{$item.boring}}
    + + {{if $item.threaded}} + {{if $item.comment}} + {{**}} + {{$item.comment}} + {{**}} + {{/if}} + {{/if}} + +{{**}} +{{**}} +{{foreach $item.children as $child}} + {{include file="{{$child.template}}" item=$child}} +{{/foreach}} + +{{if $item.flatten}} +{{**}} + {{$item.comment}} +{{**}} +{{/if}} +
    + diff --git a/view/theme/decaf-mobile/smarty3/wall_thread_toponly.tpl b/view/theme/decaf-mobile/smarty3/wall_thread_toponly.tpl new file mode 100644 index 000000000..6a4da1acc --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/wall_thread_toponly.tpl @@ -0,0 +1,107 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +
    + +
    +
    + {{if $item.owner_url}} +
    + + {{$item.owner_name}} + +
    +
    {{$item.wall}}
    + {{/if}} + + {{$item.name}} + + +
    + {{if $item.lock}}{{$item.lock}} + {{else}}
    {{/if}} +
    {{$item.location}}
    +
    +
    + {{$item.name}}{{if $item.owner_url}} {{$item.to}} {{$item.owner_name}} {{$item.vwall}}{{/if}}
    +
    {{$item.ago}}
    +
    +
    {{$item.title}}
    +
    {{$item.body}} + {{foreach $item.tags as $tag}} + {{$tag}} + {{/foreach}} + {{if $item.has_cats}} +
    {{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} + + {{if $item.has_folders}} +
    {{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
    + {{/if}} +
    +
    +
    + {{if $item.vote}} + + {{/if}} + {{if $item.plink}} + + {{/if}} + {{if $item.edpost}} + + {{/if}} + + {{if $item.star}} + + {{/if}} + {{**}} + + {{if $item.drop.dropping}}{{/if}} + {{**}} +
    +
    + +
    {{$item.dislike}}
    +
    {{$item.boring}}
    + + + +
    + + diff --git a/view/theme/decaf-mobile/smarty3/wallmessage.tpl b/view/theme/decaf-mobile/smarty3/wallmessage.tpl new file mode 100644 index 000000000..4cba90091 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/wallmessage.tpl @@ -0,0 +1,37 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + +

    {{$header}}

    + +

    {{$subheader}}

    + +
    + + +{{$parent}} + +
    {{$to}}
    +{{$recipname}} + +
    {{$subject}}
    + + +
    {{$yourmessage}}
    + + + +
    + + {{**}} +
    + +
    +
    +
    + +
    diff --git a/view/theme/decaf-mobile/smarty3/wallmsg-end.tpl b/view/theme/decaf-mobile/smarty3/wallmsg-end.tpl new file mode 100644 index 000000000..594f3f79b --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/wallmsg-end.tpl @@ -0,0 +1,7 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + diff --git a/view/theme/decaf-mobile/smarty3/wallmsg-header.tpl b/view/theme/decaf-mobile/smarty3/wallmsg-header.tpl new file mode 100644 index 000000000..e6f1c6737 --- /dev/null +++ b/view/theme/decaf-mobile/smarty3/wallmsg-header.tpl @@ -0,0 +1,12 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + + + diff --git a/view/theme/decaf-mobile/style.css b/view/theme/decaf-mobile/style.css new file mode 100644 index 000000000..4cfdd805f --- /dev/null +++ b/view/theme/decaf-mobile/style.css @@ -0,0 +1,4317 @@ +/** + * duepuntozero Frindika style + * Fabio Comuni + * + * Heavily modified for Frost Mobile + * Zach P + */ + + +/* generals */ +html { +/* width: 320px;*/ + margin-left: auto; + margin-right: auto; +/* overflow-x:hidden;*/ +} + +body { + font-family: helvetica,arial,freesans,clean,sans-serif; + font-size: 16px; +/* line-height: 24px;*/ + background-color: #ffffff; + background-image: url(head.jpg); + background-repeat: repeat-x; + color: #505050; + margin: 0px; + overflow-x:hidden; +} + +div.container { + display: block; +/* width: 100%;*/ + margin-top: 0px; + margin-bottom: 0px; + margin-left: auto; + margin-right: auto; + overflow-x:hidden; +} + +a, a:visited, a:link { color: #3465a4; text-decoration: none; } +a:hover {text-decoration: underline; } + +input { + border: 1px solid #666666; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 3px; +} + +img { border :0px; } + +#id_openid_url, .openid input { + background: url(login-bg.gif) no-repeat; + background-position: 0 50%; + padding-left: 18px; + width: 212px; + margin-left: 20px; +} +.openid:hover { + +} + +/*#id_openid_url { + width: 384px; +}*/ + +/*code { + font-family: Courier, monospace; + white-space: pre; + display: block; + overflow: auto; + border: 1px solid #444; + background: #EEE; + color: #444; + padding: 10px; + margin-top: 20px; +} + +blockquote { + background-color: #f4f8f9; + border-left: 4px solid #dae4ee; + padding: 0.4em; + margin-left: 20px; + margin-right: 0px; + width: 260px; + overflow: hidden; +}*/ + +code { + font-family: Courier, monospace; + white-space: pre; + display: block; + overflow: auto; + border: 1px solid #444; + background: #EEE; + color: #444; + padding: 10px; + margin-top: 20px; +} + +blockquote { + background-color: #f4f8f9; + border-left: 4px solid #dae4ee; + padding: 0.4em; +} + +.icollapse-wrapper, .ccollapse-wrapper { + border: 1px solid #CCC; + padding: 5px; +} + +.hide-comments-outer { + margin-left: 0px; + font-weight: 700; + opacity: 0.6; +} +.hide-comments { + margin-left: 5px; +} + +#panel { + background-color: ivory; + position: absolute; +/* z-index: 2;*/ + width: 30%; + padding: 25px; + border: 1px solid #444; +} + +.heart { + color: #FF0000; + font-size: 100%; + margin-right: 5px; +} + + + +/* nav */ +nav { + height: 94px; +/* width: 100%;*/ + width: 320px; + display: block; + margin-top: 0px; + margin-bottom: 0px; + margin-left: auto; + margin-right: auto; +} +nav #site-location { + color: #888a85; + font-size: 0.8em; + position: absolute; +} + +.error-message { + color: #FF0000; + font-size: 1.1em; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 10px; +} + +.info-message { + color: #204a87; + font-size: 1.1em; + border: 1px solid #3465a4; + background-color: #d7e3f1; + padding: 10px; +} + + +nav #banner { +/* display: block;*/ + display: none; + margin-top: 14px; + position: absolute; +} +nav #banner #logo-text a { + display: none; + font-size: 40px; + font-weight: bold; + margin-left: 3px; + color: #000000; + +} +nav #banner #logo-text a:hover { text-decoration: none; } + + +/* ZP REMOVE? nav-commlink */ +.nav-commlink, .nav-login-link { + display: block; + height: 15px; + margin-top: 67px; + margin-right: 2px; + /*padding: 6px 10px;*/ + padding: 6px 3px; + float: left; + bottom: 140px; + border: 1px solid #babdb6; + border-bottom: 0px; + background-color: #aec0d3; + color: #565854; + -moz-border-radius: 3px 3px 0px 0px; + -webkit-border-radius: 3px 3px 0px 0px; + border-radius: 3px 3px 0px 0px; +} + +.nav-commlink.selected { + background-color: #ffffff; + border-bottom: 1px solid #ffffff; + color: #000000 !important; + margin-top: 64px; + padding-top: 6px; + padding-bottom: 8px; +} + +.nav-ajax-left.show { + position: absolute; + font-size: 0.8em; + top: 22px; + right: 2px; + padding: 1px 2px; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background-color: gold !important; +} + + + +nav #nav-link-wrapper .nav-link { + /*border-right: 1px solid #babdb6;*/ +} + +nav .nav-link { + margin-top: 24px; + margin-bottom: 0.2em; + margin-right: 1em; + margin-left: 1em; + background-color: transparent !important; +} + +.nav-button-container { + float: right; + position: relative; +} + +.nav-button-container .nav-ajax-left { +} + +.nav-button-container a { + padding-top: 1.4em; +} + +.nav-menu-list { + text-align: center; + text-size: 18px; + line-height: 24px; + + border-left: 1px solid #aaa;/*#444444;*/ + border-right: 1px solid #aaa; + border-top: 1px solid #aaa; + border-bottom: 1px solid #aaa; + + background: #FFFFFF; + + display: none; + list-style: none; + + width: 8em; + position: absolute; + margin: 0px; +/* right: -33px;*/ + padding: 1em 0px; + + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; + + z-index: 100; +} + +#network-menu-list { + width: 9em; + left: 3px; +} + +#contacts-menu-list { + right: -30px; +} + +#system-menu-list { + right: 3px; +} + + +div.main-container { +/* width: 100%;*/ + margin: 0px auto; + display: block; + position: relative; +} + +/*div.main-content-loading { + position: absolute; + top: 200px; + left: 50%; + display: none; +}*/ + + +/* aside */ +/*aside { + display: block; + min-height: 112px; + + width: 250px; + + padding: 1em; + margin: 1em 0px 0px 0px; + + position: absolute; +}*/ + +#dfrn-request-link { + display: block; + color: #FFFFFF; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 5px; + font-weight: bold; + background: #3465a4 url('friendica-16.png') no-repeat 95% center; +} +#wallmessage-link { + display: block; + color: #FFFFFF; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 5px; + font-weight: bold; + background-color: #3465a4; +} + +/* section */ +div.section-wrapper { +/* width: 100%;*/ +/* width: 320px; + + margin-left: auto; + margin-right: auto;*/ + margin-left: 0px; + + /*padding-right:2em;*/ + + display: block; + + background-color: #ffffff; + background-image: url(border.jpg); + background-position: top right; + background-repeat: no-repeat; +} + +section { + margin: 0px 0px 0px 0px; + + padding-left: 5px; + padding-right: 5px; + padding-top: 1em; + padding-bottom: 3em; + + background-image: url(border.jpg); + background-position: top left; + background-repeat: no-repeat; + + min-height: 112px; + border-top: 1px solid #babdb6; + overflow-x:hidden; +} + +/* footer */ +footer { + text-align: center; + padding-bottom: 1em; +} + +.tabs { + /*background-image: url(head.jpg); + background-repeat: repeat-x; + background-position: 0px -20px;*/ + border-bottom: 1px solid #babdb6; + padding:0px; +} +.tabs.links-widget { + border: none; +} +.tabs li { margin: 0px 0px 20px 0px; padding-left: 1em; list-style: none; } +.tabs a { + padding: 0.4em 2em; + border: 1px solid #aaa; + border-radius: 8px; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; +} +.tab { + /*display:block;*/ + float:left; + padding-left: 1em; + padding-right: 0.4em; + padding-top: 0.4em; + padding-bottom: 0.4em; + margin-right: 0.5em; + margin-bottom: 0.4em; +} +.tab.active { + font-weight: bold; + +} +#events-tab { + display: none; +} +#tabs-end { + padding-top: 0.3em; + clear: both; +} + + +/* Navigation page */ +.navigation-link { +/* display: block; + clear: both; + text-align: center;*/ + font-size: 24px; +} +#navigation-login-wrapper, +#navigation-network-wrapper, +navigation-messages-wrapper, +#navigation-contacts-wrapper, +#navigation-notifications-wrapper, +#navigation-misc-wrapper { + margin-bottom: 1em; +} + + +.birthday-today, .event-today { + font-weight: bold; +} + +.preview { + background: #FFFFC8; +} + +#theme-preview { + margin: 15px 0 15px 15px; +} +#theme-version { + display: block; + font-weight: bold; +} +#theme-credits { + margin-top: 15px; + margin-bottom: 15px; +} + +/* from default */ +#jot-perms-icon, +#profile-location, +#profile-nolocation, +#profile-youtube, +#profile-video, +#profile-audio, +#profile-link, +#profile-title, +#wall-image-upload, +#wall-file-upload, +#profile-upload-wrapper, +#wall-image-upload-div, +#wall-file-upload-div, +.hover, .focus { + cursor: pointer; +} + +#jot-perms-icon { + float: left; +} + +#jot-title, #jot-category { + border: 0px; + margin: 0px; + height: 20px; + width: 270px; + margin-bottom: 5px; + font-weight: bold; + border: 1px solid #ffffff; +} + +/*#jot-title::-webkit-input-placeholder{font-weight: normal;} +#jot-title:-moz-placeholder{font-weight: normal;} +#jot-category::-webkit-input-placeholder{font-weight: normal;} +#jot-category:-moz-placeholder{font-weight: normal;}*/ +#profile-jot-text::-webkit-input-placeholder{font-weight: bold;} +#profile-jot-text:-moz-placeholder{font-weight: bold; font-size:18px; color: graytext} + +#jot-title:hover, +#jot-title:focus, +#jot-category:hover, +#jot-category:focus { + border: 1px solid #cccccc; +} + +/*.jothidden { display:none; }*/ + + +/*.fakelink, .fakelink:visited, .fakelink:link { + color: #3465a4; + text-decoration: none; + cursor: pointer; + margin-top: 15px; + margin-bottom: 15px; +}*/ +.lockview { + cursor: pointer; +} + +#group-sidebar { + margin-bottom: 10px; +} + +.group-selected, .nets-selected, .fileas-selected, .categories-selected { + padding: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #CCCCCC; + background: #F8F8F8; + font-weight: bold; +} + +.settings-widget .selected { +/* padding: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #CCCCCC;*/ + background: #F8F8F8; + font-weight: bold; +} + +/*.fakelink:hover { + color: #3465a4; + text-decoration: underline; + cursor: pointer; +}*/ +.smalltext { + font-size: 0.7em; +} +#sysmsg { + /*width: 600px;*/ + margin-bottom: 10px; +} + +#register-fill-ext { + margin-bottom: 25px; +} + +#label-register-name, #label-register-email, #label-register-nickname, #label-register-openid { + float: left; + width: 350px; + margin-top: 10px; +} + +#register-name, #register-email, #register-nickname { + float: left; + margin-top: 10px; + width: 150px; +} + +#register-openid { + float: left; + margin-top: 10px; + width: 130px; +} + +#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end, #register-openid-end { + clear: both; +} + +#register-nickname-desc { + margin-top: 30px; + width: 650px; +} +#register-sitename { + float: left; + margin-top: 10px; +} + +#register-submit-button { + margin-top: 10px; +} + +/* +#login_standard { + width: 210px; + float: left; +} +#login_openid { + width: 210px; + margin-left: 250px; +} + +#login_standard input, +#login_openid input { + width: 180px; +} + +#login-extra-links { + clear: both; +} + +#register-link, #lost-password-link { + float: left; + font-size: 80%; + margin-right: 15px; +} + +#login-name-end, #login-password-end, #login-extra-end, #login-submit-end { + height: 50px; +} + +#login-submit-button { + margin-top: 10px; + margin-left: 200px; +}*/ + + +input#dfrn-url { + float: left; + background: url(friendica-16.png) no-repeat; + background-position: 2px center; + font-size: 17px; + padding-left: 21px; + height: 21px; + background-color: #FFFFFF; + color: #000000; + margin-bottom: 20px; + max-width: 90%; +} + +#dfrn-url-label { + float: left; + width: 250px; +} + +#dfrn-request-url-end { + clear: both; +} + +#knowyouyes, #knowyouno { + float: left; +} + +#dfrn-request-knowyou-yes-wrapper, #dfrn-request-knowyou-no-wrapper { + + float: none; +} +#dfrn-request-knowyou-yes-label, #dfrn-request-knowyou-no-label { + float: left; + width: 75px; + margin-left: 50px; + margin-bottom: 7px; +} +#dfrn-request-knowyou-break, #dfrn-request-knowyou-end { + clear: both; +} + +#dfrn-request-message-wrapper { + margin-bottom: 50px; +} +#dfrn-request-message-wrapper textarea { + max-width: 90%; +} +#dfrn-request-submit-wrapper { + clear: both; + /*margin-left: 50px;*/ +} +#dfrn-request-submit-wrapper input { + font-size: 18px; + padding: 5px 10px; +} + +#dfrn-request-info-wrapper { + margin-left: 50px; +} + + + +#cropimage-wrapper, #cropimage-preview-wrapper { + float: left; + padding: 10px; +} +.imgCrop { + max-width: 280px; +} +#crop-image-form { + margin-top: 30px; + clear: both; +} + +.intro-wrapper { + margin-top: 20px; +} + +.intro-fullname { + font-size: 1.1em; + font-weight: bold; + +} +.intro-desc { + margin-bottom: 20px; + font-weight: bold; +} + +.intro-note { + padding: 10px; +} + +.intro-end { + padding: 30px; +} + +.intro-form { + float: left; +} +.intro-approve-form { + clear: both; +} +.intro-approve-as-friend-end { + clear: both; +} +.intro-submit-approve, .intro-submit-ignore { + margin-right: 20px; +} +.intro-submit-approve { + margin-top: 15px; +} + +.intro-approve-as-friend-label, .intro-approve-as-fan-label { + float: left; + width: 100px; + margin-left: 20px; +} +.intro-approve-as-friend, .intro-approve-as-fan { + float: left; +} +.intro-form-end { + clear: both; +} +.intro-approve-as-friend-desc { + margin-top: 15px; +} +.intro-approve-as-end { + clear: both; + margin-bottom: 10px; +} + +.intro-end { + clear: both; + margin-bottom: 30px; +} +.aprofile dt { + font-weight: bold; +} +#page-profile .title { + font-weight: bold; +} +#profile-vcard-break { + clear: both; +} +#profile-extra-links { + clear: both; + margin-top: 10px; +} + +#profile-extra-links ul { + list-style-type: none; + padding: 0px; +} + + +#profile-extra-links li { + margin-top: 5px; + max-width: 300px; + margin-left: auto; + margin-right: auto; +} + +#profile-edit-links ul { + list-style-type: none; +} + +#profile-edit-links li { + margin-top: 10px; +} +.profile-edit-side-div { + float: right; +} +.profile-edit-side-link { + opacity: 0.3; + filter:alpha(opacity=30); +} +.profile-edit-side-link:hover { + opacity: 1.0; + filter:alpha(opacity=100); +} + +.view-contact-wrapper { + margin-top: 20px; + float: left; + margin-left: 20px; + width: 180px; +} + +.contact-wrapper { + float: left; + width: 150px; + height: 150px; + overflow: auto; +} + +#view-contact-end { + clear: both; +} + + +#viewcontacts { + margin-top: 15px; +} +#profile-edit-default-desc { + color: #FF0000; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 7px; +} + +#profile-edit-clone-link-wrapper { + float: left; + margin-left: 50px; + margin-bottom: 20px; + width: 300px; +} + + +#profile-edit-links-end { + clear: both; + margin-bottom: 15px; +} + +.profile-listing-photo { + border: none; +} + +.profile-edit-submit-wrapper { + margin-top: 20px; + margin-bottom: 20px; +} + +#profile-photo-link-select-wrapper { + margin-top: 2em; +} + +#profile-photo-submit-wrapper { + margin-top: 10px; +} + +#profile-photo-wrapper { + text-align: center; +} +#profile-photo-wrapper img { + width:175px; + height:175px; + padding: 12px; +} + +#profile-edit-profile-name-label, +#profile-edit-name-label, +#profile-edit-pdesc-label, +#profile-edit-gender-label, +#profile-edit-dob-label, +#profile-edit-address-label, +#profile-edit-locality-label, +#profile-edit-region-label, +#profile-edit-postal-code-label, +#profile-edit-country-name-label, +#profile-edit-marital-label, +#profile-edit-sexual-label, +#profile-edit-politic-label, +#profile-edit-religion-label, +#profile-edit-pubkeywords-label, +#profile-edit-prvkeywords-label, +#profile-edit-homepage-label, +#profile-edit-hometown-label { + font-weight: 700; + float: left; + width: 175px; +} + +#profile-edit-profile-name, +#profile-edit-name, +#profile-edit-pdesc, +#gender-select, +#profile-edit-dob, +#profile-edit-address, +#profile-edit-locality, +#profile-edit-region, +#profile-edit-postal-code, +#profile-edit-country-name, +#marital-select, +#sexual-select, +#profile-edit-politic, +#profile-edit-religion, +#profile-edit-pubkeywords, +#profile-edit-prvkeywords, +#profile-in-dir-yes, +#profile-in-dir-no, +#profile-in-netdir-yes, +#profile-in-netdir-no, +#hide-wall-yes, +#hide-wall-no, +#hide-friends-yes, +#hide-friends-no { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} +#profile-edit-country-name { + max-width: 260px; +} +#profile-edit-pubkeywords, +#profile-edit-prvkeywords { + margin-bottom: 5px; +} +#settings-normal, +#settings-soapbox, +#settings-freelove, +#settings-community { + float: left; +} +#settings-notifications label { + margin-left: 20px; +} +#settings-notify-desc, #settings-activity-desc { + font-weight: bold; + margin-bottom: 15px; +} +#settings-pagetype-desc { + color: #666666; + margin-bottom: 15px; +} + +#profile-in-dir-yes-label, +#profile-in-dir-no-label, +#profile-in-netdir-yes-label, +#profile-in-netdir-no-label, +#hide-wall-yes-label, +#hide-wall-no-label, +#hide-friends-yes-label, +#hide-friends-no-label { + margin-left: 125px; + float: left; + width: 50px; +} + + +#profile-edit-howlong-label, +#profile-edit-with-label { + display: block; + font-style: italic; + width: 175px; + margin-left: 0px; +} +#profile-edit-howlong, +#profile-edit-with { + margin-left: 20px; + margin-bottom: 20px; +} + +#profile-publish-yes-reg, +#profile-publish-no-reg { + float: left; + margin-bottom: 10px; +} + +#profile-publish-yes-label-reg, +#profile-publish-no-label-reg { + margin-left: 350px; + float: left; + width: 50px; +} + +#profile-publish-break-reg, +#profile-publish-end-reg { + clear: both; +} + + +#profile-edit-pdesc-desc, +#profile-edit-pubkeywords-desc, +#profile-edit-prvkeywords-desc { + float: left; + color: #777; + margin-left: 20px; + margin-bottom: 20px; +} +#profile-edit-prvkeywords-desc { + margin-bottom: 0px; +} + +#profile-edit-homepage, #profile-edit-hometown { + float: left; + margin-bottom: 25px; + margin-left: 20px; +} +#profile-edit-hometown { + margin-bottom: 5px; +} +#settings-normal-label, +#settings-soapbox-label, +#settings-community-label, +#settings-freelove-label { + float: left; + width: 200px; +} +#settings-normal-desc, +#settings-soapbox-desc, +#settings-community-desc, +#settings-freelove-desc { + /*float: left; + margin-left: 75px;*/ + clear: left; + color: #666666; + display: block; + margin-bottom: 20px +} + +#profile-edit-profile-name-end, +#profile-edit-name-end, +#profile-edit-pdesc-end, +#profile-edit-gender-end, +#profile-edit-dob-end, +#profile-edit-address-end, +#profile-edit-locality-end, +#profile-edit-region-end, +#profile-edit-postal-code-end, +#profile-edit-country-name-end, +#profile-edit-marital-end, +#profile-edit-sexual-end, +#profile-edit-politic-end, +#profile-edit-religion-end, +#profile-edit-pubkeywords-end, +#profile-edit-prvkeywords-end, +#profile-edit-homepage-end, +#profile-edit-hometown-end, +#profile-in-dir-break, +#profile-in-dir-end, +#profile-in-netdir-break, +#profile-in-netdir-end, +#hide-wall-break, +#hide-wall-end, +#hide-friends-break, +#hide-friends-end, +#settings-normal-break, +#settings-soapbox-break, +#settings-community-break, +#settings-freelove-break { + clear: both; +} +#profile-edit-marital-wrapper, #profile-edit-address-wrapper { + margin-top: 50px; +} +#profile-edit-marital-end { + margin-bottom: 20px; +} + +#id_theme, +#id_mobile_theme { + width: 280px; +} +/*.settings-widget ul { + list-style-type: none; + padding: 0px; +} + +.settings-widget li { + margin-left: 24px; + margin-bottom: 8px; +}*/ + + +#gender-select, #marital-select, #sexual-select { + width: 220px; +} + +#profile-edit-profile-name-wrapper .required { + color: #FF0000; + float: left; +} + +#contacts-search-submit { + font-size: 18px; + padding: 5px 10px; +} + +#contacts-display-wrapper { + padding-left: 35px; +} + +#contacts-main { + margin-top: 20px; + margin-bottom: 20px; +} + +.contact-entry-wrapper { + float: left; +/* width: 120px; + height: 120px;*/ + padding-left: 15px; + padding-right: 15px; + width: 95px; + height: 200px; +} +#contacts-search-end { + margin-bottom: 10px; +} + +.contact-entry-direction-icon { + margin-top: 24px; + margin-right: 2px; +} + +.contact-entry-photo img { + border: none; +} +.contact-entry-photo-end { + clear: both; +} +.contact-entry-name { + float: left; + margin-left: 0px; + margin-right: 10px; + padding-bottom: 5px; + width: 120px; + font-weight: 600; + overflow: hidden; +} +.contact-entry-details { + font-style: italic; + font-size: 10px; + font-weight: 500; +} +.contact-entry-network { + font-size: 10px; + font-weight: 500; +} +.contact-entry-edit-links { + margin-top: 6px; + margin-left: 10px; + width: 16px; +} +.contact-entry-nav-wrapper { + float: left; + margin-left: 10px; +} + +.contact-entry-edit-links img { + border: none; + margin-right: 15px; +} +.contact-entry-photo { + float: left; + position: relative; +} +.contact-entry-end { + clear: both; +} + +#fsuggest-desc, #fsuggest-submit-wrapper { + margin-top: 15px; + margin-bottom: 15px; +} + +#network-star-link{ + margin-top: 10px; +} +.network-star { + float: left; + margin-right: 5px; +} +#network-bmark-link { + margin-top: 10px; +} + +.toplevel_item { + margin-bottom: 60px; +} + +.wall-item-content-wrapper { + padding-top: 1em; +/* padding-left: 0.25em; + padding-right: 0.25em;*/ + + border-top: 2px solid #AAAAAA; + position: relative; +} + +.wall-item-content-wrapper.comment { + margin-top: 15px; + margin-left: 5px; + margin-right: 5px; + + padding-top: 0px; +/* padding-left: 0.5em + padding-right: 0.5em;*/ + + border: 2px solid #AAAAAA; + border-radius: 10px; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; +/* background: #EEEEEE;*/ +} + +.wall-item-like, .wall-item-dislike { + font-style: italic; + margin-left: 0px; + opacity: 0.6; +} + +.wall-item-like.comment, .wall-item-dislike.comment { + margin-left: 5px; +} + +.wall-item-like-full .fakelink-wrapper, +.wall-item-dislike-full .fakelink-wrapper { + display: none; +} +.wall-item-like-full .wall-item-like-expanded, +.wall-item-dislike-full .wall-item-dislike-expanded { + display: inherit !important; +} + +.wall-item-info { + display: block; + float: left; + width:110px; + margin-right:10px; + margin-bottom:10px; +} +.comment .wall-item-info { + width: 70px; +} + +.wall-item-photo-menu-button { + display: block; + position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 94px; left:0px; + overflow: hidden; + text-indent: 40px; + display: none; + +} +.wall-item-photo-menu { + width: auto; + border: 2px solid #444444; + background: #FFFFFF; + position: absolute; + left: 0px; top:110px; + display: none; +/* z-index: 10000;*/ +} +.wall-item-photo-menu { margin:0px; padding: 0px; list-style: none } +.wall-item-photo-menu li a { display: block; padding: 2px; } +.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + +.comment .wall-item-photo-menu-button { top: 64px;} +.comment .wall-item-photo-menu { top: 80px; } + +.wallwall .wwto { + left: 50px; + margin: 0; + position: absolute; + top: 67px; + width: 30px +} +.wallwall .wwto img { + width: 30px !important; + height: 30px !important; +} + +.wallwall /*.wall-item-photo-end*/ { + clear: both; +} + +.wall-item-arrowphoto-wrapper { + position: absolute; + left: 75px; + top: 67px; +/* z-index: 100;*/ +} +.wall-item-lock { + margin-top: 1em; + left: 105px; + position: absolute; + top: 1px; +} +.comment .wall-item-lock { + margin-top: 0px; + left: 65px; +} + +.wall-item-ago { + color: #888888; + font-size: 0.8em; +} + +.wall-item-location { + overflow: hidden; + /* add ellipsis on text overflow */ + /* this work on safari, opera, ie, chrome. */ + /* firefox users have to wait support or we */ + /* can use a jquery plugin http://bit.ly/zJskg */ + text-overflow: ellipsis; + -o-text-overflow: ellipsis; + width: 100%; +} + +.wall-item-like-buttons { + float: left; + margin-right: 3px; +} + +.like-rotator { + margin-left: 5px; +} + +.wall-item-like-buttons > a, +.wall-item-like-buttons > img { + float: left; +} + +.wall-item-like-buttons img { + cursor: pointer; +} + +.wall-item-share-buttons { + margin-left: 10px; + margin-right: 10px; +} + +.editpost { + margin-left: 10px; + float: left; +} +.star-item { + margin-left: 10px; + float: left; +} +.tag-item { + margin-left: 10px; + float: left; +} + +.filer-item { + margin-left: 10px; + float: left; +} + +.wall-item-links-wrapper { + float: left; +} + +.wall-item-delete-wrapper { + float: right; +} + +/*.wall-item-delete-end { + clear: both; +}*/ + +.wall-item-delete-icon { + border: none; +} + + +/*.wall-item-wrapper-end { + clear: both; +}*/ +.wall-item-name-link { + font-weight: bold; + text-decoration: none; + color: #3172BD; +} +.wall-item-photo { + border: none; + border-radius: 7px; +} +.comment .wall-item-photo { + width: 50px !important; + height: 50px !important; +} +.wall-item-content { +/* float: left; + max-width: 100%*/ +/* padding-right: 1em; + max-height: 500px; + overflow: auto;*/ + padding-left:0.25em; + padding-right:0.25em; + clear: left; /* I hate this, but it's the only way to keep the text from bunching to the right on the Android browser */ +} +.comment .wall-item-content { + padding-left:0.5em; + padding-right:0.5em; +} + +.wall-item-title { + /*float: left;*/ + font-weight: bold; + font-size: 1.6em; + /*width: 450px;*/ +} + +/*.wall-item-title-end { + clear: both; +}*/ + +.wall-item-body { + text-align: justify; + float: left; + max-width: 100%; + overflow: hidden; + margin-top: 10px; + line-height: 23px; +} + +.wall-item-body img { + display: block; + margin-top: 2px; + margin-right: auto; + margin-left: auto; + /*max-width: 290px;*/ + max-width: 100%; + border-radius: 7px; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; +} + +/*.comment .wall-item-body img { + max-width: 100%; +}*/ + +.wall-item-body img.smiley { + display: inline; + margin: auto; + border-radius: 0; + -webkit-border-radius: 0; +} + +.wall-item-body blockquote { + margin-left: 0px; + margin-right: 0px; +} + +.comment .wall-item-body ul { + padding-left: 1.5em; +} + +.wall-item-body iframe { + display: block; + clear: both; + margin-top: 1.5em; + margin-bottom: 1.5em; +} + +.wall-item-body code { + overflow: hidden; +} + +.divgrow-showmore { + display: block; + clear: both; + text-align: center; + outline: 0; + border-top: 1px dotted #888; +} + +.wall-item-tools { + clear: both; +/* background-image: url("head.jpg"); + background-position: 0 -20px; + background-repeat: repeat-x;*/ + padding: 5px 5px 0px; + height: 32px; + +} +.wall-item-author { +/* margin-top: 10px;*/ + margin-top: 0px; +} + +.comment .wall-item-tools { +/* background:none;*/ +/* background-image: url("head.jpg"); + background-position: 0 -20px; + background-repeat: repeat-x;*/ + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} + + +.comment-edit-wrapper { + margin-top: 15px; + background: #f3f3f3; + margin-left: 50px; +} + +.comment-wwedit-wrapper { + display: block; + margin-top: 15px; + background: #f3f3f3; + margin-left: 10px; + margin-right: 10px; + + max-width: 90%; +} + +.comment-wwedit-wrapper.comment { + margin-left: 40px; + margin-right: 40px; + border-radius: 10px; +} + +.comment-edit-form { + padding-left: 1em; + padding-right: 1.5em; +} + +.comment-edit-photo { + margin-top: 15px; + /*margin-left: 10px;*/ + /*margin-bottom: 10px;*/ + width: 25px; + float: left; +} +.comment-edit-photo img { + width: 25px; +} +.comment-edit-text-empty, .comment-edit-text-full { +/* float: left;*/ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #cccccc; + padding: 3px 1px 1px 3px; +} + +.comment-edit-text-empty { + color: gray; + height: 30px; + width: 175px; +/* overflow: auto;*/ + margin-top: 40px; + margin-bottom: 10px; + margin-left: 20px; +} + +.comment-edit-text-full { + color: black; + height: 150px; +/* width: 350px; + overflow: auto;*/ +/* width: 250px;*/ + width: 100%; + margin-top: 1.5em; +/* margin-left: 20px;*/ +} + +.comment .comment-edit-text-empty { + width: 120px; +} +.comment .comment-edit-text-full { + margin-left: 10px; + width: 210px; +} + + +.comment-edit-text-end { + clear: both; +} + +.comment-edit-submit { + font-size: 18px; + padding: 5px 10px; + margin: 10px 0px 10px 0px; +} + +#profile-jot-wrapper { + padding-left: 10px; + padding-right: 10px; +} + +.shared_header { + border-top: 1px solid #aaa; + color: #999; + + height: 42px; /* 32 px for the image plus 10 px for the margin around the image */ + padding-top: 0.5em; + margin-top: 1em; + margin-bottom: 1em; + +} +.shared_header img { + float: left; + + margin: auto 1em auto auto; + padding: 0; + + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; +} + +#profile-jot-plugin-wrapper, +#profile-jot-submit-wrapper { + margin-top: 15px; +} + +#profile-jot-submit { + float: left; + font-size: 18px; + padding: 5px 8px; +} +#profile-upload-wrapper { + float: left; + margin-left: 30px; +} +#profile-attach-wrapper { + float: left; + margin-left: 15px; +} +#profile-rotator { + float: left; + margin-left: 30px; +} +#profile-link-wrapper { + float: left; + margin-left: 15px; +} +#profile-youtube-wrapper { + float: left; + margin-left: 15px; +} +#profile-video-wrapper { + float: left; + margin-left: 15px; +} +#profile-audio-wrapper { + float: left; + margin-left: 15px; +} +#profile-location-wrapper { + float: left; + margin-left: 15px; +} +#jot-preview-link { + display: none; + float: left; + margin-left: 45px; + margin-top: 0px !important; +} + + +#profile-nolocation-wrapper { + float: left; + margin-left: 15px; +} +#profile-title-wrapper { + float: left; + margin-left: 15px; +} + +#profile-jot-perms { + float: left; + margin-left: 40px; + font-weight: bold; + font-size: 1.2em; +} + + +#profile-jot-perms-end { + /*clear: left;*/ + height: 30px; +} + +#profile-jot-plugin-end{ + clear: both; +} +input#profile-jot-email { + display: block; +} +.profile-jot-net { + float: left; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; +} + +#profile-jot-networks-end { + clear: both; +} + +.profile-jot-box { + margin-top: 50px; +} +.profile-edit-textarea { + margin-left: 20px; +} + +#profile-jot-end { + clear: both; + margin-bottom: 30px; +} +#about-jot-submit-wrapper { + margin-top: 15px; +} +#about-jot-end { + margin-bottom: 30px; +} +#contacts-main { + margin-bottom: 30px; +} + +#profile-listing-desc { + margin-left: 30px; +} + +#profile-listing-new-link-wrapper { + margin-left: 30px; + margin-bottom: 30px; +} +.profile-listing-photo-wrapper { + float: left; +} + +.profile-listing-edit-buttons-wrapper { + clear: both; +} +.profile-listing-photo-edit-link { + float: left; + width: 125px; +} +.profile-listing-end { + clear: both; +} +.profile-listing-edit-buttons-wrapper img{ + border: none; + margin-right: 20px; +} +.profile-listing { + float: left; + margin-left: 30px; + margin-top: 25px; +} +.profile-listing-visible { + margin-left: 100px; +} +.profile-listing-name { + float: left; + margin-left: 12px; + margin-top: 10px; + color: #3172BD; + font-weight: bold; + width: 200px; + +} +.fortune { + margin-top: 50px; + color: #4444FF; + font-weight: bold; + margin-bottom: 20px; +} + + +.directory-end { + clear: both; +} +.directory-name { + text-align: center; +} +.directory-photo { + margin-left: 15px; +} +.directory-details { + font-size: 0.7em; + text-align: center; + margin-left: 5px; + margin-right: 5px; +} +.directory-item { + float: left; +/* width: 225px; + height: 260px;*/ + padding-left: 15px; + width: 130px; + height: 235px; + overflow: auto; +} + +#directory-search-wrapper { + margin-top: 20px; + margin-right: 20px; + margin-bottom: 50px; +} + +#directory-search-end { +} + +.directory-photo-img { + width: 125px; + border: none; +} + + +.pager { + margin-top: 30px; + margin-right: auto; + margin-left: auto; + + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + text-align: center; +/* line-height: 2.75em;*/ +} + +.pager a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + + +.pager_first, +.pager_last, +.pager_prev, +.pager_next, +.pager_n { +/* float: left; + border: 1px solid black; + border-radius: 7px; + background: #EEE; + text-align: center; + width: 50px; + margin-right: 5px; + margin-bottom: 10px;*/ +/* float: left;*/ +/* margin-right: 15px; + margin-left: 15px;*/ +} + +.pager_first, +.pager_last, +.pager_n { + display: none; +} + +/*.pager_first a, +.pager_last a, +.pager_prev a, +.pager_next a { + padding-top: 5px; + padding-bottom: 5px; + padding-left: 25px; + padding-right: 30px; + + border: 2px solid #AAAAAA; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + font-size: 1.25em; + text-align: center; + text-decoration: none; +} +.pager_n a { + padding-top: 2px; + padding-bottom: 2px; + padding-left: 9px; + padding-right: 18px; + text-decoration: none; + + + + + + + +}*/ + +.pager_prev a, + +.pager_next a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +.pager_current { + display: none; + float: left; + border: 1px solid black; + border-radius: 7px; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + background: #FFCCCC; + font-size: 1.25em; + text-align: center; + width: 50px; + margin-right: 5px; + margin-bottom: 10px; +} + + +#advanced-profile-name-wrapper, +#advanced-profile-gender-wrapper, +#advanced-profile-dob-wrapper, +#advanced-profile-age-wrapper, +#advanced-profile-marital-wrapper, +#advanced-profile-sexual-wrapper, +#advanced-profile-homepage-wrapper, +#advanced-profile-politic-wrapper, +#advanced-profile-religion-wrapper, +#advanced-profile-about-wrapper, +#advanced-profile-interest-wrapper, +#advanced-profile-contact-wrapper, +#advanced-profile-music-wrapper, +#advanced-profile-book-wrapper, +#advanced-profile-tv-wrapper, +#advanced-profile-film-wrapper, +#advanced-profile-romance-wrapper, +#advanced-profile-work-wrapper, +#advanced-profile-education-wrapper { + margin-top: 20px; +} + +#advanced-profile-name-text, +#advanced-profile-gender-text, +#advanced-profile-dob-text, +#advanced-profile-age-text, +#advanced-profile-marital-text, +#advanced-profile-sexual-text, +#advanced-profile-homepage-text, +#advanced-profile-politic-text, +#advanced-profile-religion-text, +#advanced-profile-about-text, +#advanced-profile-interest-text, +#advanced-profile-contact-text, +#advanced-profile-music-text, +#advanced-profile-book-text, +#advanced-profile-tv-text, +#advanced-profile-film-text, +#advanced-profile-romance-text, +#advanced-profile-work-text, +#advanced-profile-education-text { + width: 300px; + float: left; +} + +#advanced-profile-name-end, +#advanced-profile-gender-end, +#advanced-profile-dob-end, +#advanced-profile-age-end, +#advanced-profile-marital-end, +#advanced-profile-sexual-end, +#advanced-profile-homepage-end, +#advanced-profile-politic-end, +#advanced-profile-religion-end { + height: 10px; +} + +#advanced-profile-about-end, +#advanced-profile-interest-end, +#advanced-profile-contact-end, +#advanced-profile-music-end, +#advanced-profile-book-end, +#advanced-profile-tv-end, +#advanced-profile-film-end, +#advanced-profile-romance-end, +#advanced-profile-work-end, +#advanced-profile-education-end { + + +} + +#advanced-profile-name, +#advanced-profile-gender, +#advanced-profile-dob, +#advanced-profile-age, +#advanced-profile-marital, +#advanced-profile-sexual, +#advanced-profile-homepage, +#advanced-profile-politic, +#advanced-profile-religion { + float: left; + +} + + +#advanced-profile-about, +#advanced-profile-interest, +#advanced-profile-contact, +#advanced-profile-music, +#advanced-profile-book, +#advanced-profile-tv, +#advanced-profile-film, +#advanced-profile-romance, +#advanced-profile-work, +#advanced-profile-education { + margin-top: 10px; + margin-left: 50px; + margin-right: 20px; + padding: 10px; + border: 1px solid #CCCCCC; +} + +#advanced-profile-with { + float: left; + margin-left: 15px; +} + +#contact-edit-wrapper { + margin-top: 10px; +} + +#contact-edit-banner-name { + font-size: 1.4em; + font-weight: bold; +} + +#contact-edit-poll-wrapper { + margin-top: 15px; +} + +#contact-edit-last-update-text { + float: left; + clear: left; + margin-top: 30px; +} + +#contact-edit-poll-text { + float: left; + clear: left; + margin-top: 15px; + margin-bottom: 0px; +} + +#contact-edit-update-now { + margin-top: 15px; +} + +#contact-edit-links{ + clear: both; +} + +#contact-edit-links ul { + list-style: none; + list-style-type: none; + margin-left: 0px; + padding-left: 0px; +} + +#contact-edit-links li { + margin-top: 5px; +} + +#contact-edit-drop-link { + float: right; + margin-right: 10px; +} + +#contact-edit-nav-end { + clear: both; +} + +#contact-edit-wrapper { + width: 100%; +} + +#update_now_link { + float: left; + clear: left; + margin-bottom: 20px; +} + +#label_id_hidden, #id_hidden { + margin-top: 30px; +} +#help_id_hidden { + margin-top: 30px; +} + +#contact-edit-info-wrapper, #contact-edit-info { + width: 90%; +} + +#contact-edit-end { + clear: both; + margin-top: 15px; +} + +#contact-profile-selector { + width: 175px; + margin-left: 0px; +} + +.contact-edit-submit { + clear: left; + display: block; + + margin-top: 10px; + margin-bottom: 45px; + padding: 0.2em 0.5em; + font-size: 18px; +} + + +.contact-photo-menu-button { +/* position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 64px; left:0px; + overflow: hidden; + text-indent: 40px; + display: none;*/ + +} +.contact-photo-menu { + width: 130px; + border: 1px solid #AAA; + background: #FFFFFF; + position: absolute; + left: -30px; top: 80px; + display: none; + z-index: 101; + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; +} +.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } +.contact-photo-menu li a { display: block; padding: 2px; } +.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + +#block-message, #ignore-message, #archive-message, #lost-contact-message { + color: #FF0000; +} + +#profile-edit-insecure { + margin-top: 20px; + color: #FF0000; + font-size: 1.1em; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding-left: 5px; + /*: 3px 3px 3px 5px; */ + width: 587px; +} + +#profile-jot-desc { + /*float: left;*/ + width: 100%; + color: #FF0000; + margin-top: 10px; + margin-bottom: 10px; +} + +#profile-jot-text { + width: 100%; + height: 200px; + color:#000; + border: 1px solid #cccccc; + padding: 3px 0px 0px 5px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + + +/** acl **/ +#photo-edit-perms-select, +#photos-upload-permissions-wrapper, +#profile-jot-acl-wrapper{ + /*display:block!important;*/ +} + +#photos-usage-message { + margin-bottom: 15px; +} + +#profile-jot-acl-wrapper{ + /*width:270px; + padding-left:10px; + padding-right:10px;*/ + height:auto; + overflow:visible; + text-align: center; +} + +#acl-wrapper { + /*display: inline-block;*/ + padding-right: 1em; + padding-left: 1em; + + border: 1px solid #444; + border-radius: 10px; +} + +#acl-public-switch { + margin-top: 40px; + text-align: center; +/* margin-right: auto; + margin-left: auto; + + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + text-align: center;*/ +} + +#acl-public-switch a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + display: inline-block; + margin-right: 0.4em; + margin-bottom: 0.4em; +} + +.acl-public-switch-selected { + font-weight: 700; +} + +#acl-search { + display: none; + float:right; + background: #ffffff url("../../../images/search_18.png") no-repeat right center; + padding-right:20px; +} +#acl-showall { + float: left; + display: block; + width: auto; + height: 18px; + background-color: #cccccc; + background-image: url("../../../images/show_all_off.png"); + background-position: 7px 7px; + background-repeat: no-repeat; + padding: 7px 5px 0px 30px; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + color: #999999; +} +#acl-showall.selected { + color: #000000; + background-color: #ff9900; + background-image: url("../../../images/show_all_on.png"); +} + +#acl-list { +/* height: 210px;*/ +/* border: 1px solid #cccccc;*/ + clear: both; + margin-top: 0.7em; + overflow: visible; +} +#acl-list-content { + text-align: center; +} +.acl-html-select-wrapper { + display: inline-block; + margin-right: 1em; + margin-bottom: 2em; + font-weight: 700; + max-width: 100%; +} +.acl-html-select { + margin-top: 0.4em; + max-width: 100%; +} +.acl-list-item { + display: block; + width: 120px; + height: 30px; + border: 1px solid #cccccc; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + margin-top: 5px; + + margin-bottom: 5px; + margin-right: 2px; + margin-left: 2px; + padding-left: 5px; + float: left; +} +.acl-list-item img{ + + display: none; + width:22px; + height: 22px; + float: left; + margin: 4px; +} +.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;} +.acl-list-item a { + font-size: 8px; + display: block; + width: 40px; + height: 10px; + float: left; + color: #999999; + background-color: #cccccc; + background-position: 3px 3px; + background-repeat: no-repeat; + margin-right: 5px; + -webkit-border-radius: 2px ; + -moz-border-radius: 2px; + border-radius: 2px; + padding-left: 15px; +} +#acl-wrapper a:hover { + text-decoration: none; + color:#000000; +} +.acl-button-show { background-image: url("../../../images/show_off.png"); } +.acl-button-hide { background-image: url("../../../images/hide_off.png"); } + +.acl-button-show.selected { + color: #000000; + background-color: #9ade00; + background-image: url("../../../images/show_on.png"); +} +.acl-button-hide.selected { + color: #000000; + background-color: #ff4141; + background-image: url("../../../images/hide_on.png"); +} +.acl-list-item.groupshow { border-color: #9ade00; } +.acl-list-item.grouphide { border-color: #ff4141; } +/** /acl **/ + + +#group-new-submit-wrapper { + margin-top: 30px; +} + + +#group-edit-name-label { + float: left; + width: 175px; + margin-top: 20px; + margin-bottom: 20px; +} + +#group-edit-name { + float: left; + width: 225px; + margin-top: 20px; + margin-bottom: 20px; +} + +#group-edit-name-wrapper { + + +} + + +#group_members_select_label { + display: block; + float: left; + width: 175px; +} + +.group_members_select { + float: left; + width: 230px; + overflow: auto; +} + +#group_members_select_end { + clear: both; +} +#group-edit-name-end { + clear: both; +} + +#message-new { + font-size: 24px; +} + +#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label { + margin-bottom: 10px; + margin-top: 20px; +} + +#prvmail-submit { + float: left; + font-size: 18px; + padding: 0.25em 0.5em; + margin-top: 10px; + margin-right: 30px; +} +#prvmail-upload-wrapper, +#prvmail-link-wrapper, +#prvmail-rotator-wrapper { + float: left; + margin-top: 10px; + margin-right: 10px; + width: 24px; +} + +#prvmail-end { + clear: both; +} + +.mail-list-sender, +.mail-list-detail { + float: left; +} +.mail-list-detail { + margin-left: 20px; +} + +.mail-list-subject { + font-size: 1.1em; + margin-top: 10px; +} +a.mail-list-link { + display: block; + font-size: 1.3em; + padding: 4px 0; +} + +/* +*a.mail-list-link:hover { +* background-color: #15607B; +* color: #F5F6FB; +*} +*/ + +.mail-list-outside-wrapper-end { + clear: both; + +} + +.mail-list-outside-wrapper { + margin-top: 30px; +} + +.mail-list-delete-wrapper { + float: right; + margin-right: 30px; + margin-top: 15px; +} + +.mail-list-delete-icon { + border: none; +} + +.mail-conv-sender, +.mail-conv-detail { + float: left; +} +.mail-conv-detail { + margin-left: 20px; + margin-bottom: 10px; + /*width: 270px;*/ +} + +.mail-conv-subject { + font-size: 1.4em; + margin: 10px 0; +} + +.mail-conv-body { + padding-top: 20px; + clear: both; +} + +.mail-conv-outside-wrapper-end { + clear: both; +} + +.mail-conv-outside-wrapper { + margin-top: 30px; +} + +.mail-conv-delete-wrapper { + float: right; + padding-bottom: 0.5em; + margin-right: 5px; + margin-top: 15px; +} +.mail-conv-break { + clear: both; +} + +.mail-conv-delete-icon { + border: none; +} + +.message-links ul { + list-style-type: none; + padding: 0px; +} + +.message-links li { + margin-top: 10px; + float: left; +} +.message-links a { + padding: 3px 5px; +} + +.message-links-end { + clear: both; +} + +#sidebar-group-list ul { + list-style-type: none; +} + +#sidebar-group-list .icon, #sidebar-group-list .iconspacer { + display: inline-block; + height: 12px; + width: 12px; +} + +#sidebar-group-list li { + margin-top: 10px; +} + +.nets-ul, .fileas-ul, .categories-ul { + list-style-type: none; +} + +.nets-ul li, .fileas-ul li, .categories-ul li { + margin-top: 10px; +} + +.nets-link { + margin-left: 24px; +} +.nets-all { + margin-left: 42px; +} + +.fileas-link, .categories-link { + margin-left: 24px; +} + +.fileas-all, .categories-all { + margin-left: 0px; +} + +#search-save { + font-size: 18px; + padding: 5px 10px; + margin-left: 5px; +} +.groupsideedit { + margin-right: 10px; +} +#saved-search-ul { + list-style-type: none; +} +.savedsearchdrop, .savedsearchterm { + float: left; + margin-top: 10px; +} +.savedsearchterm { + margin-left: 10px; +} + + +#side-follow-wrapper { + margin-top: 20px; +} +#side-follow-url, #side-peoplefind-url { + margin-top: 5px; +} +#side-follow-submit, #side-peoplefind-submit { + font-size: 18px; + padding: 5px 10px; + margin: 10px 0px 10px 10px; +} + +#side-match-link { + margin-top: 10px; +} + +aside input[type='text'] { + width: 174px; +} + +.widget { + border: 1px solid #DDDDDD; + padding: 18px; + margin-top: 5px; + -moz-border-radius:5px; + -webkit-border-radius:5px; + border-radius:5px; +} +.widget.settings-widget { + padding: 0; +} + + +/*.photos { + height: auto; + overflow: auto; +}*/ + +.photos-end { + clear: both; + margin-bottom: 25px; +} + +.photo-album-image-wrapper { + float: left; + margin-top: 15px; + margin-right: 15px; + margin-left: 15px; +/* width: 200px; height: 200px; + overflow: hidden; + position: relative; */ +} +.photo-album-image-wrapper .caption { + display: none; + width: 100%; +/* position: absolute; */ + bottom: 0px; + padding: 0.5em 0.5em 0px 0.5em; + background-color: rgba(245, 245, 255, 0.8); + border-bottom: 2px solid #CCC; + margin: 0px; +} +.photo-album-image-wrapper a:hover .caption { + display:block; +} + +#photo-album-end { + clear: both; + margin-bottom: 25px; +} + +.photo-top-image-wrapper { +/* position: relative; + float: left;*/ + display: inline-block; + vertical-align: top; + margin-top: 15px; + margin-right: 15px; + margin-left: 15px; + margin-bottom: 15px; +/* width: 200px; height: 200px; + overflow: hidden; */ +} +.photo-top-image-wrapper img { + max-width: 290px; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} +.photo-top-album-name { + width: 100%; + min-height: 2em; +/* position: absolute; */ + bottom: 0px; + padding: 0px 3px; + padding-top: 0.5em; + background-color: rgb(255, 255, 255); +} +#photo-top-end { + clear: both; +} + +#photo-top-links { + margin-bottom: 30px; + margin-left: 30px; +} + +#photos-upload-form { + text-align: center; +} + +#photos-upload-newalbum-div, #photos-upload-existing-album-text { + /*float: left;*/ + display: inline-block; + width: 175px; + text-align: left; +} + +#photos-upload-noshare { + margin-bottom: 10px; +} +#photos-upload-noshare-div { + margin-top: 2em; + margin-bottom: 15px; +} + +#photos-upload-noshare-label { + margin-left: 25px; +} + +#photos-upload-newalbum { + width: 15em; +} +#photos-upload-album-select { + width: 15.7em; +} + +#photos-upload-spacer { + margin-top: 25px; +} +#photos-upload-new-end, #photos-upload-exist-end { + clear: both; +} +#photos-upload-exist-end { + margin-bottom: 15px; +} + +#photos_upload_applet_wrapper { + margin-bottom: 15px; +} + +#photos-upload-no-java-message { + margin-bottom: 15px; +} + +#character-counter { + float: right; + font-size: 120%; +} + +#character-counter.grey { + color: #888888; +} + +#character-counter.orange { + color: orange; +} +#character-counter.red { + color: red; +} + +#profile-jot-banner-end { + /* clear: both; */ +} + +#photos-upload-select-files-text { + margin-top: 15px; + margin-bottom: 15px; +} + +#photos-upload-perms-menu, #photos-upload-perms-menu:visited, #photos-upload-perms-menu:link { + color: #8888FF; + text-decoration: none; + cursor: pointer; +} + +#photos-upload-perms-menu { + margin-left: 15px; +} + +#photos-upload-perms-menu:hover { + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} +#settings-default-perms-menu { + margin-top: 15px; + margin-bottom: 15px; +} + +.photo-edit-input-text { + display: inline-block; + text-align: left; +} + +#photo_edit_form { + text-align: center; +} + +#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, .photo-edit-rotate-label { + /*float: left;*/ + display: inline-block; + width: 150px; +} + +#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label { + font-weight: 700; +} + +.photo-perms-icon { + float: left; +} + +#photo-edit-perms-menu, #photos-upload-perms-menu, #settings-default-perms-menu { + text-decoration: none; +} + +.photo-jot-perms-text { + padding-top: 5px; + padding-left: 40px; +} + +#photo-edit-perms, #photos-upload-perms, #settings-default-perms { + margin-top: 30px; +} +#photos-upload-perms { + margin-top: 15px; + margin-left: 5px; +} + +#photo-edit-perms-select, #photos-upload-permissions-wrapper, #settings-jot-acl-wrapper { + margin-top: 30px; +/* margin-left: 20px;*/ +} + +#advanced-expire-popup { + padding-left: 1em; + margin-top: 15px; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +#photo-edit-perms-end { + margin-bottom: 15px; +} + +#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname { + /*float: left;*/ + margin-bottom: 25px; +} + +.photo-edit-rotate-choice { + display: inline-block; +} + +.photo-edit-rotate { + float: left; + margin-left: 20px; +} +#photo-edit-link-wrap { + margin-bottom: 15px; +} +#photo-like-div { + margin-left: 15px; + margin-bottom: 65px; +} + +#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end { + clear: both; +} + +#photo-edit-rotate-end { + margin-bottom: 15px; +} + +#photo-edit-submit-button, #photo-edit-delete-button, #photos-upload-submit { + margin-top: 30px; + padding: 0.25em 0.5em; + font-size: 18px; +} +#photo-edit-submit-button { + margin-left: 10px; +} +#photo-edit-delete-button { + margin-left: 45px; +} +#photos-upload-choose { +/* position: absolute; + top: 460px; + left: 5px;*/ + margin-top: 1em; +} +#photos-upload-submit { + margin-top: 0px; +} +.settings-submit, .profile-edit-submit-button, .settings-features-submit { + padding: 0.25em 0.5em; + margin-bottom: 10px; + font-size: 18px; +} +#photo-edit-end { + margin-bottom: 35px; +} +#photo-caption { + font-size: 110%; + font-weight: bold; + margin-top: 15px; + margin-bottom: 15px; +} + +#in-this-photo-text { + color: #0000FF; + margin-left: 30px; +} + +#in-this-photo { + margin-left: 60px; + margin-top: 10px; + margin-bottom: 20px; +} + +#photo-album-edit-form { + max-width: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +#photo-album-edit-form input { + max-width: 100%; +} +#photo-album-edit-name-label { + display: block; +} + +#photo-album-edit-submit, #photo-album-edit-drop { + margin-top: 15px; + margin-bottom: 15px; + + padding: 0.25em 0.5em; + font-size: 18px; +} + +#photo-album-edit-drop { + margin-left: 2em; +} + +.group-delete-wrapper { + float: right; + margin-right: 50px; +} + +#confirm-message { + display: block; + font-size: 24px; +} +.confirm-button { + margin-top: 30px; + margin-right: 0.4em; + padding: 0.25em 0.5em; + font-size: 18px; +} + +#install-dbhost-label, +#install-dbuser-label, +#install-dbpass-label, +#install-dbdata-label, +#install-tz-desc { + float: left; + width: 250px; + margin-top: 10px; + margin-bottom: 10px; + +} + +#install-dbhost, +#install-dbuser, +#install-dbpass, +#install-dbdata { + float: left; + width: 200px; + margin-left: 20px; +} + +#install-dbhost-end, +#install-dbuser-end, +#install-dbpass-end, +#install-dbdata-end, +#install-tz-end { + clear: both; +} + +#install-form select#timezone_select { + float: left; + margin-top: 18px; + margin-left: 20px; +} + +#dfrn-request-networks { + margin-bottom: 30px; +} + +#pause { + position: fixed; + bottom: 5px; + right: 5px; +} + +.sparkle { + cursor: url('lock.cur'), pointer; +/* cursor: pointer !important; */ +} + +.contact-block-div { + float: left; + width: 52px; + height: 52px; +} +.contact-block-textdiv { + float: left; + width: 150px; + height: 34px; +} + +#contact-block-end { + clear: both; +} +.contact-block-link { + float: left; +} +.contact-block-img { + width:48px; + height:48px; +} + +#tag-remove { + margin-bottom: 15px; +} + +#tagrm li { + margin-bottom: 10px; +} + +#tagrm-submit, #tagrm-cancel { + margin-top: 25px; +} + +#tagrm-cancel { + margin-left: 15px; +} + +.wall-item-conv { + margin-top: 5px; + margin-bottom: 25px; +} + +#search-submit { + font-size: 18px; + padding: 5px 10px; + margin-left: 15px; +} + +#search-box { + margin-bottom: 25px; +} + +.location-label, .gender-label, .marital-label, .homepage-label { + float: left; + text-align: right; + display: block; + width: 65px; +} + +.adr, .x-gender, .marital-text, .homepage-url { + float: left; + display: block; + margin-left: 8px; +} + +.profile-clear { + clear: both; +} + + +.clear { + clear: both; +} + +.cc-license { + margin-top: 50px; + font-size: 70%; +} + + +#plugin-settings-link, #account-settings-link { + margin-bottom: 10px; +} + +#uexport-link { + margin-bottom: 20px; +} + +/* end from default */ + + +.fn { + padding: 1em 0px 5px 12px; + font-size: 120%; + font-weight: bold; +} + +.vcard .title { + margin-bottom: 5px; + margin-left: 12px; +} + +.vcard dl { + clear: both; +} + +#birthday-title { + float: left; + font-weight: bold; +} + +#birthday-adjust { + float: left; + font-size: 75%; + margin-left: 10px; +} + +#birthday-title-end { + clear: both; +} + +.birthday-list { + margin-left: 15px; +} + +#birthday-wrapper { + margin-bottom: 20px; +} + +#network-new-link { + margin-top: 15px; + margin-bottom: 15px; +} + + +.tool-wrapper { + float: left; + margin-left: 15px; +} + +.tool-link { + cursor: pointer; +} + +.eventcal { + float: left; + font-size: 20px; +} + +#event-summary-text { + margin-top: 15px; +} + +#event-share-checkbox { + float: left; + margin-top: 10px; +} + +#event-share-text { + float: left; + margin-top: 10px; + margin-left: 5px; +} + +#event-share-break { + clear: both; + margin-bottom: 10px; +} + +#event-summary { + width: 280px; +} + +.vevent { + border: 1px solid #CCCCCC; +} + +.vevent .event-summary { + margin-left: 10px; + margin-right: 10px; + font-weight: bold; +} + +.vevent .event-description, .vevent .event-location { + margin-left: 10px; + margin-right: 10px; +} +.vevent .event-start { + margin-left: 10px; + margin-right: 10px; +} + +#new-event-link { + margin-bottom: 10px; +} + +.edit-event-link, .plink-event-link { + float: left; + margin-top: 4px; + margin-right: 4px; + margin-bottom: 15px; +} + +.event-description:before { + content: url('../../../images/calendar.png'); + margin-right: 15px; +} + +.event-start, .event-end { + font-size: 14px; + margin-left: 10px; + width: 280px; + clear: both; + padding-bottom: 1.5em; +} + +.event-start .dtstart, .event-end .dtend { + clear: both; + float: left; +} + +.event-list-date { + margin-bottom: 10px; +} + +.prevcal, .nextcal { + float: left; + margin-left: 32px; + margin-right: 32px; + margin-top: 64px; +} +.event-calendar-end { + clear: both; +} + + +.calendar { + font-family: Courier, monospace; +} +.today { + font-weight: bold; + color: #FF0000; +} + +.settings-block { + border: 1px solid #AAA; + margin: 10px; + padding: 10px; +} + +.app-title { + margin: 10px; +} + +#identity-manage-desc { + margin-top:15px; + margin-bottom: 15px; +} + +#identity-manage-choose { + margin-bottom: 15px; +} + +#identity-submit { + margin-top: 20px; +} + +#photo-nav { + position: relative; + height: 55px; +} + +#photo-prev-link { + position: absolute; + left: 5px; +} +#photo-next-link { + position: absolute; + right: 5px; +} +#photo-prev-link, #photo-next-link { + padding: 10px; +/* float: left;*/ +} + +/*#photo-photo { + float: left; +}*/ + +#photo-photo { + display: block; + margin-left: auto; + margin-right: auto; + text-align: center; +} + +#photo-photo img { + max-width: 100%; +} + +#photo-photo-end { + clear: both; +} + +.profile-match-photo { + float: left; + text-align: center; + width: 120px; +} + +.profile-match-name { + float: left; + text-align: center; + width: 120px; + overflow: hidden; +} + +.profile-match-break, +.profile-match-end { + clear: both; +} + +.profile-match-connect { + text-align: center; + font-weight: bold; +} + +.profile-match-wrapper { + display: inline-block; + padding: 10px; + /*width: 120px; + height: 120px;*/ + scroll: auto; + margin-bottom: 2em; + vertical-align: top; +} +.profile-match-wrapper .icon.drophide { + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} +#profile-match-wrapper-end { + clear: both; +} +.side-link { + margin-bottom: 15px; +} + +#language-selector { + position: absolute; + top: 0px; + left: 16px; +} + +#group-members { + margin-top: 20px; + padding: 10px; + height: 250px; + overflow: auto; + border: 1px solid #ddd; +} + +#group-members-end { + clear: both; +} + +#group-separator { + margin-top: 10px; + margin-bottom: 10px; +} + +#group-all-contacts { + padding: 10px; + height: 450px; + overflow: auto; + border: 1px solid #ddd; +} + +#group-all-contacts-end { + clear: both; + margin-bottom: 10px; +} + +#group-edit-desc { + margin-top: 15px; +} + + +#prof-members { + margin-top: 20px; + padding: 10px; + height: 250px; + overflow: auto; + border: 1px solid #ddd; +} + +#prof-members-end { + clear: both; +} + +#prof-separator { + margin-top: 10px; + margin-bottom: 10px; +} + +#prof-all-contacts { + padding: 10px; + height: 450px; + overflow: auto; + border: 1px solid #ddd; +} + +#prof-all-contacts-end { + clear: both; + margin-bottom: 10px; +} + +#prof-edit-desc { + margin-top: 15px; +} + +#crepair-name-label, +#crepair-nick-label, +#crepair-attag-label, +#crepair-url-label, +#crepair-request-label, +#crepair-confirm-label, +#crepair-notify-label, +#crepair-photo-label, +#crepair-poll-label { + float: left; + width: 200px; + margin-bottom: 15px; +} + +#crepair-name, +#crepair-nick, +#crepair-attag, +#crepair-url, +#crepair-request, +#crepair-confirm, +#crepair-notify, +#crepair-photo, +#crepair-poll { + float: left; + width: 300px; +} + + +#netsearch-box { + margin-top: 20px; +} + +#netsearch-box #search-submit { + margin: 5px 0px 0px 0px; +} + +.required { + color: #FF0000; +} + +#event-start-text, #event-finish-text { + margin-top: 10px; + margin-bottom: 5px; +} + +#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { + float: left; +} +#event-datetime-break { + margin-bottom: 10px; +} + +#event-nofinish-break, #event-adjust-break { + clear: both; +} + +#event-desc-text, #event-location-text { + margin-top: 10px; + margin-bottom: 5px; +} + +#event-submit { + margin-top: 10px; +} + +.filesavetags, .categorytags { + display: block; + clear: left; +} + +.body-tag, .filesavetags, .categorytags { + opacity: 0.5; + filter:alpha(opacity=50); +} + +.body-tag:hover, .filesavetags:hover, .categorytags:hover { + opacity: 1.0 !important; + filter:alpha(opacity=100) !important; +} + +.item-select { + display: none; + opacity: 0.1; + filter:alpha(opacity=10); + float: right; + margin-right: 10px; + +} +.item-select:hover, .checkeditem { + opacity: 1; + filter:alpha(opacity=100); +} + + +#item-delete-selected { + margin-top: 30px; +} + +#item-delete-selected-end { + clear: both; +} +#item-delete-selected-icon, #item-delete-selected-desc { + float: left; + margin-right: 5px; +} +#item-delete-selected-desc:hover { + text-decoration: underline; +} + +#lang-select-icon { + cursor: pointer; + position: fixed; + left: 0px; + top: 0px; + opacity: 0.2; + filter:alpha(opacity=20); +} + +#lang-select-icon:hover { + opacity: 1; + filter:alpha(opacity=100); +} + +.notif-image { + height: 80px; + width: 80px; + margin-right: 15px; +} +.notification-listing-end { + clear: both; + margin-bottom: 15px; +} + + + +/** + * Plugins settings + */ + +.settings-block > h3, +.settings-heading { + border-bottom: 1px solid #babdb6; +} + + + +/** + * Form fields + */ +.field { + margin-bottom: 10px; + padding-bottom: 10px; + overflow: auto; +/* width: 100%*/ +} + +.field label { + font-weight: 700; + float: left; + width: 200px; +} + +.field input, +.field textarea { + width: 230px; + margin-left: 20px; +} +.field input[type=checkbox], +.field input[type=radio] { + width: auto; +} +.field textarea { height: 100px; } +.field_help { + display: block; + margin-left: 20px; + color: #666666; + clear: left; +} + + + +.field .onoff { + float: left; + width: 80px; +} +.field .onoff a { + display: block; + border:1px solid #666666; + background-image:url("../../../images/onoff.jpg"); + background-repeat: no-repeat; + padding: 4px 2px 2px 2px; + height: 16px; + text-decoration: none; +} +.field .onoff .off { + + border-color:#666666; + padding-left: 40px; + background-position: left center; + background-color: #cccccc; + color: #666666; + text-align: right; +} +.field .onoff .on { + border-color:#204A87; + padding-right: 40px; + background-position: right center; + background-color: #D7E3F1; + color: #204A87; + text-align: left; +} +.hidden { display: none!important; } + +.field.radio .field_help { margin-left: 20px; } + +/** + * ADMIN + */ +#pending-update { + float:right; + color: #ffffff; + font-weight: bold; + background-color: #FF0000; + padding: 0em 0.3em; + +} +#adminpage dl { + clear: left; + min-height: 40px; + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px solid black; +} +#adminpage dt { + width: 180px; + float: left; + font-weight: bold; +} +#adminpage dd { + margin-left: 180px; +} + +#adminpage h3 { + border-bottom: 1px solid #cccccc; +} +#adminpage .field label { + font-weight: bold; +} +#adminpage .submit { + clear:left; + text-align: right; +} + +#adminpage #pluginslist { + margin: 0px; padding: 0px; +} +#adminpage .plugin { + list-style: none; + display: block; + border: 1px solid #888888; + padding: 1em; + margin-bottom: 5px; + clear: left; +} +#adminpage .plugin .desc { margin-left: 2.5em;} +#adminpage .toggleplugin { + float:left; + margin-right: 1em; +} + +#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;} +#adminpage table th { text-align: left;} +#adminpage td .icon { float: left;} +#adminpage table#users img { width: 16px; height: 16px; } +#adminpage table tr:hover { background-color: #bbc7d7; } +#adminpage .selectall { text-align: right; } + +#cnftheme { + display: none; +} + +/* + * UPDATE + */ +.popup { + width: 100%; height: 100%; + top:0px; left:0px; + position: absolute; + display: none; +} + +.popup .background { + background-color: rgba(0,0,0,128); + opacity: 0.5; + width: 100%; height: 100%; + position: absolute; + top:0px; left:0px; +} +.popup .panel { + top:25%;left:25%;width:50%;height:50%; + padding: 1em; + position: absolute; + border: 4px solid #000000; + background-color: #FFFFFF; +} +.popup .panel .panel_text { display: block; overflow: auto; height: 80%; } +.popup .panel .panel_in { width: 100%; height: 100%; position: relative; } +.popup .panel .panel_actions { width: 100%; bottom: 4px; left: 0px; position: absolute; } +.panel_text .progress { width: 50%; overflow: hidden; height: auto; border: 1px solid #cccccc; margin-bottom: 5px} +.panel_text .progress span {float: right; display: block; width: 25%; background-color: #eeeeee; text-align: right;} + +/** + * OAuth + */ +.oauthapp { + height: auto; overflow: auto; + border-bottom: 2px solid #cccccc; + padding-bottom: 1em; + margin-bottom: 1em; +} +.oauthapp img { + float: left; + width: 48px; height: 48px; + margin: 10px; +} +.oauthapp img.noicon { + background-image: url("../../../images/icons/48/plugin.png"); + background-position: center center; + background-repeat: no-repeat; +} +.oauthapp a { + float: left; +} + +/** + * ICONS + */ +.iconspacer { + display: block; width: 16px; height: 16px; +} + +.icon { + display: block; width: 16px; height: 16px; + background-image: url('../../../images/icons.png'); +} +.article { background-position: 0px 0px;} +.icon.audio { display: none; background-position: -16px 0px;} +.block { background-position: -32px 0px;} +/*.drop { background-position: -48px 0px;} +.drophide { background-position: -64px 0px;}*/ +.icon.drop { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/drop-darkred.png'); + background-repeat: no-repeat; +} +.icon.drophide { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/drop-darkred.png'); + background-repeat: no-repeat; +} +.edit { background-position: -80px 0px;} +/*.camera { background-position: -96px 0px;}*/ +.icon.camera { + display: block; width: 28px; height: 21px; + margin-top: 4px; + background-size: 100% 100%; + background-image: url('images/camera.png'); + background-repeat: no-repeat; +} +/*.dislike { background-position: -112px 0px;}*/ +.icon.dislike { + display: block; + width: 26px; height: 28px;/*31 33*/ + background-size: 100% 100%; + background-image: url('images/disapprove.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.like { background-position: -128px 0px;}*/ +.icon.like { + display: block; width: 26px; height: 28px;/*31 33*/ + margin-right: 7px; + background-size: 100% 100%; + background-image: url('images/approve.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.icon.link { display: none; background-position: -144px 0px;} + +/*.globe { background-position: 0px -16px;}*/ +.icon.globe { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/globe.png'); + background-repeat: no-repeat; +} +/*.noglobe { background-position: -16px -16px;}*/ +.icon.noglobe { + display: block; width: 24px; height: 24px; + background-size: 100% 100%; + background-image: url('images/noglobe.png'); + background-repeat: no-repeat; +} +.no { background-position: -32px -16px;} +.pause { background-position: -48px -16px;} +.play { background-position: -64px -16px;} +/*.pencil { background-position: -80px -16px;} +.small-pencil { background-position: -96px -16px;}*/ +.icon.pencil { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/pencil.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.icon.small-pencil { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/pencil.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.recycle { background-position: -112px -16px;}*/ +.icon.recycle { + display: block; + width: 28px; height: 27px;/*33 32*/ + background-size: 100% 100%; + background-image: url('images/recycle.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.remote-link { background-position: -128px -16px;}*/ +.icon.remote-link { +/* display: block;*/ + display: none; + width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/remote-link.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.share { background-position: -144px -16px;} + +.tools { background-position: 0px -32px;} +/*.lock { background-position: -16px -32px;}*/ +.icon.lock { + display: block; width: 17px; height: 25px; + margin-top: 1px; + background-size: 100% 100%; + background-image: url('images/lock.png'); + background-repeat: no-repeat; +} +/*.unlock { background-position: -32px -32px;}*/ +.icon.unlock { + display: block; width: 17px; height: 28px; + margin-top: -2px; + background-size: 100% 100%; + background-image: url('images/unlock.png'); + background-repeat: no-repeat; +} +.icon.video { display: none; background-position: -48px -32px;} +.oembed.video a { display: block; } +.youtube { background-position: -64px -32px;} +/*.attach { background-position: -80px -32px; }*/ +.icon.attach { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/paperclip.png'); + background-repeat: no-repeat; +} +.language { background-position: -96px -32px; } +.prev { background-position: -112px -32px; } +.next { background-position: -128px -32px; } +.on { background-position: -144px -32px; } + +.off { background-position: 0px -48px; } +/*.starred { background-position: -16px -48px; }*/ +.icon.starred { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/star-yellow.png'); + background-repeat: no-repeat; +} +/*.unstarred { background-position: -32px -48px; }*/ +.icon.unstarred { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/star.png'); + background-repeat: no-repeat; + + opacity: 0.5; +} +/*.tagged { background-position: -48px -48px; }*/ +.icon.tagged { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/tag.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.yellow { background-position: -64px -48px; } + + +.filer-icon { + display: block; width: 24px; height: 24px; + background-size: 100% 100%; + background-image: url('images/folder.png'); + background-repeat: no-repeat; + opacity: 0.5; +} + +.icon.dim { opacity: 0.3;filter:alpha(opacity=30); } + +[class^="comment-edit-bb"] { + list-style: none; + display: none; + margin: 0px 0 -5px 20px; + width: 75%; +} +[class^="comment-edit-bb"] > li { + display: inline-block; + margin: 20px 10px 0 0; + visibility: none; +} +/*[class^="comment-edit-bb-end"] { + clear: both; +}*/ +.editicon { + display: inline-block; + background-size: 100% 100%; + background-repeat: no-repeat; + background-color: #f3f3f3; + text-decoration: none; +} +/*.editicon:hover { + background-color: #ccc; +}*/ +.boldbb { +/* background-position: 0px 0px;*/ + width: 26px; height: 28px; + background-image: url('images/boldB-serif.png'); +} +/*.boldbb:hover { + background-position: 0px -16px; +}*/ +.italicbb { +/* background-position: -16px 0px;*/ + width: 16px; height: 28px; + background-image: url('images/italicI-serif.png'); +} +/*.italicbb:hover { + background-position: -16px -16px; +}*/ +.underlinebb { +/* background-position: -32px 0px;*/ + width: 25px; height: 28px; + background-image: url('images/underlineU-serif.png'); +} +/*.underlinebb:hover { + background-position: -32px -16px; +}*/ +.quotebb { +/* background-position: -48px 0px;*/ + width: 28px; height: 28px; + background-image: url('images/quote.png'); +} +/*.quotebb:hover { + background-position: -48px -16px; +}*/ +.codebb { +/* background-position: -64px 0px;*/ + width: 28px; height: 28px; + background-image: url('images/code.png'); +} +/*.codebb:hover { + background-position: -64px -16px; +}*/ +.imagebb { + background-position: -80px 0px; +} +.imagebb:hover { + background-position: -80px -16px; +} +.urlbb { + background-position: -96px 0px; +} +.urlbb:hover { + background-position: -96px -16px; +} +.videobb { + background-position: -112px 0px; +} +.videobb:hover { + background-position: -112px -16px; +} + +.attachtype { + display: block; + float: left; + background-size: 100% 100%; + width: 48px; + height: 48px; + background-image: url('images/oxygen/unknown.png'); +} + +.body-attach { + margin-top: 10px; +} + +/*.type-video { background-position: 0px 0px; } +.type-image { background-position: -20px 0px; } +.type-audio { background-position: -40px 0px; } +.type-text { background-position: -60px 0px; } +.type-unkn { background-position: -80px 0px; }*/ +.type-video { + background-image: url('images/oxygen/video-x-generic.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} +.type-image { + background-image: url('images/oxygen/image-x-generic.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} +.type-audio { background-image: url('images/oxygen/audio-x-generic.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} + +.type-text { + background-image: url('images/oxygen/text-x-generic-2.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} +.subtype-msword, .subtype-vnd-openxmlformats-officedocument-wordprocessingml-document { + background-image: url('images/oxygen/application-msword.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} +.subtype-pdf { + background-image: url('images/oxygen/application-pdf.png'); + background-size: 100% 100%; + width: 48px; + height: 48px; +} +/*.type-unkn { + background-image: url('images/oxygen/unknown.png'); + background-size: 100% 100%; + + width: 48px; + height: 48px; +}*/ + + + +/* autocomplete popup */ +.acpopup { + max-height:150px; + background-color:#ffffff; + overflow:auto; + z-index:102; + border:1px solid #cccccc; +} +.acpopupitem { + background-color:#ffffff; padding: 4px; + clear:left; +} +.acpopupitem img { + float: left; + margin-right: 4px; + +} + +.acpopupitem.selected { + color: #FFFFFF; background: #3465A4; +} + +/* popup notifications */ +div.jGrowl div.notice { + background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; + margin: 0px; +} +div.jGrowl div.info { + background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; + margin: 0px; +} +#jGrowl.top-right { + top: 15px; + right: 10px; +} +div.jGrowl-notification { + border-radius: 7px; +} +.qcomment { + border: 1px solid #EEE; + padding: 3px; + margin-top: 15px; + margin-left: 25px; + width: 125px; + overflow-y: auto; +} + + +.qcomment option { + width: 125px; + overflow-x: hidden; +} + +.qcomment { + opacity: 0.3; + filter:alpha(opacity=30); +} +.qcomment:hover { + opacity: 1.0; + filter:alpha(opacity=100); +} + +/* notifications popup menu */ +.nav-notify { + display: none; + position: absolute; + font-size: 10px; + padding: 1px 3px; + top: 0px; + right: -10px; + min-width: 15px; + text-align: right; +} +.nav-notify.show { + display: block; +} +ul.notifications-menu-popup { + position: absolute; + display: none; + width: 10em; + margin: 0px; + padding: 0px 0.3em; + list-style: none; + right: -60px; +} +#nav-notifications-menu { + width: 300px; +/* max-height: 400px;*/ + height: auto; +/* overflow-y: scroll;overflow-style:scrollbar;*/ + background-color:#FFFFFF; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius:5px; + border: 1px solid #AAA; + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; +/* z-index: 103;*/ +} +#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; } +#nav-notifications-menu img { float: left; margin-right: 5px; } +#nav-notifications-menu .notif-when { font-size: 0.8em; display: block; } +#nav-notifications-menu li { + padding: 7px 0px 7px 10px; + word-wrap:normal; + border-bottom: 1px solid #000; +} + +#nav-notifications-menu li:hover { + +} + +#nav-notifications-menu a:hover { + text-decoration: underline; +} + +.notif-item a { + color: #000000; +} + +.notif-item a:hover { + text-decoration: underline; +} + +.notif-image { + width: 32px; + height: 32px; + padding: 7px 7px 0px 0px; + +} + +.notify-seen { + background: #DDDDDD; +} + +#id_term_label { + width:75px; +} +#id_term { + width:100px; +} + +#recip { + +} +.autocomplete-w1 { background: #ffffff; no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } +.autocomplete { color:#000; border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; } +.autocomplete .selected { background:#F0F0F0; } +.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; } + +#datebrowse-sidebar select { + margin-left: 40px; + width: 130px; +} + +/*@media only screen and (min-device-width: 768px) +and (max-device-width: 1024px)*/ +/*@media only screen and (min-device-width: 768px) +{ +html { +width:700px +} +div.section-wrapper { +width:700px; +margin-left:0px; +} +.wall-item-body { +width:700px; +} +.comment .wall-item-body { +width:650px; +} +}*/ + +/*@media only screen and (min-device-width: 768px) +{ + .wall-item-body code { + width: 700px; + } + + .comment .wall-item-body blockquote { + margin-left: 20px; + width: 680px; + } + blockquote { + width: 700px; + } + +}*/ + diff --git a/view/theme/decaf-mobile/suggest_friends.tpl b/view/theme/decaf-mobile/suggest_friends.tpl new file mode 100644 index 000000000..d5051e33b --- /dev/null +++ b/view/theme/decaf-mobile/suggest_friends.tpl @@ -0,0 +1,16 @@ +
    +
    + + $name + +
    +
    +
    + $name +
    +
    + {{ if $connlnk }} + + {{ endif }} + +
    diff --git a/view/theme/decaf-mobile/theme.php b/view/theme/decaf-mobile/theme.php new file mode 100644 index 000000000..2897176c4 --- /dev/null +++ b/view/theme/decaf-mobile/theme.php @@ -0,0 +1,33 @@ + + * Maintainer: Zach P + */ + +function decaf_mobile_init(&$a) { + $a->theme_info = array(); + $a->sourcename = 'Friendica mobile web'; + $a->videowidth = 250; + $a->videoheight = 200; + $a->theme_thread_allow = false; +// $a->force_max_items = 10; + set_template_engine($a, 'smarty3'); +} + +function decaf_mobile_content_loaded(&$a) { + + // I could do this in style.php, but by having the CSS in a file the browser will cache it, + // making pages load faster + if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) { +// $a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/decaf-mobile/login-style.css', $a->page['htmlhead']); + $a->theme['stylesheet'] = $a->get_baseurl() . '/view/theme/decaf-mobile/login-style.css'; + } + if( $a->module === 'login' ) + $a->page['end'] .= ''; + +} diff --git a/view/theme/decaf-mobile/threaded_conversation.tpl b/view/theme/decaf-mobile/threaded_conversation.tpl new file mode 100644 index 000000000..5310b323a --- /dev/null +++ b/view/theme/decaf-mobile/threaded_conversation.tpl @@ -0,0 +1,12 @@ +$live_update + +{{ for $threads as $thread }} +{{ if $mode == display }} +{{ inc $thread.template with $item=$thread }}{{ endinc }} +{{ else }} +{{ inc wall_thread_toponly.tpl with $item=$thread }}{{ endinc }} +{{ endif }} +{{ endfor }} + +
    + diff --git a/view/theme/decaf-mobile/voting_fakelink.tpl b/view/theme/decaf-mobile/voting_fakelink.tpl new file mode 100644 index 000000000..b66302cc2 --- /dev/null +++ b/view/theme/decaf-mobile/voting_fakelink.tpl @@ -0,0 +1 @@ +$phrase diff --git a/view/theme/decaf-mobile/wall_thread.tpl b/view/theme/decaf-mobile/wall_thread.tpl new file mode 100644 index 000000000..a5bcbda7e --- /dev/null +++ b/view/theme/decaf-mobile/wall_thread.tpl @@ -0,0 +1,119 @@ +
    + +{##} +
    +
    + {{ if $item.owner_url }} +
    + + $item.owner_name + +
    +
    $item.wall
    + {{ endif }} + {##} + {##} + + $item.name + + {##} + + {##} + {##} +
    + {{ if $item.lock }}{##}$item.lock{##} + {{ else }}
    {{ endif }} +
    $item.location
    +
    +
    + {##} + $item.name{{ if $item.owner_url }} $item.to $item.owner_name $item.vwall{{ endif }}
    +
    $item.ago
    + {##} +
    +
    $item.title
    + {##} +
    $item.body + {##} + {{ for $item.tags as $tag }} + $tag + {{ endfor }} + {##} + {{ if $item.has_cats }} +
    $item.txt_cats {{ for $item.categories as $cat }}$cat.name [$remove] {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} + + {{ if $item.has_folders }} +
    $item.txt_folders {{ for $item.folders as $cat }}$cat.name [$remove] {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} +
    +
    +
    + {{ if $item.vote }} + + {{ endif }} + {{ if $item.plink }} + {##}{##} + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} + + {{ if $item.star }} + + {{ endif }} + {##} + {##} + + {##} + {{ if $item.drop.dropping }}{{ endif }} + {##} + {##} + {##} +
    +
    + {##} + +
    $item.dislike
    + + {{ if $item.threaded }} + {{ if $item.comment }} + {##} + $item.comment + {##} + {{ endif }} + {{ endif }} + +{##} +{##} +{{ for $item.children as $child }} + {{ inc $child.template with $item=$child }}{{ endinc }} +{{ endfor }} + +{{ if $item.flatten }} +{##} + $item.comment +{##} +{{ endif }} +
    + diff --git a/view/theme/decaf-mobile/wall_thread_toponly.tpl b/view/theme/decaf-mobile/wall_thread_toponly.tpl new file mode 100644 index 000000000..817432da5 --- /dev/null +++ b/view/theme/decaf-mobile/wall_thread_toponly.tpl @@ -0,0 +1,101 @@ + +
    + +
    +
    + {{ if $item.owner_url }} +
    + + $item.owner_name + +
    +
    $item.wall
    + {{ endif }} + + $item.name + + +
    + {{ if $item.lock }}$item.lock + {{ else }}
    {{ endif }} +
    $item.location
    +
    +
    + $item.name{{ if $item.owner_url }} $item.to $item.owner_name $item.vwall{{ endif }}
    +
    $item.ago
    +
    +
    $item.title
    +
    $item.body + {{ for $item.tags as $tag }} + $tag + {{ endfor }} + {{ if $item.has_cats }} +
    $item.txt_cats {{ for $item.categories as $cat }}$cat.name [$remove] {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} + + {{ if $item.has_folders }} +
    $item.txt_folders {{ for $item.folders as $cat }}$cat.name [$remove] {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }} +
    + {{ endif }} +
    +
    +
    + {{ if $item.vote }} + + {{ endif }} + {{ if $item.plink }} + + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} + + {{ if $item.star }} + + {{ endif }} + {##} + + {{ if $item.drop.dropping }}{{ endif }} + {##} +
    +
    + +
    $item.dislike
    + + + +
    + + diff --git a/view/theme/decaf-mobile/wallmessage.tpl b/view/theme/decaf-mobile/wallmessage.tpl new file mode 100644 index 000000000..e7fa0ec04 --- /dev/null +++ b/view/theme/decaf-mobile/wallmessage.tpl @@ -0,0 +1,32 @@ + +

    $header

    + +

    $subheader

    + +
    +
    + +$parent + +
    $to
    +$recipname + +
    $subject
    + + +
    $yourmessage
    + + + +
    + + {##} +
    + +
    +
    +
    +
    +
    diff --git a/view/theme/decaf-mobile/wallmsg-end.tpl b/view/theme/decaf-mobile/wallmsg-end.tpl new file mode 100644 index 000000000..607413379 --- /dev/null +++ b/view/theme/decaf-mobile/wallmsg-end.tpl @@ -0,0 +1,2 @@ + + diff --git a/view/theme/decaf-mobile/wallmsg-header.tpl b/view/theme/decaf-mobile/wallmsg-header.tpl new file mode 100644 index 000000000..dc6cb8219 --- /dev/null +++ b/view/theme/decaf-mobile/wallmsg-header.tpl @@ -0,0 +1,7 @@ + + + diff --git a/view/theme/diabook/comment_item.tpl b/view/theme/diabook/comment_item.tpl index fc3594fdc..6f263b3d3 100644 --- a/view/theme/diabook/comment_item.tpl +++ b/view/theme/diabook/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/diabook/contact_template.tpl b/view/theme/diabook/contact_template.tpl index 48930b48a..f7ed10750 100644 --- a/view/theme/diabook/contact_template.tpl +++ b/view/theme/diabook/contact_template.tpl @@ -11,7 +11,13 @@ menu
      - $contact.photo_menu + {{ for $contact.photo_menu as $c }} + {{ if $c.2 }} +
    • $c.0
    • + {{ else }} +
    • $c.0
    • + {{ endif }} + {{ endfor }}
    {{ endif }} diff --git a/view/theme/dispy/comment_item.tpl b/view/theme/dispy/comment_item.tpl index 765b41437..e94080032 100644 --- a/view/theme/dispy/comment_item.tpl +++ b/view/theme/dispy/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/dispy/contact_template.tpl b/view/theme/dispy/contact_template.tpl index 04968bd07..e656ea552 100644 --- a/view/theme/dispy/contact_template.tpl +++ b/view/theme/dispy/contact_template.tpl @@ -11,7 +11,13 @@ menu
      - $contact.photo_menu + {{ for $contact.photo_menu as $c }} + {{ if $c.2 }} +
    • $c.0
    • + {{ else }} +
    • $c.0
    • + {{ endif }} + {{ endfor }}
    {{ endif }} diff --git a/view/theme/duepuntozero/comment_item.tpl b/view/theme/duepuntozero/comment_item.tpl index 0f655ba43..24164a036 100755 --- a/view/theme/duepuntozero/comment_item.tpl +++ b/view/theme/duepuntozero/comment_item.tpl @@ -7,7 +7,7 @@ - + {##} diff --git a/view/theme/facepark/comment_item.tpl b/view/theme/facepark/comment_item.tpl index 7e71aa380..bb1d4fa79 100644 --- a/view/theme/facepark/comment_item.tpl +++ b/view/theme/facepark/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/frost-mobile/comment_item.tpl b/view/theme/frost-mobile/comment_item.tpl index adcd5d75e..5410cd4cf 100755 --- a/view/theme/frost-mobile/comment_item.tpl +++ b/view/theme/frost-mobile/comment_item.tpl @@ -1,4 +1,4 @@ - + -->#}
    - +{##} - + {##} - + {##} $mytitle - - + {##} + {##}
    • - + onclick="insertFormatting('$comment','video', $id);">-->#}
    - - + {##} +{##} {{ if $qcomment }} - + {##}
    - + {##} diff --git a/view/theme/frost-mobile/contact_template.tpl b/view/theme/frost-mobile/contact_template.tpl index c27060bb3..7c19b3272 100644 --- a/view/theme/frost-mobile/contact_template.tpl +++ b/view/theme/frost-mobile/contact_template.tpl @@ -5,16 +5,22 @@ onmouseover="if (typeof t$contact.id != 'undefined') clearTimeout(t$contact.id);" onmouseout="t$contact.id=setTimeout('closeMenu(\'contact-photo-menu-$contact.id\');',200)" > - +{##} $contact.name {{ if $contact.photo_menu }} - +{##}
      - $contact.photo_menu + {{ for $contact.photo_menu as $c }} + {{ if $c.2 }} +
    • $c.0
    • + {{ else }} +
    • $c.0
    • + {{ endif }} + {{ endfor }}
    {{ endif }} diff --git a/view/theme/frost-mobile/photos_upload.tpl b/view/theme/frost-mobile/photos_upload.tpl index d354bc589..43dbcaad7 100644 --- a/view/theme/frost-mobile/photos_upload.tpl +++ b/view/theme/frost-mobile/photos_upload.tpl @@ -18,6 +18,8 @@
    + $default_upload_box +
    @@ -39,9 +41,9 @@
    - $uploader + $alt_uploader - $default + $default_upload_submit
    diff --git a/view/theme/frost/comment_item.tpl b/view/theme/frost/comment_item.tpl index 380803807..5e0919c30 100755 --- a/view/theme/frost/comment_item.tpl +++ b/view/theme/frost/comment_item.tpl @@ -1,4 +1,4 @@ - + -->#}
    - +{##} - + {##} - +{##} $mytitle - - +{##} + {##}
    - - +{##} +{##} {{ if $qcomment }}
    @@ -41,9 +42,9 @@
    - $uploader + $alt_uploader - $default + $default_upload_submit
    diff --git a/view/theme/quattro/comment_item.tpl b/view/theme/quattro/comment_item.tpl index 3fbde1631..293f93f94 100644 --- a/view/theme/quattro/comment_item.tpl +++ b/view/theme/quattro/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/quattro/contact_template.tpl b/view/theme/quattro/contact_template.tpl index b826acc65..485ee6cac 100644 --- a/view/theme/quattro/contact_template.tpl +++ b/view/theme/quattro/contact_template.tpl @@ -10,7 +10,13 @@ {{ if $contact.photo_menu }} menu {{ endif }}
    diff --git a/view/theme/testbubble/comment_item.tpl b/view/theme/testbubble/comment_item.tpl index 1054b23e2..f7fe22dd7 100644 --- a/view/theme/testbubble/comment_item.tpl +++ b/view/theme/testbubble/comment_item.tpl @@ -3,7 +3,7 @@ - + {##} diff --git a/view/theme/vier/comment_item.tpl b/view/theme/vier/comment_item.tpl index fd27e494b..4e39c0772 100644 --- a/view/theme/vier/comment_item.tpl +++ b/view/theme/vier/comment_item.tpl @@ -7,7 +7,7 @@ - + {##} From 187b6441c1ec7a893c3aea4811c355257069781a Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 26 Jan 2013 12:53:35 -0700 Subject: [PATCH 04/13] make the richtext feature work for events, wall messages, and contact notes --- mod/contacts.php | 6 +++--- mod/events.php | 14 ++++++++++++-- mod/wallmessage.php | 8 ++++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/mod/contacts.php b/mod/contacts.php index 6e62ec8ef..ffd43434c 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -244,9 +244,9 @@ function contacts_content(&$a) { $contact_id = $a->data['contact']['id']; $contact = $a->data['contact']; - $editselect = 'exact'; - if(intval(get_pconfig(local_user(),'system','plaintext'))) - $editselect = 'none'; + $editselect = 'none'; + if( feature_enabled(local_user(),'richtext') ) + $editselect = 'exact'; $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array( '$baseurl' => $a->get_baseurl(true), diff --git a/mod/events.php b/mod/events.php index 2f41c0e33..be8b84317 100755 --- a/mod/events.php +++ b/mod/events.php @@ -156,11 +156,21 @@ function events_content(&$a) { } + $editselect = 'none'; + if( feature_enabled(local_user(), 'richtext') ) + $editselect = 'textareas'; + $htpl = get_markup_template('event_head.tpl'); - $a->page['htmlhead'] .= replace_macros($htpl,array('$baseurl' => $a->get_baseurl())); + $a->page['htmlhead'] .= replace_macros($htpl,array( + '$baseurl' => $a->get_baseurl(), + '$editselect' => $editselect + )); $etpl = get_markup_template('event_end.tpl'); - $a->page['end'] .= replace_macros($etpl,array('$baseurl' => $a->get_baseurl())); + $a->page['end'] .= replace_macros($etpl,array( + '$baseurl' => $a->get_baseurl(), + '$editselect' => $editselect + )); $o =""; // tabs diff --git a/mod/wallmessage.php b/mod/wallmessage.php index 24d21883b..b8859badd 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -115,10 +115,14 @@ function wallmessage_content(&$a) { + $editselect = 'none'; + if( feature_enabled(local_user(), 'richtext') ) + $editselect = '/(profile-jot-text|prvmail-text)/'; + $tpl = get_markup_template('wallmsg-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( '$baseurl' => $a->get_baseurl(true), - '$editselect' => '/(profile-jot-text|prvmail-text)/', + '$editselect' => $editselect, '$nickname' => $user['nickname'], '$linkurl' => t('Please enter a link URL:') )); @@ -126,7 +130,7 @@ function wallmessage_content(&$a) { $tpl = get_markup_template('wallmsg-end.tpl'); $a->page['end'] .= replace_macros($tpl, array( '$baseurl' => $a->get_baseurl(true), - '$editselect' => '/(profile-jot-text|prvmail-text)/', + '$editselect' => $editselect, '$nickname' => $user['nickname'], '$linkurl' => t('Please enter a link URL:') )); From acc4d66cd309c0b20375b2d5aec4fa33237ffdca Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 26 Jan 2013 13:07:54 -0700 Subject: [PATCH 05/13] update smart templates --- view/smarty3/comment_item.tpl | 2 +- view/smarty3/confirm.tpl | 19 +++ view/smarty3/contact_template.tpl | 8 +- view/smarty3/like_noshare.tpl | 2 + view/smarty3/manage.tpl | 22 ++++ view/smarty3/navigation.tpl | 108 ++++++++++++++++++ view/smarty3/photos_default_uploader_box.tpl | 6 + .../photos_default_uploader_submit.tpl | 8 ++ view/smarty3/photos_upload.tpl | 5 +- .../comix-plain/smarty3/comment_item.tpl | 2 +- view/theme/comix/smarty3/comment_item.tpl | 2 +- .../decaf-mobile/smarty3/acl_selector.tpl | 2 +- view/theme/decaf-mobile/smarty3/login.tpl | 4 +- view/theme/decaf-mobile/smarty3/register.tpl | 4 +- .../decaf-mobile/smarty3/wall_thread.tpl | 1 - .../smarty3/wall_thread_toponly.tpl | 1 - view/theme/diabook/smarty3/comment_item.tpl | 2 +- .../diabook/smarty3/contact_template.tpl | 8 +- view/theme/dispy/smarty3/comment_item.tpl | 2 +- view/theme/dispy/smarty3/contact_template.tpl | 8 +- .../duepuntozero/smarty3/comment_item.tpl | 2 +- view/theme/facepark/smarty3/comment_item.tpl | 2 +- .../frost-mobile/smarty3/comment_item.tpl | 30 ++--- .../frost-mobile/smarty3/contact_template.tpl | 12 +- .../frost-mobile/smarty3/photos_upload.tpl | 6 +- view/theme/frost/smarty3/comment_item.tpl | 22 ++-- view/theme/frost/smarty3/contact_template.tpl | 8 +- view/theme/frost/smarty3/photos_upload.tpl | 5 +- view/theme/quattro/smarty3/comment_item.tpl | 2 +- .../quattro/smarty3/contact_template.tpl | 8 +- .../theme/testbubble/smarty3/comment_item.tpl | 2 +- view/theme/vier/smarty3/comment_item.tpl | 2 +- 32 files changed, 260 insertions(+), 57 deletions(-) create mode 100644 view/smarty3/confirm.tpl create mode 100644 view/smarty3/manage.tpl create mode 100644 view/smarty3/navigation.tpl create mode 100644 view/smarty3/photos_default_uploader_box.tpl create mode 100644 view/smarty3/photos_default_uploader_submit.tpl diff --git a/view/smarty3/comment_item.tpl b/view/smarty3/comment_item.tpl index 40a3e30ad..caf98168d 100644 --- a/view/smarty3/comment_item.tpl +++ b/view/smarty3/comment_item.tpl @@ -12,7 +12,7 @@ - + {{**}} diff --git a/view/smarty3/confirm.tpl b/view/smarty3/confirm.tpl new file mode 100644 index 000000000..df8d26eaa --- /dev/null +++ b/view/smarty3/confirm.tpl @@ -0,0 +1,19 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + + + {{$message}} + {{foreach $extra_inputs as $input}} + + {{/foreach}} + + + + + +
    + diff --git a/view/smarty3/contact_template.tpl b/view/smarty3/contact_template.tpl index 8143a8280..8e0e1acc7 100644 --- a/view/smarty3/contact_template.tpl +++ b/view/smarty3/contact_template.tpl @@ -16,7 +16,13 @@ menu
      - {{$contact.photo_menu}} + {{foreach $contact.photo_menu as $c}} + {{if $c.2}} +
    • {{$c.0}}
    • + {{else}} +
    • {{$c.0}}
    • + {{/if}} + {{/foreach}}
    {{/if}} diff --git a/view/smarty3/like_noshare.tpl b/view/smarty3/like_noshare.tpl index b8258d64a..62a16227d 100644 --- a/view/smarty3/like_noshare.tpl +++ b/view/smarty3/like_noshare.tpl @@ -5,6 +5,8 @@ *}} diff --git a/view/smarty3/manage.tpl b/view/smarty3/manage.tpl new file mode 100644 index 000000000..857402c04 --- /dev/null +++ b/view/smarty3/manage.tpl @@ -0,0 +1,22 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +

    {{$title}}

    +
    {{$desc}}
    +
    {{$choose}}
    +
    +
    + +
    + + {{**}} +
    + diff --git a/view/smarty3/navigation.tpl b/view/smarty3/navigation.tpl new file mode 100644 index 000000000..28229c569 --- /dev/null +++ b/view/smarty3/navigation.tpl @@ -0,0 +1,108 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +{{* + # LOGIN/REGISTER + *}} +
    +{{* Use nested if's since the Friendica template engine doesn't support AND or OR in if statements *}} +{{if $nav.login}} + +{{/if}} +{{/if}} + +{{* + # NETWORK/HOME + *}} +{{if $nav.network}} + +{{/if}} +{{/if}} +{{/if}} + +{{* + # PRIVATE MESSAGES + *}} +{{if $nav.messages}} + +{{/if}} + + +{{* + # CONTACTS + *}} + + +{{* + # NOTIFICATIONS + *}} +{{if $nav.notifications}} + +{{/if}} + +{{* + # MISCELLANEOUS + *}} + + +{{if $nav.logout}}{{$nav.logout.1}}
    {{/if}} +
    diff --git a/view/smarty3/photos_default_uploader_box.tpl b/view/smarty3/photos_default_uploader_box.tpl new file mode 100644 index 000000000..001d0a3db --- /dev/null +++ b/view/smarty3/photos_default_uploader_box.tpl @@ -0,0 +1,6 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} + diff --git a/view/smarty3/photos_default_uploader_submit.tpl b/view/smarty3/photos_default_uploader_submit.tpl new file mode 100644 index 000000000..87d065d6e --- /dev/null +++ b/view/smarty3/photos_default_uploader_submit.tpl @@ -0,0 +1,8 @@ +{{* + * AUTOMATICALLY GENERATED TEMPLATE + * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN + * + *}} +
    + +
    diff --git a/view/smarty3/photos_upload.tpl b/view/smarty3/photos_upload.tpl index 052ed059a..f2e95a9b1 100644 --- a/view/smarty3/photos_upload.tpl +++ b/view/smarty3/photos_upload.tpl @@ -44,9 +44,10 @@
    - {{$uploader}} + {{$alt_uploader}} - {{$default}} + {{$default_upload_box}} + {{$default_upload_submit}}
    diff --git a/view/theme/comix-plain/smarty3/comment_item.tpl b/view/theme/comix-plain/smarty3/comment_item.tpl index 21b7d0356..6e1bdd774 100644 --- a/view/theme/comix-plain/smarty3/comment_item.tpl +++ b/view/theme/comix-plain/smarty3/comment_item.tpl @@ -8,7 +8,7 @@ - + {{**}} diff --git a/view/theme/comix/smarty3/comment_item.tpl b/view/theme/comix/smarty3/comment_item.tpl index 21b7d0356..6e1bdd774 100644 --- a/view/theme/comix/smarty3/comment_item.tpl +++ b/view/theme/comix/smarty3/comment_item.tpl @@ -8,7 +8,7 @@ - + {{**}} diff --git a/view/theme/decaf-mobile/smarty3/acl_selector.tpl b/view/theme/decaf-mobile/smarty3/acl_selector.tpl index 49f22ef98..b5e830726 100644 --- a/view/theme/decaf-mobile/smarty3/acl_selector.tpl +++ b/view/theme/decaf-mobile/smarty3/acl_selector.tpl @@ -14,7 +14,7 @@
    diff --git a/view/theme/decaf-mobile/smarty3/login.tpl b/view/theme/decaf-mobile/smarty3/login.tpl index d220321ec..69d053181 100644 --- a/view/theme/decaf-mobile/smarty3/login.tpl +++ b/view/theme/decaf-mobile/smarty3/login.tpl @@ -21,9 +21,9 @@