From 84ba45bc51ee20cd8205f3d7674efbd12a1dbdd9 Mon Sep 17 00:00:00 2001 From: Antti Salminen Date: Sat, 8 Mar 2014 20:54:06 +0200 Subject: [PATCH] Add service_links module and a feature for enabling for content. --- .../modules/contrib/service_links/LICENSE.txt | 339 ++++++ .../modules/contrib/service_links/README.txt | 89 ++ .../css/service_links_fisheye.css | 32 + .../service_links/images/_de_alltagz.png | Bin 0 -> 684 bytes .../service_links/images/_de_colivia.png | Bin 0 -> 538 bytes .../contrib/service_links/images/_de_icio.png | Bin 0 -> 698 bytes .../service_links/images/_de_infopirat.png | Bin 0 -> 715 bytes .../service_links/images/_de_linkarena.png | Bin 0 -> 329 bytes .../service_links/images/_de_meinvz.png | Bin 0 -> 1746 bytes .../service_links/images/_de_netselektor.png | Bin 0 -> 306 bytes .../service_links/images/_de_oneview.png | Bin 0 -> 623 bytes .../service_links/images/_de_readster.png | Bin 0 -> 628 bytes .../service_links/images/_de_seekxl.png | Bin 0 -> 636 bytes .../service_links/images/_de_seoigg.png | Bin 0 -> 196 bytes .../service_links/images/_de_weblinkr.png | Bin 0 -> 660 bytes .../service_links/images/_de_webnews.png | Bin 0 -> 241 bytes .../contrib/service_links/images/_de_xing.png | Bin 0 -> 720 bytes .../contrib/service_links/images/_de_yigg.png | Bin 0 -> 545 bytes .../service_links/images/_es_barrapunto.png | Bin 0 -> 1155 bytes .../service_links/images/_es_fresqui.png | Bin 0 -> 340 bytes .../service_links/images/_es_latafanera.png | Bin 0 -> 778 bytes .../service_links/images/_es_meneame.png | Bin 0 -> 677 bytes .../service_links/images/_es_tuenti.png | Bin 0 -> 576 bytes .../service_links/images/_eu_aupatu.png | Bin 0 -> 452 bytes .../service_links/images/_eu_bildu.png | Bin 0 -> 523 bytes .../service_links/images/_eu_zabaldu.png | Bin 0 -> 574 bytes .../service_links/images/_fa_balatarin.png | Bin 0 -> 475 bytes .../service_links/images/_fa_donbaleh.png | Bin 0 -> 6886 bytes .../service_links/images/_fa_friendfa.png | Bin 0 -> 757 bytes .../service_links/images/_fa_viwio.png | Bin 0 -> 3807 bytes .../contrib/service_links/images/_hu_iwiw.png | Bin 0 -> 598 bytes .../service_links/images/_it_diggita.png | Bin 0 -> 645 bytes .../service_links/images/_it_meemi.png | Bin 0 -> 604 bytes .../service_links/images/_it_oknotizie.png | Bin 0 -> 3654 bytes .../service_links/images/_it_segnalo.png | Bin 0 -> 999 bytes .../service_links/images/_it_technotizie.png | Bin 0 -> 245 bytes .../service_links/images/_it_wikio.png | Bin 0 -> 1028 bytes .../service_links/images/_it_ziczac.png | Bin 0 -> 418 bytes .../service_links/images/_nl_ekudos.png | Bin 0 -> 3516 bytes .../service_links/images/_nl_hyves.png | Bin 0 -> 756 bytes .../service_links/images/_nl_nujij.png | Bin 0 -> 506 bytes .../contrib/service_links/images/_pl_blip.png | Bin 0 -> 802 bytes .../service_links/images/_pl_sledzik.png | Bin 0 -> 671 bytes .../service_links/images/_pl_wykop.png | Bin 0 -> 549 bytes .../service_links/images/_ru_100zakladok.png | Bin 0 -> 470 bytes .../service_links/images/_ru_bobrdobr.png | Bin 0 -> 776 bytes .../service_links/images/_ru_communizm.png | Bin 0 -> 663 bytes .../service_links/images/_ru_linksiua.png | Bin 0 -> 750 bytes .../service_links/images/_ru_linkstore.png | Bin 0 -> 617 bytes .../service_links/images/_ru_lopas.png | Bin 0 -> 1167 bytes .../service_links/images/_ru_memori.png | Bin 0 -> 296 bytes .../service_links/images/_ru_moemesto.png | Bin 0 -> 563 bytes .../service_links/images/_ru_myscoop.png | Bin 0 -> 505 bytes .../service_links/images/_ru_news2.png | Bin 0 -> 881 bytes .../service_links/images/_ru_newsland.png | Bin 0 -> 450 bytes .../service_links/images/_ru_ruspace.png | Bin 0 -> 836 bytes .../contrib/service_links/images/_ru_smi2.png | Bin 0 -> 334 bytes .../contrib/service_links/images/_ru_vaau.png | Bin 0 -> 301 bytes .../service_links/images/_ru_vkontakte.png | Bin 0 -> 625 bytes .../service_links/images/_ru_yandex.png | Bin 0 -> 729 bytes .../service_links/images/_se_bloggy.png | Bin 0 -> 311 bytes .../service_links/images/_se_pusha.png | Bin 0 -> 372 bytes .../service_links/images/blinklist.png | Bin 0 -> 723 bytes .../contrib/service_links/images/box.png | Bin 0 -> 786 bytes .../service_links/images/delicious.png | Bin 0 -> 222 bytes .../contrib/service_links/images/digg.png | Bin 0 -> 455 bytes .../contrib/service_links/images/diigo.png | Bin 0 -> 369 bytes .../contrib/service_links/images/facebook.png | Bin 0 -> 268 bytes .../contrib/service_links/images/favorite.png | Bin 0 -> 737 bytes .../contrib/service_links/images/forward.png | Bin 0 -> 421 bytes .../contrib/service_links/images/furl.png | Bin 0 -> 569 bytes .../contrib/service_links/images/google.png | Bin 0 -> 1608 bytes .../service_links/images/google_plus.png | Bin 0 -> 492 bytes .../service_links/images/google_plus_one.png | Bin 0 -> 570 bytes .../service_links/images/icerocket.png | Bin 0 -> 252 bytes .../contrib/service_links/images/identica.png | Bin 0 -> 574 bytes .../contrib/service_links/images/linkedin.png | Bin 0 -> 727 bytes .../service_links/images/misterwong.png | Bin 0 -> 741 bytes .../contrib/service_links/images/mixx.png | Bin 0 -> 134 bytes .../contrib/service_links/images/myspace.png | Bin 0 -> 3527 bytes .../service_links/images/newskicks.png | Bin 0 -> 805 bytes .../contrib/service_links/images/newsvine.png | Bin 0 -> 264 bytes .../contrib/service_links/images/pingthis.png | Bin 0 -> 3205 bytes .../service_links/images/pinterest.png | Bin 0 -> 6409 bytes .../contrib/service_links/images/print.png | Bin 0 -> 361 bytes .../service_links/images/printmail.png | Bin 0 -> 302 bytes .../contrib/service_links/images/printpdf.png | Bin 0 -> 541 bytes .../contrib/service_links/images/reddit.png | Bin 0 -> 813 bytes .../contrib/service_links/images/slashdot.png | Bin 0 -> 955 bytes .../service_links/images/stumbleit.png | Bin 0 -> 1288 bytes .../service_links/images/technorati.png | Bin 0 -> 468 bytes .../contrib/service_links/images/twitter.png | Bin 0 -> 1195 bytes .../contrib/service_links/images/yahoo.png | Bin 0 -> 508 bytes .../contrib/service_links/js/facebook_like.js | 25 + .../service_links/js/facebook_share.js | 42 + .../service_links/js/favorite_services.js | 40 + .../service_links/js/google_plus_one.js | 48 + .../contrib/service_links/js/interface.js | 12 + .../service_links/js/linkedin_share_button.js | 37 + .../service_links/js/pinterest_button.js | 11 + .../service_links/js/service_links_fisheye.js | 16 + .../service_links/js/twitter_button.js | 18 + .../plugins/service_links_displays.info | 13 + .../plugins/service_links_displays.module | 268 +++++ .../plugins/service_links_sprites.info | 14 + .../plugins/service_links_sprites.module | 255 ++++ .../service_links/service_links.admin.inc | 482 ++++++++ .../service_links/service_links.api.php | 84 ++ .../contrib/service_links/service_links.info | 14 + .../service_links/service_links.install | 90 ++ .../service_links/service_links.module | 1058 +++++++++++++++++ .../service_links/service_links.theme.inc | 161 +++ .../service_links/service_links.variable.inc | 15 + .../service_links/service_links.views.inc | 38 + ...vice_links_handler_field_service_links.inc | 42 + .../services/basque_services.info | 12 + .../services/basque_services.module | 33 + .../services/dutch_services.info | 12 + .../services/dutch_services.module | 33 + .../services/farsi_services.info | 12 + .../services/farsi_services.module | 38 + .../services/favorite_services.info | 12 + .../services/favorite_services.module | 23 + .../services/forward_services.info | 13 + .../services/forward_services.module | 30 + .../services/general_services.info | 12 + .../services/general_services.module | 145 +++ .../services/german_services.info | 12 + .../services/german_services.module | 99 ++ .../services/hungarian_services.info | 12 + .../services/hungarian_services.module | 23 + .../services/italian_services.info | 12 + .../services/italian_services.module | 53 + .../services/polish_services.info | 12 + .../services/polish_services.module | 33 + .../services/print_services.info | 13 + .../services/print_services.module | 41 + .../services/russian_services.info | 12 + .../services/russian_services.module | 109 ++ .../services/spanish_services.info | 12 + .../services/spanish_services.module | 43 + .../services/swedish_services.info | 15 + .../services/swedish_services.module | 28 + .../services/widget_services.admin.inc | 262 ++++ .../services/widget_services.info | 12 + .../services/widget_services.install | 39 + .../services/widget_services.module | 242 ++++ .../contrib/service_links/template.php | 66 + .../service_links_social_sharing.features.inc | 14 + ...ocial_sharing.features.user_permission.inc | 23 + .../service_links_social_sharing.info | 18 + .../service_links_social_sharing.module | 7 + ...service_links_social_sharing.strongarm.inc | 86 ++ 153 files changed, 4916 insertions(+) create mode 100644 web/sites/all/modules/contrib/service_links/LICENSE.txt create mode 100644 web/sites/all/modules/contrib/service_links/README.txt create mode 100644 web/sites/all/modules/contrib/service_links/css/service_links_fisheye.css create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_alltagz.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_colivia.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_icio.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_infopirat.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_linkarena.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_meinvz.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_netselektor.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_oneview.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_readster.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_seekxl.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_seoigg.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_weblinkr.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_webnews.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_xing.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_de_yigg.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_es_barrapunto.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_es_fresqui.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_es_latafanera.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_es_meneame.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_es_tuenti.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_eu_aupatu.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_eu_bildu.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_eu_zabaldu.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_fa_balatarin.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_fa_donbaleh.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_fa_friendfa.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_fa_viwio.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_hu_iwiw.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_diggita.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_meemi.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_oknotizie.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_segnalo.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_technotizie.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_wikio.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_it_ziczac.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_nl_ekudos.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_nl_hyves.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_nl_nujij.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_pl_blip.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_pl_sledzik.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_pl_wykop.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_100zakladok.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_bobrdobr.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_communizm.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_linksiua.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_linkstore.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_lopas.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_memori.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_moemesto.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_myscoop.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_news2.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_newsland.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_ruspace.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_smi2.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_vaau.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_vkontakte.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_ru_yandex.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_se_bloggy.png create mode 100644 web/sites/all/modules/contrib/service_links/images/_se_pusha.png create mode 100644 web/sites/all/modules/contrib/service_links/images/blinklist.png create mode 100644 web/sites/all/modules/contrib/service_links/images/box.png create mode 100644 web/sites/all/modules/contrib/service_links/images/delicious.png create mode 100644 web/sites/all/modules/contrib/service_links/images/digg.png create mode 100644 web/sites/all/modules/contrib/service_links/images/diigo.png create mode 100644 web/sites/all/modules/contrib/service_links/images/facebook.png create mode 100644 web/sites/all/modules/contrib/service_links/images/favorite.png create mode 100644 web/sites/all/modules/contrib/service_links/images/forward.png create mode 100644 web/sites/all/modules/contrib/service_links/images/furl.png create mode 100644 web/sites/all/modules/contrib/service_links/images/google.png create mode 100644 web/sites/all/modules/contrib/service_links/images/google_plus.png create mode 100644 web/sites/all/modules/contrib/service_links/images/google_plus_one.png create mode 100644 web/sites/all/modules/contrib/service_links/images/icerocket.png create mode 100644 web/sites/all/modules/contrib/service_links/images/identica.png create mode 100644 web/sites/all/modules/contrib/service_links/images/linkedin.png create mode 100644 web/sites/all/modules/contrib/service_links/images/misterwong.png create mode 100644 web/sites/all/modules/contrib/service_links/images/mixx.png create mode 100644 web/sites/all/modules/contrib/service_links/images/myspace.png create mode 100644 web/sites/all/modules/contrib/service_links/images/newskicks.png create mode 100644 web/sites/all/modules/contrib/service_links/images/newsvine.png create mode 100644 web/sites/all/modules/contrib/service_links/images/pingthis.png create mode 100644 web/sites/all/modules/contrib/service_links/images/pinterest.png create mode 100644 web/sites/all/modules/contrib/service_links/images/print.png create mode 100644 web/sites/all/modules/contrib/service_links/images/printmail.png create mode 100644 web/sites/all/modules/contrib/service_links/images/printpdf.png create mode 100644 web/sites/all/modules/contrib/service_links/images/reddit.png create mode 100644 web/sites/all/modules/contrib/service_links/images/slashdot.png create mode 100644 web/sites/all/modules/contrib/service_links/images/stumbleit.png create mode 100644 web/sites/all/modules/contrib/service_links/images/technorati.png create mode 100644 web/sites/all/modules/contrib/service_links/images/twitter.png create mode 100644 web/sites/all/modules/contrib/service_links/images/yahoo.png create mode 100644 web/sites/all/modules/contrib/service_links/js/facebook_like.js create mode 100644 web/sites/all/modules/contrib/service_links/js/facebook_share.js create mode 100644 web/sites/all/modules/contrib/service_links/js/favorite_services.js create mode 100644 web/sites/all/modules/contrib/service_links/js/google_plus_one.js create mode 100644 web/sites/all/modules/contrib/service_links/js/interface.js create mode 100644 web/sites/all/modules/contrib/service_links/js/linkedin_share_button.js create mode 100644 web/sites/all/modules/contrib/service_links/js/pinterest_button.js create mode 100644 web/sites/all/modules/contrib/service_links/js/service_links_fisheye.js create mode 100644 web/sites/all/modules/contrib/service_links/js/twitter_button.js create mode 100644 web/sites/all/modules/contrib/service_links/plugins/service_links_displays.info create mode 100644 web/sites/all/modules/contrib/service_links/plugins/service_links_displays.module create mode 100644 web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.info create mode 100644 web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.module create mode 100644 web/sites/all/modules/contrib/service_links/service_links.admin.inc create mode 100644 web/sites/all/modules/contrib/service_links/service_links.api.php create mode 100644 web/sites/all/modules/contrib/service_links/service_links.info create mode 100644 web/sites/all/modules/contrib/service_links/service_links.install create mode 100644 web/sites/all/modules/contrib/service_links/service_links.module create mode 100644 web/sites/all/modules/contrib/service_links/service_links.theme.inc create mode 100644 web/sites/all/modules/contrib/service_links/service_links.variable.inc create mode 100644 web/sites/all/modules/contrib/service_links/service_links.views.inc create mode 100644 web/sites/all/modules/contrib/service_links/service_links_handler_field_service_links.inc create mode 100644 web/sites/all/modules/contrib/service_links/services/basque_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/basque_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/dutch_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/dutch_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/farsi_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/farsi_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/favorite_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/favorite_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/forward_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/forward_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/general_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/general_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/german_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/german_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/hungarian_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/hungarian_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/italian_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/italian_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/polish_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/polish_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/print_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/print_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/russian_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/russian_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/spanish_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/spanish_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/swedish_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/swedish_services.module create mode 100644 web/sites/all/modules/contrib/service_links/services/widget_services.admin.inc create mode 100644 web/sites/all/modules/contrib/service_links/services/widget_services.info create mode 100644 web/sites/all/modules/contrib/service_links/services/widget_services.install create mode 100644 web/sites/all/modules/contrib/service_links/services/widget_services.module create mode 100644 web/sites/all/modules/contrib/service_links/template.php create mode 100644 web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.inc create mode 100644 web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.user_permission.inc create mode 100644 web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.info create mode 100644 web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.module create mode 100644 web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.strongarm.inc diff --git a/web/sites/all/modules/contrib/service_links/LICENSE.txt b/web/sites/all/modules/contrib/service_links/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/web/sites/all/modules/contrib/service_links/README.txt b/web/sites/all/modules/contrib/service_links/README.txt new file mode 100644 index 0000000..b2c3f89 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/README.txt @@ -0,0 +1,89 @@ +Service Links 2.x: +------------------ +Author and mantainer: Fabio Mucciante aka TheCrow (since the 2.x branch) +Current co-mantainer: Simon Georges +Requirements: Drupal 7 +License: GPL (see LICENSE.txt) + +Introduction +------------ +This module is the enhanced version of Service Links 1.x developed +by Fredrik Jonsson, rewritten and improved to fit the new purposes: +extend easily the number of services supported and provide APIs to +print links everywhere within any content. +At the address http://servicelinks.altervista.org/?q=service +a web interface helps to create a module including the services +not availables in the standard package. + +Overview +--------- +Service Links provide an amount of 70+ social networks +from around the World where submit the link of a given content, +below a short list: + +* del.icio.us +* Digg +* Facebook +* Furl +* Google +* IceRocket +* LinkedIn +* MySpace +* Newsvine +* Reddit +* StumbleUpon +* Technorati +* Twitter +* Yahoo +* ... + +The admin decides: +- the style to render the links: text, image, text + image +- to show links only for certain node types or some categories +- to add links within the content body, among the other links, or in a block +- what roles are allowed to see the selected links. + +Within the 2.x branch has been introduced: +- modular management of services, grouped by different language area, + through external modules implementing the hook_service_links() +- sorting of services through drag'n drop +- support for buttons which make use of Javascript without break the + XHTML specifies to keep the module more 'accessible' as possible +- improved the use with not node pages +- support for other Drupal modules: Display Suite, Forward, Views, Short Url +- support for sprites to render the service images +- support for browser bookmarking (Chrome, Firefox, IE, Opera) +- two APIs to print easily the whole set of services or a customs subset of them +- configurable list of pages to show/hide on also through PHP code + +A more detailed list of options and related explaining is available at the page: +http://servicelinks.altervista.org/?q=about + +Installation and configuration +------------------------------- +1) Copy the whole 'service_links' folder under your 'modules' directory and then + +2) Point your browser to administer >> modules', enable 'Service Links' and one + of the 'XXX Services' provided, 'General Services' contain the most know social + networks, and 'Widgets Services' the most used buttons + +3) Go to 'administer >> access control' for allow users to watch the links. + +4) At 'administer >> settings >> service links' select for what type of content + enable Service Links and in 'Services' tab select the services to show. + +More information +---------------- + +The file 'template.php' contains some examples about phptemplate variables + +The file 'service_links.api.php' contains info about the hooks implemented + +More info regarding installation and first configuration, set up of the available +options, either extension of the number of services and theming output are available +on the online documentation at the address: +http://servicelinks.altervista.org/?q=about + +More services can be included and packed within an external module customizable +through a web interface available at the address: +http://servicelinks.altervista.org/?q=service diff --git a/web/sites/all/modules/contrib/service_links/css/service_links_fisheye.css b/web/sites/all/modules/contrib/service_links/css/service_links_fisheye.css new file mode 100644 index 0000000..b8334f8 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/css/service_links_fisheye.css @@ -0,0 +1,32 @@ +.fisheye{ + text-align: center; + height: 50px; + position: relative; +} +.fisheyeContainer { + position: absolute; + height: 50px; + /*background: url(bg.gif);*/ + padding-left: 20px; +} +a.fisheyeItem:hover {text-decoration: none} +a.fisheyeItem { + text-align: center; + color: #000; + font-weight: bold; + text-decoration: none; + width: 16px; + position: absolute; + display: block; + top: 0; +} +.fisheyeItem img { + border: none; + margin: 5px 10px 0px; + width: 100%; +} +.fisheyeContainer span { + display: none; + padding-left: 20px; +} + diff --git a/web/sites/all/modules/contrib/service_links/images/_de_alltagz.png b/web/sites/all/modules/contrib/service_links/images/_de_alltagz.png new file mode 100644 index 0000000000000000000000000000000000000000..76f1a05cf33da64e53967c9f420a81ec8e1eae3d GIT binary patch literal 684 zcmV;d0#p5oP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU!DoI2^R5(wSl1*7!tj--hH<# ziM7Vs(v+9l*hFk<(ilx8F{0L1s1$_m@@@-KSYCuufu*|(!s4#`I*UWPK{SntlgVVB zC;#6w&-`chwcG8!{~8eJ4pjkci6jG?6<4I5Rw(3Wwe0qc5 z@DO`o@gWnD5o^^K+XH~LaqAoB;84PDBeO}iMzzRl`Aal1H|scmi|}rAna&BStmI$1 zpqj|X08o1Ci9CyY-mmCx(-C|(-vNFUtLSxO;_WL%5Sr;EiFv4imkRjc%9XbTjtM@R z*_e1Hv%CiEti`>0L#>b%8}-;I;yib9`Aq-P>0=+xo+#Mnfh6TIH;R~;TuB2;&R}42 znrqa6EHjx@V)CxN|KRJR2V!G-u2O2NDw#{6!$vyX>8jHb1pMO`wob_$o3@(m#}C;K z?_WH1By{Z(;aUc=L}rrch?$P0H2@k9t=vg(N-ZY)bS8LZ07`>b2ZNUfDl3Z+$haLC zVr~@(4d95HADLc%J}*mxB8u`)t~*s(Vi_78GbJnw3NL7Y3c$CefJ1lVYj{->xL#Yi zRxNH{a9td3;Kkpz?(VkVp$^^6@RP^I&>D1%%B8X%2Rd&2c;QYxQTXHGx&iTN{qyJ? zsyF%XPht1W*pMl1deKO3?fsWJSydIA?Dymrw1EoYOs=f(Vy{}e!(XX?hra;q&0~R4 SAFTZV0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzm`OxIR5(v#{Qv(y14#g=fh52HRDB2x{{H>@_3KxHnn4<7&YUSP zFF$3<6a#oWnLHkxV<1$9$nu6vz>FH_N+1Z|+p6Ab>hwA}p`1a#>?t=GhAtyw#URl@N zV+}binR)lx?Yq7{J`*QST(V?IT3Xs4pcnuB0|hA%-+lJkweb$4-%*q5=Y|Cr83T?N z%(?UH=g&KL?%cX{>+033Kub=ZI*HJ5?#>6Z@|%plha&s$=@#5z3_MZ3;QGxQH(Fa; zJv=;oeSOW%%{Ok`2yqq2hD-N8SXSO(^xmB_^KMAj4aR`Oc9{#JBZ4a{D=%HT1PnT0 zpuce|YrlWFf2y<^*!4<9~YhBC;8-+%truY1qsI+I%` z#?Ccx+Vt7?@881}As`KV_wIG|4tDekUp#-tw{HX@8yre^?;bjI@Y}a<1fv=1X=2o& cL>x&P0Fnw$a?F`SLjV8(07*qoM6N<$f|V@sZ2$lO literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_icio.png b/web/sites/all/modules/contrib/service_links/images/_de_icio.png new file mode 100644 index 0000000000000000000000000000000000000000..48a11f2ce580438e8d36a8ff10f5c501cc83165e GIT binary patch literal 698 zcmV;r0!96aP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU!I7vi7R5(wSlKYDiQ546wKQBl`^HJK$S}a8^L=eQXtxG=?MVs4W zf2fUU*nkV2ikh{wSg~skW)MM#FPC%f{eC!H&N((5 z4rl%=05FMnhy9I2>2^4KFPdHBfL_^iLg!n5+A}jQKK1(an}&tv&Y^xY8UQ+r1ul~G z0>P}YnZ{>n!i<3S*WPBTbji&aVUHGa>k&c^kEDfhJxuB$@*$Tw8VttF2!MOfk zQnQG69^cbKBa`L@q1<)rAX4SP4UjidZT<$<`NAR<)!N)kR3z3Efe*ONn17LuY9K-f zlL|X_)fbk&AITja@cGLGquxfBDK;&(PuS4oJI?D2TWEI_TQ0Q?Q|_R1h%ZuW%fQW0 z%7joVJGMl#p;~j5PjQXbopAhRrM}80V|6i5t{P$Q^XzLGxDkvQoTS>}wlGn)_LdS3 zfN3QV4OJVYP|3aT)W1k3mw!E0l!2$ok^v!4?&4QS=2@m-&tqPUeQI|~PNrPVy_ g{bl*4ul}9?1U~*NqSf76e*gdg07*qoM6N<$f~sdT#Q*>R literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_infopirat.png b/web/sites/all/modules/contrib/service_links/images/_de_infopirat.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4b20b5a33c3a020b23ff6ecdaa6d616aa3f39d GIT binary patch literal 715 zcmV;+0yO=JP)0Sp{sOwLiK2MkJn!Azc>u#Oe1b0& z3xz@<8jaF44FI6L>zbyWo}L~bA3r@kS(e4JEJ8@vbwEHU94eQ~8yg$3Sd5}5&2pf*>f0QWt~}$5qzXIgXvuLVKyGyc_;)tyf}fC4Aq zPYw}`uuph{2Qf?xcWLKBiWAgHaE7uyVGLKU-rl``}{X%UzZGq zSCzk?T2AQaW;p9~-Qc;$(_ZoA_5c6&hVqN?8uL&4^44$npC>2Y+uIv{O}KtxgJ#C1 zduvYn^Z)<(o7Mtvf_cw$6BGU`yg8W89Kd`;F6F<#HHL5gW_Rpe zG8=w9w>)7VVY0^7no(lYjEr*=xf13q%4SgSjja&4VBzA!EG%DlRUp#k(c#H021^+v X7lr$Ler#k7^b&)otDnm{r-UW|bmx1O literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_meinvz.png b/web/sites/all/modules/contrib/service_links/images/_de_meinvz.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf5300befa65f35b23a86088602f2c33da5a2c8 GIT binary patch literal 1746 zcmV;@1}*uCP)4Tx0C)j~RL^S@K@|QrZmG~B2wH0nvUrdpNm;9CMbtL^5n^i$+aIn^?(HA4aZWV5ov6ELTdbo0FI&wK{O>*+w4vx20?>!`FrQsdJlnHR>OPy zcd~b_n$otK2Za4V;76L-DzNVtaSB-y0*E}{p()372;bw_^6ZZ}PI-92wGS&j#91PI zKs7DSe@(bk%_Y-7gGe}(^>I=@oY#w#*Bu9GZf3^F5WP>3rn}7Ut74&?PWBFvy`A)a zPP5)V!Xd&78LdA?xQ(9mjMYElVd13a#D+Z_7&Y|xU=_C-srWU*6kiZcC!$nw*)9$7 zn6CX+@=AhmkT}X@VSsa5NKe;HZuq)~1$`#h6R+ZTR#D-3j}vF!)ZOnz+5)dI4jl{{ z44Mr{P!L4~VVJN`K!!XTF*LGrKO?IK8z<8w`3e3jI8lUGNUta*C8 zn(P`s>{pjD=7Kek#B;Fw@hxAK%$F&Q6vg9J^Xf~4by_hu-=A!MJ3Znq&n~srbFGPs zH&&aMXZ>nO`|hf|ljc?VPhR!${AbO?W8x_>CU%PFA&Hm8F7cAsOREdwU~R_;ot1_u z(ruCYB-LPGn!NQdT|ZlRy+(fw^-+`=%+gee_kY4FWHg<*4sZI8+sFJD270UUORdLHO0nA4V) z%{fwsET5CQ>B?eK%uw4yQc~9?*JVo2}ze(;aRcp*ceL#HUJSllrgm5wQKR zQu+C;QrUh^8rFfA`ftFz{YAidi-`aL010qNS#tmY3ljhU3ljkVnw%H_00W9iL_t(I z5iOM4Yg|%dQbF;-3-}iZ7V$+v1@X;C zg$m-O6%m+kKXU@&FPrG67v-etie`~F?zi(?%6lq}? z2GUS1QazMW)8e&l>4a#6K^S}Qe8eAN8ajqy>YC#?q1qqHK?RU7Gz`lSgRFE7*A4jL z+J7`>l04AYByiH=0}-w#@G>{6o+o>?7(n?piyqqrm&`sJ!Q;ZOE4=v09IqW|r)_^N zwyCqeU5;_u8*3#K0SSB`|4#O%Y?xkH=k2qLjP*9s*WJR^T#3O)lojJU5i(>AF3_sY|S$`2}O34R3XebS_W( z-~ctY$<*v7`RxM3y=ewJ>o8r{!P2X&ZRDxCFg|z}#>OnmAD+b=yO*%EgHZ$No_6LI zZt%tBJtlv;$%LiR*Olb-sZPvd$)US7!5gOz@a}gz6m~0A{D9QaKB{wn;WahLwM#iq z9AjVi5ZUQT#s_SkJlxFC-Ssr4Y|JRAvRm+(n$I)w^BRjY>vX(zjM4YHS^3~o`d@v9 zrR^%Gzh2>*zeRuAnLVM9-XkB@%$rov}SY)WtWb$Mu+G}=_LpQ zN|oD!)rGOzxpQBM_C%pVTZy4GN7;>H{iSMke2J{=qV`y9awcZDV!4WHnU<(oavnk4Nz-Ff~`fG#NB`5;XOmT=@24P^l;xMx2|5B~QkQr%o9E14kyCGPC~fPyhe`07*qoM6N<$g1Dnz7ytkO literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_netselektor.png b/web/sites/all/modules/contrib/service_links/images/_de_netselektor.png new file mode 100644 index 0000000000000000000000000000000000000000..a589ad3f14558a3d19bfaee97a125a44846caa2a GIT binary patch literal 306 zcmV-20nPr2P)vj6g@b@4F=;22I32b7yJN%A3!7;jRpe24`7a9G!hI%BFPa62BX1XFc=I3<_K@h zz+_Jzn=;Q{xV!h9vvc3BAuEYK81!NT7&cY@$g?aHmdQpOK(vnlFvhI8r3#ED(*1T1 z!;px|vTV67-Nl$#cO;z+U>AfPkyO~W&8PfyJS9oe8g(ztryPKo34PT2m;MkCk@*II z_~HZb)*cakC}bt|S3C>%FmVr);#tT_2AiN68R}_xsi}I=a9qmVx2`|!P_uQHL5tMX zH5-7#w<^cbul4*$qw}g32Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUz?MXyIR5(wSlFMroaS+E-v?5q~DWu|~hZfWldJy%{gCHoqc?vn% zo+^lsKfqq>MQ@4}4A?@dRxnlbFiju9^by^p#w2Fb#H?A8Y@4*%-DDG!UD6=5`1KbA z%SKAuVSbnS&1Ytq`8EO29LNapqf#4V#XX&*)vJ>?%8Hs7zQ5l5(%11mbj20FL9ObS zQkR_3qZ3~=CW?HKij6?qo4{~{|5~hN6saI{g2Jbj&B=^>`fWgC@-_lzZM0XEP*_Bu zAG4isp1_nA?hDAi3KnIZJ)#1%=HTS&Ph`gHsne%G-$wE&K3{|F7@Wte;=)ikrve7N zoK#}q>c)pw#2#x_?T$~1kiU$cX%%63-kyh zEDL!g9@QtD?IhFoQ=F>9!>I6U-2!_H9Bl~Q+FpB&??agD!t_aS&#YOw-5gW_y)!Yk zQU)`OxifW!EOe?JpROYJj>Nldk^k;s^7h#2d9k{#6iek;x%5qxvn%DzCrqAfe3wg` zD6Kir=T6*Q&fM{54W2YPB~i*h)$EMKRBA*{d-{&}h@|#!e*oY!Ci-|FZyo>u002ov JPDHLkV1hB*8gc*t literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_readster.png b/web/sites/all/modules/contrib/service_links/images/_de_readster.png new file mode 100644 index 0000000000000000000000000000000000000000..c19355be88a3e69499a6d6175f677a141403eb73 GIT binary patch literal 628 zcmV-)0*n2LP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUz@<~KNR5(wSl3QyNK@`X9yM75jj;Npk9|TcfMHDK6U}+ObFIHNr zXd0rXR#JWHTa{A0ySShS^1c%SryuN}%gZr#_Nb0x~bb2f8LKZkWuzpoWG9=?ygAz>g#{dq}e~eW}2f88%AT8mxt4N4HfNF5AhP zGa=w_l=L;$F+e~3Z~O-YCWKoknrgBD O0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUz`bk7VR5(wSlFw@sK@`XJPxY!d@g$|hss*WdP^ccno+};{ip7IX zVr&|1t8Jl1)3k}%?q)aH-`SmCZ{8b6EhYgGoMB*Qc%S#a-~={ThYS(KsO255bl)we?;jTR<$i53K3=8d zD?_q#3Mdr9q{Q7({h+q8^gVuD4D*9|5X9GMlJKB_3_&U8V^8W zOj1x}B=BMTymkxv^|=a0TMt=Ky$|1>C!z=;oiNZk)hZN|TpX@Xj-E)9OeFykijKQ= zUGy7Y!o1_No*OtJ`7G}xX@0PgHSYk9rT{}jxjSs$&iXIo2|thgw(ohP%#Q|X8077h zPW_(bFjD~wqeXDKI{2`J;Sdy8sBp`-4C9Yp9;$d!>wK@B7Xmn;& zg!X~CuiTx|srlV4*4a$9E8sP?qB%fo29!wy-2S$05v5667if))+t0FAh0-xv34dCH zklRMFrqC)SBgpEt?P5<{WWBTfN5yC#P)vc}ySZTnTZ(`*&trFzI)v<>z+ZA)T>SvK W6Q5axUH@+Y0000~7lACbVrzlZVv% n^|8!q>P;LIe>8Y@RWL9xOL|-hU^u)UXc~j3tDnm{r-UW|?=3n1 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_de_weblinkr.png b/web/sites/all/modules/contrib/service_links/images/_de_weblinkr.png new file mode 100644 index 0000000000000000000000000000000000000000..a21d1b9f9464a743273ad35810a2818fbd32bee0 GIT binary patch literal 660 zcmV;F0&D$=P)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU!5=lfsR5(wS(#=m3K@ahswhukgpzzJupHvkA}%{F1v_`87>v2s z=042YM!X9VLDv2uB>+PaxH~f=)xZ7ke-2&pcbq3@=On$POeqjnRcDjxx}rtw8TU>4 z&G9MQFtr7WixdHjHEK}(Tnl|&@WuB;W(qk<8rJy|7 z1t<%tA=z>Yl8zwT@o+Aq?RE@BhSuvro2NDd%AsMs6Su{tf#4QE>A z(X)KGZ-wn=oDb7&7ijaVj{+W81=AcXfb9GW>GeUydJ?)HD4))xzTaoJz6Qcw@!>nE z>(%QwF1unX!D#kqZd|zv!1D}vo&eG$4IJWZRTTX^$eI`C@5VdplC_7qBb8v>ficcM zVz(ukGZ4fuBU(?#CmW-@b20jo^xYFYHifVxTAIbTg9gmzCtLgvx*WDDk#P;FLdw4q u>XQJ2HC<*BfQcJ=VMq2^zJ2$1FS!jC5pUjzVc=x|0000!lvI6-lJY5_^ zEd1|I+Q{2tz~kDlxFR!=<67g?hFSAuGZvIx6vq6ebvf_rrIy2NEPy(Za~8AQ{@UYnF9w>-?%g}vY*YScy*X7=tQ1y@&HNMaIXlE_WywN^T>&l}2GO-! zen+jmrgP6fMrESpfwkoquh&W+-d>&QU|hBBL(|5O%vWA*6_dj`FnNdy-67_&V!PPYKdz^ zNlIc#s#S7PDv)9@GB7mMH89dOFbOdPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzpGibPR5(v#{Qv(y14#g=fh53yU-k7HcUI2o-?C`(zU`Yne*Ow_ z4qU^Fm#^XgGB8N}?iPVVHGIyvL?hEBCHj zIlJ8Z*SpJqe}8-1&akge`OJ|$2o3MP{F>LRy5!ROCkhH7~B{PofaohMq8Uk|w|6GKnWg(_irCj#%3n9QKk1Xbv%R}2!SBu^L|`C=()%xk@gWyimi{}_ z@O*vtsSdLfwQ^P7+N;-YL=HNXcsPCh$j-@Whvw95T{vTNPij$+LrFr?-n|EKYItz> zcAm3oZEXDXEbIPs`-k@*yng-m)2GikH2@`U-nw_<{Izg5k1e|oV@(9ulg6==XCFR% jM1lr935-DE!_)}?+{$3{k>ox400000NkvXXu0mjfbaV{( literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_es_barrapunto.png b/web/sites/all/modules/contrib/service_links/images/_es_barrapunto.png new file mode 100644 index 0000000000000000000000000000000000000000..862998c1c8824fc4e2a48802df4cc38dc69e8307 GIT binary patch literal 1155 zcmV-}1bq96P)b7RDF6>tdl6Q35m;^mTZs-=gc(+X5m}1_V3QwN zaT8pJAXs@6UVAB4cMo5Z5nhrRT!$)Gcn@NZ6k~!DW0nzRks4%?7iEVgU7G0Pkc6-D(+KkFx(>0Ml(N>1PrDUjX5181H2b|6l<4V+HwR1pi?G z^JWVBWB~PN1=esb-EJmUnX~_80q|-O`e^|FX8`$V3;1dV@N5_4a3lX|0R3tL|7Z*U zX$JUg3iECcXqLEWm$lq=F!gO2ZkDhAYYqQv5dUrf{%#BVZWj7)6#s4w|8EZaauRr% zs{e8e`*R!kcpvS2FxQDm?tnp`nv{B`zx9wl-IrX1vdZ|7NBfXSoUOFpo_e~irP!u} z*{Fxus)^*Lf!wH&>8Eq|qG{KxjK;8~=%;<*sEg9An*X6>;;ew$?M;)jqRy|?W=j`t%u#Qj-|@v@wS$b-2aZ=|K!B0xYX+M#-snl zk^jhux7+ji$)ms8>&4jTv)}xm>HqQ0vhUBf|IM7n-0`38|GDD+x8?u8;KWL zy5;}A(&49$p7u+|L@=J z^!n`g{r~pQ|Mc4b^Wp#X-|+bQ|MuMB|Nr&(^#AwT|Mcwt_}%~a>;L%Y|M}+s`RM=p z>Hqoh|N89j|NsB^`TzRx@c;k+`|bbw^Z)zt^Z)<<{O|w!_WS(){QUg?{PzF+`S<_- z`2YX;|NZ~|^#A?)|NZ{^|Nkf(c6|T<00Cl4M??UK1szBL000SaNLh0L01FcU01FcV z0GgZ_00007bV*G`2i64_3@H!Le$Lte00A3GL_t(|+5r#&@BRRTf2)dgMjvxKdhUbO4&zvlbdQ<@GIJh~wVLF}!5X+=~3qTaL@5i_bB1~KTiZelo2 z0FCFs7$Q2UCoDDSw>x}scL0p(!4Mrcp(+Y5h$aJ2Jyigk;H(b?C^-Zaf-(RBeM@)% zq}#r1O>KHGaI%2{32Q$|0Fln?(e(N98qm-JQorZ5#XJClI VeV%F^4HEzW002ovPDHLkV1kr3YvKR^ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_es_fresqui.png b/web/sites/all/modules/contrib/service_links/images/_es_fresqui.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8ffedf30abfb9a8555d474c65e9ef62720d848 GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}NPtg>E0FHk_I~QVPfJgHUViG^ z$}`{Aod2=@;?FHter&t)eaDq=yRLrQbM@=KYhMoB_Tef#aj+mEfA->qvr{|jg?V@Z%-FoVOh8)+a;lDE4HLkFv@ z2av;A;1OBOz`!jG!i)^F=12eq*-JcqUD>a(N^r94o!r4H3KXjJba4!+xE0!eQLITp zfVEs}a*(1+@V5W|&$F0h&YN-Ca(B6_k*!Wp;>{U;@s5w%FTbw{ZN6LE7-=rkFLWT< zc$(f$&HtTxynT20t~UsN{1SR$-J^n1gVQd-?3JDte@;bY+0}A9G<68>+9IO&FT8F` hb7}o^ub$tJx$75kt+~El*B$5x22WQ%mvv4FO#qT3nUMeh literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_es_latafanera.png b/web/sites/all/modules/contrib/service_links/images/_es_latafanera.png new file mode 100644 index 0000000000000000000000000000000000000000..dd517bb308f2957be9ebf928d5f40a1332c38144 GIT binary patch literal 778 zcmV+l1NHogP)p00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000$qMObu0a%Ew3X>V>IRB3Hx05LW%IWI6deWi`i0007E zNklVS&%=m>AaKTZO2t}j&$7l`S@TO^ z009gTfGZ$_7y~0B008D6-mjE*j7T(V4d;>r)%Q!C#(@+FhQ`mthlT}#gBTIHUUzZv z$<}5e5D1aX%+JO2?t$O3g6Uo^%YRBG!?LW|83H(fPP<#){w4bqBNS8eUoz!`)Z~OA zvHI$osMm+DO?&&bt(PwV$N-#fQ`0r_ICnegpY3Sw^xyod+iaQx*~-#NZM!sd`%dB6 zbH{GUuH!DgT4=TEW-{(=l%hei*{(Z{_KDdUB;uKw$nxELyC0WEu1-5dGLh#~{p6X7 z8CLC0ZtC4?(>ygOe156h=}Ihn>!vFJCiwtaQTzcTY`5)*5mx&$e6J|!hO9|k*SV^2 zkA+7^<$wtRV#L9qsYWuHiklICBISC*>_1*DZ9_PU8RVME8Dm6Xgu^DLX(*DUD_U@1 zuq8n<_0-sS>G6VH-DiOS^QmC$a0&+~7VT*?>Z)$|Ly^dp%e(JBX?@3fFI{N)cm2k-wCf{hL;5C8xG07*qo IM6N<$f@oY{nE(I) literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_es_meneame.png b/web/sites/all/modules/contrib/service_links/images/_es_meneame.png new file mode 100644 index 0000000000000000000000000000000000000000..169e20d84325d77bd601e1eaab4a1b8d309ea233 GIT binary patch literal 677 zcmV;W0$TlvP)p00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00=Yy00=Yz^H{$(00007bV*G`2iXe) z4muk-(nBWz00JdRL_t(2&n=QWXjEYogy)?9zxyy*6Lk$FDB=SWMYK^=Hl-kTVreQH zK@kffy|s;CA%Y58D1x9^2?`0=_`o+7LLw^0_+Z^+cjMiA@Bg23EV9$i$1n^-W(GhJ zVWx1wvV^M!0w6JS#GYLtmJufwJOBWs6xb&g>F<1eeV@L)wULSPzT>^k2O?0FR`j)U zuS2WZViKZ-2h)DtUO%zl*4KTznSXiX{(MM=xAoFI969aYJ?Ya0fcFoj`=dH}MpTHH z02m66rS4M7>;v)Q3tnxa2KRH`HXSO=961s*GZ1BQS!*N7=NHAZo4TpNQb@>E^A+A$ z_sa{0AP{rJ%tWZRI>p^{6lw72`O?5zNXSL=?#zu=(Q95l7TUjiYEi|^#4Nov^($S; zV-`e21E&U=xmFt8T5~isbxGdbqq(P8X_}b1&_1(Oqu5 zA=l5^+^mrfYLA({ryK(^u%Wd0s={oX^baCI3y-4x#XY=Q`Ti)>#>+$NyJNd6I~&Vi zKMwy}EKQ!wD)ox<0H}~aN=Ajbs!DLqG03991yxT>5t+9n;RL{cy-rmleb}>e00000 LNkvXXu0mjfnK&v9 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_es_tuenti.png b/web/sites/all/modules/contrib/service_links/images/_es_tuenti.png new file mode 100644 index 0000000000000000000000000000000000000000..704669072921701c4026cefcbe731c43f188daad GIT binary patch literal 576 zcmV-G0>Ax000W>0fLJSS^xk56?8>dbVG7wVRUJ4ZXi@?ZDjy5I4?IZ zF);RD2Q0hvie zK~y-6m6Od&8&MR+e;KC4uSh@>(^5$b@q;QZ8dGRX$)a6IpS1 zxDtedT7qsg7=^@CH%TX$hGx1*NSTr#+}n)`$&5h{9C#n+KHfR+U7xBdz<$2M-j53B z{EJlM;dXAhZs9;MH3;&Ympy0o6AWdH42*okO3z|!YenBOuMR<&`jVgRe!U_bv0 zBbB>AL~i9!z|YFUTZRID*Ip`D#<1%Ss?x@2Xn^_mGekoJ*mVc1+8`bayL9=|9}E?x zlkwOH$?3<$VXWduphhTuyb7G zs%_ffTiwa(+HUsFLAoq_d_BpNNU-a7?nd8rJMU%+Y#$ZK6@TCB2LA!5l3^kng}OBW O0000sk~>cVK@^4WodH%u0|-&Fh)dK6Vrhe=mUQ<11%D5v zm9ep~vNITMe8hwVV?hvvs04_}l3mzkcCQ7mELl0_ne)xudon;oM0%rrbzeC7F>*AK zO+=)9w=W-xr#*2o^%(#FpcoExy=z+rIK+f7^}cG`=F9>B00I;YO~m2!07pL9h$g^r z4j2V+9GjQJXKo1~B3J)k0MYfS|A7T^0f0$f_M5g7rhT4!Jyh$w{6G@ZyAU*!ZO50inlh5fm`wHu3V zFy@P|CuN2I4z4+0lK9TtNVpP8NR42*^0uF99v&stt`ZKf^~~Gn;#1I{^zd1V^&>|tbFe%n{E;!Os*iLPw$b+Qf3GxVej8sULcn0d!j?*Ir z>>_gG7>tnuy9?||foBE22`NV!jWl!q@0|H(2L3Y)K&#dI6vuJ9R4PTAh|)B@>UO)I zo6Y8T3(#mZPV4o0lq3lvvLqXWF$MrtEoN1vTrNk(m{Z`j1#r&oXIVxN1clIxeR%PG z2RP^U0jy6Dku~u{z(a_SCjlbDcsyn}yurCLwOS2pEvm|NI>kBnJU~Raxa`yK^-z}8 ze)UQmAAMjjxB&xi-@GdTQe4Nqcr?1@&-FEN++c5a4-sKD%Q*je#>Hj7$a}H_5#jD` z#L3A=tX*zJ(JnvE&&cz9DSi&%&%aZ9g|)Uw8r}{;m;0&;M%D~|1lZo%F1kt6gi2W9 z@bCy#C0C_dt-cIc^&<=`92~qS&-1mhSS%i!_!4OK%zk|hkY(9#Z<>EBe)y`Z5d;BA zl3W3S1?Y4-U*_}qw=fKMHu+4G$z;%Ox4#0;taz~ngd6_i888O^{sX8Kr&wV5hYtV% N002ovPDHLkV1l}^-PHg9 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_eu_zabaldu.png b/web/sites/all/modules/contrib/service_links/images/_eu_zabaldu.png new file mode 100644 index 0000000000000000000000000000000000000000..75440a071e726b630858607e8e075d114f25a162 GIT binary patch literal 574 zcmV-E0>S->P)ck}+!(Q51#GhF9E$5$=Nx%quJgQn;XC3X6zM0v0M( zcDDN$@)zuEEz@q7*u^3c3qv9p9Km7(24A5t1H14ZWMB^D!B|W-#^C8L_kJAiy=TyM z9RL7KI6kjqZ2MAmxV4tU;FbnG;A>7#ykw$xY~P3%0pw(}&`fRuD**h0J0EBHs%67C z_ro?YRACV%vu{7l>d1c`F1t7H%iKBtt9r5SHtywpWAD`aIaS0j;`Xz3&6W=3?+DR4 zgslgErvVfr%LFDm)prLa(-QD?P&)*|R{bmw4p1u#L3+}dn<ci0T>YkGB(T25~iQMzW|!JF?LREB#viZME#s6XZ7G`)$V+n*-Vi*zH3Wg zN#+=<$!yxseluA*3P&SJMyyc^d#w zp2ywN+mS;Pq))2>Aij>Hq)$ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_fa_balatarin.png b/web/sites/all/modules/contrib/service_links/images/_fa_balatarin.png new file mode 100644 index 0000000000000000000000000000000000000000..3e03ff6061356d089da999a7aa5368a13976b244 GIT binary patch literal 475 zcmV<10VMv3P)@0E|gQK~#9!T*}oB!$1r~(MflcGBYzXGq?W#Ppaju)GFuYS|cN$3`YV7 zQ7D!xD{O9pNYWXibrD38sTa*7Bf-Zc3+Kelz=xB7x(gzSQqWgHB+(l7^Pg>lT<~_m z%LOyA@3)5`V=*&WZC`MQ_~U1p9!Ih0*S2S)QLmOl=%xmv++NIMJ^%V6zyR*dG}`xv R+-?8>002ovPDHLkV1f=)x4r-X literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_fa_donbaleh.png b/web/sites/all/modules/contrib/service_links/images/_fa_donbaleh.png new file mode 100644 index 0000000000000000000000000000000000000000..611f42a3f5f4ff2f9a6151fef7c622a766bcd6bd GIT binary patch literal 6886 zcmZu$1x(yQv;X7nQYcc~{cz`SZL#8V$X#)}7AOS{C{8I9iWYaLP@uTGLyH|&w0Lof zKKkCvOJ4HrW_FUDnau8FviqCe$QL@Q1h`Le0RSLSS5wk^+&Qcb#@yJDyojiwn_qr;PBSf+Tch`Nv$EUerx~^5SRL5- zNopWn5d?k-n4V-cq`#-{*9M<_5H5@RtS1)b>IarV9g%5 zH4Pv#u2TI_0JB6!3Y6@4fPu_DLJ4>!1(c7!j8X=S1psoWW{(6g#|sFk8$s28>IR@= zj2N#5z{UpzbR$AJ0dzmWdVrbP2Y8+Ngs1p5^r-oMk=*Nx{*afImir~*8|JQ zh>xCQO#KNrxhMn`k|xjB<(o<^6eLWvdO89C+3^&QyFI=086&J58xxJKC$!?-ZO43I zvawme-yAP=2q{d2%Y82EA^IyzyzJMP(a;(q`8ptbXTj*y{aZO*8eV+cX+;k+18Ldc-QF#heNiFhzntarUxKJ=m?S@Z6xuu808D zjuFMbo zI>p9fv8V4=9!jjZ_q3Z;V4#|C(SVQ|6DsRm0Tk%xhMAao;Rqk99iL9@YlVuqVxBkz%arN73Z zH{_^6y-B<&yoqU_BBWrLm!`K=oMS*D^3fDrkyEc%r5j#MCj2^0Vl;$OU9+Gf_w)4A zS5IDDI#m6JH<2uTrq@ZHFq#_PQT?6#8|};+pCF7Pq(1`2L7h&8MFpewrm9NODx{u{ zrtUWo5EI->*-j-&bu%>Ps^@w~5kG|cS>rR?XBsYkgObw1(&bV-!&AdygO4Sa`u>$F zh9Ld*5}Y4NWrn30FZT3l^kF4Z#o?u}VmAZ1`~Z`?NKBJ%t?uWF`MTL(t=3!m81QVV zYkhbaoe0XpUI&Tvuzek!fA@x~IpvP7Ia;Q)Bu7FKqyaLj)jLgu%3-aicwBvf>)>p2 z6eXVqL@kpaajtRF6bfrK3fh}Hl_n)88JDS*>6WSPwTf0A6lD~)DmRCQzFp>CURMNd79&XZf{QbydT}6v-dBp=8n#!iloa3&I)a(Z>P_u zuQXVj`k3<67uSEcSFhPHEi^f-Z*dJZl`ttVHZ--URjJ6RV4Z2MXf7ftYSc;4Da)LJ zbypwP57w77P*-oxVInK*UF!WIFq) zC0|M|r;U9%l=JUBOWNUw8IKc>&wP>P(reSZ4vLXghoXlLhvAD^Bf?pnnI<5wiS7Z#Ro%@=IlQdT z0!}OC0nZhm2f^yLnfYz`A-J+szj*QLdlg_cdMM#MTA1{#K+ zce`a;g{~+DGC$ZoynUDiiV&~7~K zw~MX|#>77fgFEacX1VnDsCq7!pU=wuIzbhfYCvww8G_%?Oi9 zledxyT?ytFz7edv{C04Dp^W5D9_2tbhtw-J=CwY{ikt?Wl~~|s&GX*uhZQZ)TddCH4;1DVm%@L_ncXkW9W4erc6eu>PA;lm zVupr{-^ZVSBvQoqnEG)zj38_;Q(RU;VolETZs)d0aold4E%V8J?)`A(6H5MotDk$b zW0NV9Imsu<3GFWL3hs70_Nc3neO-O@ZG%1_LCdq3HwT^Gi{5lcc`HQEH{LM>ay-2H z`}JIZqUa`pIw9c!9WCYbR+8_g_7P8F+GwgO0T2Irc56|>;|z|wnu!+x;F10#l&PhF zTL3^kdTU?|*MoR7xO=)m9h~hM;J)tm4E8<_(0>T@v;O>tO>yEIBXT-alOo#KN>tGh zfit|G_^QX`7Ej|ECwtf zuornph$11!o_Pfn1WKtLX0%$n~k3sVk# zk4HP1H>LrvkmrA0m^IivmYps2ZZ*x{wY9-3m0qzg3a74c;Fb9az2w zh(&q!Yk&@#nYVrvMi~Uwtv^qM>inO15+Y8=P>%7?$`@);mH-|&9B%&G_`5qKK7}fU zg)THSG`Cj21kUw2qo=6?0%=`p7qzjqu@R$nM#T!x{FCN=R5cq_Ou-&1dk3t7b#tGv2zm7H8v2hh%=_n{wx?vrQ!O z*z;pV482iI%2%8INL+2r@qv*{qu4Kvp4)>O%lL!cRSJ*;Ms5=Kb1^b7E5@7CIP#n> zLrMNAOJSZSXG()~;{k|9vZj{BPELuVvPVxeM*jQjPrT6NCIb7g)Mlsr&}Rn0oJhF=S)QdJBHpO5C?T8Rnkw)5j+n!4_0}%*XMi5TuxticSqUH z(JtApETl$}zze?a<;!InRG-$^ALF=e*}&@Tkr}u5GcJ7Kw>JXcypOQsDArXQdlhv8 z#T9`|Zuvw>s?o_wmjCoH%UpK6y`m{;Pty0q(?4dglK*SxAk}S?un7_38)#MA6{&M_ zLCHLjP#2p_zHFEFocch_SAt-7a5oay5@m_SH?_y(Agh~klln(N-Heq2VkhsJn41-a ziL|_=T#!y?=GQ@x9 z4s1LBv%pH9&FJ|R-_wxX6{A_$99d?WoxA&&1U!VnAwJ*RG&e4(gM{E0rcHyRd4BX= zjbyllu6$c%a&P|g&!;$><5%J@*AM@R2rnT!R2c&gs%>A`xeMxX?%-#V z#_@Lg=q`tzYeGVC{**k z@eto_XAx(GddDH=w*G@u)eoKrK)QHw=SgWmcUG#u`6XQY!Q^g7paKSty*al(;`eqq zCc@hIyFo|v@!JQOXe+(K#TiCLvZe@w-?-_8C4j!1v3%<}vv)A$-H3VA%7*v_-Yyif zY5v>7VS?AeMa0{ zPiCNh;83_iXHO6s8J<2Ol$E%@tBbV#yt?NZ6gO-j>+he=yjCoLb&2W(~14jFJk2EH_Uwb!|~zaev!afAint3Z}G~cHQ}R!Eq;LfLeh{=D7+)vodXpo zm&uw6N}MgPZ0$~=OZHw9TUkq_Ac~V?Ie(b3(s7qGN3j^XRbp85ol!(%y7~jF*((Ri zuFCM2`b}bZMSl1PNv?@so_HV`a+;Ayw(-T7>6>L{i z^YwIfbz`lt0LB8Ug$`$`CdGq{4ih!spFOpf>*Z2--^&`tBtSu?d&P>+S!#m;F)fI^ z;w4lB7dfYt=qKmDblIh3Q_uvhqES`%>nS5_XpFnBM_%wnZj|2?i{}noAGwtK(xy8NF;?si#Fu%4(%%dys4eUZ z;VIhFpASe7rPuClNP6z>+Mc&n`)!BeSA^rwr!+yw7qQ-}=1oq0Y}57RnvEM3ZKnO= zZ*wrRK45O*5m9HG!`+`G`}#-*Spv=CCpq?^XeBth417wJ?BoMjx5jK6W@0AZtlptt zU1}HydFtl^iwJ>^{q;bU?S?}17vtQVfoKZe;DB)RpHZK zHG$HlbgvxhJc01Q`YSb$tT{Hh{6e$H#&wb|TbRs|pRB&dfEsm8D7LeI#*G>($fRF^bQa z((zX}B1h;ys~UV5czPm0u~GbVS29F8myJ+fxsY?fx18qVFEaT6o367?l(}xS`7(lW zocUtvIOb{h8taG=mQbxccT)T)1%W(fLYh?0fT8t)9fPVUZ2V?qC{o%g%U1k?v2>7lx;o9ad}0htH4BPMKzy zT;{IQIj5dCPEK55x;jpIBU$c9@84Xr9@87TK&Drqo1SkwlLn+?I2nv^64H5xQTA&} zs76>YLBAf6WJuo}t8mJWbV}+p`{6`liTdQdne+9?UGTX81+U#-x{Q1Mfh^FmS`Yqr z2glN?`$SiQUHb$^nhchj@HCxNs1mV!QlvD?C?ZV5RJpV;CpXS^H-g6q7^sp;3D?!P z09AYK(#kUh!e6Q6Z6gZv3){?t3GvWsM7)@LyOKC?Lplaem}^QgjG(zo3nPZ$@Va~u zRbj4vq8Vr%=<5DyC#}X^o*$G;O@Qh362y#$R~D3-IX5ytVyp#KA+ukYT-p}a7NoD( z+)Iqa8oUtmx|b{{uow*=MJ%LgZ|?Tec8Huk-TBE#9a>_0NaqW}Uh^EF3^WhHl?n6L)a*2l>gWNQzDl8N9FlH8MYK}KhlXNN z!U!_yPNtq!vQs4|Au<&s!w#}kpEDilqMn^FB9&{sT<;u>w?R|Q0Exq$n{fQF!U8BM)%asrvjlz9&5S-9m65#?G!pUa2^nM^#sPy|SSn zB1VU2R}O#F>C?W^c2ezcMe!5bYGh20i1vzuU+*Ak}-4SitbSaN;( zjK;+^aRbeH4pL`#s>NYNGNSI=o}%C4s?IwIGTzcuj85zh5ShU${<xGC;Ys2Jje&D(Cnmh9`3)f1M}$EZ4`mtU zP#XskcKDhjSs8MF=2+pyR^LzYm~v;~PpP9Z^VZd17B9~OW-qTOow%6(XXoQ`>h#91 z*+Ce>B5`OnEXNV$q}W4CxyqKCe&@S?5FA+5L>4Jk+X%QE_B*FU1ybW2-{txUvP~K`qyhy;VaqQev!lsp1=K&L8qzA&guo3)M6}@p+fIag6 zeu)Rn`zpF0t0GHvB?SYHag5GpR~l7v%+-f4sTRDP@uZxbIUAZJoJqDEe(-S0kiE}mb44=7 z*6Te-L6dtlB!Y^VapZM3mf6;)zFJVNap81FK?E5Yg;jqq{CJrs5*sH=Jy5Nx^7MEw zy4Jf$Ooe^&qAESqi}TV3Y(2dOHPJSd(Vivf6|+pVlcc3v5*KewVH>?MY)!LN(xp_M zJlJ9cTb$9m41_MD5tF1@j`fupHi}TS-CYjX_E(MUUxnX=w=ZW}S^W467c+Z}J`%Fr zp)~9%L%TF6#*Pf}HbaIgpWU=}R?G2IAjDHrBTkjLnZ|OObhfu)t#r-eRn|;hP33YK z756u$1;u&kI)(%aTjwiQl;cQ-Xq<=Jb%&~1Gp~IR7s+UyOUfww3O!U#ZXw-b_Ymc0 z5Biu|TAU50HWM3Wl^P;G(hiJDj=%zaVmWnv1NZb2n9HyzIQGG}ZCH1uBf3c_oQpzL zWdkx}h@(-umk!<9<*4@e+uv0@zrRNJTA@9-JNbPWJ`SmGaa`cgi|gdZUqjSU+iGaw zFjkgfj)14@@hf`CS-I6n5k=ylh=?ZVfWIU!!|Pk_miV+9u>LxmCUG-zt|5wvi2%}c z<7ch}(QC52%Z+}2?piA&&|Vup;^NH{Y#&pdNP5bf-aiLtaEq#u7#l;M=PMi-Kbk6D z7BIJxl(KzlDG*qYxZmlQ0qKv*%)pIf!j;kdfGoSKuADPkXJy0S3uA}P)rgeAPE9-3kXRH2zW%*`(*R9>ZFD8vLCm`q}$n(Fn^ZEAirUyv>>H0w2wY4Rc>^&Xc*xRXiy14+T S)mkQxQb1iePN z9Pt816R|Nw{3$I&Z4^vtCl;av1%;GW{uLr^-0qCuUM`zcESzGOo$q^Z-uK?Drj)W4%GF2jR%;g(V*>xPl#(a+nX||Gd+!PY z-@p20?T&4v;0GZ>DdRp()7t&&kG+JhV|sn-@D!L3AJ%J^T>>9rAujYuqzt{)XbKM5 z^dSkX8zvkgkCqz*n5lVKF*EpBw$BRzP02vwY)^=rW5e-Di{%QQEZCqDCWg9kDt92R zrSe5QT=k$QwU9AVNEArwJZ{)_987#&$2XNhk@sLSU%}dDJ+3DWvWhSfmN6Pr&|IB! z)*KHGbPO0AeS#XeiBiMu@KAx2M+AuQh^%KFCJ$tiIAh5cQQZqLs{0t}P45}mff3Pz zw>Nhe=K>Fo58~zA5}77(ZS){4)BHDqMxR`Z;@Klu+NfgcdkM>7H==rB?kBDfIT*`j z+XN9tYem{p&RbhMt5ml!Ne0e^No1MA0L8l~E!>;m#E()XK7_TEu)jxmvs6Zfr7&(e zcy=O-=cjYHl5*kcNxUjnW3bpI(AosNJwve(Af*Ca8tg&B>W1EBVtlwCY3X6ri+UtD z)AkfZZ%#VAVCM?w5(1J;ENnTk+(N~sSOv0Ot>EA`LqwR!IzgE-OBa~k4q@e&5xOoC zjRvL{e5{l;h& nM$;dwM$*RTquKqpe+w`GqT>s6oEd`i00000NkvXXu0mjf;k!^% literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_fa_viwio.png b/web/sites/all/modules/contrib/service_links/images/_fa_viwio.png new file mode 100644 index 0000000000000000000000000000000000000000..04afe2e2ba3bf2510217b4aba9946a4e3b5ad227 GIT binary patch literal 3807 zcmeH~Yfuwc6vyMUG}aN+MhQNapra_sZW4$g5)cxQAka*}ilivZ?m~h|cAG3D;5$V| zUPdcQ(W8rO2oyp{FqJwmS&xM!hlV4`D-chV<>O8FGKnY$T8xANlUAcMh)iNupI;I6 zY429WjTI@R0sY~qm6)X>NkRmIMx&8q2CM zBViL;XK=B(cfODOppBF_AG{FSO%(ze^MrmWi=*w(i115z@Ow6Ltda@yRHjf|9gG7)}#23zm_#!?upbo)Nb!^f* ztEumc!X*4IdK3}G;(9GiA%+P;qefsGc`#9j_H!LLa9=V5E0F}(;Cd=ADu4bzOfrc? zuE%558p>u+Ec63p{t^M#Qy^gTI9wKJs}``oT&PL~2TIje1ONRP3Nk3hL%4=;4T`{^ z#6#6JglkX)1|=SUn}fZ_&;D^+?shtp$?R?#Z#QzI zl=a1)J+;-<)kiuzJ69cxWbbWq<8anQ%H_ACE=SQbr%$d&i zcGiM|g0J%OBvgyM)Q8WX;KXE_{r1XvXQGMrQu*wZ+UB}_dZ#;g?;0OH0pjE1ORB2Y zG&B*t%&dT^-g~;z&qNEq&$L*&6eXplipI;A_cfji_l{I5dm6KIa**igTkqv7T%D#& zDTH!^qXPm05;?Uo-1DuE+;)Z5B0m)T67R26I$0($7*@prHw?q9ADe128#Fia*S$!n zxUOqyY3WW8?9|5LCe!4j`#T;y7=6s#(t<(_4Gop?3+8t(!f_mt$^E$M*Co5~L-Q2lz_g+#xx7K{NtoYf_oab$AZJS!#+R{CCpyk(!&uqNya3iy+ zs~se6SG%f?b*d^7#+aWzO(agXrq|Tn9-R_%$xzvRBzU`N&cq0_U@`repIN2a)|h^} zp6-zD+P(C+!^PvhMMdnCvvANvVRzS|1M}~s{C;-%)R41RW_{#RyLnhe2fO42-Hr`= zly7j2v$woDdUDq0z!|3dQ3p-xub)K(m1WOkt_^tcNB#PIndw|A)cj)Hmf7vgKZuI- zy4d3iO%F<12rx1_u2s^tc`la1o0Ecyql)vv3NBGOD(dBB#!Dx^1NJO#NbyhVEH2a; zUjC$r(Q)sd)L0qG6rM`<=@SxhOl^U%*<5))ctp ztyR}qCOxxX9Xs3?X*$K)Qbtd9W__1S z-h|xhp0=n>89ux79byxI?WyreRJLwC%nS^Fxc|^eOZiE+Y2H^CRt|geYTCEBaYW!M t$ADg@FR*LU76zi_jTicvOOEp8y_Yk1cI%*TgjPjH z?)C?NGC0p3`_;5BPIunq%r)=l9oS#b#2|21XWjj%(KZ9mNHWy=R^Gq=;MrM$(C^2RG+#nHlY6eZu{2)SG1@QtUr% z)GuqCTQOr3v(`gl-$u2@n`^9&0OLiq#5JNMC9x#cD!C{XNHG{07#iprSn3*?g%}!G t8Jb&}SZEs^ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_diggita.png b/web/sites/all/modules/contrib/service_links/images/_it_diggita.png new file mode 100644 index 0000000000000000000000000000000000000000..eab0dd5fa1cd96653a3fe328a5fff74b13bf6f9c GIT binary patch literal 645 zcmV;00($+4P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RT0tFQp2yPPkj{pDwEObR!bVF}# zZDnqB07hwSWgvHQX>@dDZXjZLAVFkrVr3vuXm50Hb7*gHKOi(NFj0WG2><{A-$_J4 zR4C7lP|a%-K^%QEJG0-r%~qSV1~j#lB31>ff)a$D6$;gx2T!GcfrzN5f)@or1rNQ{ zdbJ)zFBZg)K0e7tZ*RU7~efWf_^-bDbA?YQyM zdide2l#(_5LDhd-xDUW{dp)Z!`gkMw_5Azg(?g`npmszy$$`gqe4f8~kI&%kIGE ztr_d}FI+LN3{Riv8`F80koCyX?`8jzZ;w7*uy}GLeT_&O-?6%xZ-@|p!QBJqASGD*O45jesb9k?};zD}UbE#6rUW>n5QBv3`@nr7>! z5MirkIQx8h1_JowNoInnT^j ffXeJP!++u*{cOT=T)Z|>00000NkvXXu0mjf{&f_0 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_meemi.png b/web/sites/all/modules/contrib/service_links/images/_it_meemi.png new file mode 100644 index 0000000000000000000000000000000000000000..d5406df06ad0c36e8242cb01d82b7bb86489fd79 GIT binary patch literal 604 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 Y01@(}6;y`IvH$=807*qoM6N<$f(WkMZvX%Q literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_segnalo.png b/web/sites/all/modules/contrib/service_links/images/_it_segnalo.png new file mode 100644 index 0000000000000000000000000000000000000000..a12be6a4c82234e6bb9c77e03222a3be655d72ba GIT binary patch literal 999 zcmYk4QD|FL7{~uN`J$!0Tg%;2vI*N@ZftEgii@I-Jy=s~Yg}44EN&L=!+q#rl~_ho zN?6mT3)wnr>ca*)x;kc&seM>Qv`7q{WH4ya8fug|X>L+o)mX#9F*)^k?oA(jxaS@| zzVHA4o&P!K+mE(vs@z@)U{mXhzE|YG#`-Fpa@}{J`WWCuyZ?AI?r*$ z&k|c89wUB(Sdl(WHn24Dv&63vnbXC#QRiVTI#6$ zlFE`&N98es69N%|a1R7LXJDJzw@3 zd3RKkJ&NkZRs#VGG?jTh_e4PpSUN9Y;esL*dCwShO*X(Rl(SufzN~EI=8St`7>HV+ zSw+ubqwYbeh?#_)XVCHgH*;TLL7+v7ZhmY&D{Zc|`kp)9f92)3&u<=XRAZenHSei- z?M&sj`z}w8-Fh(iJ_^F@cZyidle>dKoe{Z{yedgZO>Yh5+$AP=IpLVXfI#LHty?OAbuKA|Gkhj|y zcxkjP+H!g7&L4{_1EXEvcVjK2 QuUb*JHXrp(H|fLw0aJco<^TWy literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_technotizie.png b/web/sites/all/modules/contrib/service_links/images/_it_technotizie.png new file mode 100644 index 0000000000000000000000000000000000000000..f50b19c7ea52d3e5702f5c7e79718b5d6a4cca9d GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh-3?!F4n4AKn*h@TpUD?0v(btiIVPik{pF~z5pFhAS#PvTAoH=tQE$xi4@&B1K zfB)mN0!n3ix;TbZ-10qlSF%BYgY|;9@QnG)B32Ep%o@A?`~3Vq!QWkP0mGb*lrO~| z1y&w0Jbu1=Mcf?h7E7I(*I~lwRWa>ANA%a_bAuYzMRr-7nsWAWujn`a0*wvVcUV0$ lySlpf>%G%+>bEBxt&v{G^@>gPZx7H?22WQ%mvv4FO#s!tSy=!8 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_wikio.png b/web/sites/all/modules/contrib/service_links/images/_it_wikio.png new file mode 100644 index 0000000000000000000000000000000000000000..14e4e5c48e5d78ea5842fd401aae39a6ec3e7cc1 GIT binary patch literal 1028 zcmeHE{V&vU0RAEt^R^|)EHcftsLfi@N$3vW7&i%dKQGB*m1wNwsH3yF&ZK#(U50TN zVO~N=@{+vdB`hy9beNTwJKy*3_tW_!`mJYso@aZ0dA8>f@q9fE^vv}j2r_`ZIR0uk zKHy<3wX*Duu0xO(#PbQ@A}9(N5-_x~6aq93Xp(AXaXes8Pp^Hs>#oQW>sIFkF_FXk zUL=?DsA)eyssOgj;7W?3u>Op=xLeUNv4GeoCNC+4(CuVFW?DjZjZB!6oAmIh+f@%n zHNQ5}Cdd{7bYV|oh7anJv%>g?IAw2=#WpyX^z zM-Tp`2$4GOS3<;i>7L{mwbF^U^D;8C&~`SxSx41c(OXsbAEZ*NHKgiKci-0^lcV^M zWmn&DXhiJizW$chR#B{;x*hhS#P$qvzjM>5gQCP1IMbi|r zi4EJ}qp-5f0-%b`dNv_BEqN_dNbQgYsJx=~f~ya;UO{g!b3I`4XDEs7Gw3|_2m%b{ z&h^@UtV6AjUi0CFghx6#UukG;L>l#OghV2(9(!U9K%v+tG4kGmTHQU(*MNwvLm{Be7y?~Tunt;Xt0P3gy<6ke}IA>?B?&yIzZUJfKF&nO0`c~H7 z{`Tkl+>B02t&M+~j@8{6Jal9uDly0>e@3Nf(3H#1eUd5`zAU-dEjz`N zR!?7^`Vdj$#C~%w|BMl9Iaspr)?{s#7rJi8579N*@!z>9+W2nh4GTJ&;rfCuo^9Ju pj)o#7C%Q4kaMxJJW}J_i9*3aFyL^EQ%>8yS7tHnL)VoJz{{?Eed29dx literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_it_ziczac.png b/web/sites/all/modules/contrib/service_links/images/_it_ziczac.png new file mode 100644 index 0000000000000000000000000000000000000000..7c5bca7fa5ad5842c94fea826cbbbc9896900cf2 GIT binary patch literal 418 zcmV;T0bTxyP)AVqlzF{5EV+nDmuATItij#92|szIyhO$|KQT0 zpdeiYCpW1e=%_;%r{Yi-9d#2Uh?`JQa6P|Qp2}I0cKE>ca_@83_Y%(-Kts)#*-RYqjT6wbk5tyNIT1~AAa z1?04QpnxR>>?t79DZHeBDw;ZlPvL?B4%GwWup4ZJc7X!Ys5@*AM(~463i9fMU)x_P zG54rvGp&Fw*Z6>Y^kGwl_EcY3{`(6~L4X^3efoWjZ@jAT0~KWc^+1bv@Q!WV;S8TD zyu~_Fu`iMW4)CP$m3H008z#EGi7J}J1)kBsl;#^c(FsNq1Drl&obfy&tl}C+Jp($z z3hGN*4L$D~pzBKM9T-#LsZL?9bQb-+0tWOU*-v>`^W%2Dy{0qZ7fh@{H_d{FrvLx| M07*qoM6N<$fKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0008lNkl2#d=zVCgHi)pb5a*~sroaEe|^E_&*mI!yTC};mS-%PUGu?5gt;lt`ag0lvIE0ybv zR<5HIJk-0MP2Kl`0;M4Hf)yb3;lEOWIA^(8t8?V|X^x-$6(59Vqe*95f%jf|iUWI} zARvIC0o1D5IcJ!jukz;MFZle_Acyun&6%U`^3IF9xw%l|*w+J$R%URfwV_^pn^p=5 z!og2Y@bhq)V+UU4{a1FeeM^bwAKwPf(MU69Z`ClmHCBrVD;_z^H$PqAqPf@_gcm)~>rLMI+eBTC=)VCV=;PJsD5?ENO^XbWRpcMO`-AN%fc<(uJ?jj$5 zH9)Zt^TED7bhQ;|rfKU7)ALn=2svvh|256UYg6Rc7Ww_!6vJ018N4*kFQb3*V9$Eq ze&acIY~9Sn%p6K7k~G6k%+3=;$menlmM3U7Q`(Aoz8@;nv8Kqz?k@K3+{Obv8!%c^ zo}2{)r4-%=>@pTu1Jzm``KQVKn|t{1^=Gg~<3qp)A@iQhXE>t?L0VkUpv^Ly3}BQ7 zqq(tAqqca7NR+t^*xMOwBDYbY+sRHF?_e z5uL@D&SK1&kulDWT&2Ab5j#WdEH-kMAc9uV-&dmho_7A8ndh@p=Rx4HEhQ>*RlYrc ziP6bfj=c2(d1pz32Lbit<#AcLDRPE^3xDv@m#1kg)Y{?{3QK-JtUcL zVIT^tl|~yOh>-fgp6z{f6mxtxG{#~h!5Ph?n@Y?1JdHF%D}~aE-~~1C+t?j)j;uux qG9S=N;jE>ZW`q!K3ui@u{|*33sXVEc1?8py0000M19IoTE`Xxh~dkb93LS{$O_zGHgB8aqN(Ti^-(-NAJ$9{2sCA zW^XsYUOwAB%Q^h(PKW0)b1<-`w24d*J;4-I8Et4ZcfK^kIp&~Jrqs#J@eURT7EX#% z;LYcbowQN2Z~xwD<>wM_s+4W&mCfVhbaNEjpX$+;tvjhtf5KM#hpNoay+1to!|az8 zl9o5AM?bN??n3o{mfQau^3OE0?m5%8VM(c=eeK*OTRUX)F5R#239@dtujiibD_}NX zQS+J087;?$SISH0e0d`}>6p&Z@8K8Ue+;i${hi@N`Lu~V+PWv1I#ZmRHtcrV_*ZC3 za`kKH_X~H6_o{}T;hC8z#<@r5fr6czhJE9fI;oiAz9n|SRWi=YIHpZtl53sVb;X`x zLD^TM58lKGhGjOFMP9m&C31!4YIix|Nofs=)3iS%eyx6y_853 z%RS-H=wcQSkan?~t7`uI;5YkR7b>*KMfjz@l2X$3T-55pF!2aaB!9!JL$NDN3?;vw z?pIhj!7N>IwvOl#tG#Td(>7@pmj`?o54kl%#^`aySH|}IcgbQLiC3DAGjYYn{1)1_ z-?99!;xfn3#l{T3jlCo8IU3bmo42fdgX^t1hs~dzu3{5j>bBo(&G}D!Ki^56Q>{3V z8oBJ;IU}y4_1V_DE-j4t+EC1Q;4iC%#mxxOzNad{RHItr8c~vxSdwa$T$Bo=7>o=I z4Rj4Gbqy^-42`Tz%&m+pwGE7{3=Eob75<`V$jwj5OsmAL;j_UEN1z4U+!QDsPydlzx(lt8KD55NG?7!7G5Jzj0dxlcNj&^b z72Zn4er4whXZYM$AI4z9#{9=%Nv5uC_Eq2Qr81}2T((rZ@(9TA{TP#d({K5wFcG8X zD4XlQx;w+C?e!N@Ij^}ZcHZsWhA5rNb9SC5<_I^aH_R=Txg^qXw&29G%YVh}mS|c( z_j{_}{NRTAiR@{e9W~wQ3a1q&tZMzVl`&=aU%~m=d)&Vt(0*Q%KShfF0RQ1v4qKx{ z>t24Jsa<+>ezr}+vaLUk{rOdPUt-p^c|29uR=J5R+_Frfw?e*uy^HGlEz1O5ziRL8 zOOBKX?tNt>ek^9~r~h@!_8(zi%XB$qOIXn*VA!daxJHzuB$lLFB^RXvDF!10Ljzp{ zOI<^Q5JMv?6Jsk=V{HQ?D+7Zt1<&~?8glbfGSez?Yf!KKs0`G=;OXk;vd$@?2>`i9 B!ubFI literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_pl_blip.png b/web/sites/all/modules/contrib/service_links/images/_pl_blip.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ff1f30cebd68d6857b204cb5adf0615e637e4f GIT binary patch literal 802 zcmV+-1Ks?IP)Ms zmKABHY1fbf5nL5%l3_+t1Qi7?s%6q9g4(o@3fj0bh$13t(IO>qQDU@6A;^TN7H0U$ zQ1j;HcIS0EGgs}g2s-f1{QrN>`R4o2IYX)TVsKD_4FzbF4TUxkS^(M#AV=T|76E<> zMju=rfCGmtIW`&e8^LZ#?vbEsm?n@m{agxW0ZJ1-p%8#*OrB>{(tas#=*U^rsy?!Jw zd_nqb1CUGrhJinf@Ix+8p~K;0Cl&zZ9ZHYw|g<2p<0celrYrco2cR zuRw(*p!HjTlqKcQs8&-+d&Y1)HfdSn+pi)ywy1JIS-GIa1(}4enRCkm`SC(vxt6*= zo9C9@M)9zGfp3y0_)!bAH zn4W-YYy#!vL)F%U!eMA#-Jqfp@L)gO-fmxkE>m@9&V1m{#_4>ctG6_CU6Y+L5MHhVGW@{Eh-j_B%iW-LtDbReR2v`6%Pbpfi(Ra79qn3}YCCZgch z1XPvRu=Dfg)tgK9CH%ugBuaA>;^jKkUXJRAKdlQ*3>61Qn?mXY{>RFsFjt~_$DW|- glx^&9|4#u10Kl6c8uk)%!vFvP07*qoM6N<$f-d24QUCw| literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_pl_sledzik.png b/web/sites/all/modules/contrib/service_links/images/_pl_sledzik.png new file mode 100644 index 0000000000000000000000000000000000000000..d5df1049acda5094257e3d0ba62ddbeedde0cb3a GIT binary patch literal 671 zcmV;Q0$}}#P)<5SLsA8OFg?sBox zC{jT&bbT!5ry(qRxe3x;%(Wz(b&nqm4#9Inryb`|Jesx{8Z*qL}Y;mrDWXAC{sft7tW^B2}!6j#Xrs>tw z!NuqIZ{qE`_NyCuH5VH^w zh8{$tMf8vmbUZPm-b)4YydN!bXY z1i8=1;~FH>;Py&jd;@~D6fipiGbzZvfz)A$Y(S>d#R`-lP@oa!pE=26?a;d&K0bo! zhtRwkxm{yZDN^7Q@L>Q+>~bJA1LDpp_&yKuCZu+YCHrPv!wF_bkqaALq{TS{K4VBq ztaM%sBZt;QU!zSyF$FaUikN7Gx=jxBX%gzULdy;dl=BrZ)EiC^6!G12C-w3HQ-`Dh z?}iiGV6Y2${|d=x3u{pHjmAM@&B*?BNc$cn9Yx-byL-P6{`rk267de0xF6aZ1>ab9 z+O@K_r;_+B`*#cbXZ0CKk5SPYb*-$!RCO_Cd;8CU(X`eYCiT^zc9?V|?>?F0cvsv? nI@sD{*D&+n)K@Y2U#t8E$?*$*$o)zc0-8^yELTw|)0Y*+zD`E17;2 zPHg+3me~DVRj)@WDfMB`*2H43Hi28$_a2(#n&7SR#wuXP#*4mHd_Q*`oahl&ATgb{ zsD@F!{rTYpUlFy;#U@4(0w=!7zLRb~<*n7 ZgXAh*ac8#!fN-aywBQxE0b^kj(SW8w$&^*q3-^@3|H}IdK`~yb* zhF2#cgh(gWtlYDBB~&`A&?lL0an`QS)+y9Cs#7 zmoHM zyO5;;53BZUA;la{dsH+rX(>q85bmkb*uyO7Jz4^H?=-V0;|tC0JrnLyap@*<<2YC> z5DXIVjWXghP|Y^hPa8rpY3MsjHn4AVF`fm3q(<2AbPt3Y6wGna;^{{3?BjWRFH=n# zJstgYzWYeLMI~Ah6wkd{solSg!!3hs&CACbA5L3$AIbe6aL2`<*vzQ9g5e9$-ZxC+ zt8R*t%=krNz!3CVx$BhE>2|T`3aukvE>)ic%?VvqWMmz~qNoh{#~4*qVol(*Y77K5 zR56HDm2o4LC5K7C>EhI54CI_cS(L3U0I3W0bB2TdLkvL7p;*uyXSwZ&vM9$YX;V|2I zcDn(aDTpC|{<{g;(~Di=lPP>QH1sJt;bIVD(+C77f7);3JO6!|oX8FU0000M7H*K0 ztriu1dGqFrYu8@gx>YYD^YiQ13#(WE`1tYv|NoaaZd{g_cxcL$CPl?}4Z**4S2u5NEG>O{=~AtP!~`p=iPqNNK74p|_UzKQxO+#Abn5DEsj6yLR&G*K z`u+3gEN|}_9v(BjybeyB`0M-k*LUtLiHrO3`SaaFhaR0dbA88-dqFa<0@ZtB5 zA79_T{qXeZ@i}wm1qHpidv|$q^3C15Th-J)Jbqj!C3R!ht}B~1H7Y1n3JL;!wD4SB z6fo=}OM?7@fn1sZ2LDz@exN0LJzX3_DsK6lzgl!CK!ELmu)9!@kVanU8r^qs`azEW zYX7S%rW>igIePA#xwUqWU*Yvh=719Fxz3FjBGh>7Yo`-vW&;k-CC+Oht;0$2N%%eT@Tj9#2quPp!Lpq)~9I8kbU zkvdoD3ce1mBC+YBA3{>UsM(hoUbjDdUipDRvhW?D*xwiU8UIP;OzZ3LE8q0#pZ4ls h;jjKgoA)vCFvxc}R;tXdF$H>r!PC{xWt~$(697IiZ)E@g literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_linksiua.png b/web/sites/all/modules/contrib/service_links/images/_ru_linksiua.png new file mode 100644 index 0000000000000000000000000000000000000000..56b4899fdc91b0149e64ca3fca750143052d9cf7 GIT binary patch literal 750 zcmVk?{%EMM_#RQ;Ust7eP`yJxpVH2q{EgH0GC;8 z#6N~0@Zbe6RLao5m%3P7BI^!LS#pcQ^@cxz3X>@g znlKd;rI?-JF*M+@lB7dpw5&2t1pP!ofS8Ys*kQmNn$M*mgd@22#EgbFZltCrNPBpS z!M-^VW5pL*xHC}({bW`(Iy=WvU)_y8xel@3-r+E8J(G=eQ<8j$dDIFLx4VaC7p@2I zC;uT}b1b4X^CPYtc`pi_y}t#I+jF2+sHIBT6&=$*K=h^UG$kuVCY#MxSZD26_IiUH zi;RwjRv8Wjx8fBA7H!`^B8%Qq;|7!D0aG2B7{TbBdswSq2okvQJRRpBltHJ}i~rQ; zh1)g`5?=6C}FY{LjOY^d*MxW)s!YjJu9AsQULKPaMrD@T7x<=kO zWHBQ1Y9oZ{PeHz@btaIgZLM_4H4#8nQ8-@QkL&vyW$01QW*oa)1?rj%7Klh@ZQRjC zd5=W~iCT|aHBYg3Q;&>Ycvz15mJDEdK1e{JF|dbJKEOf9n$ zQCo=*y%D1OfsF*5Vl_y7#juUp7R6QrYn*~bh(BBDxe!d2PV&!oV%$HmizT-S;nv_k g2Nk zNkl9EKm~XMVbArfry!ZEkLBYqSW)LKakPNYr5kqv+NlI(3UWL=>?G zf`<;Bf-Xh0sOYdk#R@V;CG-ceXozzN&ZcgD;=ga|{5r>&X7BZdhxhsMQz?p~P%D)R z2*Q?i6Lqrv?Ead4T|oEfq5lV5oAwZV??=;TX&i8W{wYB*4kdWxeYhn+RqKeh^Me@r zY(#&AC_WA~wxHwo7^#fJ;>=fc%`J^9jI<6=m^sK!S0~v>ik`_6|E?fcWDIU6f=OgU zF4JwFM^R~8v#bIOi%MAd`b}Q9t zg(ZtLn|{=o(NbcAN+d;gRYGVI(1{{>jSBCJTL5(Sj9}VfAskuyTfyy_ z;GNIUu_Hr#^ato@GZQTrF~()ma-PFu!;pld$0zw7D^o2OQ7y!hN-~k)w;aVP+9`-; zMtiNeuS{_B;$4QFy9h2VGyCQ_<0sD{WhC@EJu5kxm*3K;rsqB@g4ID=vlf6rco`|3 z;_?|6_g;rEXsQTWfz}p*C!bOXdJ}7r0R8>@Sj*&5o$`KAjG7Yd?RyC))+uFI(W%P} zIQKCBbA>yn9ZdO(R0@|nQL9!&AD=&d8sEEx6TpbOPV)PP{Bk~rkLluEwLA0 z3CZc8ulAi3zQO>*(g*}>Xendh+nuXz=qe>`_%_G>j6HYH^W5{>bN4(fd_?$mCwC_R z*p53DMzHzL|G3rOrUyUS5ot3w1~!%vnVG`KBV|({gq)c~@y2D4QYi!qiJX5yLpctB z`5J$kh&2Mdd}YxBEWfd802G?>m6cWV{Ht7mg~g@s0Ym^9WqczBCTE@-0IC7bm-5AO zZMS^*Hb9SDODgB_9bp_msnvJf)2^>?bjmcO5*{0ow*6*S>x|f5cAadjIcRScI%veb z9l=c3hdK)Z@RF*D0WV}~i9fYqQtmraOQ+rFjX${eCK96ib6=>cX3?^oz@w7o1A){S z^)3fmwSZbFX!^xWt2@Kmxiz>OQ4Z^ibn#S9{Gr|&g{^11(D;EPt)f+D_MVyjqgF`h zl4;V|Rm^Gnm4WH`r(f(8s{oF`#;myACym0E3 zjj8;-THp70cXrvK9|U-zj}Y9yeIlx zY5fsJ9ZRk+#(>qja(gtv@_P9JK-1*h(bRa8`2b;y!{+AZ;tR@S+y9gdLPVr3{_g=_ zL=V*h*g4|DLWoRL(w7*_+Pf7LC%3`VZ+WL&$D5)?1(^qiwz(vBj{2n^OY4xf1sLpo z@P8Haj2b3?u;N)?RzL)=q(MBTV_)~YCs}h`8fnR?C>5HpBMdqk+>m{lRJcYy`5lig zR(P)XV=X8X; zUWBoT$wRtUSe8S4Z`40EGvoE)Z#+E5#+C0ZPP*(LJn1)#-DT(sDJ*za$>93TKMhLs b4KA?*o+T^RAi33UTNrTIh_H^(#Ik<@v9hPQ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_memori.png b/web/sites/all/modules/contrib/service_links/images/_ru_memori.png new file mode 100644 index 0000000000000000000000000000000000000000..c61d2831310a07d902aec6dd8b3f8706b2097e8b GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fog8-ip*WcpNf4m$1=FR-OaPM!8^uL9(|JE=4J9+cJ4aff& zF!A^qM$ z2NXD*9pCyZ-uu7pYQS7g>9dm)CfIT7#HD&W2sAi-&7O4O+O71-d7sz3o5~-%EIhb4 zzdeZIWVtHSlck^ENE~^0VS6iU1(QvL1G53we%a*WXCB=N&qEuE<_hMl-?WHd>HpJz dulF8QJP%>ZaSgQu&X%Q~loCIE?=f3yGq literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_moemesto.png b/web/sites/all/modules/contrib/service_links/images/_ru_moemesto.png new file mode 100644 index 0000000000000000000000000000000000000000..63caf741e785210a69640ea1442da7b93de38e2f GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h80|7oEuK)l4&)xO1;^5m^7e3Cv^l|CcPsg8pyZ`>D+v02f zD{cm_x)ZtnLBzWIF&iHxZh4x!<8k56hfPP{^qhL%dGz_zbMN=w`*`H>*RQ|+n$0Wd-;_YOm!QXs@5`lFzskr5H zI#akYK;+oRv89pLco-Gl`@gNPS=O z=U_aO+OBokv$lTPZ;-k5)}>{0qQv7J7T8cvYr2l_Y|H`=k{{H`rW&iv7|Cx6GaX|mbwf~rP|FM?;cS!%?*Z=S7 z|A$@wm~{V~dH??X|At%thFt%?sQ=Z+|HQBVuap0NQvbrO|FoO`iD3VfZvXxL|Hrfc zdrtqqsQ;>s|LEZV;@AI*VgJCY|Aboq!><4D>i_cY|MBhrf>-~^w*UYC?Ck9SZ#~if zM4JEr0Io?yK~#9!T+G)Ff>0Dh(F-URL_|UCz4zXG9nSxMkQYMKFpn#l&1~P8-2hIP zAY!2?Vmsn+N1Vv)pcv8w#esnJBBCXpOv25D#E8Q>p`}!aQ4WC2VOSZY!Vej literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_news2.png b/web/sites/all/modules/contrib/service_links/images/_ru_news2.png new file mode 100644 index 0000000000000000000000000000000000000000..1eab15d9e768823565ab878074b278ff590aa65b GIT binary patch literal 881 zcmc&x`%9An0Q_88IvX24a4v|dsAP}3qZ=4#G{xtW?0+jM?qWh%3jpv+3sL{jG? zYlT^%&gP@i<)bhRwJDPNvGj-doHon{&Bz`UT&woeFrmN2@a#TcQ+F7M)tLTh^RK=+jY5CbBs=WkZR}dQ` zivpX#o}E}Rp{^LJ6!11-I}bh2P*a2hq2Sm-Q;0j4Kn-K<3q5%2WulrGf`2B_EwzB#L^UU zPU3bc*5)wVi%}h3^&y-OPZ#V9hOq_02>5Tu-9i`)NR!}g2doy>Mp=@8$$V5GvW0U+$+ZP0QwD}N1?4nm^ZSLAPz%o zBMglQ*aBHJin5U)MB5{bJ;uv^e6nDo3x&BTFUHUVWU8Q$;+(}1h?M2cD4WPsBU@q)$a*R#*_Ct~$A;xzY^|H?8yX==%iv5Ck}hzyDNI$LU+ Nfe=MW1o{K=!ryGW8CL)R literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_newsland.png b/web/sites/all/modules/contrib/service_links/images/_ru_newsland.png new file mode 100644 index 0000000000000000000000000000000000000000..37b42779d63b92bd226624d2ad09d34c64313c04 GIT binary patch literal 450 zcmV;z0X_bSP)CI63)|LW@hfPnvriT@iL|HH%oW@i5j3;({p z|5;i8L`46MjsL{N|BQ_P_V)jai~l=2|9N@;{{H{V%l`ud|FW|G+1dY~p#M5L|0pQ` z>+AoXp8o{}|Mc|#XlVcV`2Pe1{~jLy|Ns900LiR%Bme*aj7da6RCwB?&PNi0KoCID z0UUBLXTb#K96%*#_x;My`=a|BuXgSmld-8m?m7!w`@@lT)%_!h=e6SVIK)j^0p sP(P{+oRs#)9-eQFi@eOC&|82303Q@GTkoV{K>z>%07*qoM6N<$f*=m*T>t<8 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_ruspace.png b/web/sites/all/modules/contrib/service_links/images/_ru_ruspace.png new file mode 100644 index 0000000000000000000000000000000000000000..cfaa6de6e698d9570a4727193d7d3bb5f7f3aeca GIT binary patch literal 836 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2c#)bf&5Ldb4vs_*i#F931dh}>E-czo)B$d8XB6%yPdzWIt zQQ4dWobH{{8M~#!XQ-8*S1vhi+IUGgcCAL;ZJp-(hFvdpnjif8_g^Oa!0$i*^xL0s zxOJK|Tv8}F#vQ)OrDTqVmpUxdOJF*vlUR$nvhd?6DtGkwW3<>J!@-ETLXdu!17 zTr&T(dc%Fg`pfs<{`&dr&%giwrNgE(yL2_IyZ`UsKMvOpqw3SjC1>P|PQ@-b6v{Zv=+t4@_fezz3Y%MZ!|GcWlfSUL_p`gS|NsBLY~gvKq@D742UW|? zHf?{eUUyqKdgYa;-$mlq8g)KN>E8DI!%vgmw|wEtblaZPu6_LN=U;{5vz%_7cVB$D z{_riAXD^pW4=|=O-yd}YQVk_Re!)Ov2NEz?uzIHh-Ez*;#WAGfR?-S~MnhZutu>qm zlNmcy=M-_3%Dh?pNBaQNHpM(CyVOHYr}o|YG^_C|592g0PF1Z*hnyy^nYykpO^#=m z&OOa*N)C*vVbX06E=904=6rUs7t{@0c*o$Qja!;C8>3y_cZHb+fnxryY45Du;wCVt zi%Sd7UX&RXo2%>7&>kDGs*5>vL7%jiLa*Y11$`=`^~_n!$XboE&JyP8S=j{9aVxZ=mOVMa{z`U#rS?{8V|v~U+stjd2a{b)t8LTrapP(1_NT3d#nX^*z^ z*qvR^Q^#~;T8iC11s~bllWt6NS@-@Rqmrmvc=zw4%q$hG_L}vnsSV4j&iOB9wh3AP SSSADLNd`|>KbLh*2~7a!L4n)= literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_vaau.png b/web/sites/all/modules/contrib/service_links/images/_ru_vaau.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca028fb5f57c70f2987a760d72133dcfce13513 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*VRoE@Gnjv*GO-%fPoI;NvxFyVesd>Cx>VA!M jv;Myxjvs&S?!PQ+el*NeEyMF2&<_lru6{1-oD!M<8^CmA literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_vkontakte.png b/web/sites/all/modules/contrib/service_links/images/_ru_vkontakte.png new file mode 100644 index 0000000000000000000000000000000000000000..e970bc3530f79e6392dada62c3f30896216cf6a5 GIT binary patch literal 625 zcmV-%0*?KOP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igc3 z6$Kvug>HZV00HqyL_t(I%axP8YgADX#eethjV2}_h@uD@CCw6IYzzcrVHHTQ(ALgQ ztkPJMkdJrg!{Tk;F1rdk)tzC^xrf7? zaP#3yf3y6J*b@nXf37@NMo%6jzJC7|k9$Z8I6x?f+zBDz#jvYFC9?Qsg&4C6xf*Il zpi_cFIqP@_80hOIf?-<0-SJTTcI(JbJ#wL6;ui@qM9OYvfArR^%z$#PH^e`>2kKPTqB7R0F{hrS|}*60ouG68y;kAc(Cjr zJY8V^V{P|jQHw-(LsW_rZeH2t*}0~gma6*dI^S2$rc}^;foH)vFiwzl2=rk8000000 LNkvXXu0mjf#UTo$ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_ru_yandex.png b/web/sites/all/modules/contrib/service_links/images/_ru_yandex.png new file mode 100644 index 0000000000000000000000000000000000000000..f983b9e8fb69460c578915b0bad20a01b045ac5c GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cM#li35ZCWNe$*_y8C|*J_MQ8+i|^Dex$7BImDRI<>-N1R zGtb4h^XD%k%NC|}?8cJ0gT-WOTEbnEs#r8CbL zOgWL z+1Av1y}{S@8e=|AFBQBn7_f zJqNO~OM?7Bf^-556*FBQ0EaktaVzPB6EhD-T2h$WCWiS__Ha&W*tVOue#M#u zwU7fg7ebHq%#GDxQc4gw@^t>fWiOX5d2nXt$x{bZUMU=Wz4GW9<#ds04>&|lZ1UdB zXV}xdwc~p?Pg&9#maIbKsUcUs2VS3g&Z9Stkuzm!#LA)<4;*!PC{xWt~$(696w|m?{7O literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_se_bloggy.png b/web/sites/all/modules/contrib/service_links/images/_se_bloggy.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3471efca6caa52135640cb640e46295cbb0dfd GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XZhE>nhE&{2N?~X!_geU0@&tp^_b}s44JO=D(vug@e<;g* zxL(Yld!pcpYWGE7of5bb8H9yn-u<0xoe&k^%DSCV!PenGOA>=faZDuZu@gxW5?KsK zSQQx4(n<~o9x-6Ja+E_q!SKP~udfRX9c5+L#2t9W6jAWuPDCq*c&`DQV{I*uxWb`^ zR@Oep7=g6jcPz;Qv%f#n5;2{jmymd{fYFC%u78ch92?GMtQ%Oh3^yuNhzqjua83^7 zJ@A~V?Mdd0i*0gCHS`?3J6#xgm>;ZccPZ95dyavTjbXKs8uQ8%{GWiHWbkzLb6Mw< G&;$ThJ8L=s literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/_se_pusha.png b/web/sites/all/modules/contrib/service_links/images/_se_pusha.png new file mode 100644 index 0000000000000000000000000000000000000000..f743e6162211cf0a6f0141e16584dbf95dc66d67 GIT binary patch literal 372 zcmV-)0gL{LP)8`3H#m9L0=|}IWCq91v%|Hn7bFyyDwqX9K6LR_KCk7(G&p-cOe*VS$NXd^F z)ix@^kKTR1{pt$~L8VcqG8OJ>kKTRrx$_ptWx?ZOpwdh`ML8i(AQz|sBF=(UX{Mb5 zP$`gsDa(Y_c%XA}g#;E2z#v|B`bqTsv%vTv)&?MG56}We6Wj;_8m2|+1APov?S&Mx zESNrCnrI9Rb-2j%L-(&f`;@if5*7_WbwJg~fde#n`k@ENu3`eFDj+2*$O%-sCCdUW zD1nI**#khupu~6M#g`BxDNLULL&>J+Fk0ec1SW5+{stNhRQ>q9~PBkU0y!13q5!|m3MkI9SDkZ#i+w z|EX)-sy*9u&+NG8EwtDA=FjlYD{okLDXry}nz8I8Ut5)l#aVHWOP7n4H|U=6Nd1{w zZ_v}9_2ky(=cnJ>*HtDb^L(@{R4-Njq^R=YzKz@=6P|8Ep2>_1pK2zg8gA>|TRicC zIs?NhdzU}g5A|=|6B66oRih~;*yVlmh@XvEt#+Jn88`b>-dJ;`bH09C{PKKUQY09E ze)y5Mc46w2D(mfACfwOqZ@uyL=U-d)bH>CzV4D2(Y3q@1XIplN_p^1gJb1Y{ExR;j zsj#t4v`x9A?X{$ZAStkKNxBd;i-_`v+%$ zi9)r+HKHUXu_VKa;x7+P8xnpzoKY8x0?85k5DDbhpHkei>9 enO2Fe!Pv^g45Hx^*I`wl1_n=8KbLh*2~7Zu4>7F( literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/box.png b/web/sites/all/modules/contrib/service_links/images/box.png new file mode 100644 index 0000000000000000000000000000000000000000..6509cc4a8d64cb85a55fb70508e6c56f293c2918 GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%b@U_I1CZGssfk$L9 zkoEv$x0Bg+Ai=T%$8;bK*3S@gZ0%tN1}1Ay7sn8b({m^9&lU+3IBvgr_sOSvPuRUW zW=J#@ghkz0B3wV^R)%ioANC_kw<05!1UPQk5G)|=EzK;%v&6uqMImrPLqgId0`}c>GnQmBE?n`{ti(?^hn4oZN43>2N_*p^>4%`kjK32LscD`4f)|sK4TF zeYttDh;rfziAzDt=UF^k@UG%m`_^um^ViMAw|BhY{236w$YF+*=EMhge(z}Csmzom z*;wtymGE}&Y{5*&8Qr4h>0S)tY4zJa>|e4gRrjLanJEoBg#vkg&eE6{#m4mdx8^^0 z;|Mj`?C*~wUj!)|%?Vqzqw1esdK*`a?E9x4non-;`&6U*>}u4U`+m`Z54w76YMy6q zl;>>e%}!)3+IPbZVcwR!&eCKW0(7qT@Jc5QhUx zvARL!O~!U!J)y;@Oc3`yEDwMIF1RpL%05cW0LE`Jngu^_wuF1jL0)0Aq7YeY#(Vo9o1a#1RfVlXl=G|)A$)HSpWF*LU_GO;qT)HX1( lGBEgZylMxEhTQy=%(P0}8d_%^VgYJk@O1TaS?83{1OPH}Lx2DP literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/delicious.png b/web/sites/all/modules/contrib/service_links/images/delicious.png new file mode 100644 index 0000000000000000000000000000000000000000..fe891ee142770dc86225deeaccdbf46d48c22794 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{EGjx|99`+1=8=7d~XB! z5uPrNAr-fh5?YwjG#EG(*h&~17!C;lSv*)7Nezr@Aa&Sf;ToA4UJEcbUj97E7ib5A Mr>mdKI;Vst0G8P{(@Vg`0)1a z+e?=&UA=ns{Q2`QU%tF>;lhs}KfZnYcIM2PckkYP{rdIVwQHX~efs_T_tU3O@7}%p z=+UDaH*Va!cW=dt761SLpE+|TkUX$$#&)3L(j`HD!9Xq!z@TozZ3q~cc6 z1Se(&#v=^L9nB3(rieH&FtVzssyZ?WIVfoAunIWv1WghW>Y1d#XeXw)fWd*mu;IrU zrAdz-3F$Z`IdCa7G%z{XO{YzG;fb=)ilzF;&8VF2f;ZRt>FyXxNNnJHH zH7=G(KzkHer!h(%R8&z?)8rIzP$+lEVf`qn(#puhp~+lz~tMc_>0BO#@vM~iYM z9b#Z)DVx!v65!C|IHxx>NCISC4AUM3Mz+AhFh9@428O0vOp1*TKnaNpd-(+t80Ov( W-F?aM`c$9?89ZJ6T-G@yGywqPe8lMh literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/diigo.png b/web/sites/all/modules/contrib/service_links/images/diigo.png new file mode 100644 index 0000000000000000000000000000000000000000..6578845481e43121e5521169b5e5fb585bb75b5a GIT binary patch literal 369 zcmV-%0gnEOP)^YZ@j$|Y!1884zPXW zl>?-Xv;({@`$&!qhT)YyS P00000NkvXXu0mjfC*P&( literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/facebook.png b/web/sites/all/modules/contrib/service_links/images/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..49dfb916bac3ca9495c2f5ee3d572ac43d6575ed GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E>8g<%4}5Ce$To^g~*z(InEfssYH;RfdtMkWrm13V^8GbJ?`fZ|aMOdQS(3JnG< z3?OqRvNAa*ojQ_c%OX#iy+hbBa>$EK!9S&AgKU(m`799LS= z&ujw}OGP2Ho|AZ+woZwNsMVJ^tW;wK>Ae<)%|b&oh25LNJiQrv^AS)sNG6cygCP|h zX#n1;zfZYeslqC3PwjZ}GEQaT?q~!H&>WC%LM#f43$O%?58qu=0N{pF_EJ=TuH93o z`%*ZLo72vwmK-!4k_mWlbCU1DHWCZ>5s`o59yEWxkbg^J=S3b?2PJY&WXShH!W|-a zc3%^b^`B|4NRPMN7-Qu2ApU0!0DKF!@uaUCB)Yukbtd=&UFh<-W=Og)SNnegJvCEr TxB1G!00000NkvXXu0mjfLApUM literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/forward.png b/web/sites/all/modules/contrib/service_links/images/forward.png new file mode 100644 index 0000000000000000000000000000000000000000..ed44b75b6b3314721709957ff801eb87e66c6d00 GIT binary patch literal 421 zcmV;W0b2fvP)4-Q(Wl=Gx!nbbg45m7#cojD?V$cY=T-x5^WNddVH$r@flZBCJb3i%>k5W*Z(l#i3c1t4b*HWL%!Su?FW!4|^7h>cUZ)>F zcz^Nzr8?CIu3UEtSszTV_izzTt9dE^-e3R!pX)&d=OK5N zyKOW7e`9!kkN-wT;=?%Ub2nc+U$^{>o66@?s~*(oJ!o?I@$&lT>(?J7b3XQGcu>sn zpo-x^G{b{zh6gST50V)qr5J$W@ZrPf2Q3W${{#I1B>yYE-X{uV{qb~h45_%4R8X+N zk%^Cwf$_+L1F5YnJ7gG`IvS^*|=S5&i1p3*n1#`1HugED8D1pi|wzz{KrQ@X6XDBSWj1g@K7fC1KHNjaLs8 zPHS)qF>okMU|?T7r@6UVVX>VDgF?drt&}CQGA$(*mJUonha}|ZWoIvY@L)k!PEt~K zb{@Zg1JAcKU_gK3bP0l+XkKp8oN} literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/google.png b/web/sites/all/modules/contrib/service_links/images/google.png new file mode 100644 index 0000000000000000000000000000000000000000..ee484e4c70c7346be0b2df94a18223e8a756308a GIT binary patch literal 1608 zcmV-O2DkZ%P)6cNNA0im{D@D^KRbPEY-)94!0-E?=eGiT-;A3j%|hnYEZ`Og3Q z{ulV?FeZ+jbMD)3Yqix?=f=m69h;qX&iC)X|DAW7d+DY3-(Og8E=in=W9P!K*}Q(; zxpU`cW~Qf|`}t?3z_}>WT5IQ$1VFA@JJ;#R`^`;x-rHBlu`$j$=Xst7aPs8Yvx|$c zveNAi4}-Nkciw(GoI3T%Cx8A4%ggKQoerc@{r&y@Fg5l1>u1hDvDnv_%Yo-vYb_|H zlvGs8TK+w(1>c926|KQJ?RmZrkR)*&$8hP=AAiUX`TXD@SS!%Bwzju}0N#D~>#tW< zq?qSHCNnW{+iehr)6;j~4RH)gfwfvE$$#r8a?bO>Ii=zloReL2@5c9)@_pF3b7&}& z0j;CRTF@H85VV$#E?rt)j$`Reic6nK(%+xUfiVKi^Llli(;7TasU#5~Lb=wS2fk8T z|9?b>4^K{(N^t)CFTbp>gYT!)g#uV>tpL&5_hpox2U>?AK)t@WxU>XoYonuD!}aU^ z{e=PqK@mTvT!E#f z-+ym5VPGJewHA&apPAXcTgIvsoIX7__r@D=^5o&e-7Z|Ya_g=8_DRR76eLNKSPR)~ zr(+E4+jsf$_BK5H@P!MjtDyGoee%h--*)cB7mpvm>n?cYk(rr^31~FhZDZi0kG}hE zZ4IWUE0w`Ps8q(r3I#ZIYHse#88~s`n{Qrw4LomTWN=Vq<{Tu6wc-S!Q7L1@2U-UK zDAj6t9;kBp=+U!hoiip3TP@hXe|$WbgM03oni?5_6DJ;j{J;U>+&TFC^IGlu@8RIV zH{U#Z6s)aQckGajwU+PX97RF!AGOXIBbte0c^=0~fi4z3FNz?aPo**$xNxCX>vrLl zS7v8_`wdoB>h*RT#Hw)1Eyd!lT~Mu7D*N{XgkiS}S_=TJlf?JM>9V0rL@AKYdw{f# zBGAS(8XFt1dv`V)hVbBncid4b!4pp$IU-bSZ6%4=2ViV$czARa&YyqmvD2sF(4kW4 zzyWZs(`mJY0Qph?TiaXpa-er-Ob~#Yo&D^yAAfZ2zWb)8CMRKdxKPj<;<(vdT!hWd zzy7M#pwrpfx^@jlN2}FGAB9XNpD&lem?Vi~c<7<`-h2Le`1I5D_4#>lE|nS>5QB*t4fx?sj2hWMCkdgHmZ|D4m8Q%^Of?#L}Zro_Kda4yJr9dv1%@&K0 zB;D@Xn%Jw|hV5;w`}&~UZME8M@j(!P)^VIli53Kq1dwy02A$0g4ULaOI$bW`doQ%x zo12o=-EJ-?qf4bEs`GhBlI?BJgLHay^nnM2>wF$Q{`iL<=H}qqwPtgD9h6EE@xKI- zKm=05UK!F)cALEif}wF*rIiI65;nD=;!TFfc2TS_c3C03~!q zSaf7zbY(hiZ)9m^c>ppnF)=MMFfA}MR53U@GdMakHY+ePIxsL=%;LKM0000IP;2vkoJJ*;L3BrNuBOBbjMGP!R+g7j6H;T>zb!3A6qHHmZ^c?G60|C z>J1nJv(pg0Z8aFB$gxoc{KI|k3j^I4*}>Gv_XkdhOQ%H65~W=$KWM5H z6NxZG@0)e03a+MR!jve$u10<|)W$6BNu5s&L;C}v3NwJax%%F=BgSIzyYc5pcxRLCYQgFUVlPPlQkX&O iRo_m2ArrE+e|ZBk5ti8-fT;lh0000UYw;c-vjmva*!DE3e-Lu(>9uKbQ8F}86f~SPW2;b; zz@zOdS2?O)yUdkoUVU|$VZsrqw|lSON`E^?=f`&ehU$|`74(IZpBI@GFJ-S@=FY*uH~aRE^53gub}h0tUB`L*`uq5s9g|;MU%r0t z)8frruX$)%TAmlUa8G!i_`k3>7Lz`!A1qWmpRzvs=*;gnVJic@7EU=dku}V$IA`w9 zufHZ9|I&2)TkDaDt((@hIAlsHq?mY1cOAVe@G+V5)c216?Y WsD>>cv|a)=FnGH9xvXJmOve literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/icerocket.png b/web/sites/all/modules/contrib/service_links/images/icerocket.png new file mode 100644 index 0000000000000000000000000000000000000000..7a83eb7db14605bfa83018aff2bb4e9703313706 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?bWiU=loB4kx1H;TS|CgQm zaE5{5%$ffmKYskrzyK8eeJsIXF}wIc?_Q(i2qxEoN3XM z)cR91tJ@C#O>uJPC<{Dt?EB5O#I2JWSq=Ga@X2(4O}l;EiuLl#z3|KXbg!y3Wbj!IHqBC?I~{!rr)1G2tIm(Teu!S-dy&f#I)O z;u=wsl30>zm0Xkxq!^403=MP*EOm_xLkx|q3@xn;jI|AntPBiV-8ZJ9Xvob^$xN%n Vt>KFl=S`pn22WQ%mvv4FO#mX)-*W%} literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/linkedin.png b/web/sites/all/modules/contrib/service_links/images/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..aac1182860ec2884b39548c4cfa8adf4fb136b63 GIT binary patch literal 727 zcmV;|0x127P)NklPAFl!4X}lRRDr}wNJteYE{Laqmw+eX1rR3=TzctBy_5>n zR_dY4(g;zpBH8@e#IeU?&)73#zK=Zk>G#XoxhEDz?&Bz6@n9}MJBiXB2jxoAvhXbk z7>@_1pFd!;*MEQU+3EeGenfQ0{g!oB6%(2}5^)f&%3%aMTWMvW(T z{V-lE@=B^t?~O!;^;Vxfc`?6y)7qNFalBkEKR6iO>LNsZJr6oQ#v@Ee-K$Oa?L*)Y z$G3ww{~cXEpVeB@s@AHhi=uD<18m(WAtInu`1O~E-~aIAY7OpTdS@bKDt9YZO6Bvw zI8p&IU|Wv`of=rK@#_39B{C`71Vjk2-|xDEKGn+RMV;m)fEFk;f!{SiWsoc9NLXs; zfMnEb8e3JG#@$g>wM7XAG{7ot_7yCkTU=)@6;?>+0H0&M*)^M#DMk0fmOUl`05ll0 z7z)U07&c^93B^i_Mxdy!%#uHNW_Cc5`rSNJwb#&+7}XN>7d_ z{eG`%?BmBz!DE8&o+4lOs63!eD+}&-9PekP+g>jE<3w-gwb+`n>?KLw(B5!NzWlj; z@!PX7yMox5JZC)K=FS-pEP`vW{P&&dq|wE7x<9-%{p#y){s)lqgAy^ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/misterwong.png b/web/sites/all/modules/contrib/service_links/images/misterwong.png new file mode 100644 index 0000000000000000000000000000000000000000..6ade4b9cd3325971661588243f06987049ac6e22 GIT binary patch literal 741 zcmV{-Mg**VNG^(E}Ii{UNh<;vOkEv7;D*|he*xzu|h=r(_7GE1V(QO zK^8$iCX`xaAcDPQXl{}gG<2J~wg313T@SO-;XIrVd^m^i!DfRYaep5G002YC*WDeR znc?^L000?`w&TsaOH1&t^bQBk$KrA>UvA1~tLy6}ES55=qS$cv4o>PT0w0UxIDsk) zj4Z1us+de3Fb1UAWNn>!0^zqn>XxS zlcuVekWAvFKC!sCIrS>Fx>~+=^!hd5t)BVdWld24fO6Pft*x%sGxifL*z)km?(&!N zTdFU1+PEf~Wldf$<*=tC8--}}&wBXRn`u=P0f1pyT_-Op#UcQ3zqH^*SOQ?00000NkvXXu0mjfgV|ka literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/mixx.png b/web/sites/all/modules/contrib/service_links/images/mixx.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcbca23ed7d8812191736a80a6beed320ef3899 GIT binary patch literal 134 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 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/newsvine.png b/web/sites/all/modules/contrib/service_links/images/newsvine.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbc1e773ec8971c7f4eca2e261b06cf842666d9 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{Evi7QStzX5|e;~03%xqg9C%1Ly3Wd zsG%Vvi$Dm&iR1B0y85}Sb4q9e03BULCIA2c literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/pingthis.png b/web/sites/all/modules/contrib/service_links/images/pingthis.png new file mode 100644 index 0000000000000000000000000000000000000000..57e02b79a50a486d77f4c7e18903ccf89aaa4b49 GIT binary patch literal 3205 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 X*?A@nQyASq00000NkvXXu0mjf*r#hH literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/print.png b/web/sites/all/modules/contrib/service_links/images/print.png new file mode 100644 index 0000000000000000000000000000000000000000..96b47ffe4c72cafbe7988c5c8d7c0604949e49b9 GIT binary patch literal 361 zcmV-v0ha!WP)zl0QqsP!z>~X^V>>;_L@dOCv-`C$}svZ;)BgD8qtdbcc#qr>@KeS{Dq z|7mVAc-7E#oh-|cQX-|q_kGSzx?Eh{0jNAQW(2ds`o=Z@J9}-~oeukk!GYOjv9}ne zQVt%T-Z4#+wN?{o@->~(&@^n@=Jfo!WT`UBRf#Jq{Xh5y950O2ub){>00000NkvXX Hu0mjfvBZ~K literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/printmail.png b/web/sites/all/modules/contrib/service_links/images/printmail.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1ea80a77c6a0d734cbf64e806e75f7c67f1feb GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAQ1F4L zi(`mI@7oD`vzP(}TJ2q5H?%gjKGB`@e1peht%x5yc1^Jgu^zi}cHaHQWwx)ecdAAN z*P<8q_S#Q=G^y8Hq-XAfM$LBx@66NL^5R$<40xXImtU-*)c4rw<#IumgYuJ0n~atu*(6f3t=^uE55~7ys>*;v-Gk1`)t?6L1`PWMdn{vv#`hi z!L;H#WyNwIZmyi)v#w`CRN^l?#fwbZ#gR>JOMPCyJm|coU2F3Ga=s52*DYRaF1sap y{y((TlRaotQ5462X<~&gQV~T&5#6*dVjYx1DGGv`s5R

lvv(9I`eMG%Bw2SFUVq=+5F51yNoAESsUad2p?4JNtwo_ic#`s_0q0{Y+1 zz32SS|DJm<{G(C;K@ey+$zd2$E|*hn8$l50vYe8)3eGFegH><>R=`SBv$;RR-I-ZdLSle;5K%;-`mjW0Xa_$Zm9XM5F3Qj4 zauml$0b)od0q~K7#d|kd`|JbNWBXW@8^?$;a%PgA-4|lFucptE066tnpTddKSGdf= zfdRC(gcUGOu>yOxtj37)u439}-~^m_tcT3WbENa<0qA=@hxK4Yv7#84ynw#|V4Y$_ zaSv_-P`f%o(_9 z4#dT7Y>M7XS?VLBG+X3@~1sE(u!RIF3Dg)6c fAq=}N`mg#8%3%!9TEg9`00000NkvXXu0mjfPSW*y literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/reddit.png b/web/sites/all/modules/contrib/service_links/images/reddit.png new file mode 100644 index 0000000000000000000000000000000000000000..9a158b84fc6f6e8e9500717471f7b4db691697bd GIT binary patch literal 813 zcmV+|1JeA7P);1yp@Wa~l)b0Ak-SPh4-m=Nt(dYZ1vcjdg!2iz7NJvN5@Bjb2xw5jdy12H#zP^W; zq|)j8jGeBHpRoS?``F^(b#-{r>HOW>+R^I&?(OW->;Lio{`UF!)6>)2_5aG`_@<+w z|F5l>mX!Yf{dHGix|6t)Wr2qf{Gf6~2RCwBAkgcr)fm$|(!k{1(aan)>V$hMU z1_EgXW-UJ%VQxNEfB<5st*!wA0|}*aE~l~#E(U-Af(RJunMg^bF$oAnasUJnL!GXk zLXxq2j#9dsiX5|e96$gu1j)(xXccqHYm{(Dc{!A_0R#{Oy8yokV@yhYy{!c=zoND! zKmajtW@snoi`vxJ2iw(K3)pi41Q0`cpjEx7ey*dVzP@*Th%*yF05SN-*4GPV3h_7w z1V`8BiFg785QCXUeZ6CHJ&-VWtast&00tOjQmQ3zzT(2q1=9V+D07R!tTbUU_cj1cO?D0AkSbFqAN@aAj9_;8W9;mev6X rAO@iKYgO4e7#KLjBY>eG3lLxc9pOJWnRJz500000NkvXXu0mjfUgEE$ literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/slashdot.png b/web/sites/all/modules/contrib/service_links/images/slashdot.png new file mode 100644 index 0000000000000000000000000000000000000000..b0541e7d77a40d2bc198072bde6a421ac8ec9fb9 GIT binary patch literal 955 zcmV;s14R6ZP)Px%{ZLF)MFa!{0000A2?!Dr5*88)CL97V9Rx5mE*32~SpflN0031uCje9;U{W<4 zHANsGKp{FvBRfqbH%KQwRsbw>6(VJEIZ-)PZ#qd-O-)Q*V^c<4bxLGxKL7&ZEcWRY3WQ-{%uV2 zb5_%JZP{gCqG2ikfB+?e88o3Z2(}GXy8u_b16#fcU$!oOvpfdS1|-ofX3R5j#wumP z7XYSER<=rRpG`%?L}=JsJjzPBiwLKgIRBXe`Adu%1k?0fi&?5$DNiFxXachq zt5l=KRH?~dtkiRo(Omw@PW{Se{MTyQ$5#b5h#@nZ091$)U5*1vnLAmSGDw>RMX3Z< ztOakeEoZ4oXMBkBIGxiT$>f>$tVtte>LOoV?V6 zu;8Ql&5z2*xAxJm)8?`K>a^Y4l7N7~gP6vNv(c-v#)_oule+4Ty5`)R$m_kxmd4MZ z%hk2W(v86Kl-2XG&+Ulp_P6Qo%*@Qh#l_s+-O|+6%+t&8)YACw)W_81*xu>H+x76% z&w8>iX*W_3Gs7_v!Wd_4M@r|Nr~@`}+Cz`|S1B@6GVOA@l$M z00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm000XU000XU0RWnu7ytkO2XskI zMF-gi850o+Z_$iz0000gNkl848#Seh&Me88q*vKkbpW5(urPK{NwD?cD4QyF zb75a#D;Kg{cud!m96_W~DO<{JQ`8=Uayp$x44SS(h&rub*7jO1wi<<6Mx^;9LD@(mkud7oL~D8&-ji`(wAS9AghUu> zN}npAd30Cj$f$P@PGkU)8qTK(eF-S*L7xjp9-AnMoZr#FIK50W#WV*f%1?Q`B;#cR z4Rk$4(tei7af7m^^RfVQT>hHhaTK|H*G?53nrK%rYcPla2-ojg0YnoBj5H-A7ZbpT)Ph;(hA= zUoL^f5XNBtHRzlRZI5x?URz{rFFusfwyS8Z&+jbh#4yuf(C2AS{}3Hq{a|jWV0pNq zG_yK<3CnEctwHcp>4G+Vt?c7yfH98_eU_hbR!y6;{HyMRMbJL&-gRjx{pfPX;80cO z`Qb`2zI)MH^ZtT}Gu0z*FlDC3Chi;vbbdMBu>{WFsIAlrp6arn&C5)_Ghw=LvUdKx zvqj%7EG`vZ0Q2r>4EuGJ$(pAApiedqcHOvnBEMvo826QX&5jB8sgbqF`o*d{N3UB> z-`-fa&wuyQhh0lYuN*4;dIY=Jnmtq_UcR>X?V<6vo~QtaD`1E$om>1UkN%}*bYr;K zdHZsC`Nm&+#=28wbH5+I3Cy3)rJIhNGZ*f7ck-EUuAixV?eU+N{?x8=(~rFow>BQk zej&H+x9l3-IX#9+-4&+`;wQc@Tlr+hV!!pux}~@1kwH`R#Yp(d@fsoQHd$XdmLILM zo_pG3-`y5EHtCDhm?l>{vg}&S;+(0>v?YHFShEEymRR1yc`GlwZ!}}&e^b!k;+tyjdi@{rbGZQk literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/technorati.png b/web/sites/all/modules/contrib/service_links/images/technorati.png new file mode 100644 index 0000000000000000000000000000000000000000..200ebbfa3b398bba2fc4d293f58dc4ef2834538e GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{Eq zbIO&tZ@)jao%gCcV^?%s=fUR-fByYWJ0$u4|Nqe43_x<-u4ADF!NfX?e85oZ!oL5mkuENc7De00!keot;#Ed6Tjx_R^@kxeB@|i_O zHZUY5OqeV@aq82Q>CB8}en0`HPfuA=Q!Ae+G`Nc?G$=6b;R#@5ivx;pY_R&dfT?B^ z10#!&0Bh92vpgvV#onixSOl1lXhcSeG3qgjDeww7B%D1Hw8`KAtAK;R<%VS&Jh;6- z7ki#yWD#&-<+f*EJzk^KWD}X*@@O1TaS?83{1OV^4#6bW6 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/twitter.png b/web/sites/all/modules/contrib/service_links/images/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..84704ebac31f01f10aada2acafc98b20e952794e GIT binary patch literal 1195 zcmeAS@N?(olHy`uVBq!ia0vp^0w65F1|7}0x7 zD0$+w4AUJMYc#fsOm$hI=OtchEV3qBJl0)XW2;gV2iLT9M-&W|c3lVy5Zvg(<(lKM zH6mHar#?mPvZvLP^kYX=*C+KK8 z{M>2bbp7MU4?nzlGylHJ#OIOI5<|Yex;k&(-{0e+t{AGI2o$Y+o%>McFB$Y0;%Wb@T><)J44Vn_R&a;*7^zo11^W)js z<^C^A(x0#YyP}Arux#hOeZDHwrnk4BpTpUHfA8zJp(3GYpGI8EV$~2+%}hA({Pxbz z$9fkk?%%)HR^rWz9d&?qH#swxT!^;T_>IA*}b>dSoLYfW9LXu|b%zOyaz($ez$ zLK*kOHEoDuWn@rnQaD*^b68_47c0ZGt0s}>p6B0x_wwd;eE|=(@UWDdZ`TPmWY5+W zi;fDK^6=rmf5-dn>ttj?t_E>7B$n)rxMIT4P_#3K&EZ7OvP^~+AGOVr3=E1bb#a># zUsyG)Tfg>c5yR6>i)#M!8CbpgzI`iebLe#e#TJ26X>3xee zCS5UUTAvuo z{N}!TU;pF7-{0QT7hQb%)G6^e-<~(WwjVYq*&D+qA!%8&W2L6ZtG8b(Wct$2f4JYu z8g%{pySMN5m95>mb7P>uqr%y}sgi25kIvSZUN~>=)YQ<}=+`eQ{#wlqyJ}l4pwwZ{ zeW2NLu1T)MBonKuFB#saA1EBF{w4C<<wu4U-uo}z6zTi=6<7P?k4sh8n@gQd3E8?b z^Y4a-cKyfm(r+F;`t6%;^qOlfk8W&y_N-Sre$N4mez~hk>x4f1cFx%R@YL(0H{brV z^=W-@THHsX|GN3gzJ~wWbqx0>eNZ^xIxicT*;PwiBT7;dOH!?pi&B9UgOP!up{}8U zu7Pogp}Cc*p_Qq*wtI9Y&+2?#u0{an^LB{Ts52<#x5 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/images/yahoo.png b/web/sites/all/modules/contrib/service_links/images/yahoo.png new file mode 100644 index 0000000000000000000000000000000000000000..c699d85c89b79f2844e81be9804f4c6bd7930afe GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E-3rHkM`|)_3has zt>Eu3?wq`K{K3E9mo8uU_x<0$?_a}8ba4!+ zxRoT3{B-(*hYz1mpYY&$;sdegOdJYqhLs!%6Q55?OA(&R4&;W3`ROT4@1ET1I%8tz zM1F+^iHM~Ztuq@NoW15vpF6uz6eyxnQF&8x=8PEXqnJ-?7#NQnICb)< zlJ3!?=Tr_UoKrn{hzq1_Pf*aFOFD0Ia?ZrWe2M`pJ8cj<_*H zV#duKu8oU$oQx*z0V_Ioj8Ejjqen@Ji4#*Erm}J4INb&1QHlNw)50gybr7Z#teg}tDnm{r-UW|`Q7E3 literal 0 HcmV?d00001 diff --git a/web/sites/all/modules/contrib/service_links/js/facebook_like.js b/web/sites/all/modules/contrib/service_links/js/facebook_like.js new file mode 100644 index 0000000..c9bcf56 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/js/facebook_like.js @@ -0,0 +1,25 @@ +(function ($) { + Drupal.behaviors.ws_fl = { + attach: function (context, settings) { + $('a.service-links-facebook-like', context).each(function(){ + var iframe = document.createElement('iframe'); + + iframe.src = $(this).attr('href').replace('http://', '//').replace(/http[s]*\%3A\/\//, ''); + iframe.setAttribute('scrolling', 'no'); + iframe.setAttribute('frameborder', 0); + iframe.setAttribute('allowTransparency', 'true'); + + $(iframe).css({ + 'border': 'none', + 'overflow': 'hidden', + 'width': Drupal.settings.ws_fl.width + 'px', + 'height': Drupal.settings.ws_fl.height + 'px', + }); + + $(iframe).addClass($(this).attr('class')); + + $(this).replaceWith(iframe); + }); + } + } +})(jQuery); diff --git a/web/sites/all/modules/contrib/service_links/js/facebook_share.js b/web/sites/all/modules/contrib/service_links/js/facebook_share.js new file mode 100644 index 0000000..112baa6 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/js/facebook_share.js @@ -0,0 +1,42 @@ +(function ($) { + Drupal.behaviors.ws_fs = { + scriptadded: false, + + attach: function (context, settings) { + if (!this.scriptadded) { + var fdiv_root, js, div_root ; + var fjs = document.getElementsByTagName('script')[0]; + + if (!document.getElementById('fb-root')) { + div_root = document.createElement('div'); + div_root.id = 'fb-root'; + document.body.appendChild(div_root); + } + + if (!document.getElementById('facebook-jssdk')) { + js = document.createElement('script'); + js.id = 'facebook-jssdk'; + js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=" + Drupal.settings.ws_fs.app_id; + fjs.parentNode.insertBefore(js, fjs); + this.scriptadded = true; + } + } + + $('a.service-links-facebook-share', context).once(function(){ + var f_text = document.createElement('fb:share-button'); + var css = Drupal.settings.ws_fs.css.split(';'); + var key_value = new Array(); + + f_text.setAttribute('type', Drupal.settings.ws_fs.type); + f_text.setAttribute('href', $(this).attr('rel')); + + for (i = 0; i < css.length; i++){ + key_value = css[i].split(':'); + $(f_text).css(key_value[0], key_value[1]); + } + + $(this).replaceWith(f_text); + }); + } + } +})(jQuery); diff --git a/web/sites/all/modules/contrib/service_links/js/favorite_services.js b/web/sites/all/modules/contrib/service_links/js/favorite_services.js new file mode 100644 index 0000000..9e61397 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/js/favorite_services.js @@ -0,0 +1,40 @@ +(function ($) { + Drupal.behaviors.sl_fs = { + attach: function(context, settings) { + var $favorites = $("a.service-links-favorite", context).once('service-links-favorite'); + var message = ''; + + $favorites.show(); + if (window.chrome) { + message= Drupal.t('Use CTRL + D to add this to your bookmarks'); + } else if (window.opera && window.print) { + $favorites.each(function(){ + var url = $(this).attr('href').split('&favtitle='); + var title = decodeURI(url[1]); + url = url[0]; + $(this).attr('rel', 'sidebar').attr('href', url).attr('title', title); + }); + } else if (window.sidebar || window.external) { + $favorites.click(function(event){ + event.preventDefault(); + var url = $(this).attr('href').split('&favtitle='); + var title = decodeURI(url[1]); + url = url[0]; + if (window.sidebar) { + window.sidebar.addPanel(title, url, ''); + } else if (window.external) { + window.external.AddFavorite(url, title); + } + }); + } else { + message = Drupal.t('Please use your browser to bookmark this page.'); + } + if (message) { + $favorites.click(function(event){ + event.preventDefault(); + alert(message); + }); + } + } + } +})(jQuery); diff --git a/web/sites/all/modules/contrib/service_links/js/google_plus_one.js b/web/sites/all/modules/contrib/service_links/js/google_plus_one.js new file mode 100644 index 0000000..13a7b29 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/js/google_plus_one.js @@ -0,0 +1,48 @@ +(function ($) { + Drupal.behaviors.ws_gpo = { + scriptadded: false, + + attach: function (context, settings) { + $('a.service-links-google-plus-one', context).once(function(){ + var g_text = document.createElement('g:plusone'); + + g_text.setAttribute('href', $(this).attr('href')); + g_text.setAttribute('width', Drupal.settings.ws_gpo.width); + + if (Drupal.settings.ws_gpo.size != '') { + g_text.setAttribute('size', Drupal.settings.ws_gpo.size); + } + if (Drupal.settings.ws_gpo.annotation != '') { + g_text.setAttribute('annotation', Drupal.settings.ws_gpo.annotation); + } + if (Drupal.settings.ws_gpo.callback) { + g_text.setAttribute('callback', Drupal.settings.ws_gpo.callback); + } + + $(this).replaceWith(g_text); + }); + + if (this.scriptadded) { + gapi.plusone.go(); + } else { + var params = { parsetags: "explicit" }; + + if (Drupal.settings.ws_gpo.lang != '') { + params.lang = Drupal.settings.ws_gpo.lang; + } + + window.___gcfg = params + + $.ajax({ + url: "https://apis.google.com/js/plusone.js", + dataType: "script", + cache: true, + success: function () { + this.scriptadded = true; + gapi.plusone.go(); + } + }); + } + } + } +})(jQuery); diff --git a/web/sites/all/modules/contrib/service_links/js/interface.js b/web/sites/all/modules/contrib/service_links/js/interface.js new file mode 100644 index 0000000..bcb2855 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/js/interface.js @@ -0,0 +1,12 @@ +/** + * Interface Elements for jQuery + * + * http://interface.eyecon.ro + * + * Copyright (c) 2006 Stefan Petre + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * + */ + eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('k.f2={2r:u(M){E q.1E(u(){if(!M.aR||!M.aZ)E;D el=q;el.2l={aq:M.aq||cO,aR:M.aR,aZ:M.aZ,8e:M.8e||\'fV\',aJ:M.aJ||\'fV\',2Y:M.2Y&&2g M.2Y==\'u\'?M.2Y:I,3i:M.2Y&&2g M.3i==\'u\'?M.3i:I,7U:M.7U&&2g M.7U==\'u\'?M.7U:I,as:k(M.aR,q),8f:k(M.aZ,q),H:M.H||8J,67:M.67||0};el.2l.8f.2G().B(\'W\',\'9R\').eq(0).B({W:el.2l.aq+\'U\',19:\'2B\'}).2T();el.2l.as.1E(u(2N){q.7X=2N}).gC(u(){k(q).2R(el.2l.aJ)},u(){k(q).4i(el.2l.aJ)}).1J(\'5h\',u(e){if(el.2l.67==q.7X)E;el.2l.as.eq(el.2l.67).4i(el.2l.8e).2T().eq(q.7X).2R(el.2l.8e).2T();el.2l.8f.eq(el.2l.67).5w({W:0},el.2l.H,u(){q.14.19=\'1o\';if(el.2l.3i){el.2l.3i.1D(el,[q])}}).2T().eq(q.7X).1Y().5w({W:el.2l.aq},el.2l.H,u(){q.14.19=\'2B\';if(el.2l.2Y){el.2l.2Y.1D(el,[q])}}).2T();if(el.2l.7U){el.2l.7U.1D(el,[q,el.2l.8f.K(q.7X),el.2l.as.K(el.2l.67),el.2l.8f.K(el.2l.67)])}el.2l.67=q.7X}).eq(0).2R(el.2l.8e).2T();k(q).B(\'W\',k(q).B(\'W\')).B(\'2U\',\'2K\')})}};k.fn.gN=k.f2.2r;k.aA={2r:u(M){E q.1E(u(){D el=q;D 7E=2*18.2Q/f1;D an=2*18.2Q;if(k(el).B(\'Y\')!=\'2s\'&&k(el).B(\'Y\')!=\'1P\'){k(el).B(\'Y\',\'2s\')}el.1l={1R:k(M.1R,q),2F:M.2F,6q:M.6q,aD:M.aD,an:an,1N:k.1a.2o(q),Y:k.1a.3w(q),26:18.2Q/2,bi:M.bi,8p:M.6r,6r:[],aG:I,7E:2*18.2Q/f1};el.1l.fB=(el.1l.1N.w-el.1l.2F)/2;el.1l.7D=(el.1l.1N.h-el.1l.6q-el.1l.6q*el.1l.8p)/2;el.1l.2D=2*18.2Q/el.1l.1R.1N();el.1l.ba=el.1l.1N.w/2;el.1l.b9=el.1l.1N.h/2-el.1l.6q*el.1l.8p;D ak=1h.3F(\'22\');k(ak).B({Y:\'1P\',3I:1,Q:0,O:0});k(el).1S(ak);el.1l.1R.1E(u(2N){a6=k(\'1T\',q).K(0);W=T(el.1l.6q*el.1l.8p);if(k.3a.4t){3E=1h.3F(\'1T\');k(3E).B(\'Y\',\'1P\');3E.2J=a6.2J;3E.14.5E=\'gE 9n:9w.9y.cC(1G=60, 14=1, gB=0, gA=0, gv=0, gF=0)\'}P{3E=1h.3F(\'3E\');if(3E.fD){4L=3E.fD("2d");3E.14.Y=\'1P\';3E.14.W=W+\'U\';3E.14.Z=el.1l.2F+\'U\';3E.W=W;3E.Z=el.1l.2F;4L.gu();4L.gO(0,W);4L.gk(1,-1);4L.gp(a6,0,0,el.1l.2F,W);4L.6H();4L.gm="gG-4l";D ap=4L.hy(0,0,0,W);ap.fs(1,"fr(1V, 1V, 1V, 1)");ap.fs(0,"fr(1V, 1V, 1V, 0.6)");4L.hx=ap;if(hA.hB.3J(\'hw\')!=-1){4L.hv()}P{4L.hu(0,0,el.1l.2F,W)}}}el.1l.6r[2N]=3E;k(ak).1S(3E)}).1J(\'9z\',u(e){el.1l.aG=1b;el.1l.H=el.1l.7E*0.1*el.1l.H/18.3S(el.1l.H);E I}).1J(\'8B\',u(e){el.1l.aG=I;E I});k.aA.7T(el);el.1l.H=el.1l.7E*0.2;el.1l.ht=1X.6V(u(){el.1l.26+=el.1l.H;if(el.1l.26>an)el.1l.26=0;k.aA.7T(el)},20);k(el).1J(\'8B\',u(){el.1l.H=el.1l.7E*0.2*el.1l.H/18.3S(el.1l.H)}).1J(\'3D\',u(e){if(el.1l.aG==I){1s=k.1a.4a(e);fz=el.1l.1N.w-1s.x+el.1l.Y.x;el.1l.H=el.1l.bi*el.1l.7E*(el.1l.1N.w/2-fz)/(el.1l.1N.w/2)}})})},7T:u(el){el.1l.1R.1E(u(2N){b8=el.1l.26+2N*el.1l.2D;x=el.1l.fB*18.5H(b8);y=el.1l.7D*18.83(b8);f9=T(2a*(el.1l.7D+y)/(2*el.1l.7D));fk=(el.1l.7D+y)/(2*el.1l.7D);Z=T((el.1l.2F-el.1l.aD)*fk+el.1l.aD);W=T(Z*el.1l.6q/el.1l.2F);q.14.Q=el.1l.b9+y-W/2+"U";q.14.O=el.1l.ba+x-Z/2+"U";q.14.Z=Z+"U";q.14.W=W+"U";q.14.3I=f9;el.1l.6r[2N].14.Q=T(el.1l.b9+y+W-1-W/2)+"U";el.1l.6r[2N].14.O=T(el.1l.ba+x-Z/2)+"U";el.1l.6r[2N].14.Z=Z+"U";el.1l.6r[2N].14.W=T(W*el.1l.8p)+"U"})}};k.fn.hI=k.aA.2r;k.23({G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W},hK:u(p,n,1W,1H,1m){E 1H*(n/=1m)*n*n+1W},fl:u(p,n,1W,1H,1m){E-1H*((n=n/1m-1)*n*n*n-1)+1W},hm:u(p,n,1W,1H,1m){if((n/=1m/2)<1)E 1H/2*n*n*n*n+1W;E-1H/2*((n-=2)*n*n*n-2)+1W},8l:u(p,n,1W,1H,1m){if((n/=1m)<(1/2.75)){E 1H*(7.aB*n*n)+1W}P if(n<(2/2.75)){E 1H*(7.aB*(n-=(1.5/2.75))*n+.75)+1W}P if(n<(2.5/2.75)){E 1H*(7.aB*(n-=(2.25/2.75))*n+.gY)+1W}P{E 1H*(7.aB*(n-=(2.h2/2.75))*n+.gX)+1W}},cr:u(p,n,1W,1H,1m){if(k.G.8l)E 1H-k.G.8l(p,1m-n,0,1H,1m)+1W;E 1W+1H},gW:u(p,n,1W,1H,1m){if(k.G.cr&&k.G.8l)if(n<1m/2)E k.G.cr(p,n*2,0,1H,1m)*.5+1W;E k.G.8l(p,n*2-1m,0,1H,1m)*.5+1H*.5+1W;E 1W+1H},gQ:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m)==1)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E-(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W},gT:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E a*18.6b(2,-10*n)*18.83((n*1m-s)*(2*18.2Q)/p)+1H+1W},gV:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}if(n<1){E-.5*(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W}E a*18.6b(2,-10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p)*.5+1H+1W}}});k.6n={2r:u(M){E q.1E(u(){D el=q;el.1F={1R:k(M.1R,q),1Z:k(M.1Z,q),1M:k.1a.3w(q),2F:M.2F,ax:M.ax,7Y:M.7Y,ge:M.ge,51:M.51,6x:M.6x};k.6n.aH(el,0);k(1X).1J(\'gU\',u(){el.1F.1M=k.1a.3w(el);k.6n.aH(el,0);k.6n.7T(el)});k.6n.7T(el);el.1F.1R.1J(\'9z\',u(){k(el.1F.ax,q).K(0).14.19=\'2B\'}).1J(\'8B\',u(){k(el.1F.ax,q).K(0).14.19=\'1o\'});k(1h).1J(\'3D\',u(e){D 1s=k.1a.4a(e);D 5s=0;if(el.1F.51&&el.1F.51==\'cv\')D aI=1s.x-el.1F.1M.x-(el.4c-el.1F.2F*el.1F.1R.1N())/2-el.1F.2F/2;P if(el.1F.51&&el.1F.51==\'2L\')D aI=1s.x-el.1F.1M.x-el.4c+el.1F.2F*el.1F.1R.1N();P D aI=1s.x-el.1F.1M.x;D fP=18.6b(1s.y-el.1F.1M.y-el.5W/2,2);el.1F.1R.1E(u(2N){45=18.ez(18.6b(aI-2N*el.1F.2F,2)+fP);45-=el.1F.2F/2;45=45<0?0:45;45=45>el.1F.7Y?el.1F.7Y:45;45=el.1F.7Y-45;bB=el.1F.6x*45/el.1F.7Y;q.14.Z=el.1F.2F+bB+\'U\';q.14.O=el.1F.2F*2N+5s+\'U\';5s+=bB});k.6n.aH(el,5s)})})},aH:u(el,5s){if(el.1F.51)if(el.1F.51==\'cv\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())/2-5s/2+\'U\';P if(el.1F.51==\'O\')el.1F.1Z.K(0).14.O=-5s/el.1F.1R.1N()+\'U\';P if(el.1F.51==\'2L\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())-5s/2+\'U\';el.1F.1Z.K(0).14.Z=el.1F.2F*el.1F.1R.1N()+5s+\'U\'},7T:u(el){el.1F.1R.1E(u(2N){q.14.Z=el.1F.2F+\'U\';q.14.O=el.1F.2F*2N+\'U\'})}};k.fn.hi=k.6n.2r;k.N={1c:S,8R:S,3A:S,2I:S,4y:S,cl:S,1d:S,2h:S,1R:S,5o:u(){k.N.8R.5o();if(k.N.3A){k.N.3A.2G()}},4w:u(){k.N.1R=S;k.N.2h=S;k.N.4y=k.N.1d.2y;if(k.N.1c.B(\'19\')==\'2B\'){if(k.N.1d.1f.fx){3m(k.N.1d.1f.fx.1u){1e\'c6\':k.N.1c.7a(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'1z\':k.N.1c.fq(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'a7\':k.N.1c.g3(k.N.1d.1f.fx.1m,k.N.5o);1r}}P{k.N.1c.2G()}if(k.N.1d.1f.3i)k.N.1d.1f.3i.1D(k.N.1d,[k.N.1c,k.N.3A])}P{k.N.5o()}1X.bH(k.N.2I)},dQ:u(){D 1d=k.N.1d;D 4d=k.N.aY(1d);if(1d&&4d.3o!=k.N.4y&&4d.3o.1g>=1d.1f.aL){k.N.4y=4d.3o;k.N.cl=4d.3o;81={2n:k(1d).1p(\'hj\')||\'2n\',2y:4d.3o};k.hl({1u:\'hk\',81:k.hf(81),he:u(fZ){1d.1f.4e=k(\'3o\',fZ);1N=1d.1f.4e.1N();if(1N>0){D 5p=\'\';1d.1f.4e.1E(u(2N){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'\'});if(1d.1f.aU){D 3M=k(\'2y\',1d.1f.4e.K(0)).3g();1d.2y=4d.3j+3M+1d.1f.3N+4d.66;k.N.6J(1d,4d.3o.1g!=3M.1g?(4d.3j.1g+4d.3o.1g):3M.1g,4d.3o.1g!=3M.1g?(4d.3j.1g+3M.1g):3M.1g)}if(1N>0){k.N.cj(1d,5p)}P{k.N.4w()}}P{k.N.4w()}},5N:1d.1f.aN})}},cj:u(1d,5p){k.N.8R.3x(5p);k.N.1R=k(\'8P\',k.N.8R.K(0));k.N.1R.9z(k.N.di).1J(\'5h\',k.N.dj);D Y=k.1a.3w(1d);D 1N=k.1a.2o(1d);k.N.1c.B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').2R(1d.1f.aM);if(k.N.3A){k.N.3A.B(\'19\',\'2B\').B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').B(\'Z\',k.N.1c.B(\'Z\')).B(\'W\',k.N.1c.B(\'W\'))}k.N.2h=0;k.N.1R.K(0).3l=1d.1f.7H;k.N.8Q(1d,1d.1f.4e.K(0),\'7J\');if(k.N.1c.B(\'19\')==\'1o\'){if(1d.1f.bV){D cp=k.1a.aT(1d,1b);D cm=k.1a.6U(1d,1b);k.N.1c.B(\'Z\',1d.4c-(k.dF?(cp.l+cp.r+cm.l+cm.r):0)+\'U\')}if(1d.1f.fx){3m(1d.1f.fx.1u){1e\'c6\':k.N.1c.7f(1d.1f.fx.1m);1r;1e\'1z\':k.N.1c.fo(1d.1f.fx.1m);1r;1e\'a7\':k.N.1c.gb(1d.1f.fx.1m);1r}}P{k.N.1c.1Y()}if(k.N.1d.1f.2Y)k.N.1d.1f.2Y.1D(k.N.1d,[k.N.1c,k.N.3A])}},dO:u(){D 1d=q;if(1d.1f.4e){k.N.4y=1d.2y;k.N.cl=1d.2y;D 5p=\'\';1d.1f.4e.1E(u(2N){2y=k(\'2y\',q).3g().6c();fY=1d.2y.6c();if(2y.3J(fY)==0){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'\'}});if(5p!=\'\'){k.N.cj(1d,5p);q.1f.9x=1b;E}}1d.1f.4e=S;q.1f.9x=I},6J:u(2n,26,2T){if(2n.b1){D 6t=2n.b1();6t.hp(1b);6t.dI("ck",26);6t.ha("ck",-2T+26);6t.8C()}P if(2n.aF){2n.aF(26,2T)}P{if(2n.5q){2n.5q=26;2n.dN=2T}}2n.6K()},f0:u(2n){if(2n.5q)E 2n.5q;P if(2n.b1){D 6t=1h.6J.dZ();D eX=6t.h9();E 0-eX.dI(\'ck\',-h6)}},aY:u(2n){D 4P={2y:2n.2y,3j:\'\',66:\'\',3o:\'\'};if(2n.1f.aQ){D 8N=I;D 5q=k.N.f0(2n)||0;D 4T=4P.2y.7C(2n.1f.3N);24(D i=0;i<4T.1g;i++){if((4P.3j.1g+4T[i].1g>=5q||5q==0)&&!8N){if(4P.3j.1g<=5q)4P.3o=4T[i];P 4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\');8N=1b}P if(8N){4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\')}if(!8N){4P.3j+=4T[i]+(4T.1g>1?2n.1f.3N:\'\')}}}P{4P.3o=4P.2y}E 4P},bU:u(e){1X.bH(k.N.2I);D 1d=k.N.aY(q);D 3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40|9/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';P k.N.2h=-1;3m(3K){1e 9:1e 13:if(k.N.2h==-1)k.N.2h=0;D 2h=k.N.1R.K(k.N.2h||0);D 3M=2h.5C(\'4I\');q.2y=1d.3j+3M+q.1f.3N+1d.66;k.N.4y=1d.3o;k.N.6J(q,1d.3j.1g+3M.1g+q.1f.3N.1g,1d.3j.1g+3M.1g+q.1f.3N.1g);k.N.4w();if(q.1f.68){4u=T(2h.5C(\'8K\'))||0;k.N.8Q(q,q.1f.4e.K(4u),\'68\')}if(q.7W)q.7W(I);E 3K!=13;1r;1e 27:q.2y=1d.3j+k.N.4y+q.1f.3N+1d.66;q.1f.4e=S;k.N.4w();if(q.7W)q.7W(I);E I;1r;1e 35:k.N.2h=k.N.1R.1N()-1;1r;1e 36:k.N.2h=0;1r;1e 38:k.N.2h--;if(k.N.2h<0)k.N.2h=k.N.1R.1N()-1;1r;1e 40:k.N.2h++;if(k.N.2h==k.N.1R.1N())k.N.2h=0;1r}k.N.8Q(q,q.1f.4e.K(k.N.2h||0),\'7J\');k.N.1R.K(k.N.2h||0).3l=q.1f.7H;if(k.N.1R.K(k.N.2h||0).7W)k.N.1R.K(k.N.2h||0).7W(I);if(q.1f.aU){D aK=k.N.1R.K(k.N.2h||0).5C(\'4I\');q.2y=1d.3j+aK+q.1f.3N+1d.66;if(k.N.4y.1g!=aK.1g)k.N.6J(q,1d.3j.1g+k.N.4y.1g,1d.3j.1g+aK.1g)}E I}k.N.dO.1D(q);if(q.1f.9x==I){if(1d.3o!=k.N.4y&&1d.3o.1g>=q.1f.aL)k.N.2I=1X.9T(k.N.dQ,q.1f.54);if(k.N.1R){k.N.4w()}}E 1b},8Q:u(2n,3o,1u){if(2n.1f[1u]){D 81={};ar=3o.f3(\'*\');24(i=0;i\');k.N.3A=k(\'#ds\')}k(\'2e\',1h).1S(\'<22 id="dr" 14="Y: 1P; Q: 0; O: 0; z-cZ: h3; 19: 1o;"><9h 14="6w: 0;8F: 0; h1-14: 1o; z-cZ: h0;">&7k;\');k.N.1c=k(\'#dr\');k.N.8R=k(\'9h\',k.N.1c)}E q.1E(u(){if(q.4Y!=\'ch\'&&q.5C(\'1u\')!=\'3g\')E;q.1f={};q.1f.aN=M.aN;q.1f.aL=18.3S(T(M.aL)||1);q.1f.aM=M.aM?M.aM:\'\';q.1f.7H=M.7H?M.7H:\'\';q.1f.68=M.68&&M.68.1K==2A?M.68:S;q.1f.2Y=M.2Y&&M.2Y.1K==2A?M.2Y:S;q.1f.3i=M.3i&&M.3i.1K==2A?M.3i:S;q.1f.7J=M.7J&&M.7J.1K==2A?M.7J:S;q.1f.bV=M.bV||I;q.1f.aQ=M.aQ||I;q.1f.3N=q.1f.aQ?(M.3N||\', \'):\'\';q.1f.aU=M.aU?1b:I;q.1f.54=18.3S(T(M.54)||aC);if(M.fx&&M.fx.1K==7M){if(!M.fx.1u||!/c6|1z|a7/.48(M.fx.1u)){M.fx.1u=\'1z\'}if(M.fx.1u==\'1z\'&&!k.fx.1z)E;if(M.fx.1u==\'a7\'&&!k.fx.61)E;M.fx.1m=18.3S(T(M.fx.1m)||8J);if(M.fx.1m>q.1f.54){M.fx.1m=q.1f.54-2a}q.1f.fx=M.fx}q.1f.4e=S;q.1f.9x=I;k(q).1p(\'bU\',\'eN\').6K(u(){k.N.1d=q;k.N.4y=q.2y}).dH(k.N.eJ).6y(k.N.bU).5B(u(){k.N.2I=1X.9T(k.N.4w,hM)})})}};k.fn.hR=k.N.2r;k.1y={2I:S,4Q:S,29:S,2D:10,26:u(el,4J,2D,eG){k.1y.4Q=el;k.1y.29=4J;k.1y.2D=T(2D)||10;k.1y.2I=1X.6V(k.1y.eF,T(eG)||40)},eF:u(){24(i=0;i0&&k.1y.29[i].2X.y+k.1y.29[i].2X.t>69.y){k.1y.29[i].3d-=k.1y.2D}P if(k.1y.29[i].2X.t<=k.1y.29[i].2X.h&&k.1y.29[i].2X.t+k.1y.29[i].2X.hb<69.y+69.hb){k.1y.29[i].3d+=k.1y.2D}if(k.1y.29[i].2X.l>0&&k.1y.29[i].2X.x+k.1y.29[i].2X.l>69.x){k.1y.29[i].3c-=k.1y.2D}P if(k.1y.29[i].2X.l<=k.1y.29[i].2X.hP&&k.1y.29[i].2X.l+k.1y.29[i].2X.1C<69.x+69.1C){k.1y.29[i].3c+=k.1y.2D}}},8o:u(){1X.5T(k.1y.2I);k.1y.4Q=S;k.1y.29=S;24(i in k.1y.29){k.1y.29[i].2X=S}}};k.11={1c:S,F:S,4U:u(){E q.1E(u(){if(q.9I){q.A.5e.3q(\'5v\',k.11.bN);q.A=S;q.9I=I;if(k.3a.4t){q.bE="eN"}P{q.14.hq=\'\';q.14.e1=\'\';q.14.e7=\'\'}}})},bN:u(e){if(k.11.F!=S){k.11.9A(e);E I}D C=q.3U;k(1h).1J(\'3D\',k.11.bX).1J(\'5P\',k.11.9A);C.A.1s=k.1a.4a(e);C.A.4B=C.A.1s;C.A.7q=I;C.A.ho=q!=q.3U;k.11.F=C;if(C.A.5i&&q!=q.3U){bS=k.1a.3w(C.31);bQ=k.1a.2o(C);bR={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};dx=C.A.4B.x-bS.x-bQ.1C/2-bR.x;dy=C.A.4B.y-bS.y-bQ.hb/2-bR.y;k.3b.5c(C,[dx,dy])}E k.7n||I},ea:u(e){D C=k.11.F;C.A.7q=1b;D 9G=C.14;C.A.7V=k.B(C,\'19\');C.A.4n=k.B(C,\'Y\');if(!C.A.cz)C.A.cz=C.A.4n;C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.9B=0;C.A.ai=0;if(k.3a.4t){D bW=k.1a.6U(C,1b);C.A.9B=bW.l||0;C.A.ai=bW.t||0}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){9G.Y=\'2s\'}k.11.1c.5o();D 5g=C.fI(1b);k(5g).B({19:\'2B\',O:\'2P\',Q:\'2P\'});5g.14.5K=\'0\';5g.14.5z=\'0\';5g.14.5k=\'0\';5g.14.5j=\'0\';k.11.1c.1S(5g);D 3Y=k.11.1c.K(0).14;if(C.A.bD){3Y.Z=\'9F\';3Y.W=\'9F\'}P{3Y.W=C.A.1B.hb+\'U\';3Y.Z=C.A.1B.1C+\'U\'}3Y.19=\'2B\';3Y.5K=\'2P\';3Y.5z=\'2P\';3Y.5k=\'2P\';3Y.5j=\'2P\';k.23(C.A.1B,k.1a.2o(5g));if(C.A.2V){if(C.A.2V.O){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.2V.O;C.A.1B.x=C.A.1s.x-C.A.2V.O}if(C.A.2V.Q){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.2V.Q;C.A.1B.y=C.A.1s.y-C.A.2V.Q}if(C.A.2V.2L){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.1B.hb+C.A.2V.2L;C.A.1B.x=C.A.1s.x-C.A.1B.1C+C.A.2V.2L}if(C.A.2V.4D){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.1B.hb+C.A.2V.4D;C.A.1B.y=C.A.1s.y-C.A.1B.hb+C.A.2V.4D}}C.A.2v=C.A.2c.x;C.A.2q=C.A.2c.y;if(C.A.8s||C.A.2p==\'94\'){8U=k.1a.6U(C.31,1b);C.A.1B.x=C.8t+(k.3a.4t?0:k.3a.7I?-8U.l:8U.l);C.A.1B.y=C.8G+(k.3a.4t?0:k.3a.7I?-8U.t:8U.t);k(C.31).1S(k.11.1c.K(0))}if(C.A.2p){k.11.c5(C);C.A.5t.2p=k.11.ce}if(C.A.5i){k.3b.ct(C)}3Y.O=C.A.1B.x-C.A.9B+\'U\';3Y.Q=C.A.1B.y-C.A.ai+\'U\';3Y.Z=C.A.1B.1C+\'U\';3Y.W=C.A.1B.hb+\'U\';k.11.F.A.9E=I;if(C.A.gx){C.A.5t.6a=k.11.c7}if(C.A.3I!=I){k.11.1c.B(\'3I\',C.A.3I)}if(C.A.1G){k.11.1c.B(\'1G\',C.A.1G);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=\'+C.A.1G*2a+\')\')}}if(C.A.7O){k.11.1c.2R(C.A.7O);k.11.1c.K(0).7c.14.19=\'1o\'}if(C.A.4o)C.A.4o.1D(C,[5g,C.A.2c.x,C.A.2c.y]);if(k.1x&&k.1x.8D>0){k.1x.ed(C)}if(C.A.46==I){9G.19=\'1o\'}E I},c5:u(C){if(C.A.2p.1K==b0){if(C.A.2p==\'94\'){C.A.28=k.23({x:0,y:0},k.1a.2o(C.31));D 8S=k.1a.6U(C.31,1b);C.A.28.w=C.A.28.1C-8S.l-8S.r;C.A.28.h=C.A.28.hb-8S.t-8S.b}P if(C.A.2p==\'1h\'){D bY=k.1a.bm();C.A.28={x:0,y:0,w:bY.w,h:bY.h}}}P if(C.A.2p.1K==7F){C.A.28={x:T(C.A.2p[0])||0,y:T(C.A.2p[1])||0,w:T(C.A.2p[2])||0,h:T(C.A.2p[3])||0}}C.A.28.dx=C.A.28.x-C.A.1B.x;C.A.28.dy=C.A.28.y-C.A.1B.y},9H:u(F){if(F.A.8s||F.A.2p==\'94\'){k(\'2e\',1h).1S(k.11.1c.K(0))}k.11.1c.5o().2G().B(\'1G\',1);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=2a)\')}},9A:u(e){k(1h).3q(\'3D\',k.11.bX).3q(\'5P\',k.11.9A);if(k.11.F==S){E}D F=k.11.F;k.11.F=S;if(F.A.7q==I){E I}if(F.A.44==1b){k(F).B(\'Y\',F.A.4n)}D 9G=F.14;if(F.5i){k.11.1c.B(\'9b\',\'8j\')}if(F.A.7O){k.11.1c.4i(F.A.7O)}if(F.A.6N==I){if(F.A.fx>0){if(!F.A.1O||F.A.1O==\'4j\'){D x=12 k.fx(F,{1m:F.A.fx},\'O\');x.1L(F.A.2c.x,F.A.8y)}if(!F.A.1O||F.A.1O==\'49\'){D y=12 k.fx(F,{1m:F.A.fx},\'Q\');y.1L(F.A.2c.y,F.A.8v)}}P{if(!F.A.1O||F.A.1O==\'4j\')F.14.O=F.A.8y+\'U\';if(!F.A.1O||F.A.1O==\'49\')F.14.Q=F.A.8v+\'U\'}k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}P if(F.A.fx>0){F.A.9E=1b;D dh=I;if(k.1x&&k.1t&&F.A.44){dh=k.1a.3w(k.1t.1c.K(0))}k.11.1c.5w({O:dh?dh.x:F.A.1B.x,Q:dh?dh.y:F.A.1B.y},F.A.fx,u(){F.A.9E=I;if(F.A.46==I){F.14.19=F.A.7V}k.11.9H(F)})}P{k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}if(k.1x&&k.1x.8D>0){k.1x.eO(F)}if(k.1t&&F.A.44){k.1t.fC(F)}if(F.A.2Z&&(F.A.8y!=F.A.2c.x||F.A.8v!=F.A.2c.y)){F.A.2Z.1D(F,F.A.b3||[0,0,F.A.8y,F.A.8v])}if(F.A.3T)F.A.3T.1D(F);E I},c7:u(x,y,dx,dy){if(dx!=0)dx=T((dx+(q.A.gx*dx/18.3S(dx))/2)/q.A.gx)*q.A.gx;if(dy!=0)dy=T((dy+(q.A.gy*dy/18.3S(dy))/2)/q.A.gy)*q.A.gy;E{dx:dx,dy:dy,x:0,y:0}},ce:u(x,y,dx,dy){dx=18.3L(18.3r(dx,q.A.28.dx),q.A.28.w+q.A.28.dx-q.A.1B.1C);dy=18.3L(18.3r(dy,q.A.28.dy),q.A.28.h+q.A.28.dy-q.A.1B.hb);E{dx:dx,dy:dy,x:0,y:0}},bX:u(e){if(k.11.F==S||k.11.F.A.9E==1b){E}D F=k.11.F;F.A.4B=k.1a.4a(e);if(F.A.7q==I){45=18.ez(18.6b(F.A.1s.x-F.A.4B.x,2)+18.6b(F.A.1s.y-F.A.4B.y,2));if(450){k.1x.al(F)}E I},2r:u(o){if(!k.11.1c){k(\'2e\',1h).1S(\'<22 id="e8">\');k.11.1c=k(\'#e8\');D el=k.11.1c.K(0);D 4J=el.14;4J.Y=\'1P\';4J.19=\'1o\';4J.9b=\'8j\';4J.eu=\'1o\';4J.2U=\'2K\';if(1X.71){el.bE="e4"}P{4J.gi=\'1o\';4J.e7=\'1o\';4J.e1=\'1o\'}}if(!o){o={}}E q.1E(u(){if(q.9I||!k.1a)E;if(1X.71){q.gh=u(){E I};q.gj=u(){E I}}D el=q;D 5e=o.3v?k(q).gf(o.3v):k(q);if(k.3a.4t){5e.1E(u(){q.bE="e4"})}P{5e.B(\'-gI-7R-8C\',\'1o\');5e.B(\'7R-8C\',\'1o\');5e.B(\'-gH-7R-8C\',\'1o\')}q.A={5e:5e,6N:o.6N?1b:I,46:o.46?1b:I,44:o.44?o.44:I,5i:o.5i?o.5i:I,8s:o.8s?o.8s:I,3I:o.3I?T(o.3I)||0:I,1G:o.1G?2m(o.1G):I,fx:T(o.fx)||S,6R:o.6R?o.6R:I,5t:{},1s:{},4o:o.4o&&o.4o.1K==2A?o.4o:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:0,2V:o.2V?o.2V:I,bD:o.bD?1b:I,7O:o.7O||I};if(o.5t&&o.5t.1K==2A)q.A.5t.7R=o.5t;if(o.4m&&o.4m.1K==2A)q.A.4m=o.4m;if(o.2p&&((o.2p.1K==b0&&(o.2p==\'94\'||o.2p==\'1h\'))||(o.2p.1K==7F&&o.2p.1g==4))){q.A.2p=o.2p}if(o.2O){q.A.2O=o.2O}if(o.6a){if(2g o.6a==\'gz\'){q.A.gx=T(o.6a)||1;q.A.gy=T(o.6a)||1}P if(o.6a.1g==2){q.A.gx=T(o.6a[0])||1;q.A.gy=T(o.6a[1])||1}}if(o.3H&&o.3H.1K==2A){q.A.3H=o.3H}q.9I=1b;5e.1E(u(){q.3U=el});5e.1J(\'5v\',k.11.bN)})}};k.fn.23({aS:k.11.4U,7t:k.11.2r});k.1x={du:u(5J,5G,7Q,7S){E 5J<=k.11.F.A.2v&&(5J+7Q)>=(k.11.F.A.2v+k.11.F.A.1B.w)&&5G<=k.11.F.A.2q&&(5G+7S)>=(k.11.F.A.2q+k.11.F.A.1B.h)?1b:I},cV:u(5J,5G,7Q,7S){E!(5J>(k.11.F.A.2v+k.11.F.A.1B.w)||(5J+7Q)(k.11.F.A.2q+k.11.F.A.1B.h)||(5G+7S)k.11.F.A.4B.x&&5Gk.11.F.A.4B.y?1b:I},5r:I,3Q:{},8D:0,3P:{},ed:u(C){if(k.11.F==S){E}D i;k.1x.3Q={};D bJ=I;24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){if(1j.1i.m==I){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));1j.1i.m=1b}if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);1j.1i.ay=k.1t.8x(k.1p(1j,\'id\')).7l;C.14.19=C.A.7V;bJ=1b}if(1j.1i.9i){1j.1i.9i.1D(k.1x.3P[i].K(0),[k.11.F])}}}}if(bJ){k.1t.26()}},dS:u(){k.1x.3Q={};24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);C.14.19=C.A.7V}}}}},al:u(e){if(k.11.F==S){E}k.1x.5r=I;D i;D bK=I;D eQ=0;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(k.1x.5r==I&&k.1x[1j.1i.t](1j.1i.p.x,1j.1i.p.y,1j.1i.p.1C,1j.1i.p.hb)){if(1j.1i.hc&&1j.1i.h==I){k.1x.3Q[i].2R(1j.1i.hc)}if(1j.1i.h==I&&1j.1i.7x){bK=1b}1j.1i.h=1b;k.1x.5r=1j;if(k.1t&&1j.1i.s&&k.11.F.A.44){k.1t.1c.K(0).3l=1j.1i.eV;k.1t.al(1j)}eQ++}P if(1j.1i.h==1b){if(1j.1i.7y){1j.1i.7y.1D(1j,[e,k.11.1c.K(0).7c,1j.1i.fx])}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}1j.1i.h=I}}if(k.1t&&!k.1x.5r&&k.11.F.44){k.1t.1c.K(0).14.19=\'1o\'}if(bK){k.1x.5r.1i.7x.1D(k.1x.5r,[e,k.11.1c.K(0).7c])}},eO:u(e){D i;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(1j.1i.ac){k.1x.3Q[i].4i(1j.1i.ac)}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}if(1j.1i.s){k.1t.7s[k.1t.7s.1g]=i}if(1j.1i.9l&&1j.1i.h==1b){1j.1i.h=I;1j.1i.9l.1D(1j,[e,1j.1i.fx])}1j.1i.m=I;1j.1i.h=I}k.1x.3Q={}},4U:u(){E q.1E(u(){if(q.9j){if(q.1i.s){id=k.1p(q,\'id\');k.1t.5L[id]=S;k(\'.\'+q.1i.a,q).aS()}k.1x.3P[\'d\'+q.c2]=S;q.9j=I;q.f=S}})},2r:u(o){E q.1E(u(){if(q.9j==1b||!o.3C||!k.1a||!k.11){E}q.1i={a:o.3C,ac:o.9J||I,hc:o.a5||I,eV:o.58||I,9l:o.gq||o.9l||I,7x:o.7x||o.dC||I,7y:o.7y||o.fO||I,9i:o.9i||I,t:o.6I&&(o.6I==\'du\'||o.6I==\'cV\')?o.6I:\'1s\',fx:o.fx?o.fx:I,m:I,h:I};if(o.cQ==1b&&k.1t){id=k.1p(q,\'id\');k.1t.5L[id]=q.1i.a;q.1i.s=1b;if(o.2Z){q.1i.2Z=o.2Z;q.1i.ay=k.1t.8x(id).7l}}q.9j=1b;q.c2=T(18.6o()*c9);k.1x.3P[\'d\'+q.c2]=k(q);k.1x.8D++})}};k.fn.23({dR:k.1x.4U,do:k.1x.2r});k.gD=k.1x.dS;k.3B={1c:S,8L:u(){3g=q.2y;if(!3g)E;14={dz:k(q).B(\'dz\')||\'\',4A:k(q).B(\'4A\')||\'\',8Z:k(q).B(\'8Z\')||\'\',dP:k(q).B(\'dP\')||\'\',dT:k(q).B(\'dT\')||\'\',dU:k(q).B(\'dU\')||\'\',c3:k(q).B(\'c3\')||\'\',dY:k(q).B(\'dY\')||\'\'};k.3B.1c.B(14);3x=k.3B.dX(3g);3x=3x.4E(12 bb("\\\\n","g"),"
");k.3B.1c.3x(\'gL\');ci=k.3B.1c.K(0).4c;k.3B.1c.3x(3x);Z=k.3B.1c.K(0).4c+ci;if(q.6l.2M&&Z>q.6l.2M[0]){Z=q.6l.2M[0]}q.14.Z=Z+\'U\';if(q.4Y==\'cf\'){W=k.3B.1c.K(0).5W+ci;if(q.6l.2M&&W>q.6l.2M[1]){W=q.6l.2M[1]}q.14.W=W+\'U\'}},dX:u(3g){cg={\'&\':\'&gK;\',\'<\':\'&gJ;\',\'>\':\'>\',\'"\':\'&gs;\'};24(i in cg){3g=3g.4E(12 bb(i,\'g\'),cg[i])}E 3g},2r:u(2M){if(k.3B.1c==S){k(\'2e\',1h).1S(\'<22 id="dE" 14="Y: 1P; Q: 0; O: 0; 3n: 2K;">\');k.3B.1c=k(\'#dE\')}E q.1E(u(){if(/cf|ch/.48(q.4Y)){if(q.4Y==\'ch\'){dB=q.5C(\'1u\');if(!/3g|gr/.48(dB)){E}}if(2M&&(2M.1K==bn||(2M.1K==7F&&2M.1g==2))){if(2M.1K==bn)2M=[2M,2M];P{2M[0]=T(2M[0])||8J;2M[1]=T(2M[1])||8J}q.6l={2M:2M}}k(q).5B(k.3B.8L).6y(k.3B.8L).dH(k.3B.8L);k.3B.8L.1D(q)}})}};k.fn.kc=k.3B.2r;k.4K=u(e){if(/^kd$|^ke$|^ka$|^6L$|^k9$|^k5$|^k4$|^k6$|^k7$|^2e$|^k8$|^kf$|^kg$|^kn$|^ko$|^kp$|^kq$/i.48(e.9N))E I;P E 1b};k.fx.a0=u(e,65){D c=e.7c;D cs=c.14;cs.Y=65.Y;cs.5K=65.3G.t;cs.5j=65.3G.l;cs.5k=65.3G.b;cs.5z=65.3G.r;cs.Q=65.Q+\'U\';cs.O=65.O+\'U\';e.31.ew(c,e);e.31.km(e)};k.fx.9P=u(e){if(!k.4K(e))E I;D t=k(e);D es=e.14;D 73=I;if(t.B(\'19\')==\'1o\'){5Y=t.B(\'3n\');t.B(\'3n\',\'2K\').1Y();73=1b}D V={};V.Y=t.B(\'Y\');V.1q=k.1a.2o(e);V.3G=k.1a.cy(e);D co=e.4Z?e.4Z.ei:t.B(\'hU\');V.Q=T(t.B(\'Q\'))||0;V.O=T(t.B(\'O\'))||0;D eo=\'kl\'+T(18.6o()*c9);D 6u=1h.3F(/^1T$|^br$|^kh$|^hr$|^8C$|^kj$|^8T$|^3A$|^kk$|^k3$|^k2$|^9h$|^dl$|^jM$/i.48(e.9N)?\'22\':e.9N);k.1p(6u,\'id\',eo);D jN=k(6u).2R(\'jO\');D 4h=6u.14;D Q=0;D O=0;if(V.Y==\'2s\'||V.Y==\'1P\'){Q=V.Q;O=V.O}4h.Q=Q+\'U\';4h.O=O+\'U\';4h.Y=V.Y!=\'2s\'&&V.Y!=\'1P\'?\'2s\':V.Y;4h.W=V.1q.hb+\'U\';4h.Z=V.1q.1C+\'U\';4h.5K=V.3G.t;4h.5z=V.3G.r;4h.5k=V.3G.b;4h.5j=V.3G.l;4h.2U=\'2K\';if(k.3a.4t){4h.ei=co}P{4h.jK=co}if(k.3a=="4t"){es.5E="8V(1G="+0.ex*2a+")"}es.1G=0.ex;e.31.ew(6u,e);6u.jF(e);es.5K=\'2P\';es.5z=\'2P\';es.5k=\'2P\';es.5j=\'2P\';es.Y=\'1P\';es.eu=\'1o\';es.Q=\'2P\';es.O=\'2P\';if(73){t.2G();es.3n=5Y}E{V:V,3p:k(6u)}};k.fx.8E={jE:[0,1V,1V],jG:[eD,1V,1V],jH:[e6,e6,jI],jP:[0,0,0],ks:[0,0,1V],jY:[dv,42,42],jZ:[0,1V,1V],k0:[0,0,7w],k1:[0,7w,7w],jX:[cn,cn,cn],jS:[0,2a,0],jR:[jT,jU,eb],jV:[7w,0,7w],kr:[85,eb,47],kP:[1V,eA,0],kN:[kO,50,kx],kF:[7w,0,0],kD:[ku,f8,kt],ky:[kH,0,9C],kL:[1V,0,1V],kM:[1V,kJ,0],kv:[0,6C,0],kA:[75,0,kE],kC:[eD,eB,eA],kG:[kI,kB,eB],kw:[e0,1V,1V],kz:[eL,kK,eL],kQ:[9C,9C,9C],jC:[1V,iy,iz],iA:[1V,1V,e0],iB:[0,1V,0],ix:[1V,0,1V],iv:[6C,0,0],iq:[0,0,6C],ip:[6C,6C,0],ir:[1V,dv,0],it:[1V,ah,iu],iC:[6C,0,6C],iD:[1V,0,0],iK:[ah,ah,ah],iL:[1V,1V,1V],iM:[1V,1V,0]};k.fx.6D=u(4x,dm){if(k.fx.8E[4x])E{r:k.fx.8E[4x][0],g:k.fx.8E[4x][1],b:k.fx.8E[4x][2]};P if(2W=/^6Y\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.a4(4x))E{r:T(2W[1]),g:T(2W[2]),b:T(2W[3])};P if(2W=/6Y\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.a4(4x))E{r:2m(2W[1])*2.55,g:2m(2W[2])*2.55,b:2m(2W[3])*2.55};P if(2W=/^#([a-fA-79-9])([a-fA-79-9])([a-fA-79-9])$/.a4(4x))E{r:T("77"+2W[1]+2W[1]),g:T("77"+2W[2]+2W[2]),b:T("77"+2W[3]+2W[3])};P if(2W=/^#([a-fA-79-9]{2})([a-fA-79-9]{2})([a-fA-79-9]{2})$/.a4(4x))E{r:T("77"+2W[1]),g:T("77"+2W[2]),b:T("77"+2W[3])};P E dm==1b?I:{r:1V,g:1V,b:1V}};k.fx.dD={5Q:1,5b:1,5O:1,4S:1,4D:1,4A:1,W:1,O:1,c3:1,iI:1,5k:1,5j:1,5z:1,5K:1,8b:1,6x:1,8c:1,av:1,1G:1,iE:1,iF:1,5n:1,4X:1,5U:1,5M:1,2L:1,jD:1,Q:1,Z:1,3I:1};k.fx.dA={7i:1,iG:1,iH:1,io:1,im:1,4x:1,i2:1};k.fx.8A=[\'i3\',\'i4\',\'i5\',\'i1\'];k.fx.cc={\'cd\':[\'2E\',\'dK\'],\'a8\':[\'2E\',\'bh\'],\'6w\':[\'6w\',\'\'],\'8F\':[\'8F\',\'\']};k.fn.23({5w:u(5X,H,G,J){E q.1w(u(){D a1=k.H(H,G,J);D e=12 k.dM(q,a1,5X)})},c4:u(H,J){E q.1w(u(){D a1=k.H(H,J);D e=12 k.c4(q,a1)})},8o:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D)})},i0:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D);if(q.1w&&q.1w[\'fx\'])q.1w.fx=[]})}});k.23({c4:u(2f,M){D z=q,3t;z.2D=u(){if(k.fQ(M.21))M.21.1D(2f)};z.2I=6V(u(){z.2D()},M.1m);2f.6d=z},G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W}},dM:u(2f,M,5X){D z=q,3t;D y=2f.14;D fR=k.B(2f,"2U");D 72=k.B(2f,"19");D 2j={};z.9O=(12 7g()).7z();M.G=M.G&&k.G[M.G]?M.G:\'c8\';z.ag=u(2w,43){if(k.fx.dD[2w]){if(43==\'1Y\'||43==\'2G\'||43==\'3R\'){if(!2f.6v)2f.6v={};D r=2m(k.6E(2f,2w));2f.6v[2w]=r&&r>-c9?r:(2m(k.B(2f,2w))||0);43=43==\'3R\'?(72==\'1o\'?\'1Y\':\'2G\'):43;M[43]=1b;2j[2w]=43==\'1Y\'?[0,2f.6v[2w]]:[2f.6v[2w],0];if(2w!=\'1G\')y[2w]=2j[2w][0]+(2w!=\'3I\'&&2w!=\'8Z\'?\'U\':\'\');P k.1p(y,"1G",2j[2w][0])}P{2j[2w]=[2m(k.6E(2f,2w)),2m(43)||0]}}P if(k.fx.dA[2w])2j[2w]=[k.fx.6D(k.6E(2f,2w)),k.fx.6D(43)];P if(/^6w$|8F$|2E$|a8$|cd$/i.48(2w)){D m=43.4E(/\\s+/g,\' \').4E(/6Y\\s*\\(\\s*/g,\'6Y(\').4E(/\\s*,\\s*/g,\',\').4E(/\\s*\\)/g,\')\').d5(/([^\\s]+)/g);3m(2w){1e\'6w\':1e\'8F\':1e\'cd\':1e\'a8\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];24(D i=0;iM.1m+z.9O){5T(z.2I);z.2I=S;24(p in 2j){if(p=="1G")k.1p(y,"1G",2j[p][1]);P if(2g 2j[p][1]==\'8T\')y[p]=\'6Y(\'+2j[p][1].r+\',\'+2j[p][1].g+\',\'+2j[p][1].b+\')\';P y[p]=2j[p][1]+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}if(M.2G||M.1Y)24(D p in 2f.6v)if(p=="1G")k.1p(y,p,2f.6v[p]);P y[p]="";y.19=M.2G?\'1o\':(72!=\'1o\'?72:\'2B\');y.2U=fR;2f.6d=S;if(k.fQ(M.21))M.21.1D(2f)}P{D n=t-q.9O;D 8w=n/M.1m;24(p in 2j){if(2g 2j[p][1]==\'8T\'){y[p]=\'6Y(\'+T(k.G[M.G](8w,n,2j[p][0].r,(2j[p][1].r-2j[p][0].r),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].g,(2j[p][1].g-2j[p][0].g),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].b,(2j[p][1].b-2j[p][0].b),M.1m))+\')\'}P{D bz=k.G[M.G](8w,n,2j[p][0],(2j[p][1]-2j[p][0]),M.1m);if(p=="1G")k.1p(y,"1G",bz);P y[p]=bz+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}}}};z.2I=6V(u(){z.2D()},13);2f.6d=z},by:u(2f,2D){if(2D)2f.6d.9O-=iO;P{1X.5T(2f.6d.2I);2f.6d=S;k.2H(2f,"fx")}}});k.bl=u(5Z){D 5f={};if(2g 5Z==\'4V\'){5Z=5Z.6c().7C(\';\');24(D i=0;i<5Z.1g;i++){6X=5Z[i].7C(\':\');if(6X.1g==2){5f[k.g6(6X[0].4E(/\\-(\\w)/g,u(m,c){E c.jo()}))]=k.g6(6X[1])}}}E 5f};k.fn.23({g3:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4F\',G)})},gb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4r\',G)})},jl:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fJ\',G)})},jk:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'O\',G)})},jg:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'2L\',G)})},jf:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fh\',G)})}});k.fx.61=u(e,H,J,2S,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.1N=k.1a.2o(e);z.G=2g J==\'4V\'?J:G||S;if(!e.4s)e.4s=z.el.B(\'19\');if(2S==\'fJ\'){2S=z.el.B(\'19\')==\'1o\'?\'4r\':\'4F\'}P if(2S==\'fh\'){2S=z.el.B(\'19\')==\'1o\'?\'2L\':\'O\'}z.el.1Y();z.H=H;z.J=2g J==\'u\'?J:S;z.fx=k.fx.9P(e);z.2S=2S;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.2S==\'4r\'||z.2S==\'2L\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(z.fx.V.1q.hb,0);1r;1e\'4r\':z.fx.3p.B(\'W\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(0,z.fx.V.1q.hb);1r;1e\'O\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(z.fx.V.1q.1C,0);1r;1e\'2L\':z.fx.3p.B(\'Z\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(0,z.fx.V.1q.1C);1r}};k.fn.ji=u(5D,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.f4(q,5D,J);e.bp()})};k.fx.f4=u(e,5D,J){D z=q;z.el=k(e);z.el.1Y();z.J=J;z.5D=T(5D)||40;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.3V=5;z.5y=1;z.bp=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:jj,21:u(){z.e=12 k.fx(z.el.K(0),{1m:80,21:u(){z.5D=T(z.5D/2);if(z.5y<=z.3V)z.bp();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'Q\');z.e.1L(z.V.Q-z.5D,z.V.Q)}},\'Q\');z.e.1L(z.V.Q,z.V.Q-z.5D)}};k.fn.23({jy:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'4l\',G)})},jz:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'in\',G)})},jA:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'3R\',G)})},jB:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'4l\',G)})},jx:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'in\',G)})},jw:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'3R\',G)})},js:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'4l\',G)})},jt:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'in\',G)})},ju:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'3R\',G)})},jv:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'4l\',G)})},je:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'in\',G)})},jd:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'3R\',G)})}});k.fx.4f=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(!e.4s)e.4s=z.el.B(\'19\');if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}z.el.1Y();if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.1u=1u;J=2g J==\'u\'?J:S;8H=1;3m(2S){1e\'4F\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;8H=-1;1r;1e\'4r\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;1r;1e\'2L\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;1r;1e\'O\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;8H=-1;1r}z.e2=12 k.fx(z.el.K(0),k.H(H,z.G,u(){z.el.B(z.V);if(z.1u==\'4l\'){z.el.B(\'19\',\'1o\')}P z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s);k.2H(z.el.K(0),\'1n\')}),\'1G\');if(1u==\'in\'){z.e.1L(z.62+2a*8H,z.62);z.e2.1L(0,1)}P{z.e.1L(z.62,z.62+2a*8H);z.e2.1L(1,0)}};k.fn.23({j0:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'fp\',G)})},iW:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'9M\',G)})},iV:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'3R\',G)})}});k.fx.9L=u(e,H,W,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'9M\':\'fp\'}z.H=H;z.W=W&&W.1K==bn?W:20;z.fx=k.fx.9P(e);z.1u=1u;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.1u==\'9M\'){z.el.1Y()}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};if(z.1u==\'9M\'){z.el.1Y();z.fx.3p.B(\'W\',z.W+\'U\').B(\'Z\',\'9R\');z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');z.ef.1L(z.W,z.fx.V.1q.hb)}),\'Z\');z.ef.1L(0,z.fx.V.1q.1C)}P{z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');z.ef.1L(z.fx.V.1q.1C,0)}),\'W\');z.ef.1L(z.fx.V.1q.hb,z.W)}};k.fn.iR=u(H,4x,J,G){E q.1w(\'fv\',u(){q.6W=k(q).1p("14")||\'\';G=2g J==\'4V\'?J:G||S;J=2g J==\'u\'?J:S;D 9S=k(q).B(\'7i\');D 8I=q.31;7d(9S==\'cu\'&&8I){9S=k(8I).B(\'7i\');8I=8I.31}k(q).B(\'7i\',4x);if(2g q.6W==\'8T\')q.6W=q.6W["9X"];k(q).5w({\'7i\':9S},H,G,u(){k.2H(q,\'fv\');if(2g k(q).1p("14")==\'8T\'){k(q).1p("14")["9X"]="";k(q).1p("14")["9X"]=q.6W}P{k(q).1p("14",q.6W)}if(J)J.1D(q)})})};k.fn.23({iT:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6g\',G)})},iU:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)})},j1:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)}})},j2:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'49\',\'6g\',G)}})},j9:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)})},ja:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)})}});k.fx.5m=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;D 73=I;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1u=1u;z.H=H;z.2i=k.1a.2o(e);z.V={};z.V.Y=z.el.B(\'Y\');z.V.19=z.el.B(\'19\');if(z.V.19==\'1o\'){5Y=z.el.B(\'3n\');z.el.1Y();73=1b}z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(73){z.el.2G();z.el.B(\'3n\',5Y)}z.V.Z=z.2i.w+\'U\';z.V.W=z.2i.h+\'U\';z.V.2U=z.el.B(\'2U\');z.2i.Q=T(z.V.Q)||0;z.2i.O=T(z.V.O)||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\').B(\'W\',1u==\'6Z\'&&2S==\'49\'?1:z.2i.h+\'U\').B(\'Z\',1u==\'6Z\'&&2S==\'4j\'?1:z.2i.w+\'U\');z.21=u(){z.el.B(z.V);if(z.1u==\'6g\')z.el.2G();P z.el.1Y();k.2H(z.el.K(0),\'1n\')};3m(2S){1e\'49\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'W\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'6g\'){z.eh.1L(z.2i.h,0);z.et.1L(z.2i.Q,z.2i.Q+z.2i.h/2)}P{z.eh.1L(0,z.2i.h);z.et.1L(z.2i.Q+z.2i.h/2,z.2i.Q)}1r;1e\'4j\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Z\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'6g\'){z.eh.1L(z.2i.w,0);z.et.1L(z.2i.O,z.2i.O+z.2i.w/2)}P{z.eh.1L(0,z.2i.w);z.et.1L(z.2i.O+z.2i.w/2,z.2i.O)}1r}};k.fn.bg=u(H,3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D fx=12 k.fx.bg(q,H,3V,J);fx.bf()})};k.fx.bg=u(el,H,3V,J){D z=q;z.3V=3V;z.5y=1;z.el=el;z.H=H;z.J=J;k(z.el).1Y();z.bf=u(){z.5y++;z.e=12 k.fx(z.el,k.H(z.H,u(){z.ef=12 k.fx(z.el,k.H(z.H,u(){if(z.5y<=z.3V)z.bf();P{k.2H(z.el,\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el)}}}),\'1G\');z.ef.1L(0,1)}),\'1G\');z.e.1L(1,0)}};k.fn.23({jb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,1,2a,1b,J,\'fa\',G)})},jc:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,2a,1,1b,J,\'b4\',G)})},j8:u(H,J,G){E q.1w(\'1n\',u(){D G=G||\'fl\';12 k.fx.6G(q,H,2a,f8,1b,J,\'6h\',G)})},6G:u(H,57,30,6H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,57,30,6H,J,\'6G\',G)})}});k.fx.6G=u(e,H,57,30,6H,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.57=T(57)||2a;z.30=T(30)||2a;z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1m=k.H(H).1m;z.6H=6H||S;z.2i=k.1a.2o(e);z.V={Z:z.el.B(\'Z\'),W:z.el.B(\'W\'),4A:z.el.B(\'4A\')||\'2a%\',Y:z.el.B(\'Y\'),19:z.el.B(\'19\'),Q:z.el.B(\'Q\'),O:z.el.B(\'O\'),2U:z.el.B(\'2U\'),4S:z.el.B(\'4S\'),5O:z.el.B(\'5O\'),5Q:z.el.B(\'5Q\'),5b:z.el.B(\'5b\'),5M:z.el.B(\'5M\'),5U:z.el.B(\'5U\'),5n:z.el.B(\'5n\'),4X:z.el.B(\'4X\')};z.Z=T(z.V.Z)||e.4c||0;z.W=T(z.V.W)||e.5W||0;z.Q=T(z.V.Q)||0;z.O=T(z.V.O)||0;1q=[\'em\',\'U\',\'j7\',\'%\'];24(i in 1q){if(z.V.4A.3J(1q[i])>0){z.fg=1q[i];z.4A=2m(z.V.4A)}if(z.V.4S.3J(1q[i])>0){z.fc=1q[i];z.bw=2m(z.V.4S)||0}if(z.V.5O.3J(1q[i])>0){z.fe=1q[i];z.bc=2m(z.V.5O)||0}if(z.V.5Q.3J(1q[i])>0){z.fL=1q[i];z.bA=2m(z.V.5Q)||0}if(z.V.5b.3J(1q[i])>0){z.g8=1q[i];z.bt=2m(z.V.5b)||0}if(z.V.5M.3J(1q[i])>0){z.g4=1q[i];z.bx=2m(z.V.5M)||0}if(z.V.5U.3J(1q[i])>0){z.g9=1q[i];z.bv=2m(z.V.5U)||0}if(z.V.5n.3J(1q[i])>0){z.gc=1q[i];z.bj=2m(z.V.5n)||0}if(z.V.4X.3J(1q[i])>0){z.fK=1q[i];z.b7=2m(z.V.4X)||0}}if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\');z.1u=1u;3m(z.1u){1e\'fa\':z.4b=z.Q+z.2i.h/2;z.5a=z.Q;z.4k=z.O+z.2i.w/2;z.59=z.O;1r;1e\'b4\':z.5a=z.Q+z.2i.h/2;z.4b=z.Q;z.59=z.O+z.2i.w/2;z.4k=z.O;1r;1e\'6h\':z.5a=z.Q-z.2i.h/4;z.4b=z.Q;z.59=z.O-z.2i.w/4;z.4k=z.O;1r}z.be=I;z.t=(12 7g).7z();z.4w=u(){5T(z.2I);z.2I=S};z.2D=u(){if(z.be==I){z.el.1Y();z.be=1b}D t=(12 7g).7z();D n=t-z.t;D p=n/z.1m;if(t>=z.1m+z.t){9T(u(){o=1;if(z.1u){t=z.5a;l=z.59;if(z.1u==\'6h\')o=0}z.bs(z.30,l,t,1b,o)},13);z.4w()}P{o=1;if(!k.G||!k.G[z.G]){s=((-18.5H(p*18.2Q)/2)+0.5)*(z.30-z.57)+z.57}P{s=k.G[z.G](p,n,z.57,(z.30-z.57),z.1m)}if(z.1u){if(!k.G||!k.G[z.G]){t=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b;l=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k;if(z.1u==\'6h\')o=((-18.5H(p*18.2Q)/2)+0.5)*(-0.9Y)+0.9Y}P{t=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.1m);l=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.1m);if(z.1u==\'6h\')o=k.G[z.G](p,n,0.9Y,-0.9Y,z.1m)}}z.bs(s,l,t,I,o)}};z.2I=6V(u(){z.2D()},13);z.bs=u(4q,O,Q,fM,1G){z.el.B(\'W\',z.W*4q/2a+\'U\').B(\'Z\',z.Z*4q/2a+\'U\').B(\'O\',O+\'U\').B(\'Q\',Q+\'U\').B(\'4A\',z.4A*4q/2a+z.fg);if(z.bw)z.el.B(\'4S\',z.bw*4q/2a+z.fc);if(z.bc)z.el.B(\'5O\',z.bc*4q/2a+z.fe);if(z.bA)z.el.B(\'5Q\',z.bA*4q/2a+z.fL);if(z.bt)z.el.B(\'5b\',z.bt*4q/2a+z.g8);if(z.bx)z.el.B(\'5M\',z.bx*4q/2a+z.g4);if(z.bv)z.el.B(\'5U\',z.bv*4q/2a+z.g9);if(z.bj)z.el.B(\'5n\',z.bj*4q/2a+z.gc);if(z.b7)z.el.B(\'4X\',z.b7*4q/2a+z.fK);if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+1G*2a+")";z.el.K(0).14.1G=1G}if(fM){if(z.6H){z.el.B(z.V)}if(z.1u==\'b4\'||z.1u==\'6h\'){z.el.B(\'19\',\'1o\');if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+2a+")";z.el.K(0).14.1G=1}}P z.el.B(\'19\',\'2B\');if(z.J)z.J.1D(z.el.K(0));k.2H(z.el.K(0),\'1n\')}}};k.fn.23({9U:u(H,1O,G){o=k.H(H);E q.1w(\'1n\',u(){12 k.fx.9U(q,o,1O,G)})},j6:u(H,1O,G){E q.1E(u(){k(\'a[@3h*="#"]\',q).5h(u(e){fW=q.3h.7C(\'#\');k(\'#\'+fW[1]).9U(H,1O,G);E I})})}});k.fx.9U=u(e,o,1O,G){D z=q;z.o=o;z.e=e;z.1O=/fT|gd/.48(1O)?1O:I;z.G=G;p=k.1a.3w(e);s=k.1a.6z();z.4w=u(){5T(z.2I);z.2I=S;k.2H(z.e,\'1n\')};z.t=(12 7g).7z();s.h=s.h>s.ih?(s.h-s.ih):s.h;s.w=s.w>s.iw?(s.w-s.iw):s.w;z.5a=p.y>s.h?s.h:p.y;z.59=p.x>s.w?s.w:p.x;z.4b=s.t;z.4k=s.l;z.2D=u(){D t=(12 7g).7z();D n=t-z.t;D p=n/z.o.1m;if(t>=z.o.1m+z.t){z.4w();9T(u(){z.d3(z.5a,z.59)},13)}P{if(!z.1O||z.1O==\'fT\'){if(!k.G||!k.G[z.G]){9V=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b}P{9V=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.o.1m)}}P{9V=z.4b}if(!z.1O||z.1O==\'gd\'){if(!k.G||!k.G[z.G]){9W=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k}P{9W=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.o.1m)}}P{9W=z.4k}z.d3(9V,9W)}};z.d3=u(t,l){1X.j4(l,t)};z.2I=6V(u(){z.2D()},13)};k.fn.cY=u(3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.cY(q,3V,J);e.cG()})};k.fx.cY=u(e,3V,J){D z=q;z.el=k(e);z.el.1Y();z.3V=T(3V)||3;z.J=J;z.5y=1;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.cG=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(e,{1m:60,21:u(){if(z.5y<=z.3V)z.cG();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'O\');z.e.1L(z.V.O-20,z.V.O)}},\'O\');z.e.1L(z.V.O+20,z.V.O-20)}},\'O\');z.e.1L(z.V.O,z.V.O+20)}};k.fn.23({fo:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'in\',G)})},fq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'4l\',G)})},iY:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'3R\',G)})},iX:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'in\',G)})},jr:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'4l\',G)})},jq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'3R\',G)})},jp:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'in\',G)})},jn:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'4l\',G)})},jm:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'3R\',G)})},iP:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'in\',G)})},ic:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'4l\',G)})},ib:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'3R\',G)})}});k.fx.1z=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}if(!e.4s)e.4s=z.el.B(\'19\');z.el.1Y();z.H=H;z.fx=k.fx.9P(e);z.1u=1u;z.2S=2S;z.21=u(){if(z.1u==\'4l\')z.el.B(\'3n\',\'2K\');k.fx.a0(z.fx.3p.K(0),z.fx.V);if(z.1u==\'in\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.B(\'19\',\'1o\');z.el.B(\'3n\',\'dd\')}if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'W\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.hb,0);z.7v.1L(0,z.fx.V.1q.hb)}P{z.ef.1L(0,-z.fx.V.1q.hb);z.7v.1L(z.fx.V.1q.hb,0)}1r;1e\'4r\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.hb,0)}P{z.ef.1L(0,z.fx.V.1q.hb)}1r;1e\'O\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'Z\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.1C,0);z.7v.1L(0,z.fx.V.1q.1C)}P{z.ef.1L(0,-z.fx.V.1q.1C);z.7v.1L(z.fx.V.1q.1C,0)}1r;1e\'2L\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.1C,0)}P{z.ef.1L(0,z.fx.V.1q.1C)}1r}};k.3f=S;k.fn.ig=u(o){E q.1w(\'1n\',u(){12 k.fx.dG(q,o)})};k.fx.dG=u(e,o){if(k.3f==S){k(\'2e\',1h).1S(\'<22 id="3f">\');k.3f=k(\'#3f\')}k.3f.B(\'19\',\'2B\').B(\'Y\',\'1P\');D z=q;z.el=k(e);if(!o||!o.30){E}if(o.30.1K==b0&&1h.9e(o.30)){o.30=1h.9e(o.30)}P if(!o.30.dq){E}if(!o.1m){o.1m=g5}z.1m=o.1m;z.30=o.30;z.8r=o.3l;z.21=o.21;if(z.8r){k.3f.2R(z.8r)}z.a3=0;z.a2=0;if(k.dF){z.a3=(T(k.3f.B(\'5b\'))||0)+(T(k.3f.B(\'5O\'))||0)+(T(k.3f.B(\'4X\'))||0)+(T(k.3f.B(\'5U\'))||0);z.a2=(T(k.3f.B(\'4S\'))||0)+(T(k.3f.B(\'5Q\'))||0)+(T(k.3f.B(\'5M\'))||0)+(T(k.3f.B(\'5n\'))||0)}z.26=k.23(k.1a.3w(z.el.K(0)),k.1a.2o(z.el.K(0)));z.2T=k.23(k.1a.3w(z.30),k.1a.2o(z.30));z.26.1C-=z.a3;z.26.hb-=z.a2;z.2T.1C-=z.a3;z.2T.hb-=z.a2;z.J=o.21;k.3f.B(\'Z\',z.26.1C+\'U\').B(\'W\',z.26.hb+\'U\').B(\'Q\',z.26.y+\'U\').B(\'O\',z.26.x+\'U\').5w({Q:z.2T.y,O:z.2T.x,Z:z.2T.1C,W:z.2T.hb},z.1m,u(){if(z.8r)k.3f.4i(z.8r);k.3f.B(\'19\',\'1o\');if(z.21&&z.21.1K==2A){z.21.1D(z.el.K(0),[z.30])}k.2H(z.el.K(0),\'1n\')})};k.1v={M:{2E:10,ec:\'1Q/iJ.eZ\',e3:\'<1T 2J="1Q/6g.da" />\',eW:0.8,d8:\'iN a6\',dc:\'57\',3W:8J},jQ:I,jW:I,6j:S,8m:I,8k:I,d1:u(2k){if(!k.1v.8k||k.1v.8m)E;D 3K=2k.7L||2k.7K||-1;3m(3K){1e 35:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jJ\').K(0));1r;1e 36:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jL\').K(0));1r;1e 37:1e 8:1e 33:1e 80:1e kb:D 9p=k(\'#87\');if(9p.K(0).53!=S){9p.K(0).53.1D(9p.K(0))}1r;1e 38:1r;1e 39:1e 34:1e 32:1e gl:1e 78:D 9k=k(\'#88\');if(9k.K(0).53!=S){9k.K(0).53.1D(9k.K(0))}1r;1e 40:1r;1e 27:k.1v.au();1r}},7q:u(M){if(M)k.23(k.1v.M,M);if(1X.2k){k(\'2e\',1h).1J(\'6y\',k.1v.d1)}P{k(1h).1J(\'6y\',k.1v.d1)}k(\'a\').1E(u(){el=k(q);en=el.1p(\'4I\')||\'\';e9=el.1p(\'3h\')||\'\';ev=/\\.da|\\.gw|\\.8X|\\.eZ|\\.gn/g;if(e9.6c().d5(ev)!=S&&en.6c().3J(\'eU\')==0){el.1J(\'5h\',k.1v.26)}});if(k.3a.4t){3A=1h.3F(\'3A\');k(3A).1p({id:\'cN\',2J:\'ek:I;\',ej:\'cD\',ep:\'cD\'}).B({19:\'1o\',Y:\'1P\',Q:\'0\',O:\'0\',5E:\'9n:9w.9y.cC(1G=0)\'});k(\'2e\').1S(3A)}8n=1h.3F(\'22\');k(8n).1p(\'id\',\'cP\').B({Y:\'1P\',19:\'1o\',Q:\'0\',O:\'0\',1G:0}).1S(1h.8M(\' \')).1J(\'5h\',k.1v.au);6A=1h.3F(\'22\');k(6A).1p(\'id\',\'eK\').B({4X:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cE=1h.3F(\'22\');k(cE).1p(\'id\',\'dg\').B({4X:k.1v.M.2E+\'U\',5n:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cF=1h.3F(\'a\');k(cF).1p({id:\'gg\',3h:\'#\'}).B({Y:\'1P\',2L:k.1v.M.2E+\'U\',Q:\'0\'}).1S(k.1v.M.e3).1J(\'5h\',k.1v.au);7m=1h.3F(\'22\');k(7m).1p(\'id\',\'cM\').B({Y:\'2s\',cA:\'O\',6w:\'0 9F\',3I:1}).1S(6A).1S(cE).1S(cF);2b=1h.3F(\'1T\');2b.2J=k.1v.M.ec;k(2b).1p(\'id\',\'eM\').B({Y:\'1P\'});4G=1h.3F(\'a\');k(4G).1p({id:\'87\',3h:\'#\'}).B({Y:\'1P\',19:\'1o\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));4M=1h.3F(\'a\');k(4M).1p({id:\'88\',3h:\'#\'}).B({Y:\'1P\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));1Z=1h.3F(\'22\');k(1Z).1p(\'id\',\'eE\').B({19:\'1o\',Y:\'2s\',2U:\'2K\',cA:\'O\',6w:\'0 9F\',Q:\'0\',O:\'0\',3I:2}).1S([2b,4G,4M]);6F=1h.3F(\'22\');k(6F).1p(\'id\',\'ao\').B({19:\'1o\',Y:\'1P\',2U:\'2K\',Q:\'0\',O:\'0\',cA:\'cv\',7i:\'cu\',hC:\'0\'}).1S([1Z,7m]);k(\'2e\').1S(8n).1S(6F)},26:u(e,C){el=C?k(C):k(q);9t=el.1p(\'4I\');D 6B,4u,4G,4M;if(9t!=\'eU\'){k.1v.6j=9t;8Y=k(\'a[@4I=\'+9t+\']\');6B=8Y.1N();4u=8Y.cZ(C?C:q);4G=8Y.K(4u-1);4M=8Y.K(4u+1)}89=el.1p(\'3h\');6A=el.1p(\'4g\');3O=k.1a.6z();8n=k(\'#cP\');if(!k.1v.8k){k.1v.8k=1b;if(k.3a.4t){k(\'#cN\').B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y()}8n.B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y().fX(cO,k.1v.M.eW,u(){k.1v.cw(89,6A,3O,6B,4u,4G,4M)});k(\'#ao\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\')}P{k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.cw(89,6A,3O,6B,4u,4G,4M)}E I},cw:u(89,gP,3O,6B,4u,4G,4M){k(\'#cW\').bk();aX=k(\'#87\');aX.2G();aO=k(\'#88\');aO.2G();2b=k(\'#eM\');1Z=k(\'#eE\');6F=k(\'#ao\');7m=k(\'#cM\').B(\'3n\',\'2K\');k(\'#eK\').3x(6A);k.1v.8m=1b;if(6B)k(\'#dg\').3x(k.1v.M.d8+\' \'+(4u+1)+\' \'+k.1v.M.dc+\' \'+6B);if(4G){aX.K(0).53=u(){q.5B();k.1v.26(S,4G);E I}}if(4M){aO.K(0).53=u(){q.5B();k.1v.26(S,4M);E I}}2b.1Y();82=k.1a.2o(1Z.K(0));56=18.3r(82.1C,2b.K(0).Z+k.1v.M.2E*2);6f=18.3r(82.hb,2b.K(0).W+k.1v.M.2E*2);2b.B({O:(56-2b.K(0).Z)/2+\'U\',Q:(6f-2b.K(0).W)/2+\'U\'});1Z.B({Z:56+\'U\',W:6f+\'U\'}).1Y();dw=k.1a.bm();6F.B(\'Q\',3O.t+(dw.h/15)+\'U\');if(6F.B(\'19\')==\'1o\'){6F.1Y().7f(k.1v.M.3W)}6k=12 9s;k(6k).1p(\'id\',\'cW\').1J(\'hJ\',u(){56=6k.Z+k.1v.M.2E*2;6f=6k.W+k.1v.M.2E*2;2b.2G();1Z.5w({W:6f},82.hb!=6f?k.1v.M.3W:1,u(){1Z.5w({Z:56},82.1C!=56?k.1v.M.3W:1,u(){1Z.bG(6k);k(6k).B({Y:\'1P\',O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\'}).7f(k.1v.M.3W,u(){db=k.1a.2o(7m.K(0));if(4G){aX.B({O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}if(4M){aO.B({O:56/2+k.1v.M.2E*2+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}7m.B({Z:56+\'U\',Q:-db.hb+\'U\',3n:\'dd\'}).5w({Q:-1},k.1v.M.3W,u(){k.1v.8m=I})})})})});6k.2J=89},au:u(){k(\'#cW\').bk();k(\'#ao\').2G();k(\'#cM\').B(\'3n\',\'2K\');k(\'#cP\').fX(cO,0,u(){k(q).2G();if(k.3a.4t){k(\'#cN\').2G()}});k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.6j=S;k.1v.8k=I;k.1v.8m=I;E I}};k.R={1A:S,41:S,F:S,1s:S,1q:S,Y:S,9a:u(e){k.R.F=(q.d0)?q.d0:q;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(k.R.F).B(\'Z\'))||0,W:T(k(k.R.F).B(\'W\'))||0};k.R.Y={Q:T(k(k.R.F).B(\'Q\'))||0,O:T(k(k.R.F).B(\'O\'))||0};k(1h).1J(\'3D\',k.R.cR).1J(\'5P\',k.R.cK);if(2g k.R.F.1k.g2===\'u\'){k.R.F.1k.g2.1D(k.R.F)}E I},cK:u(e){k(1h).3q(\'3D\',k.R.cR).3q(\'5P\',k.R.cK);if(2g k.R.F.1k.fN===\'u\'){k.R.F.1k.fN.1D(k.R.F)}k.R.F=S},cR:u(e){if(!k.R.F){E}1s=k.1a.4a(e);7p=k.R.Y.Q-k.R.1s.y+1s.y;7r=k.R.Y.O-k.R.1s.x+1s.x;7p=18.3r(18.3L(7p,k.R.F.1k.8g-k.R.1q.W),k.R.F.1k.7h);7r=18.3r(18.3L(7r,k.R.F.1k.8h-k.R.1q.Z),k.R.F.1k.70);if(2g k.R.F.1k.4m===\'u\'){D 8a=k.R.F.1k.4m.1D(k.R.F,[7r,7p]);if(2g 8a==\'hh\'&&8a.1g==2){7r=8a[0];7p=8a[1]}}k.R.F.14.Q=7p+\'U\';k.R.F.14.O=7r+\'U\';E I},26:u(e){k(1h).1J(\'3D\',k.R.8j).1J(\'5P\',k.R.8o);k.R.1A=q.1A;k.R.41=q.41;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(q.1A).B(\'Z\'))||0,W:T(k(q.1A).B(\'W\'))||0};k.R.Y={Q:T(k(q.1A).B(\'Q\'))||0,O:T(k(q.1A).B(\'O\'))||0};if(k.R.1A.1k.4o){k.R.1A.1k.4o.1D(k.R.1A,[q])}E I},8o:u(){k(1h).3q(\'3D\',k.R.8j).3q(\'5P\',k.R.8o);if(k.R.1A.1k.3T){k.R.1A.1k.3T.1D(k.R.1A,[k.R.41])}k.R.1A=S;k.R.41=S},6i:u(dx,az){E 18.3L(18.3r(k.R.1q.Z+dx*az,k.R.1A.1k.av),k.R.1A.1k.6x)},6m:u(dy,az){E 18.3L(18.3r(k.R.1q.W+dy*az,k.R.1A.1k.8c),k.R.1A.1k.8b)},fb:u(W){E 18.3L(18.3r(W,k.R.1A.1k.8c),k.R.1A.1k.8b)},8j:u(e){if(k.R.1A==S){E}1s=k.1a.4a(e);dx=1s.x-k.R.1s.x;dy=1s.y-k.R.1s.y;1I={Z:k.R.1q.Z,W:k.R.1q.W};2z={Q:k.R.Y.Q,O:k.R.Y.O};3m(k.R.41){1e\'e\':1I.Z=k.R.6i(dx,1);1r;1e\'fj\':1I.Z=k.R.6i(dx,1);1I.W=k.R.6m(dy,1);1r;1e\'w\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'5F\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1I.W=k.R.6m(dy,1);1r;1e\'76\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'n\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1r;1e\'at\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,1);1r;1e\'s\':1I.W=k.R.6m(dy,1);1r}if(k.R.1A.1k.4v){if(k.R.41==\'n\'||k.R.41==\'s\')4p=1I.W*k.R.1A.1k.4v;P 4p=1I.Z;4W=k.R.fb(4p*k.R.1A.1k.4v);4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.W=4W;1I.Z=4p}if(2z.Qk.R.1A.1k.8g){1I.W=k.R.1A.1k.8g-2z.Q;if(k.R.1A.1k.4v){1I.Z=1I.W/k.R.1A.1k.4v}}if(2z.O+1I.Z>k.R.1A.1k.8h){1I.Z=k.R.1A.1k.8h-2z.O;if(k.R.1A.1k.4v){1I.W=1I.Z*k.R.1A.1k.4v}}D 6p=I;if(k.R.1A.1k.f7){6p=k.R.1A.1k.f7.1D(k.R.1A,[1I,2z]);if(6p){if(6p.1q){k.23(1I,6p.1q)}if(6p.Y){k.23(2z,6p.Y)}}}8d=k.R.1A.14;8d.O=2z.O+\'U\';8d.Q=2z.Q+\'U\';8d.Z=1I.Z+\'U\';8d.W=1I.W+\'U\';E I},2r:u(M){if(!M||!M.3Z||M.3Z.1K!=7M){E}E q.1E(u(){D el=q;el.1k=M;el.1k.av=M.av||10;el.1k.8c=M.8c||10;el.1k.6x=M.6x||6P;el.1k.8b=M.8b||6P;el.1k.7h=M.7h||-aC;el.1k.70=M.70||-aC;el.1k.8h=M.8h||6P;el.1k.8g=M.8g||6P;d6=k(el).B(\'Y\');if(!(d6==\'2s\'||d6==\'1P\')){el.14.Y=\'2s\'}fS=/n|at|e|fj|s|5F|w|76/g;24(i in el.1k.3Z){if(i.6c().d5(fS)!=S){if(el.1k.3Z[i].1K==b0){3v=k(el.1k.3Z[i]);if(3v.1N()>0){el.1k.3Z[i]=3v.K(0)}}if(el.1k.3Z[i].4Y){el.1k.3Z[i].1A=el;el.1k.3Z[i].41=i;k(el.1k.3Z[i]).1J(\'5v\',k.R.26)}}}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){aV=k(el.1k.5S);if(aV.1N()>0){aV.1E(u(){q.d0=el});aV.1J(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).1J(\'5v\',k.R.9a)}}})},4U:u(){E q.1E(u(){D el=q;24(i in el.1k.3Z){el.1k.3Z[i].1A=S;el.1k.3Z[i].41=S;k(el.1k.3Z[i]).3q(\'5v\',k.R.26)}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){3v=k(el.1k.5S);if(3v.1N()>0){3v.3q(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).3q(\'5v\',k.R.9a)}}el.1k=S})}};k.fn.23({hz:k.R.2r,hs:k.R.4U});k.2C=S;k.7n=I;k.3k=S;k.7o=[];k.9v=u(e){D 3K=e.7L||e.7K||-1;if(3K==17||3K==16){k.7n=1b}};k.9u=u(e){k.7n=I};k.dL=u(e){q.f.1s=k.1a.4a(e);q.f.1M=k.23(k.1a.3w(q),k.1a.2o(q));q.f.3e=k.1a.6z(q);q.f.1s.x-=q.f.1M.x;q.f.1s.y-=q.f.1M.y;k(q).1S(k.2C.K(0));if(q.f.hc)k.2C.2R(q.f.hc).B(\'19\',\'2B\');k.2C.B({19:\'2B\',Z:\'2P\',W:\'2P\'});if(q.f.o){k.2C.B(\'1G\',q.f.o)}k.3k=q;k.96=I;k.7o=[];q.f.el.1E(u(){q.1M={x:q.8t+(q.4Z&&!k.3a.7I?T(q.4Z.5b)||0:0)+(k.3k.3c||0),y:q.8G+(q.4Z&&!k.3a.7I?T(q.4Z.4S)||0:0)+(k.3k.3d||0),1C:q.4c,hb:q.5W};if(q.s==1b){if(k.7n==I){q.s=I;k(q).4i(k.3k.f.7j)}P{k.96=1b;k.7o[k.7o.1g]=k.1p(q,\'id\')}}});k.am.1D(q,[e]);k(1h).1J(\'3D\',k.am).1J(\'5P\',k.cX);E I};k.am=u(e){if(!k.3k)E;k.fd.1D(k.3k,[e])};k.fd=u(e){if(!k.3k)E;D 1s=k.1a.4a(e);D 3e=k.1a.6z(k.3k);1s.x+=3e.l-q.f.3e.l-q.f.1M.x;1s.y+=3e.t-q.f.3e.t-q.f.1M.y;D 93=18.3L(1s.x,q.f.1s.x);D 5F=18.3L(18.3S(1s.x-q.f.1s.x),18.3S(q.f.3e.w-93));D 99=18.3L(1s.y,q.f.1s.y);D 9g=18.3L(18.3S(1s.y-q.f.1s.y),18.3S(q.f.3e.h-99));if(q.3d>0&&1s.y-20q.3d+q.f.1M.h){D 3X=18.3L(q.f.3e.h-q.3d,10);q.3d+=3X;if(q.3d!=3e.t)9g+=3X}if(q.3c>0&&1s.x-20q.3c+q.f.1M.w){D 3X=18.3L(q.f.3e.w-q.3c,10);q.3c+=3X;if(q.3c!=3e.l)5F+=3X}k.2C.B({O:93+\'U\',Q:99+\'U\',Z:5F+\'U\',W:9g+\'U\'});k.2C.l=93+q.f.3e.l;k.2C.t=99+q.f.3e.t;k.2C.r=k.2C.l+5F;k.2C.b=k.2C.t+9g;k.96=I;q.f.el.1E(u(){aw=k.7o.3J(k.1p(q,\'id\'));if(!(q.1M.x>k.2C.r||(q.1M.x+q.1M.1C)k.2C.b||(q.1M.y+q.1M.hb)0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[o.1g]=k.1p(q,\'id\')}})}E{7l:h,o:o}};k.fn.gZ=u(o){if(!k.2C){k(\'2e\',1h).1S(\'<22 id="2C">\').1J(\'7B\',k.9v).1J(\'6y\',k.9u);k.2C=k(\'#2C\');k.2C.B({Y:\'1P\',19:\'1o\'});if(1X.2k){k(\'2e\',1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}P{k(1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}}if(!o){o={}}E q.1E(u(){if(q.eP)E;q.eP=1b;q.f={a:o.3C,o:o.1G?2m(o.1G):I,7j:o.eS?o.eS:I,hc:o.58?o.58:I,98:o.98?o.98:I,9d:o.9d?o.9d:I};q.f.el=k(\'.\'+o.3C);k(q).1J(\'5v\',k.dL).B(\'Y\',\'2s\')})};k.3b={bM:1,eH:u(3t){D 3t=3t;E q.1E(u(){q.4z.6s.1E(u(ab){k.3b.5c(q,3t[ab])})})},K:u(){D 3t=[];q.1E(u(cL){if(q.bI){3t[cL]=[];D C=q;D 1q=k.1a.2o(q);q.4z.6s.1E(u(ab){D x=q.8t;D y=q.8G;92=T(x*2a/(1q.w-q.4c));91=T(y*2a/(1q.h-q.5W));3t[cL][ab]=[92||0,91||0,x||0,y||0]})}});E 3t},ct:u(C){C.A.fu=C.A.28.w-C.A.1B.1C;C.A.fw=C.A.28.h-C.A.1B.hb;if(C.9r.4z.bC){9Z=C.9r.4z.6s.K(C.bF+1);if(9Z){C.A.28.w=(T(k(9Z).B(\'O\'))||0)+C.A.1B.1C;C.A.28.h=(T(k(9Z).B(\'Q\'))||0)+C.A.1B.hb}9Q=C.9r.4z.6s.K(C.bF-1);if(9Q){D cU=T(k(9Q).B(\'O\'))||0;D cH=T(k(9Q).B(\'O\'))||0;C.A.28.x+=cU;C.A.28.y+=cH;C.A.28.w-=cU;C.A.28.h-=cH}}C.A.g7=C.A.28.w-C.A.1B.1C;C.A.eC=C.A.28.h-C.A.1B.hb;if(C.A.2O){C.A.gx=((C.A.28.w-C.A.1B.1C)/C.A.2O)||1;C.A.gy=((C.A.28.h-C.A.1B.hb)/C.A.2O)||1;C.A.fU=C.A.g7/C.A.2O;C.A.fH=C.A.eC/C.A.2O}C.A.28.dx=C.A.28.x-C.A.2c.x;C.A.28.dy=C.A.28.y-C.A.2c.y;k.11.1c.B(\'9b\',\'ad\')},3H:u(C,x,y){if(C.A.2O){fE=T(x/C.A.fU);92=fE*2a/C.A.2O;ft=T(y/C.A.fH);91=ft*2a/C.A.2O}P{92=T(x*2a/C.A.fu);91=T(y*2a/C.A.fw)}C.A.b3=[92||0,91||0,x||0,y||0];if(C.A.3H)C.A.3H.1D(C,C.A.b3)},eI:u(2k){3K=2k.7L||2k.7K||-1;3m(3K){1e 35:k.3b.5c(q.3U,[ae,ae]);1r;1e 36:k.3b.5c(q.3U,[-ae,-ae]);1r;1e 37:k.3b.5c(q.3U,[-q.3U.A.gx||-1,0]);1r;1e 38:k.3b.5c(q.3U,[0,-q.3U.A.gy||-1]);1r;1e 39:k.3b.5c(q.3U,[q.3U.A.gx||1,0]);1r;1e 40:k.11.5c(q.3U,[0,q.3U.A.gy||1]);1r}},5c:u(C,Y){if(!C.A){E}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.4n=k.B(C,\'Y\');if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){C.14.Y=\'2s\'}k.11.c5(C);k.3b.ct(C);dx=T(Y[0])||0;dy=T(Y[1])||0;2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.2O){3y=k.11.c7.1D(C,[2v,2q,dx,dy]);if(3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy}3y=k.11.ce.1D(C,[2v,2q,dx,dy]);if(3y&&3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.5i&&(C.A.3H||C.A.2Z)){k.3b.3H(C,2v,2q)}2v=!C.A.1O||C.A.1O==\'4j\'?2v:C.A.2c.x||0;2q=!C.A.1O||C.A.1O==\'49\'?2q:C.A.2c.y||0;C.14.O=2v+\'U\';C.14.Q=2q+\'U\'},2r:u(o){E q.1E(u(){if(q.bI==1b||!o.3C||!k.1a||!k.11||!k.1x){E}5x=k(o.3C,q);if(5x.1N()==0){E}D 4N={2p:\'94\',5i:1b,3H:o.3H&&o.3H.1K==2A?o.3H:S,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:S,3v:q,1G:o.1G||I};if(o.2O&&T(o.2O)){4N.2O=T(o.2O)||1;4N.2O=4N.2O>0?4N.2O:1}if(5x.1N()==1)5x.7t(4N);P{k(5x.K(0)).7t(4N);4N.3v=S;5x.7t(4N)}5x.7B(k.3b.eI);5x.1p(\'bM\',k.3b.bM++);q.bI=1b;q.4z={};q.4z.er=4N.er;q.4z.2O=4N.2O;q.4z.6s=5x;q.4z.bC=o.bC?1b:I;bZ=q;bZ.4z.6s.1E(u(2N){q.bF=2N;q.9r=bZ});if(o.3t&&o.3t.1K==7F){24(i=o.3t.1g-1;i>=0;i--){if(o.3t[i].1K==7F&&o.3t[i].1g==2){el=q.4z.6s.K(i);if(el.4Y){k.3b.5c(el,o.3t[i])}}}}})}};k.fn.23({hN:k.3b.2r,hS:k.3b.eH,hG:k.3b.K});k.2u={5I:[],eg:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},dp:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u-1;1Q=k(\'1T\',X.L.5u);if(1z<1){1z=X.L.1Q.1g}X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},2I:u(c){X=1h.9e(c);if(X.L.6o){1z=X.L.3u;7d(1z==X.L.3u){1z=1+T(18.6o()*X.L.1Q.1g)}}P{1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},go:u(o){D X;if(o&&o.1K==7M){if(o.2b){X=1h.9e(o.2b.X);5N=1X.hn.3h.7C("#");o.2b.6S=S;if(5N.1g==2){1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}P{1z=1}}if(o.90){o.90.5B();X=o.90.31.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}5N=o.90.3h.7C("#");1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}if(X.L.1Q.1g<1z||1z<1){1z=1}X.L.3u=1z;52=k.1a.2o(X);dt=k.1a.aT(X);d9=k.1a.6U(X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}if(X.L.2b){y=T(dt.t)+T(d9.t);if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}if(!X.L.c1){X.L.df=o.2b?o.2b.W:(T(X.L.2b.B(\'W\'))||0);X.L.c1=o.2b?o.2b.Z:(T(X.L.2b.B(\'Z\'))||0)}X.L.2b.B(\'Q\',y+(52.h-X.L.df)/2+\'U\');X.L.2b.B(\'O\',(52.1C-X.L.c1)/2+\'U\');X.L.2b.B(\'19\',\'2B\')}1Q=k(\'1T\',X.L.5u);if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}P{aj=k(\'a\',X.L.1U.o).K(1z-1);k(aj).2R(X.L.1U.5R);D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=1z-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[1z-1].6L)}}}},95:u(){X=q.31.31;X.L.5u.B(\'19\',\'1o\');if(X.L.1U.5R){aj=k(\'a\',X.L.1U.o).4i(X.L.1U.5R).K(X.L.3u-1);k(aj).2R(X.L.1U.5R)}D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=X.L.3u-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[X.L.3u-1].6L)}},19:u(){X=1h.9e(q.X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}52=k.1a.2o(X);y=0;if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}hg=k(\'.ca\',X);y=y+(52.h-q.W)/2;x=(52.1C-q.Z)/2;X.L.5u.B(\'Q\',y+\'U\').B(\'O\',x+\'U\').3x(\'<1T 2J="\'+q.2J+\'" />\');X.L.5u.7f(X.L.3W);3s=X.L.3u+1;if(3s>X.L.1Q.1g){3s=1}3z=X.L.3u-1;if(3z<1){3z=X.L.1Q.1g}X.L.3s.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+2*q.Z/3+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3s-1].6L);X.L.3s.o.K(0).3h=\'#\'+3s+k.1p(X,\'id\');X.L.3z.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3z-1].6L);X.L.3z.o.K(0).3h=\'#\'+3z+k.1p(X,\'id\')},2r:u(o){if(!o||!o.1Z||k.2u.5I[o.1Z])E;D 1Z=k(\'#\'+o.1Z);D el=1Z.K(0);if(el.14.Y!=\'1P\'&&el.14.Y!=\'2s\'){el.14.Y=\'2s\'}el.14.2U=\'2K\';if(1Z.1N()==0)E;el.L={};el.L.1Q=o.1Q?o.1Q:[];el.L.6o=o.6o&&o.6o==1b||I;97=el.f3(\'hL\');24(i=0;i<97.1g;i++){7Z=el.L.1Q.1g;el.L.1Q[7Z]={2J:97[i].2J,6L:97[i].4g||97[i].hD||\'\'}}if(el.L.1Q.1g==0){E}el.L.4n=k.23(k.1a.3w(el),k.1a.2o(el));el.L.b5=k.1a.aT(el);el.L.bu=k.1a.6U(el);t=T(el.L.b5.t)+T(el.L.bu.t);b=T(el.L.b5.b)+T(el.L.bu.b);k(\'1T\',el).bk();el.L.3W=o.3W?o.3W:g5;if(o.5A||o.9f||o.5R){el.L.1U={};1Z.1S(\'<22 6T="g1">\');el.L.1U.o=k(\'.g1\',el);if(o.9f){el.L.1U.9f=o.9f;el.L.1U.o.2R(o.9f)}if(o.5R){el.L.1U.5R=o.5R}el.L.1U.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.5A&&o.5A==\'Q\'){el.L.1U.5A=\'Q\';el.L.1U.o.B(\'Q\',t+\'U\')}P{el.L.1U.5A=\'4D\';el.L.1U.o.B(\'4D\',b+\'U\')}el.L.1U.aE=o.aE?o.aE:\' \';24(D i=0;i\'+7Z+\'
\'+(7Z!=el.L.1Q.1g?el.L.1U.aE:\'\'))}k(\'a\',el.L.1U.o).1J(\'5h\',u(){k.2u.go({90:q})});el.L.1U.4C=k.1a.2o(el.L.1U.o.K(0))}if(o.6Q||o.9c){el.L.2x={};1Z.1S(\'<22 6T="dn">&7k;\');el.L.2x.o=k(\'.dn\',el);if(o.9c){el.L.2x.9c=o.9c;el.L.2x.o.2R(o.9c)}el.L.2x.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.6Q&&o.6Q==\'Q\'){el.L.2x.6Q=\'Q\';el.L.2x.o.B(\'Q\',(el.L.1U&&el.L.1U.5A==\'Q\'?el.L.1U.4C.hb+t:t)+\'U\')}P{el.L.2x.6Q=\'4D\';el.L.2x.o.B(\'4D\',(el.L.1U&&el.L.1U.5A==\'4D\'?el.L.1U.4C.hb+b:b)+\'U\')}el.L.2x.4C=k.1a.2o(el.L.2x.o.K(0))}if(o.9D){el.L.3s={9D:o.9D};1Z.1S(\'&7k;\');el.L.3s.o=k(\'.eY\',el);el.L.3s.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3s.9D);el.L.3s.o.1J(\'5h\',k.2u.eg)}if(o.9o){el.L.3z={9o:o.9o};1Z.1S(\'&7k;\');el.L.3z.o=k(\'.ee\',el);el.L.3z.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3z.9o);el.L.3z.o.1J(\'5h\',k.2u.dp)}1Z.bG(\'<22 6T="ca">\');el.L.5u=k(\'.ca\',el);el.L.5u.B(\'Y\',\'1P\').B(\'Q\',\'2P\').B(\'O\',\'2P\').B(\'19\',\'1o\');if(o.2b){1Z.bG(\'<22 6T="dW" 14="19: 1o;"><1T 2J="\'+o.2b+\'" />\');el.L.2b=k(\'.dW\',el);el.L.2b.B(\'Y\',\'1P\');D 1T=12 9s();1T.X=o.1Z;1T.2J=o.2b;if(1T.21){1T.6S=S;k.2u.go({2b:1T})}P{1T.6S=u(){k.2u.go({2b:q})}}}P{k.2u.go({1Z:el})}if(o.cS){fi=T(o.cS)*aC}k.2u.5I[o.1Z]=o.cS?1X.6V(\'k.2u.2I(\\\'\'+o.1Z+\'\\\')\',fi):S}};k.X=k.2u.2r;k.1t={7s:[],5L:{},1c:I,7u:S,26:u(){if(k.11.F==S){E}D 4O,3G,c,cs;k.1t.1c.K(0).3l=k.11.F.A.6R;4O=k.1t.1c.K(0).14;4O.19=\'2B\';k.1t.1c.1B=k.23(k.1a.3w(k.1t.1c.K(0)),k.1a.2o(k.1t.1c.K(0)));4O.Z=k.11.F.A.1B.1C+\'U\';4O.W=k.11.F.A.1B.hb+\'U\';3G=k.1a.cy(k.11.F);4O.5K=3G.t;4O.5z=3G.r;4O.5k=3G.b;4O.5j=3G.l;if(k.11.F.A.46==1b){c=k.11.F.fI(1b);cs=c.14;cs.5K=\'2P\';cs.5z=\'2P\';cs.5k=\'2P\';cs.5j=\'2P\';cs.19=\'2B\';k.1t.1c.5o().1S(c)}k(k.11.F).f5(k.1t.1c.K(0));k.11.F.14.19=\'1o\'},fC:u(e){if(!e.A.44&&k.1x.5r.cQ){if(e.A.3T)e.A.3T.1D(F);k(e).B(\'Y\',e.A.cz||e.A.4n);k(e).aS();k(k.1x.5r).f6(e)}k.1t.1c.4i(e.A.6R).3x(\'&7k;\');k.1t.7u=S;D 4O=k.1t.1c.K(0).14;4O.19=\'1o\';k.1t.1c.f5(e);if(e.A.fx>0){k(e).7f(e.A.fx)}k(\'2e\').1S(k.1t.1c.K(0));D 86=[];D 8q=I;24(D i=0;i0){8q(86)}},al:u(e,o){if(!k.11.F)E;D 6e=I;D i=0;if(e.1i.el.1N()>0){24(i=e.1i.el.1N();i>0;i--){if(e.1i.el.K(i-1)!=k.11.F){if(!e.5V.b2){if((e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}P{1r}}P{if((e.1i.el.K(i-1).1M.x+e.1i.el.K(i-1).1M.1C/2)>k.11.F.A.2v&&(e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}}}}}if(6e&&k.1t.7u!=6e){k.1t.7u=6e;k(6e).h5(k.1t.1c.K(0))}P if(!6e&&(k.1t.7u!=S||k.1t.1c.K(0).31!=e)){k.1t.7u=S;k(e).1S(k.1t.1c.K(0))}k.1t.1c.K(0).14.19=\'2B\'},cT:u(e){if(k.11.F==S){E}e.1i.el.1E(u(){q.1M=k.23(k.1a.74(q),k.1a.7G(q))})},8x:u(s){D i;D h=\'\';D o={};if(s){if(k.1t.5L[s]){o[s]=[];k(\'#\'+s+\' .\'+k.1t.5L[s]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[s][o[s].1g]=k.1p(q,\'id\')})}P{24(a in s){if(k.1t.5L[s[a]]){o[s[a]]=[];k(\'#\'+s[a]+\' .\'+k.1t.5L[s[a]]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s[a]+\'[]=\'+k.1p(q,\'id\');o[s[a]][o[s[a]].1g]=k.1p(q,\'id\')})}}}}P{24(i in k.1t.5L){o[i]=[];k(\'#\'+i+\' .\'+k.1t.5L[i]).1E(u(){if(h.1g>0){h+=\'&\'}h+=i+\'[]=\'+k.1p(q,\'id\');o[i][o[i].1g]=k.1p(q,\'id\')})}}E{7l:h,o:o}},fF:u(e){if(!e.dq){E}E q.1E(u(){if(!q.5V||!k(e).is(\'.\'+q.5V.3C))k(e).2R(q.5V.3C);k(e).7t(q.5V.A)})},4U:u(){E q.1E(u(){k(\'.\'+q.5V.3C).aS();k(q).dR();q.5V=S;q.fm=S})},2r:u(o){if(o.3C&&k.1a&&k.11&&k.1x){if(!k.1t.1c){k(\'2e\',1h).1S(\'<22 id="e5">&7k;\');k.1t.1c=k(\'#e5\');k.1t.1c.K(0).14.19=\'1o\'}q.do({3C:o.3C,9J:o.9J?o.9J:I,a5:o.a5?o.a5:I,58:o.58?o.58:I,7x:o.7x||o.dC,7y:o.7y||o.fO,cQ:1b,2Z:o.2Z||o.ia,fx:o.fx?o.fx:I,46:o.46?1b:I,6I:o.6I?o.6I:\'cV\'});E q.1E(u(){D A={6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,4o:o.4o&&o.4o.1K==2A?o.4o:I,4m:o.4m&&o.4m.1K==2A?o.4m:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:I,2V:o.2V?o.2V:I};k(\'.\'+o.3C,q).7t(A);q.fm=1b;q.5V={3C:o.3C,6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,b2:o.b2?1b:I,A:A}})}}};k.fn.23({j3:k.1t.2r,f6:k.1t.fF,iS:k.1t.4U});k.iZ=k.1t.8x;k.2t={6O:S,7b:I,9m:S,6K:u(e){k.2t.7b=1b;k.2t.1Y(e,q,1b)},cq:u(e){if(k.2t.6O!=q)E;k.2t.7b=I;k.2t.2G(e,q)},1Y:u(e,el,7b){if(k.2t.6O!=S)E;if(!el){el=q}k.2t.6O=el;1M=k.23(k.1a.3w(el),k.1a.2o(el));8u=k(el);4g=8u.1p(\'4g\');3h=8u.1p(\'3h\');if(4g){k.2t.9m=4g;8u.1p(\'4g\',\'\');k(\'#eT\').3x(4g);if(3h)k(\'#bL\').3x(3h.4E(\'jh://\',\'\'));P k(\'#bL\').3x(\'\');1c=k(\'#8z\');if(el.4H.3l){1c.K(0).3l=el.4H.3l}P{1c.K(0).3l=\'\'}bo=k.1a.2o(1c.K(0));ga=7b&&el.4H.Y==\'bO\'?\'4D\':el.4H.Y;3m(ga){1e\'Q\':2q=1M.y-bo.hb;2v=1M.x;1r;1e\'O\':2q=1M.y;2v=1M.x-bo.1C;1r;1e\'2L\':2q=1M.y;2v=1M.x+1M.1C;1r;1e\'bO\':k(\'2e\').1J(\'3D\',k.2t.3D);1s=k.1a.4a(e);2q=1s.y+15;2v=1s.x+15;1r;ad:2q=1M.y+1M.hb;2v=1M.x;1r}1c.B({Q:2q+\'U\',O:2v+\'U\'});if(el.4H.54==I){1c.1Y()}P{1c.7f(el.4H.54)}if(el.4H.2Y)el.4H.2Y.1D(el);8u.1J(\'8B\',k.2t.2G).1J(\'5B\',k.2t.cq)}},3D:u(e){if(k.2t.6O==S){k(\'2e\').3q(\'3D\',k.2t.3D);E}1s=k.1a.4a(e);k(\'#8z\').B({Q:1s.y+15+\'U\',O:1s.x+15+\'U\'})},2G:u(e,el){if(!el){el=q}if(k.2t.7b!=1b&&k.2t.6O==el){k.2t.6O=S;k(\'#8z\').7a(1);k(el).1p(\'4g\',k.2t.9m).3q(\'8B\',k.2t.2G).3q(\'5B\',k.2t.cq);if(el.4H.3i)el.4H.3i.1D(el);k.2t.9m=S}},2r:u(M){if(!k.2t.1c){k(\'2e\').1S(\'<22 id="8z"><22 id="eT"><22 id="bL">\');k(\'#8z\').B({Y:\'1P\',3I:6P,19:\'1o\'});k.2t.1c=1b}E q.1E(u(){if(k.1p(q,\'4g\')){q.4H={Y:/Q|4D|O|2L|bO/.48(M.Y)?M.Y:\'4D\',3l:M.3l?M.3l:I,54:M.54?M.54:I,2Y:M.2Y&&M.2Y.1K==2A?M.2Y:I,3i:M.3i&&M.3i.1K==2A?M.3i:I};D el=k(q);el.1J(\'9z\',k.2t.1Y);el.1J(\'6K\',k.2t.6K)}})}};k.fn.hO=k.2t.2r;k.84={bq:u(e){3K=e.7L||e.7K||-1;if(3K==9){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(q.b1){1h.6J.dZ().3g="\\t";q.dV=u(){q.6K();q.dV=S}}P if(q.aF){26=q.5q;2T=q.dN;q.2y=q.2y.hd(0,26)+"\\t"+q.2y.h8(2T);q.aF(26+1,26+1);q.6K()}E I}},4U:u(){E q.1E(u(){if(q.7P&&q.7P==1b){k(q).3q(\'7B\',k.84.bq);q.7P=I}})},2r:u(){E q.1E(u(){if(q.4Y==\'cf\'&&(!q.7P||q.7P==I)){k(q).1J(\'7B\',k.84.bq);q.7P=1b}})}};k.fn.23({j5:k.84.2r,hH:k.84.4U});k.1a={3w:u(e){D x=0;D y=0;D es=e.14;D bP=I;if(k(e).B(\'19\')==\'1o\'){D 5Y=es.3n;D 9q=es.Y;bP=1b;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\'}D el=e;7d(el){x+=el.8t+(el.4Z&&!k.3a.7I?T(el.4Z.5b)||0:0);y+=el.8G+(el.4Z&&!k.3a.7I?T(el.4Z.4S)||0:0);el=el.dJ}el=e;7d(el&&el.4Y&&el.4Y.6c()!=\'2e\'){x-=el.3c||0;y-=el.3d||0;el=el.31}if(bP==1b){es.19=\'1o\';es.Y=9q;es.3n=5Y}E{x:x,y:y}},7G:u(el){D x=0,y=0;7d(el){x+=el.8t||0;y+=el.8G||0;el=el.dJ}E{x:x,y:y}},2o:u(e){D w=k.B(e,\'Z\');D h=k.B(e,\'W\');D 1C=0;D hb=0;D es=e.14;if(k(e).B(\'19\')!=\'1o\'){1C=e.4c;hb=e.5W}P{D 5Y=es.3n;D 9q=es.Y;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\';1C=e.4c;hb=e.5W;es.19=\'1o\';es.Y=9q;es.3n=5Y}E{w:w,h:h,1C:1C,hb:hb}},74:u(el){E{1C:el.4c||0,hb:el.5W||0}},bm:u(e){D h,w,de;if(e){w=e.8W;h=e.8O}P{de=1h.5d;w=1X.d4||aa.d4||(de&&de.8W)||1h.2e.8W;h=1X.cB||aa.cB||(de&&de.8O)||1h.2e.8O}E{w:w,h:h}},6z:u(e){D t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.9N.6c()!=\'2e\'){t=e.3d;l=e.3c;w=e.d7;h=e.d2;iw=0;ih=0}P{if(1h.5d){t=1h.5d.3d;l=1h.5d.3c;w=1h.5d.d7;h=1h.5d.d2}P if(1h.2e){t=1h.2e.3d;l=1h.2e.3c;w=1h.2e.d7;h=1h.2e.d2}iw=aa.d4||1h.5d.8W||1h.2e.8W||0;ih=aa.cB||1h.5d.8O||1h.2e.8O||0}E{t:t,l:l,w:w,h:h,iw:iw,ih:ih}},cy:u(e,7N){D el=k(e);D t=el.B(\'5K\')||\'\';D r=el.B(\'5z\')||\'\';D b=el.B(\'5k\')||\'\';D l=el.B(\'5j\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},aT:u(e,7N){D el=k(e);D t=el.B(\'5M\')||\'\';D r=el.B(\'5U\')||\'\';D b=el.B(\'5n\')||\'\';D l=el.B(\'4X\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},6U:u(e,7N){D el=k(e);D t=el.B(\'4S\')||\'\';D r=el.B(\'5O\')||\'\';D b=el.B(\'5Q\')||\'\';D l=el.B(\'5b\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)||0};P E{t:t,r:r,b:b,l:l}},4a:u(2k){D x=2k.hT||(2k.gM+(1h.5d.3c||1h.2e.3c))||0;D y=2k.ki||(2k.iQ+(1h.5d.3d||1h.2e.3d))||0;E{x:x,y:y}},cI:u(4R,cx){cx(4R);4R=4R.7c;7d(4R){k.1a.cI(4R,cx);4R=4R.hQ}},h7:u(4R){k.1a.cI(4R,u(el){24(D 1p in el){if(2g el[1p]===\'u\'){el[1p]=S}}})},hV:u(el,1O){D 5l=k.1a.6z();D b6=k.1a.2o(el);if(!1O||1O==\'49\')k(el).B({Q:5l.t+((18.3r(5l.h,5l.ih)-5l.t-b6.hb)/2)+\'U\'});if(!1O||1O==\'4j\')k(el).B({O:5l.l+((18.3r(5l.w,5l.iw)-5l.l-b6.1C)/2)+\'U\'})},hW:u(el,dk){D 1Q=k(\'1T[@2J*="8X"]\',el||1h),8X;1Q.1E(u(){8X=q.2J;q.2J=dk;q.14.5E="9n:9w.9y.hE(2J=\'"+8X+"\')"})}};[].3J||(7F.hF.3J=u(v,n){n=(n==S)?0:n;D m=q.1g;24(D i=n;i array( + 'variables' => array(), + ), + 'sld_group_text' => array( + 'variables' => array(), + ), + 'sld_group_image' => array( + 'variables' => array(), + ), + 'sld_group_image_and_text' => array( + 'variables' => array(), + ), + 'sld_single_text' => array( + 'variables' => array(), + ), + 'sld_single_image' => array( + 'variables' => array(), + ), + 'sld_single_image_and_text' => array( + 'variables' => array(), + ), + ); +} + +/** + * Implements hook_ds_fields_info(). + */ +function service_links_displays_ds_fields_info($entity_type) { + $fields = array( + 'service_links_displays_group' => array( + 'title' => t('Service Links Group'), + 'field_type' => DS_FIELD_TYPE_THEME, + 'properties' => array( + 'formatters' => array( + 'sld_group_text' => t('Text'), + 'sld_group_image' => t('Image'), + 'sld_group_image_and_text' => t('Image and text'), + 'sld_group_fisheye' => t('FishEye'), + ), + ), + ), + ); + + $services = array_filter(variable_get('service_links_displays', array())); + if (!empty($services)) { + $services = service_links_get_links($services); + foreach ($services as $service_id => $service) { + $fields['service_links_displays_'. $service_id] = array( + 'title' => t('Service Links Field @name', array('@name' => $service['name'])), + 'field_type' => DS_FIELD_TYPE_THEME, + 'properties' => array( + 'key' => $service_id, + 'formatters' => array( + 'sld_single_text' => t('Text'), + 'sld_single_image' => t('Image'), + 'sld_single_image_and_text' => t('Image and text'), + ), + ), + ); + } + } + + return array('node' => $fields); +} + +/** + * Apply the Text format to a single Service. + */ +function theme_sld_single_text($variables) { + $node = $variables['entity']; + $service_id = $variables['properties']['key']; + + if (service_links_show($node) && user_access('access service links')) { + $items = service_links_render_some($service_id, $node, FALSE, SERVICE_LINKS_STYLE_TEXT); + if (!empty($items)) { + return implode($items); + } + } +} + +/** + * Apply the Image format to a single Service. + */ +function theme_sld_single_image($variables) { + $node = $variables['entity']; + $service_id = $variables['properties']['key']; + + if (service_links_show($node) && user_access('access service links')) { + $items = service_links_render_some($service_id, $node, FALSE, SERVICE_LINKS_STYLE_IMAGE); + if (!empty($items)) { + return implode($items); + } + } +} + +/** + * Apply the Image and Text format to a single Service. + */ +function theme_sld_single_image_and_text($variables) { + $node = $variables['entity']; + $service_id = $variables['properties']['key']; + + if (service_links_show($node) && user_access('access service links')) { + $items = service_links_render_some($service_id, $node, FALSE, SERVICE_LINKS_STYLE_IMAGE_AND_TEXT); + if (!empty($items)) { + return implode($items); + } + } +} + +/** + * Apply the FishEye format to the field Service Links Group. + */ +function theme_sld_group_fisheye($variables) { + $node = $variables['entity']; + + if (service_links_show($node) && user_access('access service links')) { + $services = array_filter(variable_get('service_links_displays', array())); + $options = array( + 'style' => SERVICE_LINKS_STYLE_FISHEYE, + 'link_show' => $services, + ); + + return theme('service_links_fisheye_format', array( + 'items' => service_links_render($node, FALSE, $options), + )); + } +} + +/** + * Apply the Text format to the field Service Links Group. + */ +function theme_sld_group_text($variables) { + $node = $variables['entity']; + + if (service_links_show($node) && user_access('access service links')) { + $services = array_filter(variable_get('service_links_displays', array())); + $options = array( + 'style' => SERVICE_LINKS_STYLE_TEXT, + 'link_show' => $services, + ); + + return theme('service_links_block_format', array( + 'items' => service_links_render($node, FALSE, $options), + 'style' => SERVICE_LINKS_STYLE_IMAGE, + )); + } +} + +/** + * Apply the Image format to the field Service Links Group. + */ +function theme_sld_group_image($variables) { + $node = $variables['entity']; + + if (service_links_show($node) && user_access('access service links')) { + $services = array_filter(variable_get('service_links_displays', array())); + $options = array( + 'style' => SERVICE_LINKS_STYLE_IMAGE, + 'link_show' => $services, + ); + + return theme('service_links_block_format', array( + 'items' => service_links_render($node, FALSE, $options), + 'style' => SERVICE_LINKS_STYLE_IMAGE, + )); + } +} + +/** + * Apply the Image and Text format to the field Service Links Group. + */ +function theme_sld_group_image_and_text($variables) { + $node = $variables['entity']; + + if (service_links_show($node) && user_access('access service links')) { + $services = array_filter(variable_get('service_links_displays', array())); + $options = array( + 'style' => SERVICE_LINKS_STYLE_IMAGE_AND_TEXT, + 'link_show' => $services, + ); + + return theme('service_links_block_format', array( + 'items' => service_links_render($node, FALSE, $options), + 'style' => SERVICE_LINKS_STYLE_IMAGE, + )); + } +} + +/** + * Implements hook_form_alter(). + */ +function service_links_displays_form_alter(&$form, &$form_state, $form_id) { + if ($form_id == 'service_links_admin_services') { + $settings['displays'] = variable_get('service_links_displays', array()); + $settings['weight'] = variable_get('service_links_weight', NULL); + + $form['service_links']['service_links_displays'] = array('#tree' => TRUE); + $services = array_filter(array_keys($form['service_links']['service_links_weight']), '_sld_only_keys'); + + foreach ($services as $service_id) { + $weight = isset($settings['weight'][$service_id]) ? $settings['weight'][$service_id] : 0; + $form['service_links']['service_links_displays'][$service_id] = array( + '#weight' => $weight, + '#type' => 'checkbox', + '#return_value' => 1, + '#default_value' => isset($settings['displays'][$service_id]) ? $settings['displays'][$service_id] : 0, + '#attributes' => array(), + ); + } + } +} + +/** + * Implements hook_sl_servicestable_alter(). + */ +function service_links_displays_sl_servicestable_alter(&$table, $form) { + $table['header'][] = t('Displays'); + + if (empty($table['rows'])) { + return; + } + + $num_row = 0; + $col_num = count($table['rows'][0]['data']); + foreach (element_children($form['service_links_displays']) as $service_id) { + $service = $form['service_links_displays'][$service_id]; + + $service['displays'] = array( + '#type' => 'checkbox', + '#checked' => $service['#default_value'], + '#id' => $service['#id'], + '#name' => $service['#name'], + '#attributes' => $service['#attributes'], + ); + $col = drupal_render($service['displays']); + + $table['rows'][$num_row]['data'][$col_num] = $col; + + $num_row++; + } +} + +/** + * Filter the id from other fields. + */ +function _sld_only_keys($item) { + return preg_match('/^#/', $item) ? FALSE : TRUE; +} diff --git a/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.info b/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.info new file mode 100644 index 0000000..aa8b6d1 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.info @@ -0,0 +1,14 @@ +name = Service Links Sprites +description = Add the ability to handle sprites with Service Links +core = 7.x +package = Service Links +dependencies[] = service_links + +configure = admin/config/services/service-links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.module b/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.module new file mode 100644 index 0000000..fc5c217 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/plugins/service_links_sprites.module @@ -0,0 +1,255 @@ + $file) { + if (is_file($file)) { + $img_details = getimagesize($file); + + if (!isset($images[$img_details[SLS_GD_WIDTH]])) { + $images[$img_details[SLS_GD_WIDTH]] = array(); + } + + $images[$img_details[SLS_GD_WIDTH]][$service_id] = array( + 'height' => $img_details[SLS_GD_HEIGHT], + 'file' => $file, + 'mime' => $img_details[SLS_GD_MIME], + ); + + if (!isset($tot_height[$img_details[SLS_GD_WIDTH]])) { + $tot_height[$img_details[SLS_GD_WIDTH]] = 0; + } + + $tot_height[$img_details[SLS_GD_WIDTH]] += (int)$img_details[SLS_GD_HEIGHT]; + } + } + + foreach ($images as $width => $image) { + $img_dest = @imagecreatetruecolor($width, $tot_height[$width]); + $background = @imagecolorallocatealpha($img_dest, 255, 255, 255, 127); + @imagefill($img_dest, 0, 0, $background); + @imagealphablending($img_dest, FALSE); + @imagesavealpha($img_dest, TRUE); + + $y = 0; + $padding = $width + 2; + $css_str .= ".sprites.service-links.w$width {padding-left: {$padding}px; background-image:url(\"" . SLS_FILENAME . "$width.png\");}\n"; + + foreach ((array)$image as $service_id => $img_details) { + switch ($img_details['mime']) { + case 'image/png': + $img_src = @imagecreatefrompng($img_details['file']); + break; + case 'image/jpeg': + $img_src = @imagecreatefromjpeg($img_details['file']); + break; + case 'image/gif': + $img_src = @imagecreatefromgif($img_details['file']); + break; + default: + continue; + } + + $class = str_replace('_', '-', $service_id); + $sign = ($y > 0) ? '-' : ''; + $css_str .= ".sprites.service-links-$class {background-position: 0 {$sign}{$y}px; height:{$img_details['height']}px}\n"; + @imagecopy($img_dest, $img_src, 0, $y, 0, 0, $width, $img_details['height']); + @imagedestroy($img_src); + $y += $img_details['height']; + $sizes[$img_details['file']] = $width; + } + + imagepng($img_dest, $sprite_filename . $width . '.png'); + imagedestroy($img_dest); + } + + $css_fhandler = fopen($sprite_filename . '.css', 'w'); + if (($css_fhandler) && !empty($css_str)) { + fwrite($css_fhandler, $css_str); + fclose($css_fhandler); + } + + variable_set('service_links_sprites_sizes', $sizes); +} + +/** + * Implements hook_form_alter(). + */ +function service_links_sprites_form_alter(&$form, &$form_state, $form_id) { + if ($form_id == 'service_links_admin_settings') { + $form['buttons']['#weight'] = 100; + $form['sprites'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Sprites'), + ); + $form['sprites']['service_links_use_internal_sprites'] = array( + '#type' => 'checkbox', + '#title' => t('Load the CSS file generated by Service Links'), + '#default_value' => variable_get('service_links_use_internal_sprites', 0), + '#description' => t('Service Links will build the files needed everytime the modifies are saved in Services tab.'), + ); + } + + if ($form_id == 'service_links_admin_services') { + $form['#validate'][] = 'service_links_sprites_validate'; + } +} + +function service_links_sprites_validate($form, &$form_state) { + $services = array_keys(array_filter($form_state['values']['service_links_show'])); + $services = service_links_get_links($services); + $paths = array(); + foreach ($services as $service_id => $service) { + $icon = isset($service['icon']) ? $service['icon'] : $service_id . '.png'; + $paths[$service_id] = service_links_expand_path($icon); + } + + sls_build_sprites($paths); +} + +/** + * Implements hook_sl_styles(). + */ +function service_links_sprites_sl_styles($nodelink = FALSE) { + return array( + 'sls_style_image' => t('Only Image (with Sprite)'), + 'sls_style_image_and_text' => t('Image and Text (with Sprite)'), + ); +} + +/** + * Implements hook_theme(). + */ +function service_links_sprites_theme() { + return array( + 'sls_style_image' => array( + 'variables' => array( + 'text' => NULL, + 'url' => array(), + 'image' => NULL, + 'nodelink' => NULL, + 'attributes' => array(), + ), + ), + 'sls_style_image_and_text' => array( + 'variables' => array( + 'text' => NULL, + 'url' => array(), + 'image' => NULL, + 'nodelink' => NULL, + 'attributes' => array(), + ), + ), + ); +} + +function theme_sls_style_image($variables) { + $text = $variables['text']; + $url = $variables['url']; + $image = $variables['image']; + $nodelink = $variables['nodelink']; + $attributes = $variables['attributes']; + + $width = sls_get_image_size(service_links_expand_path($image)); + $attributes['class'][] = "sprites service-links w$width"; + + if ($nodelink) { + $query = isset($url[1]) ? $url[1] : NULL; + + return array( + 'title' => '' . $text . '', + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + 'html' => TRUE, + ); + } + else { + $attributes = array_merge($attributes, array('html' => TRUE)); + if (isset($url[1])) { + $attributes['query'] = $url[1]; + } + + return l('' . $text . '', $url[0], $attributes); + } +} + +function theme_sls_style_image_and_text($variables) { + $text = $variables['text']; + $url = $variables['url']; + $image = $variables['image']; + $nodelink = $variables['nodelink']; + $attributes = $variables['attributes']; + + $width = sls_get_image_size(service_links_expand_path($image)); + $attributes['class'][] = "sprites service-links w$width"; + + if ($nodelink) { + $query = isset($url[1]) ? $url[1] : NULL; + + return array( + 'title' => $text, + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + ); + } + else { + if (isset($url[1])) { + $attributes['query'] = $url[1]; + } + return l($text, $url[0], $attributes); + } +} + +function sls_get_image_size($filepath = '') { + static $sizes; + + if (!isset($sizes)) { + $sizes = variable_get('service_links_sprites_sizes', array()); + } + + if (isset($sizes[$filepath])) { + return $sizes[$filepath]; + } + else { + return 16; + } +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.admin.inc b/web/sites/all/modules/contrib/service_links/service_links.admin.inc new file mode 100644 index 0000000..d2e5312 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.admin.inc @@ -0,0 +1,482 @@ + $service['#title']); + $col[] = drupal_render($service['name']); + + $service['service'] = array('#markup' => $service['#service']); + $col[] = drupal_render($service['service']); + + $service['show'] = array( + '#type' => 'checkbox', + '#checked' => $service['#default_value'], + '#id' => $service['#id'], + '#name' => $service['#name'], + ); + $col[] = drupal_render($service['show']); + + $service['weight'] = $form['service_links_weight'][$service_id]; + $service['weight']['#attributes']['class'] = array('service-weight'); + $col[] = drupal_render($service['weight']); + + $table['weights'][] = $service['#weight']; + $table['rows'][] = array('data' => $col, 'class' => array('draggable')); + } + + $table['header'] = array(t('Service Name'), t('Group'), t('Show'), t('Weight')); + + drupal_alter('sl_servicestable', $table, $form); + + if (!empty($table['rows'])) { + array_multisort($table['weights'], $table['rows']); + } + + drupal_add_tabledrag('service_links', 'order', 'sibling', 'service-weight'); + + $params = array( + '#theme' => 'table', + '#header' => $table['header'], + '#rows' => $table['rows'], + '#attributes' => array('id' => 'service_links'), + '#empty' => t('No services available.'), + ); + + return theme('table', $params); +} + +/** + * Menu callback administration settings for general options. + */ +function service_links_admin_settings() { + + $form['where_to_show_the_links'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t("Show for content types or categories"), + '#description' => t("Set the content types or categories you want to display links for."), + ); + $form['where_to_show_the_links']['service_links_node_types'] = array( + '#type' => 'checkboxes', + '#title' => t('Content types'), + '#default_value' => variable_get('service_links_node_types', array()), + '#options' => array_map('check_plain', node_type_get_names()), + '#attributes' => array('class' => array('container-inline')), + ); + if (module_exists('taxonomy')) { + $selected_vocs = variable_get('service_links_category_vocs', array()); + $vocabularies = _service_links_get_vocabularies(); + $form['where_to_show_the_links']['service_links_category_vocs'] = array( + '#type' => 'checkboxes', + '#title' => t('Show terms from the selected vocabularies'), + '#default_value' => $selected_vocs, + '#options' => $vocabularies, + '#attributes' => array('class' => array('container-inline')), + ); + + $terms = _service_links_get_terms(array_values(array_filter($selected_vocs))); + $count = count($terms); + $selected_types = variable_get('service_links_category_types', array()); + if ($count > 0) { + $form['where_to_show_the_links']['service_links_category_types'] = array( + '#type' => 'select', + '#multiple' => TRUE, + //'#title' => t('Categories'), + '#default_value' => $selected_types, + '#options' => $terms, + //'#size' => ($count > 10 ? 10 : $count), + '#attributes' => array('style' => 'display: none;'), + ); + foreach ($vocabularies as $vid => $vocabulary) { + if (in_array($vid, $selected_vocs)) { + $terms = _service_links_get_terms(array($vid)); + $form['where_to_show_the_links']['service_links_category_by_voc_' . $vid] = array( + '#type' => 'select', + '#multiple' => TRUE, + '#title' => $vocabulary, + '#default_value' => $selected_types, + '#options' => $terms, + '#size' => ($count > 10 ? 10 : $count), + ); + } + } + } + } + + $form['places_to_show_the_links'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Where to show service links'), + ); + $form['places_to_show_the_links']['service_links_link_view_modes'] = array( + '#type' => 'checkboxes', + '#title' => t('Service links in the links'), + '#default_value' => variable_get('service_links_link_view_modes', array()), + '#options' => _service_links_get_view_modes(), + '#description' => t('Select for what view mode display the services in the link section.'), + ); + $form['places_to_show_the_links']['service_links_node_view_modes'] = array( + '#type' => 'checkboxes', + '#title' => t('Service links in the content'), + '#default_value' => variable_get('service_links_node_view_modes', array()), + '#options' => _service_links_get_view_modes(), + '#description' => t('Select for what view modes display the services in the content section.'), + ); + + $form['page_match'] = array( + '#type' => 'fieldset', + '#title' => t('Page specific visibility settings'), + '#collapsible' => TRUE, + '#collapsed' => FALSE, + ); + $access = user_access('use PHP for service visibility'); + $visibility = variable_get('service_links_visibility_for_node', SERVICE_LINKS_VISIBILITY_NOT_LISTED); + $pages = variable_get('service_links_page_match_for_node', ''); + if ($visibility == SERVICE_LINKS_VISIBILITY_PHP && !$access) { + $form['page_match'] = array( + 'service_links_visibility_for_node' => array( + '#type' => 'value', + '#value' => SERVICE_LINKS_VISIBILITY_PHP, + ), + 'service_links_page_match_for_node' => array( + '#type' => 'value', + '#value' => $pages, + ), + ); + } + else { + $options = array( + SERVICE_LINKS_VISIBILITY_NOT_LISTED => t('All pages except those listed'), + SERVICE_LINKS_VISIBILITY_ONLY_LISTED => t('Only the listed pages'), + ); + $description = t("Specify pages by using their paths. Enter one path per line. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page.", array('%blog' => 'blog', '%blog-wildcard' => 'blog/*', '%front' => '')); + + if (module_exists('php') && $access) { + $options += array(SERVICE_LINKS_VISIBILITY_PHP => t('Pages on which this PHP code returns TRUE (experts only)')); + $title = t('Pages or PHP code'); + $description .= ' ' . t('If the PHP option is chosen, enter PHP code between %php. Note that executing incorrect PHP code can break your Drupal site.', array('%php' => '')); + } + else { + $title = t('Pages'); + } + + $form['page_match']['service_links_visibility_for_node'] = array( + '#type' => 'radios', + '#title' => t('Show Service Links on specific pages'), + '#options' => $options, + '#default_value' => $visibility, + ); + $form['page_match']['service_links_page_match_for_node'] = array( + '#type' => 'textarea', + '#title' => $title, + '#default_value' => $pages, + '#description' => $description, + ); + } + + $form['how_to_show_the_links'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('How to display Service Links'), + ); + $form['how_to_show_the_links']['service_links_style'] = array( + '#type' => 'select', + '#title' => t('Choose a style'), + '#default_value' => variable_get('service_links_style', SERVICE_LINKS_STYLE_IMAGE), + '#options' => array( + SERVICE_LINKS_STYLE_TEXT => t('Only Text'), + SERVICE_LINKS_STYLE_IMAGE => t('Only Image'), + SERVICE_LINKS_STYLE_IMAGE_AND_TEXT => t('Image and Text'), + ), + ); + + $styles = module_invoke_all('sl_styles', FALSE); + if (!empty($styles)) { + $form['how_to_show_the_links']['service_links_style']['#options'] += $styles; + } + + $form['how_to_show_the_links']['service_links_hide_if_unpublished'] = array( + '#type' => 'checkbox', + '#title' => t("Don't show links if the content is unpublished"), + '#default_value' => variable_get('service_links_hide_if_unpublished', 0), + ); + $form['how_to_show_the_links']['service_links_hide_for_author'] = array( + '#type' => 'checkbox', + '#title' => t("Don't show links if the actual user is the author of the node"), + '#default_value' => variable_get('service_links_hide_for_author', 0), + ); + $form['how_to_show_the_links']['in_node'] = array( + '#type' => 'fieldset', + '#title' => t('Service Links in nodes'), + ); + $form['how_to_show_the_links']['in_node']['service_links_label_in_node'] = array( + '#type' => 'textfield', + '#title' => t('Print the label'), + '#default_value' => variable_get('service_links_label_in_node', t('Bookmark/Search this post with')), + '#size' => '40', + ); + $form['how_to_show_the_links']['in_node']['service_links_weight_in_node'] = array( + '#type' => 'weight', + '#delta' => 100, + '#title' => t('Assign a weight'), + '#default_value' => variable_get('service_links_weight_in_node', 10), + '#description' => t('The weight help to place the Service Links section above or below the other elements.'), + ); + + $form['how_to_show_the_links']['icons'] = array( + '#type' => 'fieldset', + '#title' => t('Service Links icons'), + ); + $form['how_to_show_the_links']['icons']['service_links_path_icons'] = array( + '#type' => 'textfield', + '#title' => t('Standard folder'), + '#description' => t('If you have alternative icons enter here the relative path from your index.php without trailing slash (i.e. %path1 or %path2)', array('%path1' => 'files/newicons', '%path2' => 'sites/all/files/newicons')), + '#default_value' => service_links_expand_path(NULL, 'icons'), + '#size' => 40, + ); + $form['how_to_show_the_links']['icons']['service_links_check_icons'] = array( + '#type' => 'checkbox', + '#title' => t('Use the default icons if missing'), + '#description' => t('Check every icon in the standard folder and if not available, consider the default path %path', array('%path' => service_links_expand_path(NULL, 'preset'))), + '#default_value' => variable_get('service_links_check_icons', FALSE), + ); + + $form['extra_options'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Extra Options'), + ); + $form['extra_options']['service_links_new_window'] = array( + '#type' => 'select', + '#title' => t('Open link in...'), + '#default_value' => variable_get('service_links_new_window', 0), + '#options' => array(0 => t('Same window'), 1 => t('New window')), + ); + $form['extra_options']['service_links_append_to_url'] = array( + '#type' => 'textfield', + '#title' => t('Append the following text to your URL'), + '#description' => t('This text will be inserted at the end of the current URL (i.e. %param => %url)', array('%param' => 'param1=value1¶m2=value2', '%url' => 'http://domain.com/current-page¶m1=value1¶m2=value2')), + '#default_value' => variable_get('service_links_append_to_url', ''), + '#size' => 40, + ); + $form['extra_options']['title'] = array( + '#type' => 'fieldset', + ); + $form['extra_options']['title']['service_links_override_title'] = array( + '#type' => 'select', + '#title' => t('How to fill the title tag'), + '#default_value' => variable_get('service_links_override_title', SERVICE_LINKS_TAG_TITLE_NODE), + '#options' => array( + SERVICE_LINKS_TAG_TITLE_NODE => t('Use the original node title'), + SERVICE_LINKS_TAG_TITLE_OVERRIDE => t('Override the original title'), + ), + ); + $form['extra_options']['title']['service_links_override_title_text'] = array( + '#type' => 'textfield', + '#description' => t("Enter the text that override the title: use @title for referrer the original title, either the various tokens offered by Token if it's enabled and the related option active.", array('@url' => 'http://www.drupal.org/project/token', '@title' => '')), + '#default_value' => variable_get('service_links_override_title_text', '<title>'), + '#size' => 40, + ); + + if (module_exists('token')) { + $form['extra_options']['title']['service_links_override_title']['#options'] += array( + SERVICE_LINKS_TAG_TITLE_TOKEN => t('Parse the string with Token'), + ); + $form['extra_options']['title']['token_help'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#title' => t('Token help'), + '#theme' => 'token_tree', + '#token_types' => array('node'), + ); + } + + $form['short_links'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Short Links'), + ); + $form['short_links']['service_links_short_links_use'] = array( + '#type' => 'select', + '#title' => t('Use short links'), + '#default_value' => variable_get('service_links_short_links_use', SERVICE_LINKS_SHORT_URL_USE_NEVER), + '#options' => array( + SERVICE_LINKS_SHORT_URL_USE_NEVER => t('Never'), + SERVICE_LINKS_SHORT_URL_USE_WHEN_REQUESTED => t('Only when requested'), + SERVICE_LINKS_SHORT_URL_USE_ALWAYS => t('Always')), + ); + if (variable_get('service_links_short_links_use', SERVICE_LINKS_SHORT_URL_USE_NEVER) > 0) { + $form['short_links']['service_links_short_links_type'] = array( + '#type' => 'select', + '#title' => t('How generate short links'), + '#default_value' => variable_get('service_links_short_links_type', SERVICE_LINKS_SHORT_URL_TYPE_NODE), + '#description' => t('If you select "Short URL," it will use the service selected with the <a href="@shorten">Shorten URLs module</a>. If you have not enabled the module, Service Links will default to TinyURL.', array('@shorten' => 'http://drupal.org/project/shorten')), + '#options' => array( + SERVICE_LINKS_SHORT_URL_TYPE_NODE => t('Use node/xxx alias'), + SERVICE_LINKS_SHORT_URL_TYPE_SERVICE => t('Use Short Url service'), + SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_DOMAIN => t('Redirect only the Domain name'), + SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_ALL => t('Combo: domain redirect and node/xxx alias')), + ); + $form['short_links']['service_links_domain_redirect'] = array( + '#type' => 'textfield', + '#title' => t('Domain to redirect'), + '#description' => t('Enter the complete address without trailing slash (i.e. %name)', array('%name' => 'http://www.example.com') ), + '#default_value' => variable_get('service_links_domain_redirect', ''), + '#size' => 40, + ); + } + $form['#validate'][] = 'service_links_admin_services_validate'; + + return system_settings_form($form); +} + +/** + * Check if domain address textbox is empty when should be not, + * copy the selected terms into a unique list, + * check the path of custom'icons. + */ +function service_links_admin_services_validate($form, &$form_state) { + if (isset($form_state['values']['service_links_short_links_type']) && (int) $form_state['values']['service_links_short_links_type'] > 2) { + if (!$form_state['values']['service_links_domain_redirect']) { + form_set_error('service_links_domain_redirect', t('Domain redirect address is not set.')); + } + if (preg_match("/\/$/", $form_state['values']['service_links_domain_redirect'])) { + form_set_error('service_links_domain_redirect', t('No trailing slash!')); + } + } + + if (isset($form_state['values']['service_links_category_vocs']) && module_exists('taxonomy')) { + $selected_vocs = array_filter($form_state['values']['service_links_category_vocs']); + if (empty($selected_vocs)) { + $form_state['values']['service_links_category_types'] = array(); + } + else { + $vocabularies = _service_links_get_vocabularies(); + $form_state['values']['service_links_category_types'] = array(); + foreach ($vocabularies as $vid => $vocabulary) { + if (isset($form_state['values']['service_links_category_by_voc_' . $vid])) { + $form_state['values']['service_links_category_types'] += $form_state['values']['service_links_category_by_voc_' . $vid]; + } + + } + } + } + + if (!empty($form_state['values']['service_links_path_icons'])) { + if (!is_dir($form_state['values']['service_links_path_icons'])) { + form_set_error('service_links_path_icons', t('The path for custom icons is not valid')); + } + elseif (preg_match("/\/$/", $form_state['values']['service_links_path_icons'])) { + form_set_error('service_links_path_icons', t('No trailing slash!')); + } + } +} + +/** + * Menu callback administration settings for services links list. + */ +function service_links_admin_services() { + $settings = array(); + + $services = service_links_get_links(NULL, TRUE); + $settings['show'] = variable_get('service_links_show', NULL); + $settings['weight'] = variable_get('service_links_weight', NULL); + + $form['service_links'] = array('#theme' => 'service_links_drag_table'); + $form['service_links']['service_links_show'] = array('#tree' => TRUE); + $form['service_links']['service_links_weight'] = array('#tree' => TRUE); + + foreach ($services as $service_id => $service) { + $icon = array( + 'path' => isset($service['icon']) ? service_links_expand_path($service['icon'], 'preset') : service_links_expand_path("$service_id.png", 'preset'), + ); + $weight = isset($settings['weight'][$service_id]) ? $settings['weight'][$service_id] : 0; + + $form['service_links']['service_links_show'][$service_id] = array( + '#service' => ucwords(str_replace('_', ' ', $service['module'])), + '#weight' => $weight, + '#type' => 'checkbox', + '#title' => theme('image', $icon) . " " . t('Show %name link', array('%name' => $service['name'])), + '#return_value' => 1, + '#default_value' => isset($settings['show'][$service_id]) ? $settings['show'][$service_id] : 0, + ); + $form['service_links']['service_links_weight'][$service_id] = array( + '#type' => 'weight', + '#delta' => 100, + '#default_value' => $weight, + ); + } + + if (empty($services)) { + drupal_set_message(t('You need to load at least one of XXX Services module, please enable them in <a href="@url">admin > modules</a> page', array('@url' => url('admin/modules'))), 'warning'); + } + + return system_settings_form($form); +} + +/** + * Build an array of all taxonomy terms. + */ +function _service_links_get_terms($included_vocs = array()) { + $types = array(); + $vocabularies = taxonomy_get_vocabularies(); + foreach ($vocabularies as $vocabulary) { + if (in_array($vocabulary->vid, $included_vocs)) { + $tree = taxonomy_get_tree($vocabulary->vid); + foreach ($tree as $term) { + $types[$term->tid] = check_plain($term->name); + } + } + } + + return $types; +} + +/** + * Return a list of vocabularies generated by taxonomy module. + */ +function _service_links_get_vocabularies() { + $list_vocs = taxonomy_get_vocabularies(); + $vocs = array(); + foreach ($list_vocs as $vocabulary) { + if ($vocabulary->module == 'taxonomy') { + $vocs[$vocabulary->vid] = check_plain($vocabulary->name); + } + } + + return $vocs; +} + +/** + * Return the view modes availables for the node entity. + */ +function _service_links_get_view_modes() { + $view_modes = array(); + + $entity_info = entity_get_info('node'); + foreach ($entity_info['view modes'] as $view => $info){ + $view_modes[$view] = $info['label']; + } + + return $view_modes; +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.api.php b/web/sites/all/modules/contrib/service_links/service_links.api.php new file mode 100644 index 0000000..189f59d --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.api.php @@ -0,0 +1,84 @@ +<?php + +/** + * @file + * Provides documentation for the Service Links API. + * + * Look the online documentation for more info. + */ + +/** + * Obtains all available service links. + * + * @return + * An array containing all service links, keyed by name. + */ +function hook_service_links() { + $links = array(); + + $links['myservice'] = array( + // The name of the service. + 'name' => 'MyService', + // A short description for the link. + 'description' => t('Share this post on MyService'), + // The service URL and its params. + 'link' => 'http://example.com/?url=<encoded-url>&title=<encoded-title>&summary=<encoded-teaser>', + // The service icon. The id name and .png extension is used as default. + 'icon' => drupal_get_path('module', 'myservice') .'/myservice.png', + // Any additional attributes to apply to the element. + 'attributes' => array( + 'class' => array('myservice-special-class'), // A special class. + 'style' => 'text-decoration: underline;', // Apply any special inline styles. + ), + // JavaScript to add when this link is processed, can be a string or an array. + 'javascript' => drupal_get_path('module', 'myservice') .'/myservice.js', + // CSS to add when this link is processed, can be a string or an array. + 'css' => drupal_get_path('module', 'myservice') .'/myservice.css', + // A PHP function invoked before the link is created, useful to add new tags. + 'preset' => 'myservice_preset', + // A PHP function callback that is invoked when the link is created. + 'callback' => 'myservice_callback', + ); + + return $links; +} + +/** + * Example of preset function. + * + * @param $service + * The service that is being used. + * @param $settings + * An array containing all the settings used. + * @param $node + * An object containt the current node. + */ +function my_service_preset(&$service, &$settings, $node = NULL) { + $settings['tags']['new-tag'] = '<new-tag>'; + $settings['subst']['new-tag'] = check_plain(variable_get('some_variable', 'default')); +} + +/** + * Example callback from the Service Links. + * + * @param $service + * The service that is being used. + * @param $context + * An array containing all information about the item being shared. + */ +function myservice_callback($service, $context) { + +} + +/** + * Allows alteration of the Service Links. + * + * @param $links + * The constructed array of service links. + */ +function hook_service_links_alter(&$links) { + if (isset($links['myservice'])) { + // Change the icon of MyService. + $links['myservice']['icon'] = 'http://drupal.org/misc/favicon.ico'; + } +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.info b/web/sites/all/modules/contrib/service_links/service_links.info new file mode 100644 index 0000000..cbcca81 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.info @@ -0,0 +1,14 @@ +name = Service links +description = Module engine for add various service links about sharing networks to nodes. +core = 7.x +package = Service Links + +files[] = service_links_handler_field_service_links.inc +configure = admin/config/services/service-links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/service_links.install b/web/sites/all/modules/contrib/service_links/service_links.install new file mode 100644 index 0000000..8896438 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.install @@ -0,0 +1,90 @@ +<?php + +/** + * @file + * Service Links install file. + */ + +/** + * Implements hook_uninstall(). + */ +function service_links_uninstall() { + db_delete('variable') + ->condition('name', 'service_links_%', 'LIKE') + ->execute(); +} + +/** + * Update from Service Links 1.x. + */ +function service_links_update_6200() { + $new_var = variable_get('service_links_show', NULL); + + if (!isset($new_var)) { + variable_set('service_links_show', array( + 'delicious' => variable_get('service_links_show_delicious', 0), + 'digg' => variable_get('service_links_show_digg', 0), + 'stumbleupon' => variable_get('service_links_show_stumbleupon', 0), + 'reddit' => variable_get('service_links_show_reddit', 0), + 'newsvine' => variable_get('service_links_show_newsvine', 0), + 'furl' => variable_get('service_links_show_furl', 0), + 'facebook' => variable_get('service_links_show_facebook', 0), + 'myspace' => variable_get('service_links_show_myspace', 0), + 'identica' => variable_get('service_links_show_identica', 0), + 'twitter' => variable_get('service_links_show_twitter', 0), + 'google' => variable_get('service_links_show_google', 0), + 'yahoo' => variable_get('service_links_show_yahoo', 0), + 'linkedin' => variable_get('service_links_show_linkedin', 0), + 'technorati' => variable_get('service_links_show_technorati', 0), + 'icerocket' => variable_get('service_links_show_icerocket', 0), + )); + + module_enable(array('general_services')); + } + + // delete old service variables + $result = db_query('SELECT name FROM {variable} v WHERE LOCATE("service_links_show_",v.name) > 0'); + while ($row = db_fetch_object($result)) { + variable_del($row->name); + } + + // Aggregator2 support + variable_del('service_links_agg2_link'); +} + +/** + * Switch the old variables to the news based on view modes. + */ +function _update_to_view_modes($old_var, $new_var) { + $modes = array_filter(variable_get($old_var, 0)); + $new_var = variable_get($new_var, NULL); + + if (!isset($new_var)) { + switch($modes) { + case 0: + $modes = array(); + break; + case 1: + $modes = array('teaser' => 'teaser'); + break; + case 2: + $modes = array('full' => 1); + break; + case 3: + $modes = array('teaser' => 1, 'full' => 1); + break; + } + + variable_set($new_var, $modes); + } + + variable_del($old_var); +} + +/** + * Update to view mode display. + */ +function service_links_update_7201(&$sandbox) { + _update_to_view_modes('service_links_in_links', 'service_links_link_view_modes'); + _update_to_view_modes('service_links_in_node', 'service_links_node_view_modes'); +} \ No newline at end of file diff --git a/web/sites/all/modules/contrib/service_links/service_links.module b/web/sites/all/modules/contrib/service_links/service_links.module new file mode 100644 index 0000000..cc6643d --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.module @@ -0,0 +1,1058 @@ +<?php + +/** + * @file + * Adds social network links to the content. + * + * This module is the enhanced version of Service Links 1.x developed + * by Fredrik Jonsson, rewritten and improved to fit the new purposes: + * extend easily the number of services supported and provide APIs to + * print links everywhere within any content. + * At the @link http://servicelinks.altervista.org/?q=service home page + * @endlink a web interface helps to create a module including the + * services not availables in the standard package. + * + * @author: Fabio Mucciante (TheCrow) + */ + +define('SERVICE_LINKS_STYLE_NONE', 0); +define('SERVICE_LINKS_STYLE_TEXT', 1); +define('SERVICE_LINKS_STYLE_IMAGE', 2); +define('SERVICE_LINKS_STYLE_IMAGE_AND_TEXT', 3); +define('SERVICE_LINKS_STYLE_EMPTY', 4); +define('SERVICE_LINKS_STYLE_FISHEYE', 5); + +define('SERVICE_LINKS_SHORT_URL_USE_NEVER', 0); +define('SERVICE_LINKS_SHORT_URL_USE_WHEN_REQUESTED', 1); +define('SERVICE_LINKS_SHORT_URL_USE_ALWAYS', 2); + +define('SERVICE_LINKS_SHORT_URL_TYPE_NODE', 1); +define('SERVICE_LINKS_SHORT_URL_TYPE_SERVICE', 2); +define('SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_DOMAIN', 3); +define('SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_ALL', 4); + +define('SERVICE_LINKS_TAG_TITLE_NODE', 0); +define('SERVICE_LINKS_TAG_TITLE_OVERRIDE', 1); +define('SERVICE_LINKS_TAG_TITLE_TOKEN', 2); + +define('SERVICE_LINKS_VISIBILITY_NOT_LISTED', 0); +define('SERVICE_LINKS_VISIBILITY_ONLY_LISTED', 1); +define('SERVICE_LINKS_VISIBILITY_PHP', 2); + +/** + * Implements hook_help(). + */ +function service_links_help($path, $arg) { + switch ($path) { + case 'admin/help#service_links': + return '<p>'. t('Display links to social sharing websites like Digg, del.icio.us, reddit, Technorati etc.') .'</p>'; + break; + } +} + +/** + * Implements hook_hook_info(). + */ +function service_links_hook_info() { + $hooks = array( + 'service_links' => array( + 'group' => 'service_links', + ), + 'service_links_alter' => array( + 'group' => 'service_links', + ), + ); + + return $hooks; +} + +/** + * Implements hook_permission(). + */ +function service_links_permission() { + return array( + 'access service links' => array( + 'title' => t('Access to Service Links'), + //'description' => t('Allow users to act with the services loaded'), + ), + 'use PHP for service visibility' => array( + 'title' => t('Use PHP for Service visibility'), + ), + ); +} + +/** + * Implements hook_menu(). + */ +function service_links_menu() { + $items = array(); + + $items['admin/config/services/service-links'] = array( + 'title' => 'Service Links', + 'description' => 'Control which and where service links should be active.', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('service_links_admin_settings'), + 'access arguments' => array('administer site configuration'), + 'type' => MENU_NORMAL_ITEM, + 'file' => 'service_links.admin.inc', + ); + + $items['admin/config/services/service-links/general'] = array( + 'title' => 'General Settings', + 'type' => MENU_DEFAULT_LOCAL_TASK, + 'weight' => -10, + ); + + $items['admin/config/services/service-links/services'] = array( + 'title' => 'Services', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('service_links_admin_services'), + 'access arguments' => array('administer site configuration'), + 'type' => MENU_LOCAL_TASK, + 'file' => 'service_links.admin.inc', + ); + + return $items; +} + +/** + * Implements hook_node_view(). + */ +function service_links_node_view($node, $view_mode) { + static $view_modes_allowed; + + if (!isset($view_modes_allowed)) { + $view_modes_allowed = array_filter(variable_get('service_links_node_view_modes', array())); + } + + if ((arg(2) != 'edit') && service_links_show($node) && user_access('access service links')) { + + $node->service_links = service_links_render($node, TRUE); + + if (!empty($view_modes_allowed) && (in_array($view_mode, $view_modes_allowed))) { + + $node->service_links_rendered = theme('service_links_node_format', array( + 'links' => $node->service_links, + 'label' => variable_get('service_links_label_in_node', t('Bookmark/Search this post with')), + 'view_mode' => $view_mode, + 'node_type' => $node->type, + )); + + $node->content['service_links'] = array( + '#markup' => $node->service_links_rendered, + '#weight' => variable_get('service_links_weight_in_node', 10), + ); + } + + _service_links_link($node, $view_mode); + } +} + +/** + * Create an array of links for the link section. + */ +function _service_links_link($node, $view_mode) { + static $view_modes_allowed; + + if (!isset($view_modes_allowed)) { + $view_modes_allowed = array_filter(variable_get('service_links_link_view_modes', array())); + } + + if (in_array($view_mode, $view_modes_allowed)) { + $links = $node->service_links; + if (!empty($links)) { + $node->content['links']['node']['#links'] = array_merge($node->content['links']['node']['#links'], $links); + } + } +} + +/** + * Implements hook_block_info(). + */ +function service_links_block_info() { + $blocks['service_links'] = array( + 'info' => t('Service links'), + 'cache' => DRUPAL_NO_CACHE, + ); + $blocks['service_links_fisheye'] = array( + 'info' => t('Service links with FishEye effect'), + 'cache' => DRUPAL_NO_CACHE, + ); + $blocks['service_links_not_node'] = array( + 'info' => t('Service links for not-node pages'), + 'cache' => DRUPAL_NO_CACHE, + ); + + return $blocks; +} + +/** + * Implements hook_block_view(). + */ +function service_links_block_view($delta = '') { + $node = menu_get_object('node'); + $block = array(); + + if (user_access('access service links') && (isset($node))) { + if (service_links_show($node)) { + switch ($delta) { + case 'service_links': + $block['subject'] = t('Bookmark/Search this post'); + $style = variable_get('service_links_block_style', SERVICE_LINKS_STYLE_IMAGE_AND_TEXT); + $block['content'] = theme('service_links_block_format', array('items' => service_links_render($node, FALSE, $style), 'style' => $style)); + break; + case 'service_links_fisheye': + $block['subject'] = t('Bookmark/Search this post'); + $block['content'] = theme('service_links_fisheye_format', array('items' => service_links_render($node, FALSE, SERVICE_LINKS_STYLE_FISHEYE))); + break; + } + } + return $block; + } + elseif (user_access('access service links') && (!isset($node))) { + switch ($delta) { + case 'service_links_not_node': + $block['subject'] = t('Bookmark/Search this post'); + $options = array( + 'style' => variable_get('service_links_block_not_node_style', SERVICE_LINKS_STYLE_IMAGE_AND_TEXT), + 'link_to_front' => variable_get('service_links_block_not_node_front', FALSE), + ); + $block['content'] = theme('service_links_block_format', array( + 'items' => service_links_render(NULL, FALSE, $options), + 'style' => $options['style'], + )); + break; + } + return $block; + } +} + +/** + * Implements hook_block_configure(). + */ +function service_links_block_configure($delta = '') { + $form = array(); + switch ($delta) { + case 'service_links': + $form['service_links_block_style'] = array( + '#type' => 'select', + '#title' => t('Style'), + '#description' => t('How the service links will appear in the block.'), + '#default_value' => variable_get('service_links_block_style', SERVICE_LINKS_STYLE_IMAGE_AND_TEXT), + '#options' => array( + SERVICE_LINKS_STYLE_TEXT => t('Text'), + SERVICE_LINKS_STYLE_IMAGE => t('Image'), + SERVICE_LINKS_STYLE_IMAGE_AND_TEXT => t('Image and Text'), + ), + ); + break; + case 'service_links_fisheye': + $form['service_links_path_fisheye'] = array( + '#type' => 'textfield', + '#title' => t('Alternative icon folder'), + '#size' => 60, + '#description' => t('If you have alternative icons write here the path without trailing slash'), + '#default_value' => service_links_expand_path(NULL, 'fisheye'), + ); + break; + case 'service_links_not_node': + $form['service_links_block_not_node_style'] = array( + '#type' => 'select', + '#title' => t('Style'), + '#description' => t('How the service links will appear in the block.'), + '#default_value' => variable_get('service_links_block_not_node_style', SERVICE_LINKS_STYLE_IMAGE_AND_TEXT), + '#options' => array( + SERVICE_LINKS_STYLE_TEXT => t('Text'), + SERVICE_LINKS_STYLE_IMAGE => t('Image'), + SERVICE_LINKS_STYLE_IMAGE_AND_TEXT => t('Image and Text'), + ), + ); + + $form['service_links_block_not_node_front'] = array( + '#type' => 'checkbox', + '#title' => t('Link always to the front page'), + '#description' => t('If selected the services will link always to the front page %front.', array('%front' => url('<front>', array('absolute' => TRUE)))), + '#default_value' => variable_get('service_links_block_not_node_front', FALSE), + ); + break; + } + + return $form; +} + +/** + * Implements hook_block_save(). + */ +function service_links_block_save($delta = '', $edit = array()) { + switch ($delta) { + case 'service_links': + variable_set('service_links_block_style', $edit['service_links_block_style']); + break; + case 'service_links_fisheye': + variable_set('service_links_path_fisheye', $edit['service_links_path_fisheye']); + break; + case 'service_links_not_node': + variable_set('service_links_block_not_node_style', $edit['service_links_block_not_node_style']); + variable_set('service_links_block_not_node_front', $edit['service_links_block_not_node_front']); + break; + } +} + +/** + * Implements hook_theme(). + */ +function service_links_theme() { + return array( + 'service_links_build_link' => array( + 'variables' => array( + 'text' => NULL, + 'url' => array(), + 'image' => NULL, + 'nodelink' => FALSE, + 'style' => NULL, + 'attributes' => array(), + ), + 'file' => 'service_links.theme.inc', + ), + 'service_links_node_format' => array( + 'variables' => array( + 'links' => NULL, + 'label' => NULL, + 'view_mode' => NULL, + 'node_type' => NULL + ), + 'file' => 'service_links.theme.inc', + ), + 'service_links_block_format' => array( + 'variables' => array('items' => NULL, 'style' => SERVICE_LINKS_STYLE_IMAGE_AND_TEXT), + 'file' => 'service_links.theme.inc', + ), + 'service_links_fisheye_format' => array( + 'variables' => array('items' => NULL), + 'file' => 'service_links.theme.inc', + ), + 'service_links_drag_table' => array( + 'render element' => 'form', + ), + ); +} + +/** + * Remove a service from the list if the related module is disabled + * and can't provide the correct values. + */ +function service_links_array_filter($services) { + $result = array(); + + foreach ($services as $service_id => $service) { + if ($service === 1) { + drupal_set_message(t('The service having id "@id" is missing, reactivate its module or save again the list of services.', array('@id' => $service_id)), 'warning', FALSE); + } + else { + $result[$service_id] = $service; + } + } + + return $result; +} + +/** + * Discover all available service links by invoking hook_service_links(). + * + * @param $services + * If NULL, will retrieve all service link information. If an array is passed, + * will only obtain information for the given keyed links. + * @param $reset + * Resets the Service Links cache. + * + * @return + * An array containing information for all the requested services. + */ +function service_links_get_links($services = NULL, $reset = FALSE) { + $links = &drupal_static(__FUNCTION__, NULL); + if (!isset($links) || $reset) { + // Retrieve the links from the cache. + if (!$reset && ($cache = cache_get('service_links_get_links')) && !empty($cache->data)) { + $links = $cache->data; + } + else { + // Create the repository of links. + $links = array(); + foreach (module_implements('service_links') as $module) { + $module_links = module_invoke($module, 'service_links'); + foreach ($module_links as $name => $link) { + $link['module'] = $module; + $links[$name] = $link; + } + } + // Allow alteration of the links. + drupal_alter('service_links', $links); + + // Save the links in the cache. + cache_set('service_links_get_links', $links); + } + } + + // If desired, return only the wanted services. + if (isset($services)) { + // Detect a manual request and populate the array correctly. + if (is_numeric(key($services))) { + $services = array_combine($services, array_fill(0, count($services), 1)); + } + + // Provide only the services requested. + $services = array_merge($services, array_intersect_key($links, $services)); + + // Remove the unknown services. + $services = service_links_array_filter($services); + } + + return isset($services) ? $services : $links; +} + +/** + * Create short links using predefined settings. + */ +function service_links_short_url($url, $nid = NULL) { + switch (variable_get('service_links_short_links_type', SERVICE_LINKS_SHORT_URL_TYPE_NODE)) { + case SERVICE_LINKS_SHORT_URL_TYPE_NODE: + if (empty($nid)) { + return $url; + } + else { + // With alias = true doesn't change the path. + return url("node/$nid", array('absolute' => TRUE, 'alias' => TRUE)); + } + case SERVICE_LINKS_SHORT_URL_TYPE_SERVICE: + if (module_exists('shorten')) { + $turl = shorten_url($url); + } + else { + $turl = drupal_http_request('http://tinyurl.com/api-create.php?url=' . urlencode($url)); + $turl = (isset($turl->data) && ($turl->code == 200)) ? $turl->data : $url; + } + return $turl; + case SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_DOMAIN: + $burl = variable_get('service_links_domain_redirect', NULL); + return url($url, array('absolute' => TRUE, 'base_url' => $burl)); + case SERVICE_LINKS_SHORT_URL_TYPE_REDIRECT_ALL: + $burl = variable_get('service_links_domain_redirect', NULL); + if (empty($nid)) { + return url($url, array('absolute' => TRUE, 'base_url' => $burl)); + } + else { + return url("node/$nid", array('absolute' => TRUE, 'alias' => TRUE, 'base_url' => $burl)); + } + } +} + +/** + * Function that render all the selected services. + * + * @param $node + * Contains the content structured as a node object. + * Use the node_load() function to build one or set + * NULL this variable to consider the current page. + * @param $nodelink + * (optional) It determines the kind of render. + * If TRUE the function return an array of items + * compatible with the standard Drupal link section. + * If FALSE return an array of HTML links. + * Default is FALSE. + * @param $options + * (optional) Can assume the value of a valid service + * style either an array containing the settings + * to override (look at _service_links_load_settings() + * for more details). + * + * @return + * An array of HTML links if $nodelink = FALSE, an array + * of structured links to be themed with theme_links() + * if $nodelink = TRUE. + */ +function service_links_render($node, $nodelink = FALSE, $options = NULL) { + $links = array('weight' => array(), 'link' => array()); + $settings = _service_links_load_settings(); + + if (empty($settings['link_show'])) { + return array(); + } + + if (isset($options)) { + if (!is_array($options)) { + $options = array('style' => $options); + } + $settings = array_merge($settings, $options); + } + + _service_links_get_tags($node, $settings); + + // Services are filtered in _service_links_load_settings(). + $services = service_links_get_links($settings['link_show']); + + foreach ($services as $service_id => $service) { + // Load the position. + $links['weight'][] = isset($settings['link_weight'][$service_id]) ? $settings['link_weight'][$service_id] : 0; + + // Render the Service. + $links['link'] += _service_links_render($service_id, $service, $settings, $nodelink, $node); + } + + if (!empty($links['link'])) { + array_multisort($links['weight'], $links['link']); + } + + return !empty($links['link']) ? $links['link'] : array(); +} + +/** + * This function render only the services requested + * by their id. + * + * @param $service_ids + * The list of requested services, can be just a + * string, for a single services, or an array of + * id, don't need enable them on the admin page. + * @param $node + * Contains the content structured as a node object. + * Use the node_load() function to build one or set + * NULL this variable to consider the current page. + * @param $nodelink + * (optional) It determines the kind of render. + * If TRUE the function return an array of items + * compatible with the standard Drupal link section. + * If FALSE return an array of HTML links. + * Default is FALSE. + * @param $options + * (optional) Can assume the value of a valid service + * style either an array containing the settings + * to override (look at _service_links_load_settings() + * for more details). + * + * @return + * An array of HTML links if $nodelink = FALSE, an array + * of structured links to be themed with theme_links() + * if $nodelink = TRUE. + */ +function service_links_render_some($service_ids, $node = NULL, $nodelink = FALSE, $options = NULL) { + if (is_array($service_ids)) { + $services = service_links_get_links($service_ids); + } + else { + $services = service_links_get_links(array($service_ids)); + } + + if (empty($services)) { + return array(); + } + + $settings = _service_links_load_settings(); + if (isset($options)) { + if (!is_array($options)) { + $options = array('style' => $options); + } + $settings = array_merge($settings, $options); + } + + _service_links_get_tags($node, $settings); + + $links = array(); + foreach ($services as $service_id => $service) { + $links += _service_links_render($service_id, $service, $settings, $nodelink, $node); + } + + return $links; +} + +/** + * The common render function used privately. + */ +function _service_links_render($service_id, $service, $settings, $nodelink, $node = NULL) { + if (isset($service['preset'])) { + if (function_exists($function = $service['preset'])) { + $function($service, $settings, $node); + } + } + + // On Drupal 7 this tag should be filled before the split otherwise will be lost. + $service['link'] = str_replace('<front-page>', $settings['subst']['front-page'], $service['link']); + + if (strpos($service['link'], '=') === FALSE) { + $service['url'] = array($service['link']); + } + else { + $service['url'] = preg_split('/\?/', $service['link']); + } + + if (count($service['url']) > 1) { + $service['url'][1] = service_links_get_query($service['url'][1]); + $service['url'][1] = str_replace($settings['tag'], $settings['subst'], $service['url'][1]); + } + else { + $service['url'][0] = str_replace($settings['tag'], $settings['subst'], $service['url'][0]); + } + + $service['attributes']['title'] = t($service['description']); + $class = str_replace(array('][', '_', ' '), '-', 'service_links-'. $service_id); + $service['attributes']['class'] = isset($service['attributes']['class']) ? array_merge($service['attributes']['class'], array($class)) : array($class); + $service['attributes'] += $settings['attributes']; + + $service['icon'] = isset($service['icon']) ? $service['icon'] : "$service_id.png"; + + $service_id = str_replace('_', '-', 'service_links_'. $service_id); + + // Check if a predefined style should be imposed. + if (empty($service['style'])) { + $service['style'] = $settings['style']; + } + + // Add the related JavaScript and CSS. + if (isset($service['javascript'])) { + _service_links_add_js($service['javascript']); + } + if (isset($service['css'])) { + drupal_add_css(service_links_expand_path($service['css'], 'css')); + } + + // Invoke callback function. + if (isset($service['callback'])) { + if (function_exists($function = $service['callback'])) { + $function($service, $settings['subst']); + } + } + + // Create the HTML. + $link = theme('service_links_build_link', array( + 'text' => t($service['name']), + 'url' => $service['url'], + 'image' => $service['icon'], + 'nodelink' => $nodelink, + 'style' => $service['style'], + 'attributes' => $service['attributes'], + )); + + return array($service_id => $link); +} + +/** + * Load correctly the needed javascripts. + */ +function _service_links_add_js($javascript) { + global $is_https; + static $external_js; + + if (!is_array($javascript)) { + $javascript = array($javascript); + } + + if (!isset($external_js)) { + $external_js = array(); + } + + foreach ($javascript as $js) { + if (strpos($js, '://') !== FALSE) { + if ($is_https) { + // Ensure that we embed the https js library. + $js = str_replace('http://', 'https://', $js); + } + + if (!in_array($js, $external_js)) { + drupal_add_js($js, array('type' => 'external')); + $external_js[] = $js; + } + } + else { + drupal_add_js(service_links_expand_path($js, 'javascript')); + } + } +} + +/** + * Fill an array with tags and the content to substitute. + */ +function _service_links_get_tags($node, &$settings) { + if (!empty($node)) { + $title = _service_links_get_node_title($node, $settings); + + $path = _service_links_get_node_path($node); + $url = url("$path", array('absolute' => TRUE, 'query' => service_links_get_query($settings['text_to_append']))); + + $query = drupal_get_path_alias("node/{$node->nid}"); + + $body = field_get_items('node', $node, 'body'); + $teaser = $body ? strip_tags(text_summary($body[0]['value'])) : ''; + + $nid = $node->nid; + } + elseif (isset($settings['data'])) { + $title = isset($settings['data']['title']) ? $settings['data']['title'] : ''; + $url = isset($settings['data']['url']) ? $settings['data']['url'] : ''; + $query = isset($settings['data']['query']) ? $settings['data']['query'] : ''; + $teaser = isset($settings['data']['teaser']) ? $settings['data']['teaser'] : ''; + $nid = isset($settings['data']['node_id']) ? $settings['data']['node_id'] : NULL; + } + else { + $title = drupal_get_title(); + + $url = _service_links_get_page_url(NULL, $settings); + + // The query shouldn't follow the front_page alias but point the original page. + $query = drupal_get_normal_path($_GET['q']); + + $teaser = ''; + $nid = NULL; + } + + $source = variable_get('site_name', 'Drupal'); + + $long_url = $url; + + $front_page = url('<front>', array('absolute' => TRUE)); + if ((variable_get('clean_url', 0) == 0) && (strpos($front_page, '?q=') === FALSE)) { + $front_page .= '?q='; + } + else { + // Ensure a trailing slash on multilingual sites with clean url on. + $front_page = preg_replace('/([0-9a-z-_]+)$/i', '\1/', $front_page); + } + + switch ($settings['short_links_use']) { + case SERVICE_LINKS_SHORT_URL_USE_NEVER: + $short_url = $url; + break; + case SERVICE_LINKS_SHORT_URL_USE_WHEN_REQUESTED: + $short_url = service_links_short_url($url, $nid); + break; + case SERVICE_LINKS_SHORT_URL_USE_ALWAYS: + $short_url = service_links_short_url($url, $nid); + $url = $short_url; + break; + } + + $settings['tag'] = array( + 'raw-encoded-title' => '<raw-encoded-title>', + 'raw-encoded-url' => '<raw-encoded-url>', + 'raw-encoded-teaser' => '<raw-encoded-teaser>', + 'raw-encoded-short-url' => '<raw-encoded-short-url>', + 'raw-encoded-long-url' => '<raw-encoded-long-url>', + 'raw-encoded-query' => '<raw-encoded-query>', + 'raw-encoded-source' => '<raw-encoded-source>', + 'encoded-title' => '<encoded-title>', + 'encoded-url' => '<encoded-url>', + 'encoded-teaser' => '<encoded-teaser>', + 'encoded-short-url' => '<encoded-short-url>', + 'encoded-long-url' => '<encoded-long-url>', + 'encoded-query' => '<encoded-query>', + 'encoded-source' => '<encoded-source>', + 'teaser' => '<teaser>', + 'short-url' => '<short-url>', + 'long-url' => '<long-url>', + 'source' => '<source>', + 'node-id' => '<node-id>', + 'query' => '<query>', + 'url' => '<url>', + 'title' => '<title>', + 'front-page' => '<front-page>', + ); + $settings['subst'] = array( + //'raw-encoded-title' => rawurlencode($title), + 'raw-encoded-title' => $title, + //'raw-encoded-url' => rawurlencode($url), + 'raw-encoded-url' => $url, + //'raw-encoded-teaser' => rawurlencode($teaser), + 'raw-encoded-teaser' => $teaser, + //'raw-encoded-short-url' => rawurlencode($short_url), + 'raw-encoded-short-url' => $short_url, + //'raw-encoded-long-url' => rawurlencode($long_url), + 'raw-encoded-long-url' => $long_url, + //'raw-encoded-query' => rawurlencode($query), + 'raw-encoded-query' => $query, + //'raw-encoded-source' => rawurlencode($source), + 'raw-encoded-source' => $source, + //'encoded-title' => urlencode($title), + 'encoded-title' => $title, + //'encoded-url' => urlencode($url), + 'encoded-url' => $url, + //'encoded-teaser' => urlencode($teaser), + 'encoded-teaser' => $teaser, + //'encoded-short-url' => urlencode($short_url), + 'encoded-short-url' => $short_url, + //'encoded-long-url' => urlencode($long_url), + 'encoded-long-url' => $long_url, + //'encoded-query' => urlencode($query), + 'encoded-query' => $query, + //'encoded-source' => urlencode($source), + 'encoded-source' => $source, + //Not needed + 'teaser' => $teaser, + 'short-url' => $short_url, + 'long-url' => $long_url, + 'source' => $source, + 'node-id' => $nid, + 'query' => $query, + 'url' => $url, + 'title' => $title, + 'front-page' => $front_page, + ); +} + +/** + * Return the url for not-node pages. + */ +function _service_links_get_page_url($node, $settings) { + if ($settings['link_to_front'] || drupal_is_front_page()) { + $url = url('<front>', array('absolute' => TRUE, 'query' => service_links_get_query($settings['text_to_append']))); + } + else { + $url = url($_GET['q'], array('absolute' => TRUE, 'query' => service_links_get_query($settings['text_to_append']))); + } + + return $url; +} + +/** + * Return the properly title. + */ +function _service_links_get_node_title($node, $settings) { + $title = isset($node->title) ? $node->title : ''; + + switch ($settings['title_override']) { + case SERVICE_LINKS_TAG_TITLE_NODE: + break; + case SERVICE_LINKS_TAG_TITLE_OVERRIDE: + $title = str_replace('<title>', $title, $settings['title_text']); + break; + case SERVICE_LINKS_TAG_TITLE_TOKEN: + $title = token_replace($settings['title_text'], array('node' => $node)); + break; + } + + return $title; +} + +/** + * Detect if the node is used as front page and provide + * the path to use. + */ +function _service_links_get_node_path($node) { + static $front_page; + + if (!isset($front_page)) { + $front_page = variable_get('site_frontpage', 'node'); + } + + $path = "node/$node->nid"; + if (($path == $front_page) || (isset($node->uri) && ((object)$node->uri['path'] == $front_page))) { + $path = '<front>'; + } + + return $path; +} + +/** + * Check if the service links should be displayed for the content type, + * for category or one of the other selected options. + */ +function service_links_show($node) { + $links_show = FALSE; + $category_type = FALSE; + global $user; + + if (!_service_links_match_path()) { + return FALSE; + } + + if (in_array(strtolower(arg(0)), array('print', 'printpdf', 'printmail'))) { + return FALSE; + } + + if (variable_get('service_links_hide_for_author', FALSE) && ($user->uid == $node->uid)) { + return FALSE; + } + + if (variable_get('service_links_hide_if_unpublished', FALSE) && ($node->status == '0')) { + return FALSE; + } + + $node_type = in_array($node->type, variable_get('service_links_node_types', array()), TRUE); + if (module_exists('taxonomy') && !empty($node->field_tags)) { + $categories_allowed = variable_get('service_links_category_types', array()); + $language = isset($node->field_tags[$node->language]) ? $node->language : 'und'; + + foreach ($node->field_tags[$language] as $term) { + $category_type |= in_array($term['tid'], $categories_allowed, FALSE); + } + } + if ($node_type || $category_type) { + $links_show = TRUE; + } + + return $links_show; +} + +/** + * Match the current path with the list or the code + * inserted in the configuration page. + */ +function _service_links_match_path() { + static $page_match; + + if (isset($page_match)) { + return $page_match; + } + + $pages = variable_get('service_links_page_match_for_node', ''); + $visibility = variable_get('service_links_visibility_for_node', SERVICE_LINKS_VISIBILITY_NOT_LISTED); + if (!empty($pages)) { + // Convert path to lowercase. This allows comparison of the same path + // with different case. Ex: /Page, /page, /PAGE. + $pages = drupal_strtolower($pages); + + if ($visibility < SERVICE_LINKS_VISIBILITY_PHP) { + $path = drupal_strtolower(drupal_get_path_alias($_GET['q'])); + // Compare with the internal and path alias (if any). + $page_match = drupal_match_path($path, $pages); + if ($path != $_GET['q']) { + $page_match = $page_match || drupal_match_path($_GET['q'], $pages); + } + // When $visibility has a value of 0, the links are displayed on + // all pages except those listed in $pages. When set to 1, it + // is displayed only on those pages listed in $pages. + $page_match = !($visibility xor $page_match); + } + elseif (module_exists('php')) { + $page_match = php_eval($pages); + } + else { + $page_match = FALSE; + } + } + else { + $page_match = TRUE; + } + + return $page_match; +} + +/** + * Load the static settings and keep clear the render function. + */ +function _service_links_load_settings() { + static $settings = NULL; + + if (!isset($settings)) { + $settings['short_links_use'] = variable_get('service_links_short_links_use', SERVICE_LINKS_SHORT_URL_USE_NEVER); + + $settings['attributes'] = array('rel' => 'nofollow'); + if (variable_get('service_links_new_window', 0)) { + $settings['attributes'] += array('target' => '_blank'); + } + $settings['style'] = variable_get('service_links_style', SERVICE_LINKS_STYLE_TEXT); + + $settings['link_weight'] = variable_get('service_links_weight', array()); + $settings['link_show'] = array_filter(variable_get('service_links_show', array())); + + $settings['text_to_append'] = strip_tags(variable_get('service_links_append_to_url', '')); + + $settings['title_override'] = variable_get('service_links_override_title', SERVICE_LINKS_TAG_TITLE_NODE); + $settings['title_text'] = variable_get('service_links_override_title_text', '<title>'); + + $settings['link_to_front'] = FALSE; + } + + return $settings; +} + +/** + * Expand the path around a filename depending from the context. + * + * @param $filename + * If NULL the function return only the path with trailing slash. + * @param $context + * Define what path should consider this function. + * @param $default + * Concerning the image path is useful define a default path if + * the alternative is not set up. + * + * @return + * A string with the full filename or the path. + */ +function service_links_expand_path($filename = NULL, $context = 'icons', $default = 'preset') { + static $sl_paths; + static $sl_checkpath; + + if (strpos($filename, '/') !== FALSE) { + return $filename; + } + + if (!isset($sl_paths)) { + $sl_paths['base'] = drupal_get_path('module', 'service_links'); + + $sl_paths += array( + 'preset' => $sl_paths['base'] .'/images', + 'javascript' => $sl_paths['base'] .'/js', + 'css' => $sl_paths['base'] .'/css', + ); + + $sl_checkpath = array( + 'preset' => FALSE, + 'javascript' => FALSE, + 'css' => FALSE, + ); + } + + if (!isset($sl_paths[$context])) { + $sl_paths[$context] = variable_get("service_links_path_{$context}", ''); + if (empty($sl_paths[$context])) { + $sl_paths[$context] = $sl_paths[$default]; + } + + $sl_checkpath[$context] = variable_get("service_links_check_{$context}", FALSE); + } + + if (isset($filename)) { + if ($sl_checkpath[$context]) { + if (file_exists($sl_paths[$context] .'/'. $filename)) { + return $sl_paths[$context] .'/'. $filename; + } + else { + return $sl_paths[$default] .'/'. $filename; + } + } + else { + return $sl_paths[$context] .'/'. $filename; + } + } + else { + return $sl_paths[$context]; + } +} + +/** + * Split a query string in the properly array. + */ +function service_links_get_query($query_str) { + if (empty($query_str)) { + return NULL; + } + $result = array(); + + // parse_str() replaces dots and squares with underscores. + $query_str = explode('&', $query_str); + foreach($query_str as $q) { + $key_value = explode('=', $q); + $result[$key_value[0]] = isset($key_value[1]) ? $key_value[1] : ''; + } + + return $result; +} + +/** + * Implements hook_views_api(). + */ +function service_links_views_api() { + return array( + 'api' => 2, + 'path' => drupal_get_path('module', 'service_links'), + ); +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.theme.inc b/web/sites/all/modules/contrib/service_links/service_links.theme.inc new file mode 100644 index 0000000..3e1e4f9 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.theme.inc @@ -0,0 +1,161 @@ +<?php + +/** + * @file + * Theme function used by Service Links. + */ + +/** + * Build a single link following the style rules. + */ +function theme_service_links_build_link($variables) { + $text = $variables['text']; + $url = $variables['url']; + $image = $variables['image']; + $nodelink = $variables['nodelink']; + $style = $variables['style']; + $attributes = $variables['attributes']; + + if ($nodelink) { + $query = isset($url[1]) ? $url[1] : NULL; + + switch ($style) { + case SERVICE_LINKS_STYLE_TEXT: + $link = array( + 'title' => $text, + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + ); + break; + case SERVICE_LINKS_STYLE_IMAGE: + $alt_text = t('!name logo', array('!name' => $text)); + $link = array( + 'title' => theme('image', array('path' => service_links_expand_path($image), 'alt' => $alt_text)), + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + 'html' => TRUE, + ); + break; + case SERVICE_LINKS_STYLE_IMAGE_AND_TEXT: + $alt_text = t('!name logo', array('!name' => $text)); + $link = array( + 'title' => theme('image', array('path' => service_links_expand_path($image), 'alt' => $alt_text)) .' '. $text, + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + 'html' => TRUE, + ); + break; + case SERVICE_LINKS_STYLE_EMPTY: + $link = array( + 'title' => '<span class="element-invisible">' . $text . '</span>', + 'href' => $url[0], + 'query' => $query, + 'attributes' => $attributes, + 'html' => TRUE, + ); + break; + default: + $link = theme($style, $variables); + } + } + else { + $attributes = array('attributes' => $attributes); + if (isset($url[1])) { + $attributes['query'] = $url[1]; + } + + switch ($style) { + case SERVICE_LINKS_STYLE_TEXT: + $link = l($text, $url[0], $attributes); + break; + case SERVICE_LINKS_STYLE_IMAGE: + $attributes['html'] = TRUE; + $alt_text = t('!name logo', array('!name' => $text)); + $link = l(theme('image', array('path' => service_links_expand_path($image), 'alt' => $alt_text)), $url[0], $attributes); + break; + case SERVICE_LINKS_STYLE_IMAGE_AND_TEXT: + $attributes['html'] = TRUE; + $alt_text = t('!name logo', array('!name' => $text)); + $link = l(theme('image', array('path' => service_links_expand_path($image), 'alt' => $alt_text)) .' '. $text, $url[0], $attributes); + break; + case SERVICE_LINKS_STYLE_EMPTY: + $attributes['html'] = TRUE; + $link = l('<span class="element-invisible">' . $text . '</span>', $url[0], $attributes); + break; + case SERVICE_LINKS_STYLE_FISHEYE: + $attributes['attributes']['class'] = isset($attributes['attributes']['class']) ? array_merge($attributes['attributes']['class'], array('fisheyeItem')) : array('fisheyeItem'); + $attributes['html'] = TRUE; + $link = l(theme('image', array('path' => service_links_expand_path($image, 'fisheye'), 'alt' => $text, 'getsize' => FALSE)) .'<span>'. $text .'</span>', $url[0], $attributes); + break; + default: + $link = theme($style, $variables); + } + } + + return $link; +} + +/** + * Format the items shown in the node. + */ +function theme_service_links_node_format($variables) { + $links = $variables['links']; + $label = $variables['label']; + $view_mode = $variables['view_mode']; + $node_type = $variables['node_type']; + + if ($view_mode == 'rss') { + $result = array(); + foreach($links as $l) { + $result[] = l($l['title'], $l['href'], $l); + } + + return '<div class="service-links">' . implode(' ', $result) . '</div>'; + } + + if (isset($label) && !empty($label)) { + return '<div class="service-links"><div class="service-label">'. t('@label', array('@label' => $label)) .' </div>'. theme('links', array('links' => $links)) .'</div>'; + } + else { + return '<div class="service-links">'. theme('links', array('links' => $links)) .'</div>'; + } +} + +/** + * Format the items shown in one of the provided blocks. + */ +function theme_service_links_block_format($variables) { + $items = $variables['items']; + $style = $variables['style']; + + if (empty($items)) { + return; + } + + switch ($style) { + case SERVICE_LINKS_STYLE_IMAGE: + $output = implode(' ', $items); + break; + default: + $output = theme('item_list', array('items' => array_values($items))); + break; + } + + return '<div class="service-links">' . $output . '</div>'; +} + +/** + * Format the items shown in the Fisheye block. + */ +function theme_service_links_fisheye_format($variables) { + $items = $variables['items']; + + drupal_add_js(service_links_expand_path('interface.js', 'javascript'), array('weight' => 90)); + drupal_add_js(service_links_expand_path('service_links_fisheye.js', 'javascript'), array('weight' => 90)); + drupal_add_css(service_links_expand_path('service_links_fisheye.css', 'css')); + + return "<div class=\"fisheye\"><div class=\"fisheyeContainer\">\r\n". implode("\r\n", $items) ."\r\n</div></div>"; +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.variable.inc b/web/sites/all/modules/contrib/service_links/service_links.variable.inc new file mode 100644 index 0000000..983c9ce --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.variable.inc @@ -0,0 +1,15 @@ +<?php + +/** + * Implements hook_variable_info(). + */ +function service_links_variable_info($options) { + + $variable['service_links_label_in_node'] = array( + 'title' => t('Print this label', array(), $options), + 'description' => t('Label for service links in nodes', array(), $options), + 'type' => 'string', + ); + + return $variable; +} diff --git a/web/sites/all/modules/contrib/service_links/service_links.views.inc b/web/sites/all/modules/contrib/service_links/service_links.views.inc new file mode 100644 index 0000000..d80be92 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links.views.inc @@ -0,0 +1,38 @@ +<?php + +/** + * @file + * Provide views data and handlers for custom_teasers_views.module + */ + +/** + * Implements hook_views_data(). + */ +function service_links_views_data() { + // We're registering the 'custom_teasers' table. + $data['node']['service_links'] = array( + 'title' => t('Service links'), + 'help' => t('Display links to social sharing websites like Digg, del.icio.us, reddit, Technorati etc..'), + 'field' => array( + 'handler' => 'service_links_handler_field_service_links', + ), + ); + + return $data; +} + +/** + * Implements hook_views_handlers(). + */ +function service_links_views_handlers() { + return array( + 'info' => array( + 'path' => drupal_get_path('module', 'service_links'), + ), + 'handlers' => array( + 'service_links_handler_field_service_links' => array( + 'parent' => 'views_handler_field', + ), + ), + ); +} diff --git a/web/sites/all/modules/contrib/service_links/service_links_handler_field_service_links.inc b/web/sites/all/modules/contrib/service_links/service_links_handler_field_service_links.inc new file mode 100644 index 0000000..6bda474 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/service_links_handler_field_service_links.inc @@ -0,0 +1,42 @@ +<?php + +/** + * @file + * A handler to provide a service links field for a particular node. + * + * @ingroup views_field_handlers + */ +class service_links_handler_field_service_links extends views_handler_field { + function construct() { + parent::construct(); + } + + function query() { + $this->ensure_my_table(); + $this->add_additional_fields(); + } + + function option_definition() { + $options = parent::option_definition(); + + return $options; + } + + function options_form(&$form, &$form_state) { + parent::options_form($form, $form_state); + + // Remove the alteration stuff + unset($form['alter']); + } + + function render($values) { + if (isset($values->_field_data['nid']['entity'])) { + $node = $values->_field_data['nid']['entity']; + } + else { + $node = NULL; + } + + return theme('links', array('links' => service_links_render($node, TRUE))); + } +} diff --git a/web/sites/all/modules/contrib/service_links/services/basque_services.info b/web/sites/all/modules/contrib/service_links/services/basque_services.info new file mode 100644 index 0000000..d6063fe --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/basque_services.info @@ -0,0 +1,12 @@ +name = Basque Services +description = Provide the Basque Services: Zabaldu, Bildu, Aupatu +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/basque_services.module b/web/sites/all/modules/contrib/service_links/services/basque_services.module new file mode 100644 index 0000000..01b7cfc --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/basque_services.module @@ -0,0 +1,33 @@ +<?php + +/** + * @file + * Extends Service Links with Basque services. + * + * @author Aiaraldea + */ + +/** + * Implements hook_service_links(). + */ +function basque_services_service_links() { + $links = array(); + + $links['_eu_zabaldu'] = array( + 'name' => 'Zabaldu', + 'description' => t('Add a new on Zabaldu'), + 'link' => 'http://zabaldu.com/api/zabaldu_edo_bozkatu.php?url=<encoded-url>&title=<encoded-title>', + ); + $links['_eu_bildu'] = array( + 'name' => 'Bildu', + 'description' => t('Bookmark this post on Bildu'), + 'link' => 'http://www.bildu.net/bookmarks/bildu?action=add&address=<encoded-url>&title=<encoded-title>', + ); + $links['_eu_aupatu'] = array( + 'name' => 'Aupatu', + 'description' => t('Add a new on Aupatu'), + 'link' => 'http://www.aupatu.com/eu/submit.php?url=<encoded-url>&title=<encoded-title>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/dutch_services.info b/web/sites/all/modules/contrib/service_links/services/dutch_services.info new file mode 100644 index 0000000..8da40e9 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/dutch_services.info @@ -0,0 +1,12 @@ +name = Dutch Services +description = Provide the Dutch Services: eKudos, Hyves, Nujij +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/dutch_services.module b/web/sites/all/modules/contrib/service_links/services/dutch_services.module new file mode 100644 index 0000000..7a10fd9 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/dutch_services.module @@ -0,0 +1,33 @@ +<?php + +/** + * @file + * Extends Service Links with Dutch services. + * + * @author Kasper Souren + */ + +/** + * Implements hook_service_links(). + */ +function dutch_services_service_links() { + $links = array(); + + $links['_nl_nujij'] = array( + 'name' => 'Nujij', + 'description' => t('Add to nujij'), + 'link' => 'http://nujij.nl/jij.lynkx?t=<encoded-title>&u=<encoded-url>', + ); + $links['_nl_ekudos'] = array( + 'name' => 'eKudos', + 'description' => t('Bookmark this post on eKudos'), + 'link' => 'http://www.ekudos.nl/artikel/nieuw?url=<encoded-url>&title=<encoded-title>', + ); + $links['_nl_hyves'] = array( + 'name' => 'Hyves', + 'description' => t('Tip this on Hyves'), + 'link' => 'http://www.hyves-share.nl/button/tip/?tipcategoryid=12&rating=5&title=<encoded-title>&body=Bron%3A%20%5Burl%3D<encoded-url>%5D<encoded-url>%5B%2Furl%5D', + ); + + return $links; +} \ No newline at end of file diff --git a/web/sites/all/modules/contrib/service_links/services/farsi_services.info b/web/sites/all/modules/contrib/service_links/services/farsi_services.info new file mode 100644 index 0000000..00d1928 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/farsi_services.info @@ -0,0 +1,12 @@ +name = Farsi Services +description = Provide the Farsi services: Balatarin, Donbaleh, Friendfa, Viwio. +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/farsi_services.module b/web/sites/all/modules/contrib/service_links/services/farsi_services.module new file mode 100644 index 0000000..9bccc83 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/farsi_services.module @@ -0,0 +1,38 @@ +<?php + +/** + * @file + * Extends Service Links with Farsi services. + * + * @author lameei + */ + +/** + * Implements hook_service_links(). + */ +function farsi_services_service_links() { + $links = array(); + + $links['_fa_balatarin'] = array( + 'name' => 'Balatarin', + 'description' => t('Bookmark this post on balatarin'), + 'link' => 'http://balatarin.com/links/submit?phase=2&url=<raw-encoded-url>&title=<raw-encoded-title>', + ); + $links['_fa_donbaleh'] = array( + 'name' => 'Donbaleh', + 'description' => t('Bookmark this post on donbaleh'), + 'link' => 'http://donbaleh.com/submit.php?url=<encoded-url>&subject=<encoded-title>', + ); + $links['_fa_friendfa'] = array( + 'name' => 'Friendfa', + 'description' => t('Bookmark this post on friendfa'), + 'link' => 'http://www.friendfa.com/share?status=<encoded-title>&url=<encoded-url>', + ); + $links['_fa_viwio'] = array( + 'name' => 'Viwio', + 'description' => t('Share this on Viwio'), + 'link' => 'http://www.viwio.com/home/?status=<encoded-title> <encoded-url>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/favorite_services.info b/web/sites/all/modules/contrib/service_links/services/favorite_services.info new file mode 100644 index 0000000..3cd1f99 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/favorite_services.info @@ -0,0 +1,12 @@ +name = Favorite Services +description = Add the page in your favorite, work with Chrome, Firefox, IE, Opera +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/favorite_services.module b/web/sites/all/modules/contrib/service_links/services/favorite_services.module new file mode 100644 index 0000000..8f5fcf6 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/favorite_services.module @@ -0,0 +1,23 @@ +<?php + +/** + * @file + * Extends Service Links with browser bookmarking. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function favorite_services_service_links() { + $links['favorite'] = array( + 'name' => t('Favorite'), + 'description' => t('Add this page in your favorites'), + 'link' => '<url>&favtitle=<raw-encoded-title>', + 'attributes' => array('style' => 'display:none;'), + 'javascript' => 'favorite_services.js', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/forward_services.info b/web/sites/all/modules/contrib/service_links/services/forward_services.info new file mode 100644 index 0000000..aecb008 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/forward_services.info @@ -0,0 +1,13 @@ +name = Forward Services +description = Add the support for Forward module which send the link through email. +core = 7.x +package = Service Links - Services +dependencies[] = service_links +dependencies[] = forward + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/forward_services.module b/web/sites/all/modules/contrib/service_links/services/forward_services.module new file mode 100644 index 0000000..983b09c --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/forward_services.module @@ -0,0 +1,30 @@ +<?php + +/** + * @file + * Extends Service Links with Forward module support. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function forward_services_service_links() { + $links = array(); + + $links['forward'] = array( + 'name' => 'Forward', + 'link' => (variable_get('clean_url', 0) == 1) ? '<front-page>forward?path=<encoded-query>' : '<front-page>forward&path=<encoded-query>', + 'description' => t('Send to a friend'), + 'preset' => 'forward_url_fix', + ); + + return $links; +} + +function forward_url_fix(&$service, &$settings, $node = NULL) { + if (isset($node->nid)) { + $service['link'] = str_replace('<encoded-query>', 'node/<node-id>', $service['link']); + } +} diff --git a/web/sites/all/modules/contrib/service_links/services/general_services.info b/web/sites/all/modules/contrib/service_links/services/general_services.info new file mode 100644 index 0000000..043aa7d --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/general_services.info @@ -0,0 +1,12 @@ +name = General Services +description = Blinklist, Box, del.icio.us, Digg, Diigo, Facebook, Furl, Google Bookmark, Google Plus, Icerocket, Identi.ca, Linkedin, Mister Wong, Mixx, MySpace, Newsvine, Newskicks, Phing this, Reddit, StumbleUpon, Technorati, Twitter, Yahoo +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/general_services.module b/web/sites/all/modules/contrib/service_links/services/general_services.module new file mode 100644 index 0000000..d6f14ad --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/general_services.module @@ -0,0 +1,145 @@ +<?php + +/** + * @file + * Extends Service Links with the most known services. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function general_services_service_links() { + $links = array(); + + $links['delicious'] = array( + 'name' => 'del.icio.us', + 'description' => t('Bookmark this post on del.icio.us'), + 'link' => 'http://del.icio.us/post?url=<encoded-url>&title=<encoded-title>', + ); + $links['digg'] = array( + 'name' => 'Digg', + 'description' => t('Digg this post on digg.com'), + 'link' => 'http://digg.com/submit?phase=2&url=<encoded-url>&title=<encoded-title>', + ); + $links['stumbleupon'] = array( + 'name' => 'StumbleUpon', + 'description' => t('Thumb this up at StumbleUpon'), + 'link' => 'http://www.stumbleupon.com/submit?url=<encoded-url>&title=<encoded-title>', + 'icon' => 'stumbleit.png', + ); + $links['twitter'] = array( + 'name' => 'Twitter', + 'description' => t('Share this on Twitter'), + 'link' => 'http://twitter.com/share?url=<raw-encoded-short-url>&text=<raw-encoded-title>', + ); + $links['pingthis'] = array( + 'name' => 'Ping This!', + 'link' => 'http://ping.fm/ref/?link=<encoded-url>&title=<encoded-title>&body=<encoded-teaser>', + 'description' => t('Submit to Ping.fm'), + ); + $links['reddit'] = array( + 'name' => 'Reddit', + 'link' => 'http://reddit.com/submit?url=<encoded-url>&title=<encoded-title>', + 'description' => t('Submit this post on reddit.com'), + ); + $links['slashdot'] = array( + 'name' => 'SlashDot', + 'link' => 'http://slashdot.org/bookmark.pl?url=<encoded-url>&title=<encoded-title>', + 'description' => t('Bookmark this post on SlashDot'), + ); + $links['newsvine'] = array( + 'name' => 'Newsvine', + 'link' => 'http://www.newsvine.com/_tools/seed&save?u=<encoded-url>&h=<encoded-title>', + 'description' => t('Submit this post on newsvine.com'), + ); + $links['furl'] = array( + 'name' => 'Furl', + 'link' => 'http://www.furl.net/storeIt.jsp?u=<encoded-url>&t=<encoded-title>', + 'description' => t('Submit this post on furl.net'), + ); + $links['facebook'] = array( + 'name' => 'Facebook', + 'link' => 'http://www.facebook.com/sharer.php?u=<encoded-url>&t=<encoded-title>', + 'description' => t('Share on Facebook'), + ); + $links['myspace'] = array( + 'name' => 'MySpace', + 'link' => 'http://www.myspace.com/index.cfm?fuseaction=postto&t=<encoded-title>&u=<encoded-url>', + 'description' => t('Share on MySpace'), + ); + $links['google'] = array( + 'name' => 'Google', + 'link' => 'http://www.google.com/bookmarks/mark?op=add&bkmk=<encoded-url>&title=<encoded-title>', + 'description' => t('Bookmark this post on Google'), + ); + $links['google_plus'] = array( + 'name' => 'Google+', + 'link' => 'https://plus.google.com/share?url=<encoded-url>', + 'description' => t('Share this on Google+'), + ); + $links['yahoo'] = array( + 'name' => 'Yahoo', + 'link' => 'http://bookmarks.yahoo.com/myresults/bookmarklet?u=<encoded-url>&t=<encoded-title>', + 'description' => t('Bookmark this post on Yahoo'), + ); + $links['linkedin'] = array( + 'name' => 'LinkedIn', + 'link' => 'http://www.linkedin.com/shareArticle?mini=true&url=<encoded-url>&title=<encoded-title>&summary=<encoded-teaser>&source=<encoded-source>', + 'description' => t('Publish this post to LinkedIn'), + ); + $links['technorati'] = array( + 'name' => 'Technorati', + 'link' => 'http://technorati.com/search/<encoded-url>', + 'description' => t('Search Technorati for links to this post'), + ); + $links['technorati_favorite'] = array( + 'name' => 'Favorite on Technorati', + 'link' => 'http://technorati.com/faves?sub=addfavbtn&add=<encoded-url>', + 'description' => t('Add this post to your Technorati Favorites'), + 'icon' => 'technorati.png', + ); + $links['icerocket'] = array( + 'name' => 'Icerocket', + 'link' => 'http://blogs.icerocket.com/search?q=<encoded-url>', + 'description' => t('Search IceRocket for links to this post'), + ); + $links['misterwong'] = array( + 'name' => 'Mister Wong', + 'link' => 'http://www.mister-wong.com/addurl/?bm_url=<encoded-url>&bm_description=<encoded-title>', + 'description' => t('Bookmark this post on Mister Wong'), + ); + $links['mixx'] = array( + 'name' => 'Mixx', + 'link' => 'http://www.mixx.com/submit?page_url=<encoded-url>&title=<encoded-title>', + 'description' => t('Submit this post on mixx.com'), + ); + $links['box'] = array( + 'name' => 'Box', + 'link' => 'https://www.box.net/api/1.0/import?url=<encoded-url>&name=<encoded-title>&description=<encoded-teaser>&import_as=link', + 'description' => t('Box it!'), + ); + $links['blinklist'] = array( + 'name' => 'Blinklist', + 'link' => 'http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=<encoded-teaser>&Url=<encoded-url>&Title=<encoded-title>&Pop=yes', + 'description' => t('Add to Blinklist'), + ); + $links['identica'] = array( + 'name' => 'identi.ca', + 'link' => 'http://identi.ca/?action=newnotice&status_textarea=<encoded-title> <encoded-url>', + 'description' => t('Dent this on identi.ca'), + ); + $links['newskicks'] = array( + 'name' => 'Newskicks', + 'link' => 'http://newskicks.com/submit.php?url=<encoded-url>', + 'description' => t('Kicks this post on NewsKicks'), + ); + $links['diigo'] = array( + 'name' => 'Diigo', + 'description' => t('Post on Diigo'), + 'link' => 'http://www.diigo.com/post?url=<encoded-url>&title=<encoded-title>&desc=<encoded-teaser>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/german_services.info b/web/sites/all/modules/contrib/service_links/services/german_services.info new file mode 100644 index 0000000..87035e8 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/german_services.info @@ -0,0 +1,12 @@ +name = German Services +description = Provide the German Services: Alltagz, Colivia, Icio, InfoPirat, Linkarena, MeinVZ, Mister Wong, Netselektor, Oneview, Readster, seekXL, SeoIGG, Weblinkr, Webnews, Xing, Yigg +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/german_services.module b/web/sites/all/modules/contrib/service_links/services/german_services.module new file mode 100644 index 0000000..559d30c --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/german_services.module @@ -0,0 +1,99 @@ +<?php + +/** + * @file + * Extends Service Links with German services. + * + * @authors Sanduhrs, funana + */ + +/** + * Implements hook_service_links(). + */ +function german_services_service_links() { + $links = array(); + + $links['_de_alltagz'] = array( + 'name' => 'Alltagz', + 'description' => t('Add to Alltagz'), + 'link' => 'http://www.alltagz.de/bookmarks/?action=add&popup=1&address=<encoded-url>&title=<encoded-title>&description=<resume>', + ); + $links['_de_misterwong'] = array( + 'name' => 'Mister Wong', + 'description' => t('Bookmark this post on Mister Wong'), + 'link' => 'http://www.mister-wong.de/index.php?action=addurl&bm_url=<encoded-url>&bm_description=<encoded-title>', + 'icon' => 'misterwong.png', + ); + $links['_de_seoigg'] = array( + 'name' => 'SeoIGG', + 'description' => t('Bookmark this post on SeoIGG'), + 'link' => 'http://www.seoigg.de/node/add/storylink?edit[url]=<encoded-url>&edit[title]=<encoded-title>', + ); + $links['_de_colivia'] = array( + 'name' => 'Colivia', + 'description' => t('Bookmark this post on Colivia'), + 'link' => 'http://www.colivia.de/submit.php?url=<encoded-url>', + ); + $links['_de_icio'] = array( + 'name' => 'Icio', + 'description' => t('Bookmark this post on Icio'), + 'link' => 'http://www.icio.de/add.php?url=<encoded-url>', + ); + $links['_de_infopirat'] = array( + 'name' => 'Infopirat', + 'description' => t('Add to Infopirat'), + 'link' => 'http://infopirat.com/node/add/userlink?edit[url]=<encoded-url>&edit[title]=<encoded-title>', + ); + $links['_de_seekxl'] = array( + 'name' => 'seekXL', + 'description' => t('Bookmark this post on seekXL'), + 'link' => 'http://social-bookmarking.seekxl.de/?add_url=<encoded-url>&title=<encoded-title>', + ); + $links['_de_linkarena'] = array( + 'name' => 'Linkarena', + 'description' => t('Add to Linkarena'), + 'link' => 'http://linkarena.com/bookmarks/addlink/?url=<encoded-url>&title=<encoded-title>', + ); + $links['_de_netselektor'] = array( + 'name' => 'Netselektor', + 'description' => t('Bookmark this post on Netselektor'), + 'link' => 'http://netselektor.de/speichern/neu?title=<encoded-title>&url=<encoded-url>', + ); + $links['_de_weblinkr'] = array( + 'name' => 'Weblinkr', + 'description' => t('Bookmark this post on Weblinkr'), + 'link' => 'http://weblinkr.com/weblinks/?action=add&address=<encoded-url>&title=<encoded-title>', + ); + $links['_de_webnews'] = array( + 'name' => 'Webnews', + 'description' => t('Bookmark this post on Webnews'), + 'link' => 'http://www.webnews.de/einstellen?url=<encoded-url>&title=<encoded-title>', + ); + $links['_de_readster'] = array( + 'name' => 'Readster', + 'description' => t('Bookmark this post on Readster'), + 'link' => 'http://www.readster.de/submit/?url=<encoded-url>&title=<encoded-title>', + ); + $links['_de_oneview'] = array( + 'name' => 'Oneview', + 'description' => t('Bookmark this post on Oneview'), + 'link' => 'http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=<encoded-url>&title=<encoded-title>', + ); + $links['_de_yigg'] = array( + 'name' => 'Yigg', + 'description' => t('Add to Yigg.de'), + 'link' => 'http://yigg.de/neu?exturl=<encoded-url>&title=<encoded-title>', + ); + $links['_de_meinvz'] = array( + 'name' => 'MeinVZ', + 'description' => t('Share on MeinVZ, StudiVZ or SchuelerVZ'), + 'link' => 'http://www.studivz.net/Link/Selection/Url/?u=<encoded-url>&desc=<encoded-title>', + ); + $links['_de_xing'] = array( + 'name' => 'Xing', + 'description' => t('Share on Xing'), + 'link' => 'https://www.xing.com/app/user?op=share&url=<raw-encoded-url>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/hungarian_services.info b/web/sites/all/modules/contrib/service_links/services/hungarian_services.info new file mode 100644 index 0000000..ea6cf27 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/hungarian_services.info @@ -0,0 +1,12 @@ +name = Hungarian Services +description = Provide the Hungarian Service: iWiW +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/hungarian_services.module b/web/sites/all/modules/contrib/service_links/services/hungarian_services.module new file mode 100644 index 0000000..255feba --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/hungarian_services.module @@ -0,0 +1,23 @@ +<?php + +/** + * @file + * Extends Service Links with Hungarian services. + * + * @author Denes Szabo + */ + +/** + * Implements hook_service_links(). + */ +function hungarian_services_service_links() { + $links = array(); + + $links['_hu_iwiw'] = array( + 'name' => 'IWIW', + 'description' => t('Add to iWiW'), + 'link' => 'http://iwiw.hu/pages/share/share.jsp?u=<encoded-url>&t=<encoded-title>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/italian_services.info b/web/sites/all/modules/contrib/service_links/services/italian_services.info new file mode 100644 index 0000000..82ef6ed --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/italian_services.info @@ -0,0 +1,12 @@ +name = Italian Services +description = Provide the Italian Services: Diggita, Meemi, OkNotizie, Segnalo.com, TechNotizie, Wikio, ZicZac +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/italian_services.module b/web/sites/all/modules/contrib/service_links/services/italian_services.module new file mode 100644 index 0000000..dec6992 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/italian_services.module @@ -0,0 +1,53 @@ +<?php + +/** + * @file + * Extends Service Links with Italian services. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function italian_services_service_links() { + $links = array(); + + $links['_it_diggita'] = array( + 'name' => 'Diggita', + 'description' => t('Add a news on Diggita'), + 'link' => 'http://www.diggita.it/submit.php?url=<encoded-url>&title=<encoded-title>', + ); + $links['_it_ziczac'] = array( + 'name' => 'ZicZac', + 'description' => t('Add a news on ZicZac'), + 'link' => 'http://ziczac.it/a/segnala/?url=<encoded-url>&title=<encoded-title>', + ); + $links['_it_oknotizie'] = array( + 'name' => 'OkNotizie', + 'description' => t('Add a news on OkNotizie'), + 'link' => 'http://oknotizie.alice.it/post.html.php?url=<encoded-url>&title=<encoded-title>', + ); + $links['_it_segnalo'] = array( + 'name' => 'Segnalo.com', + 'description' => t('Add a news on Segnalo.com'), + 'link' => 'http://segnalo.alice.it/post.html.php?url=<encoded-url>&title=<encoded-title>', + ); + $links['_it_technotizie'] = array( + 'name' => 'TechNotizie', + 'description' => t('Post it on TechNotizie'), + 'link' => 'http://www.technotizie.it/posta_ok?action=f2&url=<encoded-url>&title=<encoded-title>', + ); + $links['_it_meemi'] = array( + 'name' => 'meemi', + 'description' => t('Add a noise on meemi'), + 'link' => 'http://meemi.com/s/?p/3&u=<encoded-url>&s=<encoded-title>', + ); + $links['_it_wikio'] = array( + 'name' => 'Wikio', + 'description' => t('Vote on Wikio'), + 'link' => 'http://www.wikio.it/vote?url=<encoded-url>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/polish_services.info b/web/sites/all/modules/contrib/service_links/services/polish_services.info new file mode 100644 index 0000000..a5cf3ac --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/polish_services.info @@ -0,0 +1,12 @@ +name = Polish Services +description = Provide the Polish Services: Blip, Wykop, Sledzik +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/polish_services.module b/web/sites/all/modules/contrib/service_links/services/polish_services.module new file mode 100644 index 0000000..a19e806 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/polish_services.module @@ -0,0 +1,33 @@ +<?php + +/** + * @file + * Extends Service Links with Polish services. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function polish_services_service_links() { + $links = array(); + + $links['_pl_wykop'] = array( + 'name' => 'Wykop', + 'description' => t('Add to Wykop'), + 'link' => 'http://www.wykop.pl/dodaj?url=<raw-encoded-url>&title=<raw-encoded-title>', + ); + $links['_pl_blip'] = array( + 'name' => 'Blip', + 'description' => t('Add to Blip'), + 'link' => 'http://blip.pl/dashboard?body=<raw-encoded-short-url>%20--%20<raw-encoded-title>', + ); + $links['_pl_sledzik'] = array( + 'name' => 'Sledzik', + 'description' => t('Add to Sledzik'), + 'link' => 'http://nasza-klasa.pl/sledzik?shout=<raw-encoded-short-url>%20--%20<raw-encoded-title>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/print_services.info b/web/sites/all/modules/contrib/service_links/services/print_services.info new file mode 100644 index 0000000..bd770a2 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/print_services.info @@ -0,0 +1,13 @@ +name = Print Services +description = Add the support for Print module which render the page as PDF or printable HTML +core = 7.x +package = Service Links - Services +dependencies[] = service_links +dependencies[] = print + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/print_services.module b/web/sites/all/modules/contrib/service_links/services/print_services.module new file mode 100644 index 0000000..c04dd41 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/print_services.module @@ -0,0 +1,41 @@ +<?php + +/** + * @file + * Extends Service Links with Print module support. + * + * These services work only with alias enabled in Print module. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function print_services_service_links() { + $links = array(); + + $links['print'] = array( + 'name' => 'Print HTML', + 'link' => '<front-page>print/<query>', + 'description' => t('Printable version'), + ); + + if (module_exists('print_pdf')) { + $links['printpdf'] = array( + 'name' => 'Print PDF', + 'link' => '<front-page>printpdf/<query>', + 'description' => t('PDF version'), + ); + } + + if (module_exists('print_mail')) { + $links['printmail'] = array( + 'name' => 'Print Mail', + 'link' => '<front-page>printmail/<query>', + 'description' => t('Send to a friend'), + ); + } + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/russian_services.info b/web/sites/all/modules/contrib/service_links/services/russian_services.info new file mode 100644 index 0000000..a579a78 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/russian_services.info @@ -0,0 +1,12 @@ +name = Russian Services +description = Provide the Russian Services (12+3): 100zakladok, Ruspace, Mister Wong, Memori, Moemesto, MyScoop, Vaau, Yandex, LinkStore, Bobrdobr, Lopas, Communizm, Newsland, News2, Smi2 +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/russian_services.module b/web/sites/all/modules/contrib/service_links/services/russian_services.module new file mode 100644 index 0000000..fe625c8 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/russian_services.module @@ -0,0 +1,109 @@ +<?php + +/** + * @file + * Extends Service Links with Russian services. + * + * @author PVasili <vasili@pinchuk.biz> + */ + +/** + * Implements hook_service_links() + */ +function russian_services_service_links() { + $links = array(); + + $links['_ru_100zakladok'] = array( + 'link' => 'http://www.100zakladok.ru/save/?bmurl=<encoded-url>&bmtitle=<encoded-title>', + 'name' => '100zakladok', + 'description' => t('Bookmark this post on 100zakladok'), + ); + $links['_ru_ruspace'] = array( + 'link' => 'http://www.ruspace.ru/index.php?link=bookmark&action=bookmarkNew&bm=1&url=<encoded-url>&title=<encoded-title>', + 'name' => 'Ruspace', + 'description' => t('Bookmark this post on Ruspace'), + ); + $links['_ru_misterwong'] = array( + 'link' => 'http://www.mister-wong.ru/index.php?action=addurl&bm_url=<encoded-url>&bm_description=<encoded-title>', + 'name' => 'Mister Wong', + 'description' => t('Bookmark this post on Mister Wong'), + 'icon' => 'misterwong.png', + ); + $links['_ru_memori'] = array( + 'link' => 'http://memori.ru/link/?sm=1&u_data[url]=<encoded-url>&u_data[name]=<encoded-title>', + 'name' => 'Memori', + 'description' => t('Bookmark this post on Memori'), + ); + $links['_ru_moemesto'] = array( + 'link' => 'http://moemesto.ru/post.php?url=<encoded-url>&title=<encoded-title>', + 'name' => 'Moemesto', + 'description' => t('Bookmark this post on Moemesto.ru'), + ); + $links['_ru_myscoop'] = array( + 'link' => 'http://myscoop.ru/add/?URL=<encoded-url>&title=<encoded-title>', + 'name' => 'MyScoop', + 'description' => t('Bookmark this post on MyScoop'), + ); + $links['_ru_vaau'] = array( + 'link' => 'http://www.vaau.ru/submit/?action=step2&url=<encoded-url>', + 'name' => 'Vaau', + 'description' => t('Bookmark this post on Vaau'), + ); + $links['_ru_yandex'] = array( + 'link' => 'http://zakladki.yandex.ru/newlink.xml?url=<encoded-url>&name=<encoded-title>', + 'name' => 'Yandex', + 'description' => t('Bookmark this post on Yandex'), + ); + $links['_ru_linkstore'] = array( + 'link' => 'http://www.linkstore.ru/servlet/LinkStore?a=add&url=<encoded-url>&title=<encoded-title>', + 'name' => 'LinkStore', + 'description' => t('Bookmark this post on LinkStore'), + ); + $links['_ru_bobrdobr'] = array( + 'link' => 'http://bobrdobr.ru/addext.html?url=<encoded-url>&title=<encoded-title>', + 'name' => 'Bobrdobr', + 'description' => t('Bookmark this post on Bobrdobr'), + ); + $links['_ru_lopas'] = array( + 'link' => 'http://www.lopas.ru/add_story.php?story_url=<encoded-url>', + 'name' => 'Lopas', + 'description' => t('Bookmark this post on Lopas'), + ); + $links['_ru_communizm'] = array( + 'link' => 'http://communizm.ru/index.php?mode=addstory&title=<encoded-title>&link=<encoded-url>&description=<encoded-teaser>', + 'name' => 'Communizm', + 'description' => t('Bookmark this post on Communizm'), + ); + $links['_ru_linksiua'] = array( + 'link' => 'http://links.i.ua/mark/?url=<encoded-url>&ename=<encoded-title>', + 'name' => 'Linksiua', + 'description' => t('Bookmark this post on Links.i.ua'), + ); + $links['_ru_vkontakte'] = array( + 'link' => 'http://vkontakte.ru/share.php?url=<encoded-url>&title=<encoded-title>', + 'name' => 'VKontakte', + 'description' => t('Share this on VKontakte'), + ); + +/* news todo + + $links['_ru_newsland'] = array( + 'link' => 'http://www.newsland.ru/News/Add/', + 'name' => 'Newsland', + 'description' => t('Bookmark this post on Newsland'), + ); + + $links['_ru_news2'] = array( + 'link' => 'http://news2.ru/add_story.php?url=<encoded-url>', + 'name' => 'News2', + 'description' => t('Bookmark this post on News2'), + ); + + $links['_ru_smi2'] = array( + 'link' => 'http://smi2.ru/add', + 'name' => 'Smi2', + 'description' => t('Bookmark this post on Smi2'), + ); +*/ + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/spanish_services.info b/web/sites/all/modules/contrib/service_links/services/spanish_services.info new file mode 100644 index 0000000..1b9ab6a --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/spanish_services.info @@ -0,0 +1,12 @@ +name = Spanish Services +description = Provide the Spanish Services: Barrapunto, Fresqui, Latafanera, Meneame, Tuenti +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/spanish_services.module b/web/sites/all/modules/contrib/service_links/services/spanish_services.module new file mode 100644 index 0000000..6101231 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/spanish_services.module @@ -0,0 +1,43 @@ +<?php + +/** + * @file + * Extends Service Links with Spanish services. + * + * @author ateneatech + */ + +/** + * Implements hook_service_links(). + */ +function spanish_services_service_links() { + $links = array(); + + $links['_es_meneame'] = array( + 'name' => 'Meneame', + 'description' => t('Add to Meneame'), + 'link' => 'http://www.meneame.net/submit.php?url=<encoded-url>', + ); + $links['_es_latafanera'] = array( + 'name' => 'La Tafanera', + 'description' => t('Add to La Tafanera'), + 'link' => 'http://latafanera.cat/submit.php?url=<encoded-url>', + ); + $links['_es_fresqui'] = array( + 'name' => 'Fresqui', + 'description' => t('Submit this post on tec.fresqui.com'), + 'link' => 'http://tec.fresqui.com/post?url=<encoded-url>&title=<encoded-title>', + ); + $links['_es_barrapunto'] = array( + 'name' => 'Barrapunto', + 'description' => t('Publish this post on Barrapunto.com'), + 'link' => 'http://barrapunto.com/submit.pl?story=He leido en <encoded-source> el articulo <a href="<encoded-url>"><encoded-title></a>&subj=<encoded-title>', + ); + $links['_es_tuenti'] = array( + 'name' => 'Tuenti', + 'description' => t('Share on Tuenti'), + 'link' => 'http://www.tuenti.com/share?url=<encoded-url>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/swedish_services.info b/web/sites/all/modules/contrib/service_links/services/swedish_services.info new file mode 100644 index 0000000..4040171 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/swedish_services.info @@ -0,0 +1,15 @@ +name = Swedish Services +description = Provide the Swedish Services: Bloggy, Pusha +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +version = VERSION +files[] = swedish_services.module + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/swedish_services.module b/web/sites/all/modules/contrib/service_links/services/swedish_services.module new file mode 100644 index 0000000..7f68734 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/swedish_services.module @@ -0,0 +1,28 @@ +<?php + +/** + * @file + * Extends Service Links with Swedish services. + * + * @author persand + */ + +/** + * Implements hook_service_links() + */ +function swedish_services_service_links() { + $links = array(); + + $links['_se_bloggy'] = array( + 'name' => 'Bloggy', + 'description' => t('Share this on Bloggy'), + 'link' => 'http://bloggy.se/home/?status=<encoded-url> -- <encoded-title>', + ); + $links['_se_pusha'] = array( + 'name' => 'Pusha', + 'description' => t('Share this on Pusha'), + 'link' => 'http://pusha.se/posta?url=<encoded-url>&title=<encoded-title>', + ); + + return $links; +} diff --git a/web/sites/all/modules/contrib/service_links/services/widget_services.admin.inc b/web/sites/all/modules/contrib/service_links/services/widget_services.admin.inc new file mode 100644 index 0000000..b045d4a --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/widget_services.admin.inc @@ -0,0 +1,262 @@ +<?php + +/** + * @file + * Administrative page callbacks for Widget Services module. + */ + +/** + * Menu callback administration settings for widget options. + */ +function widget_services_admin() { + $form['twitter_widget'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Twitter Widget'), + ); + $form['twitter_widget']['service_links_tw_data_count'] = array( + '#type' => 'select', + '#title' => t('Counter'), + '#default_value' => variable_get('service_links_tw_data_count', 'horizontal'), + '#options' => array( + 'horizontal' => t('Horizontal'), + 'vertical' => t('Vertical'), + 'none' => t('None'), + ), + ); + $form['twitter_widget']['service_links_tw_data_via'] = array( + '#type' => 'textfield', + '#field_prefix' => '@', + '#title' => t('Via user'), + '#description' => t('Add here your screen name.'), + '#default_value' => variable_get('service_links_tw_data_via', ''), + '#size' => 40, + ); + + $form['facebook_like'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Facebook Like'), + ); + $form['facebook_like']['service_links_fl_layout'] = array( + '#type' => 'select', + '#title' => t('Layout'), + '#default_value' => variable_get('service_links_fl_layout', 'button_count'), + '#options' => array( + 'standard' => t('Standard'), + 'button_count' => t('Button Count'), + 'box_count' => t('Box Count'), + ), + ); + $form['facebook_like']['service_links_fl_width'] = array( + '#title' => t('Width'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_fl_width', 100), + '#description' => t('A good value for button layout is 100, for box layout is 80 and for standard layout 450'), + '#size' => 10, + ); + $form['facebook_like']['service_links_fl_height'] = array( + '#title' => t('Height'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_fl_height', 21), + '#description' => t('A good value for button layout is 21, for box layout is 65 and for standard layout is 80'), + '#size' => 10, + ); + $form['facebook_like']['service_links_fl_font'] = array( + '#title' => t('Font'), + '#type' => 'select', + '#default_value' => variable_get('service_links_fl_font', ''), + '#options' => array( + '' => t('None'), + 'arial' => t('Arial'), + 'lucida grande' => t('Lucida Grande'), + 'segoe ui' => t('Segoe Ui'), + 'tahoma' => t('Tahoma'), + 'trebuchet ms' => t('Trebuchet Ms'), + 'verdana' => t('Verdana'), + ), + ); + $form['facebook_like']['service_links_fl_show_faces'] = array( + '#title' => t('Show Faces'), + '#type' => 'radios', + '#default_value' => variable_get('service_links_fl_show_faces', 'false'), + '#options' => array( + 'true' => t('Yes'), + 'false' => t('No'), + ), + '#attributes' => array('class' => array('container-inline')), + '#description' => t('This works only when the standard layout is set on'), + ); + $form['facebook_like']['service_links_fl_colorscheme'] = array( + '#title' => t('Color Scheme'), + '#type' => 'radios', + '#default_value' => variable_get('service_links_fl_colorscheme', 'light'), + '#options' => array( + 'light' => t('Light'), + 'dark' => t('Dark'), + ), + '#attributes' => array('class' => array('container-inline')), + ); + $form['facebook_like']['service_links_fl_action'] = array( + '#title' => t('Action'), + '#type' => 'radios', + '#default_value' => variable_get('service_links_fl_action', 'like'), + '#options' => array( + 'like' => t('Like'), + 'recommend' => t('Recommend'), + ), + '#attributes' => array('class' => array('container-inline')), + ); + $form['facebook_like']['service_links_fl_locale'] = array( + '#title' => t('Locale'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_fl_locale', ''), + '#description' => t('Enter the language code and the country code separated by an underscore (i.e. es_ES, en_GB, en_US, it_IT, fr_FR, pt_BR, pt_PT)'), + '#size' => 5, + '#attributes' => array('class' => array('container-inline')), + ); + + $form['facebook_share'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Facebook Share'), + ); + $form['facebook_share']['service_links_fs_type'] = array( + '#type' => 'select', + '#title' => t('Type'), + '#default_value' => variable_get('service_links_fs_type', 'button_count'), + '#options' => array( + 'button' => t('Button'), + 'button_count' => t('Button Count'), + 'box_count' => t('Box Count'), + 'icon_link' => t('Icon Link'), + ), + ); + $form['facebook_share']['service_links_fs_app_id'] = array( + '#type' => 'textfield', + '#title' => t('App ID'), + '#default_value' => variable_get('service_links_fs_app_id', '150123828484431'), + '#description' => t('You may generate your app ID at the <a href=@url>Facebook apps</a> page', array('@url' => 'https://developers.facebook.com/apps')), + '#size' => 40, + ); + $form['facebook_share']['service_links_fs_css'] = array( + '#type' => 'textfield', + '#title' => t('Style'), + '#default_value' => variable_get('service_links_fs_css', ''), + '#description' => t('Apply a CSS style providing a single string (i.e. %style)', array('%style' => 'text-align:left;vertical-align:top;margin-top:4px')), + '#size' => 80, + ); + + $form['google_plus_one'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Google Plus One'), + ); + $form['google_plus_one']['service_links_gpo_size'] = array( + '#title' => t('Size'), + '#type' => 'select', + '#default_value' => variable_get('service_links_gpo_size', ''), + '#options' => array( + '' => t('Standard'), + 'small' => t('Small'), + 'medium' => t('Medium'), + 'tall' => t('Tall'), + ), + ); + $form['google_plus_one']['service_links_gpo_annotation'] = array( + '#title' => t('Annotation'), + '#type' => 'select', + '#default_value' => variable_get('service_links_gpo_annotation', ''), + '#options' => array( + '' => t('Bubble'), + 'none' => t('None'), + 'inline' => t('Inline'), + ), + ); + $form['google_plus_one']['service_links_gpo_width'] = array( + '#title' => t('Max width'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_gpo_width', 300), + '#description' => t('If annotation is set to "inline", this parameter sets the width in pixels to use for the button and its inline annotation. If the width is omitted, a button and its inline annotation use 450px. A minimum value of 120 is required. +See <a href="@url">Inline annotation widths</a> for examples of how the annotation is displayed for various width settings', array('@url' => 'https://developers.google.com/+/web/+1button/?hl=it#inline-annotation')), + '#size' => 10, + ); + $form['google_plus_one']['service_links_gpo_lang'] = array( + '#title' => t('Language'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_gpo_lang', ''), + '#description' => t('Sets the language to use for the +1 buttons on the page when annotation is set to "inline". For available language code values, see the <a href="@url">list of supported language codes</a>', array('@url' => 'https://developers.google.com/+/web/+1button/?hl=it#available-languages')), + '#size' => 5, + ); + $form['google_plus_one']['service_links_gpo_callback'] = array( + '#title' => t('Callback function'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_gpo_callback', ''), + '#description' => t('If specified, this function is called after the user clicks the +1 button.'), + '#size' => 40, + ); + + $form['linkedin_share_button'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Linkedin Share Button'), + ); + $form['linkedin_share_button']['service_links_lsb_countmode'] = array( + '#title' => t('Count Mode'), + '#type' => 'select', + '#default_value' => variable_get('service_links_lsb_countmode', 'right'), + '#options' => array( + 'top' => t('Vertical'), + 'right' => t('Horizontal'), + '' => t('No Count'), + ), + ); + + $form['pinterest_button'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#title' => t('Pinterest Button'), + ); + $form['pinterest_button']['service_links_pb_countlayout'] = array( + '#title' => t('Pin Count'), + '#type' => 'select', + '#default_value' => variable_get('service_links_pb_countlayout', 'horizontal'), + '#options' => array( + 'horizontal' => t('Horizontal'), + 'vertical' => t('Vertical'), + 'none' => t('No Count'), + ), + ); + $form['pinterest_button']['service_links_pb_mediatoken'] = array( + '#title' => t('Media parameter'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_pb_mediatoken', ''), + '#description' => t('Fill the media parameter with a token which will be evaluated by <a href=@url>Token</a> module.', array('@url' => 'http://www.drupal.org/project/token')), + '#size' => 40, + ); + $form['pinterest_button']['service_links_pb_descriptiontoken'] = array( + '#title' => t('Description parameter'), + '#type' => 'textfield', + '#default_value' => variable_get('service_links_pb_descriptiontoken', ''), + '#description' => t('Fill the description parameter with a token which will be evaluated by <a href=@url>Token</a> module, if left blank will be replaced by the node teaser.', array('@url' => 'http://www.drupal.org/project/token')), + '#size' => 40, + ); + if (module_exists('token')) { + $form['pinterest_button']['token_help'] = array( + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#title' => t('Token help'), + '#theme' => 'token_tree', + '#token_types' => array('node'), + ); + } + + return system_settings_form($form); +} diff --git a/web/sites/all/modules/contrib/service_links/services/widget_services.info b/web/sites/all/modules/contrib/service_links/services/widget_services.info new file mode 100644 index 0000000..dbc9ee0 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/widget_services.info @@ -0,0 +1,12 @@ +name = Widget Services +description = Facebook Like, Facebook Share, Google Plus One, Linkedin Share Button, Pinterest, Twitter +core = 7.x +package = Service Links - Services +dependencies[] = service_links + +; Information added by drupal.org packaging script on 2013-06-10 +version = "7.x-2.2" +core = "7.x" +project = "service_links" +datestamp = "1370849155" + diff --git a/web/sites/all/modules/contrib/service_links/services/widget_services.install b/web/sites/all/modules/contrib/service_links/services/widget_services.install new file mode 100644 index 0000000..09612b4 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/widget_services.install @@ -0,0 +1,39 @@ +<?php + +/** + * @file + * Widgets services install file. + */ + +/** + * Remove unused variables. + */ +function widget_services_update_7201(&$sandbox) { + // Digg Smart Button + variable_del('service_links_dsb_type'); + variable_del('service_links_dsb_related'); + variable_del('service_links_dsb_style'); + + // Facebook Share unused variables + variable_del('service_links_fs_text'); + variable_del('service_links_fs_fix_count'); + + // Google Plus one unused + variable_set('service_links_gpo_size', variable_get('service_links_gpo_type', '')); + variable_del('service_links_gpo_type'); + variable_del('service_links_gpo_counter'); + + // Facebook Like height + $layout = variable_get('service_links_fl_layout', 'button_count'); + switch ($layout) { + case 'box_count': + variable_set('service_links_fl_height', 65); + break; + case 'standard': + variable_set('service_links_fl_height', 80); + break; + case 'button_count': + variable_set('service_links_fl_height', 21); + break; + } +} diff --git a/web/sites/all/modules/contrib/service_links/services/widget_services.module b/web/sites/all/modules/contrib/service_links/services/widget_services.module new file mode 100644 index 0000000..fab88d1 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/services/widget_services.module @@ -0,0 +1,242 @@ +<?php + +/** + * @file + * Extends Service Links with dynamic buttons. + * + * @author Fabio Mucciante (TheCrow) + */ + +/** + * Implements hook_service_links(). + */ +function widget_services_service_links() { + $links = array(); + + $links['facebook_share'] = array( + 'name' => t('Share on Facebook'), + 'link' => 'http://www.facebook.com/sharer.php', + 'description' => t('Share this post on Facebook'), + 'javascript' => 'facebook_share.js', + 'icon' => 'facebook.png', + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'callback' => 'ws_facebook_share_data', + ); + $links['twitter_widget'] = array( + 'name' => 'Tweet Widget', + 'link' => 'http://twitter.com/share?url=<raw-encoded-short-url>&count=<data-count>&via=<data-via>&text=<raw-encoded-title>&counturl=<raw-encoded-url>', + 'icon' => 'twitter.png', + 'description' => t('Tweet This'), + 'attributes' => array('class' => array('twitter-share-button')), + 'javascript' => 'twitter_button.js', + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'callback' => 'ws_twitter_widget_data', + ); + $links['facebook_like'] = array( + 'name' => 'Facebook Like', + 'link' => 'http://www.facebook.com/plugins/like.php?href=<encoded-url>&layout=<layout>&show_faces=<show_faces>&action=<action>&colorscheme=<colorscheme>&width=<width>&height=<height>&font=<font>&locale=<locale>', + 'icon' => 'facebook.png', + 'description' => t('I Like it'), + 'javascript' => 'facebook_like.js', + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'callback' => 'ws_facebook_like_data', + ); + $links['google_plus_one'] = array( + 'name' => 'Google Plus One', + 'link' => '<url>', + 'description' => t('Plus it'), + 'javascript' => 'google_plus_one.js', + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'callback' => 'ws_google_plus_one_data', + ); + $links['linkedin_share_button'] = array( + 'name' => 'Linkedin Share Button', + 'link' => '<url>', + 'icon' => 'linkedin.png', + 'description' => t('Share on Linkedin'), + 'javascript' => array( + 'http://platform.linkedin.com/in.js?async=true', + 'linkedin_share_button.js', + ), + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'callback' => 'ws_linkedin_share_button_data', + ); + $links['pinterest_button'] = array( + 'name' => 'Pinterest', + //'link' => 'http://pinterest.com/pin/create/button/?url=<raw-encoded-url>&description=<pinterest-description>&media=<pinterest-media>', + 'link' => 'http://pinterest.com/pin/create/button/?url=<raw-encoded-long-url>&description=<pinterest-description>&media=<pinterest-media>', + 'icon' => 'pinterest.png', + 'description' => t('Pin It'), + 'javascript' => array( + 'pinterest_button.js', + //'http://assets.pinterest.com/js/pinit.js', + ), + 'style' => SERVICE_LINKS_STYLE_EMPTY, + 'attributes' => array('class' => array('pin-it-button')), + 'callback' => 'ws_pinterest_button_data', + 'preset' => 'ws_pinterest_button_tags', + ); + + return $links; +} + +/** + * Callback function for Twitter Widget. + */ +function ws_twitter_widget_data(&$service, $subst) { + static $params; + + if (!isset($params)) { + $params = array( + 'count' => check_plain(variable_get('service_links_tw_data_count', 'horizontal')), + 'via' => check_plain(variable_get('service_links_tw_data_via' , '')), + ); + } + + $service['url'][1] = array_merge($service['url'][1], $params); +} + +/** + * Callback function for Facebook Share. + */ +function ws_facebook_share_data(&$service, $subst) { + static $fs_settings; + + if (!isset($fs_settings)) { + $fs_settings = array( + 'type' => check_plain(variable_get('service_links_fs_type', 'button_count')), + 'app_id' => check_plain(variable_get('service_links_fs_app_id', '150123828484431')), + 'css' => check_plain(preg_replace('/[^0-9a-z\-:;]/', '', variable_get('service_links_fs_css', ''))), + ); + + drupal_add_js(array('ws_fs' => $fs_settings), 'setting'); + } + + $service['attributes']['rel'] = $subst['url']; +} + +/** + * Callback function for Facebook Like. + */ +function ws_facebook_like_data(&$service, $subst) { + static $params; + + if (!isset($params)) { + $params = array( + 'layout' => check_plain(variable_get('service_links_fl_layout', 'button_count')), + 'show_faces' => check_plain(variable_get('service_links_fl_show_faces', 'false')), + 'action' => check_plain(variable_get('service_links_fl_action', 'like')), + 'colorscheme' => check_plain(variable_get('service_links_fl_colorscheme', 'light')), + 'font' => check_plain(variable_get('service_links_fl_font', '')), + 'width' => (int) variable_get('service_links_fl_width', 100), + 'height' => (int) variable_get('service_links_fl_height', 21), + 'locale' => check_plain(variable_get('service_links_fl_locale', '')), + ); + + $fl_settings = array( + 'width' => $params['width'], + 'height' => $params['height'], + ); + + drupal_add_js(array('ws_fl' => $fl_settings), 'setting'); + } + + $service['url'][1] = array_merge($service['url'][1], $params); +} + +/** + * Callback function for Google Plus One. + */ +function ws_google_plus_one_data(&$service, $subst) { + static $gpo_settings; + + if (!isset($gpo_settings)) { + $gpo_settings = array( + 'size' => check_plain(variable_get('service_links_gpo_size', '')), + 'annotation' => check_plain(variable_get('service_links_gpo_annotation', '')), + 'lang' => check_plain(variable_get('service_links_gpo_lang', '')), + 'callback' => check_plain(variable_get('service_links_gpo_callback', '')), + 'width' => (int) variable_get('service_links_gpo_width', 300), + ); + + drupal_add_js(array('ws_gpo' => $gpo_settings), 'setting'); + } +} + +/** + * Callback function for Linkedin Share Button. + */ +function ws_linkedin_share_button_data(&$service, $subst) { + static $lsb_settings; + + if (!isset($lsb_settings)) { + $lsb_settings = array( + 'countmode' => check_plain(variable_get('service_links_lsb_countmode', 'right')), + ); + + drupal_add_js(array('ws_lsb' => $lsb_settings), 'setting'); + } +} + +/** + * Preset function for Pinterest Button, which fill the media tag. + */ +function ws_pinterest_button_tags(&$service, &$settings, $node = NULL) { + static $tokens; + + if (!isset($tokens)) { + $tokens['media'] = variable_get('service_links_pb_mediatoken', ''); + $tokens['description'] = variable_get('service_links_pb_descriptiontoken', ''); + } + + $settings['tag']['pinterest-media'] = '<pinterest-media>'; + + if (module_exists('token')) { + $settings['subst']['pinterest-media'] = check_plain(@token_replace($tokens['media'], array('node' => $node))); + if (empty($tokens['description'])) { + $service['link'] = str_replace('pinterest-description', 'raw-encoded-teaser', $service['link']); + } + else { + $settings['tag']['pinterest-description'] = '<pinterest-description>'; + $settings['subst']['pinterest-description'] = check_plain(@token_replace($tokens['description'], array('node' => $node))); + } + } + else { + $settings['subst']['pinterest-media'] = ''; + $service['link'] = str_replace('pinterest-description', 'raw-encoded-teaser', $service['link']); + } +} + +/** + * Callback function for Pinterest Button. + */ +function ws_pinterest_button_data(&$service, $subst) { + static $pb_settings; + + if (!isset($pb_settings)) { + $pb_settings = array( + 'countlayout' => check_plain(variable_get('service_links_pb_countlayout', 'horizontal')), + ); + + drupal_add_js(array('ws_pb' => $pb_settings), 'setting'); + } +} + +/** + * Implements hook_menu(). + */ +function widget_services_menu() { + $items = array(); + + $items['admin/config/services/service-links/widgets'] = array( + 'title' => 'Widgets', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('widget_services_admin'), + 'access arguments' => array('administer site configuration'), + 'type' => MENU_LOCAL_TASK, + //'parent' => 'admin/config/services/service-links', + 'file' => 'widget_services.admin.inc', + ); + + return $items; +} diff --git a/web/sites/all/modules/contrib/service_links/template.php b/web/sites/all/modules/contrib/service_links/template.php new file mode 100644 index 0000000..8d72b56 --- /dev/null +++ b/web/sites/all/modules/contrib/service_links/template.php @@ -0,0 +1,66 @@ +<?php + +/** + * @file + * Various examples to overwrite the theme settings. + * + * For a simply replacement of your link list, just put the string: + * <?php print $service_links_rendered; ?> + * in your file 'node.tpl.php' and disable the other visualization options + * under the configuration page. + * + * If you need other transformation add 'template.php' under your theme folder + * either integrate the functions below in your 'template.php' replacing 'themename' + * with the name of your theme, clean the cache if some changes are not well updated. + * + * More examples are available on the online help. + */ + +/** + * Example 1: Creating the variable '$service_links_rendered' + * for the template file 'page.tpl.php' containing all the + * selected services. + */ +function themename_preprocess_page(&$vars) { + if (module_exists('service_links')) { + // Works also for not-node pages + if (user_access('access service links') && service_links_show($vars['node'])) { + $vars['service_links_rendered'] = theme('links', array('links' => service_links_render($vars['node']))); + } + } +} + +/** + * Example 2: Creating the variable '$twitter' for the template file + * 'node.tpl.php' containing the services specified by their ids + * (i.e. twitter). + */ +function themename_preprocess_node(&$vars) { + if (module_exists('service_links')) { + if (user_access('access service links') && service_links_show($vars['node'])) { + $vars['twitter'] = theme('links', array('links' => service_links_render_some('twitter', $vars['node']))); + } + } +} + +/** + * If something doesn't work well try this. + */ +function themename_preprocess(&$vars, $hook) { + switch ($hook) { + case 'node': + if (module_exists('service_links')) { + if (user_access('access service links') && service_links_show($vars['node'])) { + $vars['twitter'] = theme('links', array('links' => service_links_render_some('twitter', $vars['node']))); + } + } + break; + case 'page': + if (module_exists('service_links')) { + if (user_access('access service links') && service_links_show($vars['node'])) { + $vars['service_links'] = theme('links', array('links' => service_links_render($vars['node']))); + } + } + break; + } +} diff --git a/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.inc b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.inc new file mode 100644 index 0000000..1bcf1b7 --- /dev/null +++ b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.inc @@ -0,0 +1,14 @@ +<?php +/** + * @file + * service_links_social_sharing.features.inc + */ + +/** + * Implements hook_ctools_plugin_api(). + */ +function service_links_social_sharing_ctools_plugin_api($module = NULL, $api = NULL) { + if ($module == "strongarm" && $api == "strongarm") { + return array("version" => "1"); + } +} diff --git a/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.user_permission.inc b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.user_permission.inc new file mode 100644 index 0000000..34e50cf --- /dev/null +++ b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.features.user_permission.inc @@ -0,0 +1,23 @@ +<?php +/** + * @file + * service_links_social_sharing.features.user_permission.inc + */ + +/** + * Implements hook_user_default_permissions(). + */ +function service_links_social_sharing_user_default_permissions() { + $permissions = array(); + + // Exported permission: 'access service links'. + $permissions['access service links'] = array( + 'name' => 'access service links', + 'roles' => array( + 'anonymous user' => 'anonymous user', + ), + 'module' => 'service_links', + ); + + return $permissions; +} diff --git a/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.info b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.info new file mode 100644 index 0000000..8534efb --- /dev/null +++ b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.info @@ -0,0 +1,18 @@ +name = Service links social sharing +description = Social media sharing links for content +core = 7.x +package = drupalfi +version = 7.x-1.0 +project = service_links_social_sharing +dependencies[] = ctools +dependencies[] = features +dependencies[] = general_services +dependencies[] = service_links +dependencies[] = strongarm +features[ctools][] = strongarm:strongarm:1 +features[features_api][] = api:2 +features[user_permission][] = access service links +features[variable][] = service_links_link_view_modes +features[variable][] = service_links_node_types +features[variable][] = service_links_show +features[variable][] = service_links_style diff --git a/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.module b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.module new file mode 100644 index 0000000..fb6f1ed --- /dev/null +++ b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.module @@ -0,0 +1,7 @@ +<?php +/** + * @file + * Code for the Service links social sharing feature. + */ + +include_once 'service_links_social_sharing.features.inc'; diff --git a/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.strongarm.inc b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.strongarm.inc new file mode 100644 index 0000000..885eca3 --- /dev/null +++ b/web/sites/all/modules/features/service_links_social_sharing/service_links_social_sharing.strongarm.inc @@ -0,0 +1,86 @@ +<?php +/** + * @file + * service_links_social_sharing.strongarm.inc + */ + +/** + * Implements hook_strongarm(). + */ +function service_links_social_sharing_strongarm() { + $export = array(); + + $strongarm = new stdClass(); + $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ + $strongarm->api_version = 1; + $strongarm->name = 'service_links_link_view_modes'; + $strongarm->value = array( + 'full' => 'full', + 'teaser' => 0, + 'rss' => 0, + 'diff_standard' => 0, + 'token' => 0, + ); + $export['service_links_link_view_modes'] = $strongarm; + + $strongarm = new stdClass(); + $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ + $strongarm->api_version = 1; + $strongarm->name = 'service_links_node_types'; + $strongarm->value = array( + 'basic_page' => 'basic_page', + 'company' => 'company', + 'event' => 'event', + 'news' => 'news', + 'liftup' => 0, + ); + $export['service_links_node_types'] = $strongarm; + + $strongarm = new stdClass(); + $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ + $strongarm->api_version = 1; + $strongarm->name = 'service_links_show'; + $strongarm->value = array( + 'delicious' => 0, + 'digg' => 0, + 'stumbleupon' => 0, + 'twitter' => 1, + 'pingthis' => 0, + 'reddit' => 0, + 'slashdot' => 0, + 'newsvine' => 0, + 'furl' => 0, + 'facebook' => 1, + 'myspace' => 0, + 'google' => 0, + 'google_plus' => 1, + 'yahoo' => 0, + 'linkedin' => 1, + 'technorati' => 0, + 'technorati_favorite' => 0, + 'icerocket' => 0, + 'misterwong' => 0, + 'mixx' => 0, + 'box' => 0, + 'blinklist' => 0, + 'identica' => 0, + 'newskicks' => 0, + 'diigo' => 0, + 'facebook_share' => 0, + 'twitter_widget' => 0, + 'facebook_like' => 0, + 'google_plus_one' => 0, + 'linkedin_share_button' => 0, + 'pinterest_button' => 0, + ); + $export['service_links_show'] = $strongarm; + + $strongarm = new stdClass(); + $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ + $strongarm->api_version = 1; + $strongarm->name = 'service_links_style'; + $strongarm->value = '3'; + $export['service_links_style'] = $strongarm; + + return $export; +}