diff --git a/INDEX/README.md b/INDEX/README.md new file mode 100644 index 0000000..4b2286e --- /dev/null +++ b/INDEX/README.md @@ -0,0 +1,1739 @@ +# Awesome-Selfhosted + +Self-hosting is the practice of locally hosting and managing applications instead of renting from [SaaSS](https://www.gnu.org/philosophy/who-does-that-server-really-serve.html) providers. + +This is a list of [Free](https://en.wikipedia.org/wiki/Free_software) Software [network services](https://en.wikipedia.org/wiki/Network_service) and [web applications](https://en.wikipedia.org/wiki/Web_application) which can be hosted locally. Non-Free software is listed on the [Non-Free](non-free.md) page. + +See [Contributing](.github/CONTRIBUTING.md). + +-------------------- + +- List of Software + - [Analytics](#analytics) + - [Archiving and Digital Preservation (DP)](#archiving-and-digital-preservation-dp) + - [Automation](#automation) + - [Blogging Platforms](#blogging-platforms) + - [Bookmarks and Link Sharing](#bookmarks-and-link-sharing) + - [Calendaring and Contacts Management](#calendaring-and-contacts-management) + - [Communication systems](#communication-systems) + - [Custom communication systems](#custom-communication-systems) + - [Email](#email) + - [Complete solutions](#complete-solutions) + - [Mail Transfer Agents](#mail-transfer-agents) + - [Mail Delivery Agents](#mail-delivery-agents) + - [Mailing lists and newsletters](#mailing-lists-and-newsletters) + - [Webmail clients](#webmail-clients) + - [IRC](#irc) + - [SIP/IPBX](#sip) + - [Social Networks and Forums](#social-networks-and-forums) + - [XMPP](#xmpp) + - [XMPP Servers](#xmpp-servers) + - [XMPP Web Clients](#xmpp-web-clients) + - [Conference Management](#conference-management) + - [Content Management Systems (CMS)](#content-management-systems-cms) + - [E-commerce](#e-commerce) + - [DNS](#dns) + - [Document Management](#document-management) + - [E-books and Integrated Library Systems (ILS)](#e-books-and-integrated-library-systems-ils) + - [Federated Identity/Authentication](#federated-identityauthentication) + - [Feed Readers](#feed-readers) + - [File Sharing and Synchronization](#file-sharing-and-synchronization) + - [Distributed filesystems](#distributed-filesystems) + - [File transfer/synchronization](#file-transfersynchronization) + - [Peer-to-peer filesharing](#peer-to-peer-filesharing) + - [Object storage/file servers](#object-storagefile-servers) + - [Single-click/drag-n-drop upload](#single-clickdrag-n-drop-upload) + - [Web based file managers](#web-based-file-managers) + - [Games](#games) + - [Gateways and terminal sharing](#gateways-and-terminal-sharing) + - [Genealogy](#genealogy) + - [Groupware](#groupware) + - [Human Resources Management (HRM)](#human-resources-management-hrm) + - [Internet of Things (IoT)](#internet-of-things-iot) + - [Knowledge Management Tools](#knowledge-management-tools) + - [Learning and Courses](#learning-and-courses) + - [Maps and Global Positioning System (GPS)](#maps-and-global-positioning-system-gps) + - [Media Streaming](#media-streaming) + - [Multimedia Streaming](#multimedia-streaming) + - [Audio Streaming](#audio-streaming) + - [Video Streaming](#video-streaming) + - [Misc/Other](#miscother) + - [Money, Budgeting and Management](#money-budgeting-and-management) + - [Monitoring](#monitoring) + - [Note-taking and Editors](#note-taking-and-editors) + - [Office Suites](#office-suites) + - [Password Managers](#password-managers) + - [Pastebins](#pastebins) + - [Personal Dashboards](#personal-dashboards) + - [Photo and Video Galleries](#photo-and-video-galleries) + - [Polls and Events](#polls-and-events) + - [Booking and Scheduling](#booking-and-scheduling) + - [Proxy](#proxy) + - [Read it Later Lists](#read-it-later-lists) + - [Resource Planning](#resource-planning) + - [Enterprise Resource Planning](#enterprise-resource-planning) + - [Search Engines](#search-engines) + - [Software Development](#software-development) + - [Project Management](#project-management) + - [Bug Trackers](#bug-trackers) + - [IDE/Tools](#idetools) + - [Continuous Integration](#continuous-integration) + - [UX testing](#ux-testing) + - [FaaS/Serverless](#faasserverless) + - [API Management](#api-management) + - [Documentation Generators](#documentation-generators) + - [Localization](#localization) + - [Static site generators](#static-site-generators) + - [Task management/To-do lists](#task-managementto-do-lists) + - [Ticketing](#ticketing) + - [URL Shorteners](#url-shorteners) + - [VPN](#vpn) + - [Web servers](#web-servers) + - [Wikis](#wikis) +- [Self-hosting Solutions](#self-hosting-solutions) +- [List of Licenses](#list-of-licenses) +- [External links](#external-links) +- [Contributing](#contributing) +- [License](#license) + +-------------------- + + + +## Analytics + +**[`^ back to top ^`](#)** + +_For personal analytics/dashboards, see [Personal Dashboards](#personal-dashboards)_ + +_For everything else, see [awesome-analytics](https://github.com/onurakpolat/awesome-analytics)_ + + +## Archiving and Digital Preservation (DP) + +**[`^ back to top ^`](#)** + +_Some [Content Management System](#content-management-systems-cms) solutions also feature archiving and digital preservation._ + +- [Access to Memory (AtoM)](https://www.accesstomemory.org/) - Web-based, open source application for standards-based archival description and access in a multilingual, multi-repository environment. ([Demo](https://demo.accesstomemory.org/), [Source Code](https://github.com/artefactual/atom)) `AGPL-3.0-only` `PHP` +- [Archivematica](https://www.archivematica.org/) - Mature digital preservation system designed to maintain standards-based, long-term access to collections of digital objects. ([Demo](http://sandbox.archivematica.org/administration/accounts/login/), [Source Code](https://github.com/artefactual/archivematica)) `AGPL-3.0-only` `Python` +- [ArchiveBox](https://archivebox.io/) - Self-hosted "wayback machine" that creates HTML & screenshot archives of sites from your bookmarks, browsing history, RSS feeds, or other sources. ([Source Code](https://github.com/pirate/bookmark-archiver)) `MIT` `Python` +- [ArchivesSpace](https://archivesspace.org/) - Archives information management application for managing and providing Web access to archives, manuscripts and digital objects. ([Demo](https://archivesspace.org/application/demo/), [Source Code](https://github.com/archivesspace/archivesspace)) `ECL-2.0` `Ruby` +- [Collective Access: Providence](http://collectiveaccess.org/) - Highly configurable Web-based framework for management, description, and discovery of digital and physical collections supporting a variety of metadata standards, data types, and media formats. ([Source Code](https://github.com/collectiveaccess/providence)) `GPL-3.0-only` `PHP` +- [CKAN](https://ckan.org) - CKAN is a tool for making open data websites. ([Source Code](https://github.com/ckan/ckan)) `AGPL-3.0` `Python` + +## Automation + +**[`^ back to top ^`](#)** + +_See also [Internet of Things (IoT)](#internet-of-things-iot)_ + +- [Accelerated Text](https://github.com/tokenmill/accelerated-text) - Automatically generate multiple natural language descriptions of your data varying in wording and structure. `Apache-2.0` `Java` +- [Actionsflow](https://github.com/actionsflow/actionsflow) `⚠` - The free Zapier/IFTTT alternative for developers to automate your workflows based on Github actions. `MIT` `Docker/Nodejs` +- [ActiveWorkflow](https://github.com/automaticmode/active_workflow) - An intelligent process and workflow automation platform based on software agents. `MIT` `Ruby` +- [Alltube](http://www.alltubedownload.net) - Web interface for [youtube-dl](https://github.com/rg3/youtube-dl), a program to download videos and audio from [more than 100 websites](https://rg3.github.io/youtube-dl/supportedsites.html). ([Source Code](https://github.com/Rudloff/alltube)) `GPL-3.0` `PHP` +- [AmIUnique](https://amiunique.org/) - Learn how identifiable you are on the Internet (browser fingerprinting tool). ([Source Code](https://github.com/DIVERSIFY-project/amiunique)) `MIT` `Java` +- [Baserow](https://baserow.io/) - Open source online database tool and Airtable alternative. Create your own database without technical experience. ([Source Code](https://gitlab.com/bramw/baserow)) `MIT` `Python/Nodejs` +- [Beehive](https://github.com/muesli/beehive) - Flexible event and agent system, which allows you to create your own agents that perform automated tasks triggered by events and filters. `AGPL-3.0` `Go` +- [betanin](https://github.com/sentriz/betanin/) - Music organization man-in-the-middle of your torrent client and music player. Based on beets.io, similar to Sonarr and Radarr. `GPL-3.0` `Python` +- [ChiefOnboarding](https://chiefonboarding.com) - Employee onboarding platform that allows you to provision user accounts and create sequences with todo items, resources, text/email/Slack messages, and more! Available as a web portal and Slack bot. ([Source Code](https://github.com/chiefonboarding/ChiefOnboarding)) `AGPL-3.0` `Python` +- [CouchPotato](https://couchpota.to/) - CouchPotato is an automatic Video Library Manager for Movies. Automatic torrent/nzb searching, downloading, and processing at the qualities you want. ([Source Code](https://github.com/CouchPotato/CouchPotatoServer)) `GPL-3.0` `Python` +- [Episodes](https://github.com/guptachetan1997/Episodes) `⚠` - Self Hosted TV show Episode tracker and recommender built using django, bootstrap4. `MIT` `Python` +- [feed2toot](https://feed2toot.readthedocs.io/) - Feed2toot parses a RSS feed, extracts the last entries and sends them to Mastodon. ([Source Code](https://gitlab.com/chaica/feed2toot)) `GPL-3.0` `Python` +- [feedmixer](https://github.com/cristoper/feedmixer) - FeedMixer is a WSGI (Python3) micro web service which takes a list of feed URLs and returns a new feed consisting of the most recent n entries from each given feed(Returns Atom, RSS, or JSON). ([Demo](https://mretc.net/feedmixer/json?f=http://hnrss.org/newest&f=http://americancynic.net/atom.xml&n=1)) `WTFPL` `Python` +- [Gekko](https://gekko.wizb.it/) - Gekko is a Bitcoin TA trading and backtesting bot which support multiple exchanges and cryptocurrencies. ([Source Code](https://github.com/askmike/gekko)) `MIT` `Nodejs` +- [Headphones](https://github.com/rembo10/headphones) - Automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, Deluge and Blackhole. `GPL-3.0` `Python` +- [Healthchecks](https://healthchecks.io/) - Django app which listens for pings and sends alerts when pings are late. ([Source Code](https://github.com/healthchecks/healthchecks)) `BSD-3-Clause` `Python` +- [homebank-converter](https://github.com/Binnette/homebank-converter) - Web app to convert an export bank file to compatible Homebank csv. ([Demo](http://binnette.github.io/homebank-converter/)) `AGPL-3.0` `HTML5` +- [HRConvert2](https://github.com/zelon88/HRConvert2) - Drag-and-drop file conversion server with session based authentication, automatic temporary file maintenance, and logging capability. `GPL-3.0` `PHP` +- [Huginn](https://github.com/huginn/huginn) - Allows you to build agents that monitor and act on your behalf. `MIT` `Ruby` +- [Kibitzr](https://kibitzr.github.io) - Lightweight personal web assistant with powerful integrations. ([Source Code](https://github.com/kibitzr/kibitzr)) `MIT` `Python` +- [LazyLibrarian](https://gitlab.com/LazyLibrarian/LazyLibrarian) `⚠` - LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. `GPL-3.0` `Python` +- [Leon](https://getleon.ai) - Open-source personal assistant who can live on your server. ([Demo](https://www.youtube.com/watch?v=p7GRGiicO1c), [Source Code](https://github.com/leon-ai/leon)) `MIT` `Node.js` +- [Lidarr](https://lidarr.audio/) - Lidarr is a music collection manager for Usenet and BitTorrent users. ([Source Code](https://github.com/Lidarr/Lidarr)) `GPL-3.0` `C#` +- [Medusa](https://github.com/pymedusa/SickRage) - Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. `GPL-3.0` `Python` +- [MeTube](https://github.com/alexta69/metube) - Web GUI for youtube-dl, with playlist support. Allows downloading videos from dozens of websites. `AGPL-3.0` `Python/Nodejs/Docker` +- [n8n](https://n8n.io/) - Free node based Workflow Automation Tool. Easily automate tasks across different services. ([Source Code](https://github.com/n8n-io/n8n)) `Apache-2.0` `Nodejs` +- [nefarious](https://github.com/lardbit/nefarious) - Web application that automates downloading Movies and TV Shows. `GPL-3.0` `Python` +- [Patrowl](https://github.com/Patrowl/PatrowlManager) - Open Source, Smart and Scalable Security Operations Orchestration Platform. `AGPL-3.0` `Python` +- [Podgrab](https://github.com/akhilrex/podgrab) - Lightweight podcast manager and automatic podcast episode downloader. It will monitor podcasts for your and download them automatically whenever a new episode goes live. `GPL-3.0` `Docker/Go` +- [pyLoad](https://pyload.net/) - Lightweight, customizable and remotely manageable downloader for 1-click-hosting sites like rapidshare.com or uploaded.to. ([Source Code](https://github.com/pyload/pyload)) `GPL-3.0` `Python` +- [Radarr](https://radarr.video/) - Radarr is an independent fork of Sonarr reworked for automatically downloading movies via Usenet and BitTorrent, à la Couchpotato. ([Source Code](https://github.com/Radarr/Radarr)) `GPL-3.0` `C#` +- [StackStorm](https://stackstorm.com) - StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, security responses, troubleshooting, deployments, and more. Includes rules engine, workflow, 160 integration packs with 6000+ actions and ChatOps. ([Source Code](https://github.com/StackStorm/st2)) `Apache-2.0` `Python` +- [SickRage](http://sickrage.github.io/) - SickRage is an automatic Video Library Manager for TV Shows. Automatic torrent/nzb searching, downloading, and processing at the qualities you want. ([Source Code](https://github.com/SickRage/SickRage)) `GPL-3.0` `Python` +- [SiteInspector](https://www.getsiteinspector.com/) - Web-based tool for catching spelling errors, grammatical errors, broken links, and other errors on websites. ([Demo](https://demo.getsiteinspector.com/reports), [Source Code](https://github.com/siteinspector/siteinspector)) `AGPL-3.0` `Ruby` +- [Sonarr](https://sonarr.tv/) - Automatic TV Shows downloader and manager for Usenet and BitTorrent. It can grab, sort and rename new episodes and automatically upgrade the quality of files already downloaded when a better quality format becomes available. ([Source Code](https://github.com/Sonarr/Sonarr)) `GPL-3.0` `C#` +- [µTask](https://github.com/ovh/utask) - µTask is an automation engine that models and executes business processes declared in yaml. `BSD-3-Clause` `Go` +- [WebUI-aria2](https://github.com/ziahamza/webui-aria2) - Interface to interact with the aria2 downloader. Very simple to use, just download and open index.html in any web browser. ([Demo](http://ziahamza.github.io/webui-aria2/)) `MIT` `HTML5` +- [ydl_api](https://github.com/Totonyus/ydl_api) - Simple youtube-dl REST API to launch downloads on a distant server. ([Source Code](https://github.com/Totonyus/ydl_api)) `Unlicense` `Python` +- [YoutubeDL-Material](https://github.com/Tzahi12345/YoutubeDL-Material) - Material Design inspired YouTube downloader, based on youtube-dl. Supports playlists, quality select, search, dark mode and much more, all with a clean and modern design. `MIT` `Nodejs` +- [Zenbot 3](https://github.com/carlos8f/zenbot) - Zenbot is a lightweight, extendable, artificially intelligent trading bot for Bitcoin, Ether, Litecoin, and more. `MIT` `Node.js` +- [ZeroQueue](https://github.com/thezeroqueue/zeroqueue) - A low-code queue management system that lets you run scheduled jobs for anything. `GPL-3.0` `Node.js` + +## Blogging Platforms + +**[`^ back to top ^`](#)** + +_See also [Static Site Generators](#static-site-generators), [Content Management Systems](#content-management-systems-cms) and [WeblogMatrix](http://www.weblogmatrix.org/)_ + +- [Antville](https://antville.org) - Free, open source project aimed at the development of a high performance, feature rich weblog hosting software. ([Source Code](https://github.com/antville/antville)) `Apache-2.0` `Javascript` +- [Blog](https://github.com/m1k1o/blog) - Facebook-styled blog. Free, extremely lightweight, single-user and easy to install. ([Demo](https://blog.m1k1o.net/)) `GPL-3.0` `PHP` +- Blogotext - Free blog-engine written in PHP and using SQLite. This offers you both an unmatched simplicity during installation and great performances. ([Source Code](https://github.com/timovn/blogotext)) `MIT` `PHP` +- [Bludit](https://www.bludit.com/) `⚠` - Simple application to build a site or blog in seconds. Bludit uses flat-files (text files in JSON format) to store posts and pages. ([Demo](https://demo.bludit.com/), [Source Code](https://github.com/dignajar/bludit)) `MIT` `PHP` +- [Cadmus](https://github.com/liamdemafelix/cadmus) - Cadmus is an extremely lightweight, flat-file blogging platform powered by Markdown. `MIT` `PHP` +- [Canvas](https://trycanvas.app/) - A Laravel publishing platform. ([Source Code](https://github.com/cnvs/canvas)) `MIT` `PHP` +- [Chyrp Lite](http://chyrplite.net) - Extra-awesome, extra-lightweight blog engine. ([Source Code](https://github.com/xenocrat/chyrp-lite)) `BSD-3-Clause` `PHP` +- [Dante Stories](https://dante-stories.herokuapp.com/) - Self hosted Medium platform built with Ruby on Rails. ([Source Code](https://github.com/michelson/dante-stories)) `MIT` `Ruby` +- [Dotclear](http://dotclear.org/) - Take control over your blog. ([Source Code](https://hg.dotclear.org/dotclear)) `GPL-2.0` `PHP` +- [Formtools](https://formtools.org/) - Powerful, flexible, free and open source PHP/MySQL script to manage your forms and data. ([Source Code](https://github.com/formtools)) `GPL-2.0` `PHP` +- [Ghost](https://ghost.org/) - Just a blogging platform. ([Source Code](https://github.com/TryGhost/Ghost)) `MIT` `Nodejs` +- [Hexo](https://hexo.io/) - Fast, simple and powerful blog framework, powered by Node.js. ([Source Code](https://github.com/hexojs/hexo)) `MIT` `Nodejs` +- [Hotglue](https://hotglue.me/) - Freehand CMS which allows to construct websites directly in a web-browser. It uses flat files for storage and provides an intuitive GUI. ([Demo](https://hotglue.me/demo/), [Source Code](https://github.com/k0a1a/hotglue2)) `GPL-3.0` `PHP` +- [htmly](https://www.htmly.com/) - Databaseless Blogging Platform (Flat-File Blog). ([Demo](https://www.htmly.com/demo/), [Source Code](https://github.com/danpros/htmly)) `GPL-2.0` `PHP` +- [Known](https://withknown.com/) - Single website for all your content. ([Source Code](https://github.com/idno/idno)) `Apache-2.0` `PHP` +- [Plume](https://joinplu.me/) - Federated blogging engine, based on ActivityPub. ([Source Code](https://github.com/Plume-org/Plume)) `AGPL-3.0` `Rust` +- [PluXml](http://www.pluxml.org/) - XML-based blog/CMS platform. ([Source Code](https://github.com/pluxml/PluXml)) `GPL-1.0` `PHP` + + +## Bookmarks and Link Sharing + +**[`^ back to top ^`](#)** + +- [dyu/bookmarks](https://github.com/dyu/bookmarks) - Single-threaded/process bookmark app powered by leveldb and uWebSockets. Supports importing from Delicious and Chrome. ([Demo](https://dyuproject.com/bookmarks/)) `Apache-2.0` `Java` +- [Espial](https://github.com/jonschoning/espial) - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` +- [Firefox Account Server](https://mozilla-services.readthedocs.io/en/latest/howtos/run-fxa.html) - This allows you to host your own Firefox accounts server. ([Source Code](https://github.com/mozilla/fxa)) `MPL-2.0` `Nodejs, Java` + - [Firefox Sync Server](https://github.com/mozilla-services/syncserver) - Sync Firefox bookmarks, passwords, history, tabs, preferences. `MPL-2.0` `Python` +- [Geekmarks](https://geekmarks.dmitryfrank.com/) - Personal bookmarking service focused on speed and organization using hierarchical tags. ([Source Code](https://github.com/dimonomid/geekmarks)) `BSD-2-Clause` `Go` +- [golinks](https://github.com/prologic/golinks) - Web application that allows you to create smart bookmarks, commands and aliases by pointing your web browser's default search engine at a running instance. Similar to bunny1 or yubnub. ([Demo](https://search.mills.io)) `MIT` `Go` +- [Hackershare](https://github.com/hackershare/hackershare) - Social bookmarks website for hackers. ([Demo](https://hackershare.dev)) `MIT` `Ruby` +- [linkding](https://github.com/sissbruecker/linkding) - Minimal bookmark management with a fast and clean UI. Simple installation through Docker and can run on your Raspberry Pi. ([Demo](https://demo.linkding.link/)) `MIT` `Docker/Python/Nodejs` +- [LinkAce](https://www.linkace.org/) - A bookmark archive with automatic backups to the Internet Archive, link monitoring, and a full REST API. Installation is done via Docker, or as a simple PHP application. ([Demo](https://demo.linkace.org/), [Source Code](https://github.com/Kovah/LinkAce/)) `GPL-3.0` `PHP` +- [Lobsters](https://lobste.rs) - Run your own link aggregation site. ([Source Code](https://github.com/jcs/lobsters)) `BSD-3-Clause` `Ruby` +- [No Fuss Bookmarks](http://nofussbm.herokuapp.com/signup.html) - Very simple software and service to store bookmarks especially designed for hackers (that don't need fancy interfaces, but nice API). ([Source Code](https://github.com/mapio/nofussbm)) `GPL-3.0` `Python` +- [Pinry](http://getpinry.com/) - The tiling image board system for people who want to save, tag, and share images, videos, and webpages. ([Source Code](https://github.com/pinry/pinry)) `BSD-2-Clause` `Python` +- [Reminiscence](https://github.com/kanishka-linux/reminiscence) - Self-Hosted Bookmark And Archive Manager. `AGPL-3.0` `Python` +- [Shaarli](https://github.com/shaarli/Shaarli) - Personal, minimalist, super-fast, no-database bookmarking and link sharing platform. ([Demo](https://demo.shaarli.org)) `Zlib` `PHP` +- [Shiori](https://github.com/RadhiFadlillah/shiori) - Simple bookmark manager built with Go. `MIT` `Go` +- [unmark](https://github.com/plainmade/unmark) - Open source to do app for links. `MIT` `PHP` +- [ubookmark](https://ungleich.ch/u/projects/ubookmark/) - LDAP enabled bookmarking service. ([Demo](https://ipv6.blog), [Source Code](https://code.ungleich.ch/ungleich-public/ubookmark/)) `GPL-2.0` `Python` +- [xBrowserSync](https://www.xbrowsersync.org) - Open source tool for syncing browser data between browsers and devices. ([Source Code](https://github.com/xBrowserSync)) `MIT` `Nodejs` + +## Calendaring and Contacts Management + +**[`^ back to top ^`](#)** + +_Some [Groupware](#groupware) solutions also feature calendar/address book editing and synchronization._ + +_See https://en.wikipedia.org/wiki/Comparison_of_CalDAV_and_CardDAV_implementations_ + +### CalDAV or CardDAV servers + +- [Baïkal](http://sabre.io/baikal/) - Lightweight CalDAV and CardDAV server based on sabre/dav. ([Source Code](https://github.com/sabre-io/Baikal)) `GPL-3.0` `PHP` +- [CalendarServer](https://www.calendarserver.org/) - Apple, Inc.'s standards-compliant server implementing the CalDAV and CardDAV protocols shipped with macOS Server. ([Source Code](https://github.com/apple/ccs-calendarserver)) `Apache-2.0` `Python` +- [calypso](https://keithp.com/calypso/) - Python-based CalDAV and CardDAV server, forked from Radicale. ([Source Code](https://keithp.com/git/calypso.git)) `GPL-3.0` `Python` +- [DAViCal](https://www.davical.org/) - Server for calendar sharing (CalDAV) that uses a PostgreSQL database as a data store. ([Source Code](https://gitlab.com/davical-project/davical)) `GPL-2.0` `PHP` +- [Davis](https://github.com/tchapi/davis/) - A simple, dockerizable and fully translatable admin interface for sabre/dav based on Symfony 5 and Bootstrap 4, largely inspired by Baïkal. `MIT` `PHP` +- [DecSync CC](https://f-droid.org/packages/org.decsync.cc/) - Serverless contacts, calendar synchronization using your own file syncing method i.e Syncthing, Nextcloud etc. ([Source Code](https://github.com/39aldo39/DecSyncCC)) `GPL-3.0` `Kotlin` +- [Etebase (EteSync)](https://www.etebase.com/) - End-to-end encrypted and journaled personal information server supporting calendar and contact data, offering its own clients. ([Source Code](https://github.com/etesync/server)) `AGPL-3.0` `Python/Django` +- [Radicale](http://radicale.org/) - Simple calendar and contact server with extremely low administrative overhead. ([Source Code](https://github.com/Kozea/Radicale)) `GPL-3.0` `Python` +- [SabreDAV](http://sabre.io/) - Open source CardDAV, CalDAV, and WebDAV framework and server. ([Source Code](https://github.com/sabre-io/dav)) `MIT` `PHP` +- [Xandikos](https://www.xandikos.org/) - Open source CardDAV and CalDAV server with minimal administrative overhead, backed by a Git repository. ([Source Code](https://github.com/jelmer/xandikos)) `GPL-3.0` `Python` + +### CalDAV or CardDAV web-based clients + +- [AgenDAV](http://agendav.org/) - Multilanguage CalDAV web client with a rich AJAX interface and shared calendars support. ([Source Code](https://github.com/agendav/agendav)) `GPL-3.0` `PHP` +- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud/) - Open source CalDAV/CardDAV web client implementation. ([Demo](https://www.inf-it.com/infcloud/), [Source Code](https://www.inf-it.com/InfCloud_0.13.1.zip)) `AGPL-3.0` `Javascript` +- [EteSync Web](https://www.etesync.com/faq/#web-client) - EteSync's official Web-based client (i.e., their Web app). ([Demo](https://client.etesync.com/), [Source Code](https://github.com/etesync/etesync-web)) `AGPL-3.0` `Javascript` + +## Communication systems + +**[`^ back to top ^`](#)** + +### Custom communication systems + +- [BluetoothCommunicatorExample](https://github.com/niedev/BluetoothCommunicatorExample) - Bluetooth LE chat app to communicate between android devices with P2P architecture. ([Clients](https://github.com/niedev/RTranslator)) `Apache-2.0` `Java` +- [Centrifugo](https://github.com/centrifugal/centrifugo) - Language-agnostic real-time messaging (Websocket or SockJS) server. ([Demo](https://github.com/centrifugal/centrifugo#demo)) `MIT` `Go` +- [Chaskiq](https://chaskiq.io) - Full featured livechat, helpcenter and CRM as an alternative to Intercom & Drift, Crisp and others. ([Source Code](https://github.com/chaskiq/chaskiq)) `AGPL-3.0` `Ruby` +- [Chatwoot](https://www.chatwoot.com) - Self-hosted customer communication platform, an alternative to Intercom & Zendesk. ([Source Code](https://github.com/chatwoot/chatwoot)) `MIT` `Ruby` +- [Cherry](https://github.com/rafael-santiago/cherry) - Tiny webchat server. `GPL-2.0` `Go` +- [Conduit](https://conduit.rs/) - A simple, fast, and reliable chat server powered by Matrix. ([Source Code](https://gitlab.com/famedly/conduit)) `Apache-2.0` `Rust` +- [Darkwire.io](https://github.com/darkwire/darkwire.io) - End-to-end encrypted instant web chat. `MIT` `Nodejs` +- [Freenet](https://freenetproject.org/index.html) - Anonymously share files, browse and publish "freesites" (web sites accessible only through Freenet) and chat on forums. ([Source Code](https://github.com/freenet/fred)) `GPL-2.0` `Java` +- [Friends](http://moose-team.github.io/friends/) - P2P chat powered by the web. ([Source Code](https://github.com/moose-team/friends)) `MIT` `Nodejs` +- [GNUnet](https://gnunet.org/) - Free software framework for decentralized, peer-to-peer networking. ([Source Code](https://gnunet.org/git/)) `GPL-3.0` `C` +- [Gotify](https://gotify.net/) - Self-hosted notification server with Android and CLI clients, similar to PushBullet. ([Source Code](https://github.com/gotify/server), [Clients](https://github.com/gotify/android)) `MIT` `Go` +- [Hawkpost](https://hawkpost.co) - HawkPost is a web app that lets you create unique links that you can share with a person that desires to send you important information but doesn't know how to encrypt it. The message is encrypted in their browser and sent to your email address. ([Source Code](https://github.com/whitesmith/hawkpost)) `MIT` `Python` +- [Jami](https://jami.net/) - Free and universal communication platform which preserves the user's privacy and freedoms (formerly GNU Ring). ([Source Code](https://git.ring.cx/savoirfairelinux/ring-project)) `GPL-3.0` `C++` +- [Jitsi Meet](https://jitsi.org/Projects/JitsiMeet) - Jitsi Meet is an OpenSource (MIT) WebRTC Javascript application that uses Jitsi Videobridge to provide high quality, scalable video conferences. ([Source Code](https://github.com/jitsi/jitsi-meet)) `MIT` `Javascript` +- [Jitsi Video Bridge](https://jitsi.org/Projects/JitsiVideobridge) - WebRTC compatible Selective Forwarding Unit (SFU) that allows for multiuser video communication. ([Source Code](https://github.com/jitsi/jitsi-videobridge)) `Apache-2.0` `Java` +- [KChat](https://github.com/php-kchat/kchat) - PHP Based Live Chat Application. `Apache-2.0` `PHP` +- [LeapChat](https://github.com/cryptag/leapchat) - Ephemeral, encrypted, in-browser chat rooms. `AGPL-3.0` `JavaScript` +- [Lets-Chat](http://sdelements.github.io/lets-chat/) - Self hosted chat suite written in Node. ([Source Code](https://github.com/sdelements/lets-chat)) `MIT` `Nodejs` +- [LibreNews](https://librenews.io/) - Decentralized and secure breaking news notification system. ([Source Code](https://github.com/milesmcc/LibreNews-Server/)) `GPL-3.0` `Python` +- [Live Helper Chat](http://livehelperchat.com/) - Live Support chat for your website. ([Source Code](https://github.com/LiveHelperChat/livehelperchat)) `Apache-2.0` `PHP` +- [Mattermost](http://www.mattermost.org/) - Open-source, on-prem Slack-alternative. It can be integrated with Gitlab. ([Source Code](https://github.com/mattermost/mattermost-server)) `AGPL-3.0/Apache-2.0` `Go` +- [MiAOU](https://miaou.dystroy.org/login) - Multi-room persistent chat server. ([Source Code](https://github.com/Canop/miaou)) `MIT` `Nodejs` +- [Mibew](https://mibew.org) - Mibew Messenger is an open-source live support application written in PHP and MySQL. It enables one-on-one chat assistance in real-time directly from your website. ([Demo](https://mibew.org/demo2), [Source Code](https://github.com/Mibew/mibew)) `Apache-2.0` `PHP` +- [Mumble](https://wiki.mumble.info/wiki/Main_Page) - Low-latency, high quality voice/text chat software. ([Source Code](https://github.com/mumble-voip/mumble), [Clients](https://wiki.mumble.info/wiki/3rd_Party_Applications)) `BSD-3-Clause` `C++` +- [Node-Chat](https://github.com/IgorAntun/node-chat) - Not-so-basic open-source chat with admin features. `MIT` `Nodejs` +- [OTS](https://ots.fyi/) - One-Time-Secret sharing platform with a symmetric 256bit AES encryption in the browser. ([Source Code](https://github.com/Luzifer/ots)) `Apache-2.0` `Go` +- [Papercups](https://papercups.io/) - An open source live customer chat web app written in Elixir. ([Demo](https://app.papercups.io/demo), [Source Code](https://github.com/papercups-io/papercups)) `MIT` `Elixir` +- [PushBits](https://github.com/eikendev/pushbits) - Self-hosted notification server for relaying push notifications via Matrix, similar to PushBullet and Gotify. `ISC` `Go` +- [Rallly](http://rallly.co) - Rallly is a free collaborative scheduling service. ([Source Code](https://github.com/lukevella/Rallly)) `CC-BY-SA-4.0` `Nodejs` +- [RetroShare](http://retroshare.org) - Secured and decentralized communication system. Offers decentralized chat, forums, messaging, file transfer. ([Source Code](https://github.com/RetroShare/RetroShare)) `GPL-2.0` `С++` +- [Rocket.Chat](https://rocket.chat/) - Teamchat solution similar to Gitter.im or Slack. ([Source Code](https://github.com/RocketChat/Rocket.Chat)) `MIT` `Nodejs` +- [Shhh](https://github.com/smallwat3r/shhh) - Keep secrets out of emails or chat logs, share them using secure links with passphrase and expiration dates. `MIT` `Python` +- [Spectrum 2](http://spectrum.im/) - Spectrum 2 is an open source instant messaging transport. It allows users to chat together even when they are using different IM networks. ([Source Code](https://github.com/hanzz/spectrum2)) `GPL-3.0` `C++` +- [Spreed](https://www.spreed.me/) - WebRTC audio/video calls, conferencing server, and web client. ([Source Code](https://github.com/strukturag/spreed-webrtc)) `AGPL-3.0` `Go` +- [Synapse](http://matrix.org/docs/projects/server/synapse.html) - Server for [Matrix](https://matrix.org/), an open standard for decentralized persistent communication. ([Source Code](https://github.com/matrix-org/synapse)) `Apache-2.0` `Python` + - [Matrix Console Web](https://matrix.org/docs/projects/client/matrix-console-web) - Web client meant to be a showcase of Matrix capabilities, and reference implementation of the Matrix standard. ([Source Code](https://github.com/matrix-org/matrix-angular-sdk)) `Apache-2.0` `Javascript` + - [Element](https://element.io) - Fully-featured Matrix client for Web, iOS & Android. ([Source Code](https://github.com/vector-im/element-web)) `Apache-2.0` `Javascript` +- [Syndie](https://syndie.de) - Syndie is a libre system for operating distributed forums. `CC0-1.0` `Java` +- [TextBelt](https://github.com/typpo/textbelt) `⚠` - Outgoing SMS API that uses carrier-specific gateways to deliver your text messages for free, and without ads. `MIT` `Javascript` +- [Tinode](https://github.com/tinode) - Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots. ([Demo](https://sandbox.tinode.co/), [Source Code](https://github.com/tinode/chat), [Clients](https://github.com/tinode/webapp)) `GPL-3.0` `Go` +- [Tox](https://tox.chat/) - Distributed, secure messenger with audio and video chat capabilities. ([Source Code](https://github.com/irungentoo/toxcore)) `GPL-3.0` `C` +- [Tuber](https://blog.trailofbits.com/2015/12/15/self-hosted-video-chat-with-tuber/) - Peer-to-peer video chat that works. ([Source Code](https://github.com/trailofbits/tubertc)) `MIT` `Javascript` +- [WBO](https://github.com/lovasoa/whitebophir#wbo) - A web Whiteboard to collaborate in real-time on schemas, drawings, and notes. ([Demo](https://wbo.ophir.dev/)) `AGPL-3.0` `Nodejs/Docker` +- [ZeroNet](https://zeronet.io/) `⚠` - Open, free, and uncensorable websites, using Bitcoin cryptography and BitTorrent network. ([Source Code](https://github.com/HelloZeroNet/ZeroNet)) `GPL-2.0` `Python` +- [Zulip](https://zulip.org) - Zulip is a powerful, open source group chat application. ([Source Code](https://github.com/zulip/zulip)) `Apache-2.0/Other` `Python` + +### Email + +**[`^ back to top ^`](#)** + +#### Complete solutions + +_Simple deployment of a mail server, e.g. for inexperienced or impatient admins._ + +- [AnonAddy](https://anonaddy.com) - Open source email forwarding service for creating aliases. ([Source Code](https://github.com/anonaddy/anonaddy)) `MIT` `PHP` +- [DebOps](https://docs.debops.org/) - Your Debian-based data center in a box. A set of general-purpose Ansible roles that can be used to manage Debian or Ubuntu hosts. ([Source Code](https://github.com/debops/debops)) `GPL-3.0-only` `YAML/Ansible/Python` +- [docker-mailserver](https://github.com/tomav/docker-mailserver) - Fullstack but simple mail server (smtp, imap, antispam, antivirus, etc.). Only configuration files, no SQL database. Keep it simple and versioned. Easy to deploy and upgrade. `MIT` `Docker` +- [emailwiz](https://github.com/LukeSmithxyz/emailwiz) - Luke Smith's bash script to completely automate the setup of a Postfix/Dovecot/SpamAssassin/OpenDKIM server on debian. `GPL-3.0` `Bash` +- [Excision Mail](https://github.com/Excision-Mail/Excision-Mail) - Fullstack, security focused mailserver based on OpenSMTPD for OpenBSD using ansible. `ISC` `Shell/Ansible` +- [Inboxen](https://inboxen.org) - Inboxen is a service that provides you with an infinite number of unique inboxes. ([Source Code](https://github.com/Inboxen/Inboxen)) `GPL-3.0` `Python` +- [homebox](https://github.com/progmaticltd/homebox) - Suite of Ansible scripts to deploy a fully functional mail server on Debian. Unobtrusive and automatic as much as possible, focusing on stability and security. `GPL-3.0` `Shell` +- [iRedMail](http://www.iredmail.org/) - Full-featured mail server solution based on Postfix and Dovecot. ([Source Code](https://github.com/iredmail/iRedMail)) `GPL-3.0` `Shell` +- [Mailcow](https://mailcow.email/) - Mail server suite based on Dovecot, Postfix and other open source software, that provides a modern Web UI for administration. ([Source Code](https://github.com/mailcow/mailcow-dockerized)) `GPL-2.0` `Docker/PHP` +- [Mailu](https://mailu.io/) - Mailu is a simple yet full-featured mail server as a set of Docker images. ([Demo](https://github.com/Mailu/Mailu/wiki/Demo-server), [Source Code](https://github.com/Mailu/Mailu)) `MIT` `Docker/Python` +- [Mail-in-a-Box](https://mailinabox.email/) - Turns any Ubuntu server into a fully functional mail server with one command. ([Source Code](https://github.com/mail-in-a-box/mailinabox)) `CC0-1.0` `Shell` +- [Modoboa](http://modoboa.org/en/) - Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. ([Source Code](https://github.com/tonioo/modoboa)) `MIT` `Python` +- [Ptorx](https://github.com/xyfir/ptorx) - Email privacy. Anonymously send and receive with alias forwarding. `GPL-3.0` `Node.js` +- [Qmailtoaster](http://www.qmailtoaster.com/) - Stable, full-featured, easy-to-install mail server based on qmail. ([Source Code](https://github.com/QMailToaster/)) `Multiple` `Linux` +- [SimpleLogin](https://simplelogin.io) - Open source email alias solution to protect your email address. Comes with browser extensions and mobile apps. ([Source Code](https://github.com/simple-login/app)) `MIT` `Docker/Python` +- [Simple NixOS Mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver) - Complete mailserver solution leveraging the Nix Ecosystem. `GPL-3.0` `Nix` +- [wildduck](https://wildduck.email/) - Scalable no-SPOF IMAP/POP3 mail server. ([Source Code](https://github.com/nodemailer/wildduck)) `EUPL-1.2` `Node.js` + +#### Mail Transfer Agents + +_MTAs / SMTP servers_ + +- [chasquid](https://blitiri.com.ar/p/chasquid/) - SMTP (email) server with a focus on simplicity, security, and ease of operation. ([Source Code](https://blitiri.com.ar/git/r/chasquid/)) `Apache-2.0` `Go` +- [Courier MTA](http://www.courier-mta.org/) - Fast, scalable, enterprise mail/groupware server providing ESMTP, IMAP, POP3, webmail, mailing list, basic web-based calendaring and scheduling services. ([Source Code](http://www.courier-mta.org/repo.html)) `GPL-3.0` `C` +- [Exim](https://www.exim.org/) - Message transfer agent (MTA) developed at the University of Cambridge. ([Source Code](http://git.exim.org/exim.git)) `GPL-3.0` `C` +- [Haraka](http://haraka.github.io/) - High-performance, pluginable SMTP server written in Javascript. ([Source Code](https://github.com/haraka/Haraka)) `MIT` `Javascript` +- [MailCatcher](http://mailcatcher.me/) - Ruby gem that deploys a simply SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development. ([Source Code](https://github.com/sj26/mailcatcher)) `MIT` `Ruby` +- [Maildrop](https://gitlab.com/markbeeson/maildrop) - Disposable email SMTP server, also useful for development. `MIT` `Scala` +- [MailHog](https://github.com/mailhog/MailHog) - Small Golang executable which runs an SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development. `MIT` `Go` +- [OpenSMTPD](https://opensmtpd.org/) - Secure SMTP server implementation from the OpenBSD project. ([Source Code](http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/smtpd/)) `ISC` `C` +- [Postfix](http://www.postfix.org/) - Fast, easy to administer, and secure Sendmail replacement. `IPL-1.0` `C` +- [Qmail](https://cr.yp.to/qmail.html) - Secure Sendmail replacement. ([Source Code](https://sources.debian.net/src/netqmail/1.06-5/)) `CC0-1.0` `C` +- [Sendmail](http://www.sendmail.com/sm/open_source/) - Message transfer agent (MTA). `Sendmail` `C` +- [Slimta](http://slimta.org) - Mail Transfer Library built on Python. ([Source Code](https://github.com/slimta/python-slimta)) `MIT` `Python` + +#### Mail Delivery Agents + +_MDAs - IMAP/POP3 software_ + +- [Cyrus IMAP/POP3](https://www.cyrusimap.org/) - Intended to be run on sealed servers, where normal users are not permitted to log in. ([Source Code](https://github.com/cyrusimap/cyrus-imapd )) `BSD-3-Clause-Attribution` `C` +- [Dovecot](http://www.dovecot.org/) - IMAP and POP3 server written primarily with security in mind. ([Source Code](https://github.com/dovecot/core)) `MIT/LGPL-2.1` `C` +- [Piler](http://www.mailpiler.org/wiki/start) - feature-rich open source email archiving solution. ([Source Code](https://bitbucket.org/jsuto/piler)) `GPL-3.0` `C` + +#### Mailing lists and Newsletters + +_Mailing lists servers and mass mailing software - one message to many recipients._ + +- [Dada Mail](http://dadamailproject.com/) - Web-based list management system that can be used for announcement lists and/or discussion lists. ([Source Code](https://github.com/justingit/dada-mail)) `GPL-2.0` `Perl` +- [Listmonk](https://listmonk.app/) - High performance, self-hosted newsletter and mailing list manager with a modern dashboard. ([Source Code](https://github.com/knadh/listmonk)) `AGPL-3.0` `Go` +- [Mail For Good](https://github.com/freeCodeCamp/mail-for-good) `⚠` - Open source email campaign management tool for nonprofits. `BSD-3-Clause` `Javascript` +- [Mailman](https://www.gnu.org/software/mailman/) - The Gnu mailing list server. `GPL-3.0` `Python` +- [Mailtrain](https://mailtrain.org/) - self hosted newsletter application built on Node.js (v5+) and MySQL (v5.5+ or MariaDB). ([Source Code](https://github.com/andris9/mailtrain)) `GPL-3.0` `Nodejs` +- [MailyHerald](http://mailyherald.org/) - Self-hosted Mailchimp alternative that you can easily integrate with your site. Helps you send and manage your application mailings. It supports email marketing and conducting the daily stream of notifications you send to your users. ([Source Code](https://github.com/Sology/maily_herald)) `LGPL-3.0` `Ruby` +- [Mautic](https://www.mautic.org/) - Mautic is marketing automation software (email, social and more). ([Source Code](https://github.com/mautic/mautic)) `GPL-3.0` `PHP` +- [HyperKitty](https://wiki.list.org/HyperKitty) - Open source Django application to provide a web interface to access GNU Mailman v3 archives. ([Demo](https://lists.mailman3.org/), [Source Code](https://gitlab.com/mailman/hyperkitty)) `GPL-3.0` `Python` +- [phpList](https://phplist.org) - Newsletter and email marketing with advanced management of subscribers, bounces, and plugins. ([Source Code](https://github.com/phpList/)) `AGPL-3.0` `PHP` +- [Postal](https://github.com/atech/postal) - Fully featured open source mail delivery platform for incoming and outgoing e-mail. `MIT` `Ruby` +- [Postorius](https://docs.mailman3.org/projects/postorius/en/latest/) - Web user interface to access GNU Mailman. ([Source Code](https://gitlab.com/mailman/postorius/)) `GPL-3.0` `Python` +- [Schleuder](https://schleuder.nadir.org/) - GPG-enabled mailing list manager with resending-capabilities. ([Source Code](https://0xacab.org/schleuder/schleuder/tree/master)) `GPL-3.0` `Ruby` +- [Sympa](https://www.sympa.org/) - Mailing list manager. `GPL-2.0` `Perl` + +#### Webmail clients + +- [Afterlogic WebMail Lite](http://www.afterlogic.org/webmail-lite) - Fast and easy-to-use webmail front-end for your existing IMAP mail server, Plesk or cPanel. ([Demo](https://lite.afterlogic.com/), [Source Code](https://github.com/afterlogic/webmail-lite)) `AGPL-3.0` `PHP` +- [Cypht](http://cypht.org/index.html) - Feed reader for your email accounts. ([Source Code](https://github.com/jasonmunro/hm3)) `GPL-2.0` `PHP` +- [IMP](https://www.horde.org/apps/imp/) - HORDE application that provides webmail access to IMAP and POP3 accounts. ([Demo](http://demo.horde.org/), [Source Code](https://www.horde.org/download/imp)) `GPL-2.0` `PHP` +- [Isotope Mail](https://blog.marcnuri.com/isotope-mail-client-introduction/) - Microservice based webmail client built with ReactJS and Spring. ([Source Code](https://github.com/manusa/isotope-mail)) `Apache-2.0` `Docker/Java` +- [MailCare](https://mailcare.io) - Open source disposable email address service. ([Source Code](https://github.com/mailcare/mailcare)) `MIT` `PHP` +- [Mailpile](https://www.mailpile.is/) - Webmail client with search, filtering, encryption features and more. ([Source Code](https://github.com/mailpile/Mailpile)) `AGPL-3.0` `Python` +- [RainLoop](http://www.rainloop.net/) - Simple, modern and fast webmail with IMAP/SMTP Support and multi accounting. ([Demo](http://demo.rainloop.net/), [Source Code](https://github.com/RainLoop/rainloop-webmail)). `AGPL-3.0` `PHP` +- [Roundcube](https://roundcube.net) - Browser-based IMAP client with an application-like user interface. ([Source Code](https://github.com/roundcube/roundcubemail)) `GPL-3.0` `PHP` +- [SquirrelMail](http://squirrelmail.org) - Another browser-based IMAP client. ([Source Code](https://sourceforge.net/p/squirrelmail/code/HEAD/tree/)) `GPL-2.0` `PHP` + +### IRC + +**[`^ back to top ^`](#)** + +_[IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) communication software_ + +- [Convos](https://convos.chat/) - Always online web IRC client. ([Demo](https://convos.chat/#instant-demo), [Source Code](http://github.com/nordaaker/convos)) `Artistic-2.0` `Perl` +- [InspIRCd](https://www.inspircd.org/) - Modular IRC server written in C++ for Linux, BSD, Windows, and macOS. ([Source Code](https://github.com/inspircd/inspircd)) `GFDL-1.2-only` `C++` +- [Dispatch](https://github.com/khlieng/dispatch) - Self-hosted web IRC client written in Go. ([Demo](https://dispatch.khlieng.com/connect)) `MIT` `Go` +- [Kiwi IRC](https://kiwiirc.com/) - Responsive web IRC client with theming support. ([Demo](https://kiwiirc.com/nextclient/), [Source Code](https://github.com/kiwiirc/kiwiirc)) `Apache-2.0` `Nodejs` +- [ngircd](https://ngircd.barton.de/) - Free, portable and lightweight Internet Relay Chat server for small or private networks. ([Source Code](https://github.com/ngircd/ngircd)) `GPL-2.0` `C` +- [Oragono](https://oragono.io) - Modern IRCv3 server written in Go, combining the features of an ircd, a services framework, and a bouncer. ([Source Code](https://github.com/oragono/oragono/)) `MIT` `Go` +- [The Lounge](https://thelounge.github.io/) - Self-hosted web IRC client. ([Demo](https://demo.thelounge.chat/), [Source Code](https://github.com/thelounge/lounge)) `MIT` `Nodejs` +- [Quassel IRC](http://quassel-irc.org/) - distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. ([Source Code](https://github.com/quassel/quassel)) `GPL-2.0` `C++` +- [Robust IRC](https://robustirc.net/) - RobustIRC is IRC without netsplits. Distributed IRC server, based on RobustSession protocol. ([Source Code](https://github.com/robustirc/robustirc)) `BSD-3-Clause` `Go` +- [Tiny Tiny IRC](https://tt-rss.org/tt-irc/) - An open source AJAX-powered chat platform with support for IRC ([Source Code](https://git.tt-rss.org/fox/tt-irc)). `GPL-3.0` `PHP/Java` +- [Weechat](https://weechat.org/) - Fast, light and extensible chat client. `GPL-3.0` `C` + - [Glowing Bear](https://github.com/glowing-bear/glowing-bear/) - A web frontend for WeeChat. ([Demo](https://www.glowing-bear.org)) `GPL-3.0` `JavaScript` +- [ZNC](http://wiki.znc.in/ZNC) - Advanced IRC bouncer. ([Source Code](https://github.com/znc/znc)) `Apache-2.0` `C++` + +### SIP + +**[`^ back to top ^`](#)** + +_[SIP](https://en.wikipedia.org/wiki/Session_Initiation_Protocol)/[IPBX](https://en.wikipedia.org/wiki/IP_PBX) telephony software_ + +- [Asterisk](http://www.asterisk.org/) - Easy to use but advanced IP PBX system, VoIP gateway and conference server. `GPL-2.0` `C` +- [ASTPP](https://www.astppbilling.org/) - is an Open Source VoIP Billing Solution for Freeswitch. It supports prepaid and postpaid billing with call rating and credit control. It also provides many other features. ([Source Code](https://github.com/iNextrix/ASTPP)) `AGPL-3.0` `PHP` +- [Freepbx](http://www.freepbx.org) - Web-based open source GUI that controls and manages Asterisk. ([Source Code](http://git.freepbx.org/projects/FREEPBX)) `GPL-2.0` `PHP` +- [FreeSWITCH](https://freeswitch.org/) - Scalable open source cross-platform telephony platform. ([Source Code](https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse)) `MPL-2.0` `C` +- [FusionPBX](https://www.fusionpbx.com/) - Open source project that provides a customizable and flexible web interface to the very powerful and highly scalable multi-platform voice switch called FreeSWITCH. ([Source Code](https://github.com/fusionpbx/fusionpbx)) `MPL-1.1` `PHP` +- [Homer](https://www.sipcapture.org/) - Troubleshooting and monitoring VoIP calls. ([Source Code](https://github.com/sipcapture/homer)) `AGPL-3.0` `Angular/C` +- [Kamailio](http://www.kamailio.org/w/) - Modular SIP server (registrar/proxy/router/etc). ([Source Code](https://github.com/kamailio/kamailio)) `GPL-2.0` `C` +- [Kazoo](http://2600hz.org/) - KAZOO is an open-source, highly scalable software platform designed to provide carrier-grade VoIP switch functions and features. ([Source Code](https://github.com/2600hz/KAZOO)) `MPL-1.1` `Erlang` +- [Ostel](https://dev.guardianproject.info/projects/ostel/wiki/Server_Documentation) - Secure SIP telephony setup with ZRTP encryption. `GPL-3.0` `Ruby` +- [Routr](https://routr.io) - A lightweight sip proxy, location server, and registrar for a reliable and scalable SIP infrastructure. ([Source Code](https://github.com/fonoster/routr)) `MIT` `JavaScript` +- [SipXcom](http://sipxcom.org/) - Open source unified communications system. ([Source Code](https://github.com/sipXcom/sipxecs)) `AGPL-3.0` `Java` +- [SIP3](https://sip3.io/) - VoIP troubleshooting and monitoring platform. ([Demo](https://demo.sip3.io), [Source Code](https://github.com/sip3io/)) `Apache-2.0` `Kotlin` +- [Wazo](http://wazo-platform.org/) - Full-featured IPBX solution built atop Asterisk with integrated Web administration interface and REST-ful API. ([Source Code](https://github.com/wazo-platform)) `GPL-3.0` `Python` +- [Yeti-Switch](https://yeti-switch.org/) - Transit class4 softswitch(SBC) with integrated billing and routing engine and REST API. ([Demo](https://yeti-switch.org/demo.html), [Source Code](https://github.com/yeti-switch)) `GPL-2.0` `C++/Ruby` + +### Social Networks and Forums + +**[`^ back to top ^`](#)** + +- [Abilian SBE](https://github.com/abilian/abilian-sbe) - Open Source Collaboration and Social Networking framework and platform. `LGPL-2.1` `Python` +- [Anahita](https://www.getanahita.com/) - Open Source Social Networking Framework and Platform. ([Source Code](https://github.com/anahitasocial)) `GPL-3.0` `PHP` +- [AsmBB](https://board.asm32.info) - A fast, SQLite-powered forum engine written in ASM. ([Source Code](https://asm32.info/fossil/asmbb/index)) `EUPL-1.2` `Assembly` +- [bbPress](https://bbpress.org/) - bbPress is forum software with a twist from the creators of WordPress. Easily setup discussion forums inside your WordPress.org powered site. ([Source Code](https://bbpress.trac.wordpress.org/browser/trunk)) `GPL-2.0` `PHP` +- [Bootcamp](http://trybootcamp.vitorfs.com) - Enterprise social network. ([Source Code](https://github.com/vitorfs/bootcamp)) `MIT` `Python` +- [Buddycloud](http://buddycloud.com/) - Tools, libraries, services and a community to build user-to-user, group and social messaging into your app. Saves time. Scales up. Supports you. ([Source Code](https://github.com/buddycloud)) `Apache-2.0` `Java` +- [BuddyPress](https://buddypress.org/about/) - Powerful plugin that takes your WordPress.org powered site beyond the blog with social-network features like user profiles, activity streams, user groups, and more. ([Source Code](https://github.com/buddypress/BuddyPress)) `GPL-2.0` `PHP` +- [Cactus Comments](https://cactus.chat/) - Cactus Comments is a federated comment system for the open web built on Matrix. ([Demo](https://cactus.chat/demo/), [Source Code](https://gitlab.com/cactus-comments/)) `GPL-3.0` `Python` +- [cartulary](https://github.com/daveajones/cartulary) - RSS reader, readability tool, article archiver, microblogger, social graph manager and reading list manager. `CDDL-1.0` `PHP` +- [Commento](https://gitlab.com/commento/commento) - Commento is a discussion platform that you can embed on your blog, news articles, and any place where you want your readers to add comments. `MIT` `GO` +- [Coral](https://coralproject.net/) - A better commenting experience from Vox Media. ([Source Code](https://github.com/coralproject/talk)) `Apache-2.0` `Nodejs` +- [diaspora*](https://diasporafoundation.org/) - Distributed social networking server. ([Demo](https://podupti.me/go.php), [Source Code](https://github.com/diaspora/diaspora)) `AGPL-3.0` `Ruby` +- [Discourse](http://www.discourse.org/) - Advanced forum / community solution based on Ruby and JS. ([Demo](https://try.discourse.org/), [Source Code](https://github.com/discourse/discourse)) `GPL-2.0` `Ruby` +- [dyu/comments](https://github.com/dyu/comments) - Real-time, markdown-enabled comment engine powered by leveldb. ([Demo](https://dyu.github.io/comments/real-time/)) `Apache-2.0` `Java` +- [EpochTalk](https://github.com/epochtalk/epochtalk) - Next Generation Forum Software. `MIT` `Nodejs` +- [Elgg](https://elgg.org/) - Powerful open source social networking engine. ([Source Code](https://github.com/Elgg/Elgg)) `GPL-2.0` `PHP` +- [Flarum](http://flarum.org) - Delightfully simple forums. Flarum is the next-generation forum software that makes online discussion fun again. ([Source Code](https://github.com/flarum/flarum)) `MIT` `PHP` +- [flaskbb](https://flaskbb.org/) - FlaskBB is forum software written in Python using the microframework Flask. You can easily create new topics, posts and send other users private messages. It also includes basic administration and moderation tools. ([Source Code](https://github.com/sh4nks/flaskbb)) `BSD-3-Clause` `Python` +- [FluxBB](http://fluxbb.org/) - Fast, light, user-friendly forum software for your website. ([Source Code](https://github.com/fluxbb/fluxbb)) `GPL-2.0` `PHP` +- [Friendica](https://friendi.ca/) - Social Communication Server. ([Source Code](https://github.com/friendica/friendica)) `AGPL-3.0` `PHP` +- [Glosa](https://github.com/glosa/glosa-server) - Open source commentary system easy to integrate with static pages. You can import from Disqus. `GPL-3.0` `Java` +- [GNU social](https://gnu.io/social/) - Social communication software for both public and private communications. ([Source Code](https://notabug.org/diogo/gnu-social)) `AGPL-3.0` `PHP` +- [Gosora](https://gosora-project.com/) - Gosora is an ultra-fast and secure forum software written in Go that balances usability with functionality. ([Source Code](https://github.com/Azareal/Gosora)) `GPL-3.0` `Go` +- [Hubzilla](https://hubzilla.org) - Decentralized identity, privacy, publishing, sharing, cloud storage, and communications/social platform. ([Source Code](https://framagit.org/hubzilla/core)) `MIT` `PHP` +- [HumHub](https://www.humhub.org/) - Flexible kit for private social networks. ([Source Code](https://github.com/humhub/humhub)) `AGPL-3.0` `PHP` +- [Isso](http://posativ.org/isso/) - Lightweight commenting server written in Python and Javascript. It aims to be a drop-in replacement for Disqus. ([Source Code](https://github.com/posativ/isso)) `MIT` `Python` +- [Lemmy](https://join.lemmy.ml/#/) - A link aggregator / reddit clone for the fediverse. Reddit alternative built in Rust. ([Source Code](https://github.com/dessalines/lemmy)) `AGPL-3.0` `Rust` +- [Loomio](https://www.loomio.org/) - Loomio is a collaborative decision-making tool that makes it easy for anyone to participate in decisions which affect them. ([Source Code](https://github.com/loomio/loomio)) `AGPL-3.0` `Ruby` +- [Mastodon](https://joinmastodon.org/) - Federated microblogging server, an alternative to GNU social. ([Source Code](https://github.com/tootsuite/mastodon)) `AGPL-3.0` `Ruby` +- [Misago](https://misago-project.org/) - Misago is fully featured modern forum application that is fast, scalable and responsive. ([Source Code](https://github.com/rafalp/Misago)) `GPL-2.0` `Python` +- [Misskey](https://misskey.io/) - Decentralized app-like microblogging server/SNS for the Fediverse, using the ActivityPub protocol like GNU social and Mastodon. ([Source Code](https://github.com/syuilo/misskey)) `AGPL-3.0` `Nodejs` +- [Movim](https://movim.eu/) - Modern, federated social network based on XMPP, with a fully featured group-chat, subscriptions and microblogging. ([Source Code](https://github.com/movim/movim)) `AGPL-3.0` `PHP` +- [MyBB](http://www.mybb.com/) - Free, extensible forum software package. ([Source Code](https://github.com/mybb/mybb)) `LGPL-3.0` `PHP` +- [NodeBB](https://nodebb.org/) - Node.js based forum software built for the modern web. ([Source Code](https://github.com/NodeBB/NodeBB)) `GPL-3.0` `Nodejs` +- [Orange Forum](http://www.goodoldweb.com/) - Orange Forum is an easy to deploy forum that has minimal dependencies and uses very little javascript. ([Source Code](https://github.com/s-gv/orangeforum)) `BSD-3-Clause` `Go` +- [OSSN](https://www.opensource-socialnetwork.org/) - Open Source Social Network (OSSN) is a social networking software written in PHP. It allows you to make a social networking website and helps your members build social relationships, with people who share similar professional or personal interests. ([Source Code](https://github.com/opensource-socialnetwork/opensource-socialnetwork)) `GPL-2.0` `PHP` +- [Patchwork](https://github.com/ssbc/patchwork) - Decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB). `AGPL-3.0-only` `NodeJS` +- [phpBB](https://www.phpbb.com/) - Flat-forum bulletin board software solution that can be used to stay in touch with a group of people or can power your entire website. ([Source Code](https://github.com/phpbb/phpbb)) `GPL-2.0` `PHP` +- [PixelFed](https://pixelfed.social) - Pixelfed is an open-source, federated platform alternate to Instagram. ([Source Code](http://github.com/pixelfed/pixelfed)) `AGPL-3.0` `PHP\HTML\Vue` +- [Pleroma](https://pleroma.social) - Federated microblogging server, Mastodon, GNU social, & ActivityPub compatible. ([Source Code](https://git.pleroma.social/pleroma/pleroma)) `AGPL-3.0` `Elixir` +- [Pump.io](http://pump.io/) - Stream server that does most of what people really want from a social network. ([Source Code](https://github.com/e14n/pump.io)) `Apache-2.0` `Nodejs` +- [remark42](https://remark42.com/) - A lightweight and simple comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments. ([Demo](https://remark42.com/demo/), [Source Code](https://github.com/umputun/remark)) `MIT` `Go` +- [Satellity](https://satellity.org/) - Yet another open source forum written in Golang, React and PostgreSQL. ([Source Code](https://github.com/satellity/satellity)) `MIT` `Go` +- [Scoold](https://scoold.com) - Stack Overflow in a JAR. An enterprise-ready Q&A platform with full-text search, SAML, LDAP integration and social login support. ([Demo](https://live.scoold.com), [Source Code](https://github.com/Erudika/scoold)) `Apache-2.0` `Java` +- [Simple Machines Forum](https://www.simplemachines.org/) - Free, professional grade software package that allows you to set up your own online community within minutes. ([Source Code](https://github.com/SimpleMachines/SMF2.1)) `BSD-3-Clause` `PHP` +- [Socialhome](https://socialhome.network) - Federated and decentralized profile builder and social network engine. ([Demo](https://socialhome.network/), [Source Code](https://github.com/jaywink/socialhome)) `AGPL-3.0` `Python` +- [Talkyard](https://www.talkyard.io/) - Create a community, where your users can suggest ideas and get questions answered. And have friendly open-ended discussions and chat (Slack/StackOverflow/Discourse/Reddit/Disqus hybrid). ([Demo](https://www.talkyard.io/forum/latest), [Source Code](https://github.com/debiki/talkyard)) `AGPL-3.0` `Scala` +- [Tokumei](https://tokumei.co/) - Anonymous microblogging platform. ([Source Code](https://gitlab.com/tokumei/tokumei)) `ISC` `rc` +- [Thredded](https://github.com/thredded/thredded) - Forums, feature-rich and simple. `MIT` `Ruby` +- [twister](http://twister.net.co/) - Fully decentralized P2P microblogging platform leveraging the free software implementations of Bitcoin and BitTorrent protocols. ([Source Code](https://github.com/miguelfreitas/twister-core)) `MIT` `C++` +- [twtxt.net](https://twtxt.net) - a Self-Hosted, Twitter™-like Decentralised micro-logging platform. No ads, no tracking, your content, your data. ([Source Code](https://github.com/prologic/twtxt)) `MIT` `Go` + - [rss2twtxt](https://github.com/prologic/rss2twtxt) - An RSS/Atom feed aggregator command-line tool and web service that consumes RSS/Atom and produces twtxt.net feeds for consumption by twtxt clients. ([Demo](https://feeds.twtxt.net)) `MIT` `Go` +- [Vanilla Forums](https://vanillaforums.org/) - Simple and flexible forum software. ([Source Code](https://github.com/vanilla/vanilla)) `GPL-2.0` `PHP` +- [Zusam](https://zusam.org) - Free and open-source way to self-host private forums for groups of friends or family. ([Demo](https://demo.zusam.org), [Source Code](https://github.com/zusam/zusam)) `AGPL-3.0` `PHP` + +### XMPP + +**[`^ back to top ^`](#)** + +_[Extensible Messaging and Presence Protocol](https://en.wikipedia.org/wiki/XMPP) software_ + +#### XMPP Servers + +- [ejabberd](https://www.ejabberd.im/) - XMPP instant messaging server. ([Source Code](https://github.com/processone/ejabberd)) `GPL-2.0` `Erlang` +- [Kontalk](http://kontalk.org/) - Kontalk is an Open Source Messenger, similar to WhatsApp (app for android only currently), including end-to-end encryption, server is based on Tigase XMPP Server. ([Source Code](https://github.com/kontalk)) `GPL-3.0` `Java` +- [Metronome IM](https://metronome.im/) - Fork of Prosody IM. ([Source Code](https://github.com/maranda/metronome)) `MIT` `Lua` +- [MongooseIM](https://www.erlang-solutions.com/products/mongooseim.html) - Mobile messaging platform with a focus on performance and scalability. ([Source Code](https://github.com/esl/MongooseIM)) `GPL-2.0` `Erlang` +- [Openfire](http://www.igniterealtime.org/projects/openfire/) - Real time collaboration (RTC) server. ([Source Code](https://github.com/igniterealtime/Openfire)) `Apache-2.0` `Java` +- [Prosody IM](http://prosody.im/) - Feature-rich and easy to configure XMPP server. ([Source Code](http://hg.prosody.im/)) `MIT` `Lua` +- [Tigase](http://www.tigase.net/content/tigase-xmpp-server) - XMPP server implementation in Java. `GPL-3.0` `Java` + +#### XMPP Web Clients + +- [Candy](http://candy-chat.github.io/candy/) - Multi user XMPP client written in Javascript. ([Source Code](https://github.com/candy-chat/candy)) `MIT` `Javascript` +- [Converse.js](https://conversejs.org/) - Free and open-source XMPP chat client in your browser. ([Source Code](https://github.com/jcbrand/converse.js)) `MPL-2.0` `Javascript` +- [JSXC](https://jsxc.org) - Real-time XMPP web chat application with video calls, file transfer and encrypted communication. There are also versions for Nextcloud/Owncloud and SOGo. ([Source Code](https://github.com/jsxc/jsxc)) `MIT` `Javascript` +- [Salut à Toi](http://www.salut-a-toi.org/) - Multipurpose, multi frontend, libre and decentralized communication tool. ([Source Code](http://repos.goffi.org/sat)) `AGPL-3.0` `Python` + - [Libervia](http://wiki.goffi.org/wiki/Libervia/en) - Web frontend from Salut à Toi. ([Source Code](http://repos.goffi.org/libervia)) `AGPL-3.0` `Python` + +## Conference Management + +**[`^ back to top ^`](#)** + +- [BigBlueButton](https://bigbluebutton.org/) - Supports real-time sharing of audio, video, slides (with whiteboard controls), chat, and the screen. Instructors can engage remote students with polling, emojis, and breakout rooms. ([Demo](https://demo.bigbluebutton.org/gl), [Source Code](https://github.com/bigbluebutton/bigbluebutton)) `LGPL-3.0` `Java` +- [Conference Organizing Distribution (COD)](http://usecod.com/) - Create conference and event websites built on top of Drupal. ([Source Code](http://cgit.drupalcode.org/cod)) `GPL-1.0` `PHP` +- [frab](https://frab.github.io/frab/) - web-based conference planning and management system. It helps to collect submissions, to manage talks and speakers and to create a schedule. ([Source Code](https://github.com/frab/frab)) `MIT` `Ruby` +- [indico](https://getindico.io/) - A feature-rich event management system, made @ CERN, the place where the Web was born. ([Demo](https://sandbox.getindico.io/), [Source Code](https://github.com/indico/indico)) `MIT` `Python` +- [Open Conference Systems (OCS)](https://pkp.sfu.ca/ocs/) - is a free Web publishing tool that will create a complete Web presence for your scholarly conference. ([Demo](https://pkp.sfu.ca/ocs/ocs_demo/), [Source Code](https://github.com/pkp/ocs)) `GPL-1.0` `PHP` +- [OpenCFP](https://github.com/opencfp/opencfp) - OpenCFP is a PHP-based conference talk submission system. `MIT` `PHP` +- [osem](http://osem.io/) - Event management tailored to free Software conferences. ([Demo](http://demo.osem.io/), [Source Code](https://github.com/openSUSE/osem)) `MIT` `Ruby` +- [pretalx](https://pretalx.org) - Web-based event management, including running a Call for Papers, reviewing submissions, and scheduling talks. Exports and imports for various related tools. ([Source Code](https://github.com/pretalx/pretalx)) `Apache-2.0` `Python` + +## Content Management Systems (CMS) + +**[`^ back to top ^`](#)** + +_CMS are a practical way to setup a website with many features. CMS often come with third party plugins, themes and functionality that is easy to add and customize to your needs. See also [Blogging Platforms](#blogging-platforms) and [Static Site Generators](#static-site-generators)_ + +- [Alfresco Community Edition](https://www.alfresco.com/products/community/download) - The open source Enterprise Content Management software that handles any type of content, allowing users to easily share and collaborate on content. ([Source Code](https://hub.alfresco.com/t5/alfresco-content-services-hub/project-overview-repository/ba-p/290502)) `LGPL-3.0` `Java` +- [Apostrophe](http://apostrophecms.org/) - Node.js CMS with a focus on extensible in-context editing tools. ([Demo](http://demo.apostrophecms.org/), [Source Code](https://github.com/punkave/apostrophe)) `MIT` `Nodejs` +- [b2evolution CMS](https://b2evolution.net/) - The most integrated CMS ever: b2evolution includes everything you need to build websites for publishing, sharing and interacting with your community. ([Source Code](https://github.com/b2evolution/b2evolution)) `GPL-2.0` `PHP` +- [Backdrop CMS](https://backdropcms.org/) - Comprehensive CMS for small to medium sized businesses and non-profits. ([Source Code](https://github.com/backdrop/backdrop)) `GPL-2.0` `PHP` +- [BigTree CMS](https://www.bigtreecms.org/) - Straightforward, well documented, and capable written with PHP and MySQL. ([Source Code](https://github.com/bigtreecms/BigTree-CMS)) `LGPL-2.1` `PHP` +- [Bolt CMS](https://bolt.cm/) - Open source Content Management Tool, which strives to be as simple and straightforward as possible. ([Demo](https://try.bolt.cm/), [Source Code](https://github.com/bolt/bolt)) `MIT` `PHP` +- [CMS Made Simple](http://www.cmsmadesimple.org/) - Open source content management system, faster and easier management of website contents, scalable for small businesses to large corporations. ([Source Code](http://svn.cmsmadesimple.org/svn/cmsmadesimple/trunk/)) `GPL-1.0` `PHP` +- [Cockpit](http://getcockpit.com) - Simple Content Platform to manage any structured content. ([Source Code](https://github.com/agentejo/cockpit)) `MIT` `PHP` +- [Concrete 5 CMS](http://www.concrete5.org/) - Open source content management system. ([Source Code](https://github.com/concrete5/concrete5)) `MIT` `PHP` +- [Contao](https://contao.org/) - Contao is a powerful open source CMS that allows you to create professional websites and scalable web applications. ([Source Code](https://github.com/contao/contao/)) `LGPL-3.0` `PHP` +- [CouchCMS](http://www.couchcms.com/) - Simple Open-Source CMS for designers. ([Source Code](https://github.com/CouchCMS/CouchCMS)) `CPAL-1.0` `PHP` +- [Directus](http://getdirectus.com/) - Directus is a powerful and intuitive headless CMS for managing SQL databases with custom architectures. Built around a robust and extensible API, this decoupled content management framework is perfect for websites, apps, or multi-client projects. ([Source Code](https://github.com/directus/directus)) `GPL-3.0` `PHP` +- [Drupal](https://www.drupal.org/) - Advanced open source content management platform. ([Source Code](http://cgit.drupalcode.org/drupal)) `GPL-2.0` `PHP` +- [eLabFTW](http://www.elabftw.net) - Online lab notebook for research labs. Store experiments, use a database to find reagents or protocols, use trusted timestamping to legally timestamp an experiment, export as pdf or zip archive, share with collaborators…. ([Demo](https://demo.elabftw.net), [Source Code](https://github.com/elabftw/elabftw)) `AGPL-3.0` `PHP` +- [Expressa](https://github.com/thomas4019/expressa) - Content Management System for powering database driven websites using JSON schemas. Provides permission management and automatic REST APIs. `MIT` `Nodejs` +- [Flextype](https://flextype.org/) - Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS. ([Demo](https://demo.flextype.org/), [Source Code](https://github.com/flextype/flextype)) `MIT` `PHP` +- [GetSimple CMS](http://get-simple.info/) - The Simplest Content Management System. Ever. ([Source Code](https://github.com/GetSimpleCMS/GetSimpleCMS)) `GPL-3.0` `PHP` +- [Joomla!](https://www.joomla.org/) - Advanced Content Management System (CMS). ([Source Code](https://github.com/joomla/joomla-cms)) `GPL-2.0` `PHP` +- [KeystoneJS](http://keystonejs.com/) - CMS and Web Application Platform. ([Demo](http://demo.keystonejs.com/), [Source Code](https://github.com/keystonejs/keystone)) `MIT` `Nodejs` +- [MODX](http://modx.com/) - MODX is an advanced content management and publishing platform. The current version is called 'Revolution'. ([Source Code](https://github.com/modxcms/revolution)) `GPL-2.0` `PHP` +- [Neos](https://www.neos.io) - Neos or TYPO3 Neos (for version 1) is a modern, open source CMS. ([Source Code](https://git.typo3.org/Packages/TYPO3.Neos.git)) `GPL-3.0` `PHP` +- [Noosfero](https://gitlab.com/noosfero/noosfero) - Noosfero is a web platform for social and solidarity economy networks with blog, e-Portfolios, CMS, RSS, thematic discussion, events agenda and collective intelligence for solidarity economy in the same system. `AGPL-3.0` `Ruby` +- [october](http://octobercms.com/) - Free, open-source, self-hosted CMS platform. ([Source Code](https://github.com/octobercms/october)) `MIT` `PHP` +- [Omeka](http://omeka.org) - Create complex narratives and share rich collections, adhering to Dublin Core standards with Omeka on your server, designed for scholars, museums, libraries, archives, and enthusiasts. ([Demo](http://omeka.org/showcase/), [Source Code](https://github.com/omeka/Omeka)) `GPL-3.0` `PHP` +- [Pagekit](https://pagekit.com/) - New modern CMS to create and share. ([Source Code](https://github.com/pagekit/pagekit)) `MIT` `PHP` +- [Pico](http://picocms.org/) - Stupidly simple, blazing fast, flat file CMS. ([Source Code](https://github.com/picocms/Pico)) `MIT` `PHP` +- [Pimcore](https://www.pimcore.org/) - Multi-Channel Experience and Engagement Management Platform. ([Source Code](https://github.com/pimcore/pimcore)) `GPL-3.0-or-later` `PHP` +- [Plone](https://plone.org/) - Powerful open-source CMS system. ([Source Code](https://github.com/plone)) `ZPL-2.0` `Python` +- [ProcessWire](https://processwire.com/) - ProcessWire is an open source content management system (CMS) and web application framework aimed at the needs of designers, developers and their clients. ([Source Code](https://github.com/ryancramerdesign/ProcessWire)) `MPL-2.0` `PHP` +- [PropertyWebBuilder](http://propertywebbuilder.com) - Ultimate Ruby on Rails engine for creating real estate websites. ([Demo](https://propertywebbuilder.herokuapp.com), [Source Code](https://github.com/etewiah/property_web_builder)) `MIT` `Ruby` +- [Publify](https://publify.github.io/) - Simple but full featured web publishing software. ([Source Code](https://github.com/publify/publify)) `MIT` `Ruby` +- [REDAXO](https://www.redaxo.org) - Simple, flexible and useful content management system (documentation only available in German). ([Source Code](https://github.com/redaxo/redaxo)) `MIT` `PHP` +- [Redaxscript](https://redaxscript.com) - Ultra lightweight CMS for MySQL, SQLite and PostgreSQL. ([Demo](https://demo.redaxscript.com/login), [Source Code](https://github.com/redaxmedia/redaxscript)) `GPL-3.0` `PHP` +- [Roadiz](https://www.roadiz.io/) - Modern CMS based on a node system which can handle many types of services. ([Source Code](https://github.com/roadiz/roadiz)) `MIT` `PHP` +- [SilverStripe](https://www.silverstripe.org) - Easy to use CMS with powerful MVC framework underlying. ([Demo](http://demo.silverstripe.org/), [Source Code](https://github.com/silverstripe)) `BSD-3-Clause` `PHP` +- [SPIP](http://www.spip.net/fr) - Publication system for the Internet aimed at collaborative work, multilingual environments, and simplicity of use for web authors. ([Source Code](https://git.spip.net/)) `GPL-3.0` `PHP` +- [Squidex](http://squidex.io) - Headless CMS, based on MongoDB, CQRS and Event Sourcing. ([Demo](http://cloud.squidex.io), [Source Code](https://github.com/Squidex/squidex)) `MIT` `.NET` +- [Strapi](https://strapi.io/) - The most advanced open-source Content Management Framework (headless-CMS) to build powerful API with no effort. ([Source Code](https://github.com/strapi/strapi)) `MIT` `Nodejs` +- [Subrion](http://www.subrion.org) - Subrion is a free open source content management system that allows you to build websites for any purpose. Yes, from blog to corporate mega portal. ([Demo](http://demos.subrion.com), [Source Code](https://github.com/intelliants/subrion)) `GPL-3.0` `PHP` +- [Textpattern](http://textpattern.com/) - Flexible, elegant and easy-to-use CMS. ([Demo](http://textpattern.co/demo), [Source Code](https://github.com/textpattern/textpattern)) `GPL-2.0` `PHP` +- [Typemill](https://typemill.net/) - Author-friendly flat-file-cms with a visual markdown editor based on vue.js. ([Source Code](https://github.com/typemill/typemill)) `MIT` `PHP` +- [TYPO3](https://typo3.org/) - Powerful and advanced CMS with a large community. ([Source Code](https://github.com/TYPO3/TYPO3.CMS)) `GPL-2.0` `PHP` +- [Umbraco](https://umbraco.com/) - The friendly CMS. Free and open source with an amazing community. ([Source Code](https://github.com/umbraco/Umbraco-CMS)) `MIT` `.NET` +- [Wagtail](https://wagtail.io/) - Django content management system focused on flexibility and user experience. ([Source Code](https://github.com/wagtail/wagtail)) `BSD-3-Clause` `Python` +- [WonderCMS](http://www.wondercms.com) - WonderCMS is the smallest flat file CMS since 2008. ([Demo](https://www.wondercms.com/demo), [Source Code](https://github.com/robiso/wondercms)) `MIT` `PHP` +- [WordPress](https://wordpress.org/) - World's most-used blogging and CMS engine. ([Source Code](https://github.com/WordPress/WordPress)) `GPL-2.0` `PHP` +- [WriteFreely](https://writefreely.org) - Writing software for starting a minimalist, federated blog — or an entire community. ([Source Code](https://github.com/writeas/writefreely)) `AGPL-3.0` `Go` + +### Recipe management + +- [Mealie](https://hay-kot.github.io/mealie/) - Material design inspired recipe manager with category and tag management, shopping-lists, meal-planner, and site customizations. Mealie is focused on simple user interactions to keep the whole family using the app. ([Source Code](https://github.com/hay-kot/mealie)) `MIT` `Python` +- [OpenEats](https://github.com/open-eats/OpenEats) - Recipe management site that allows users to create, store, share and rate recipes, create grocery lists, and more. ([Demo](https://open-eats.github.io/)) `MIT` `Python` +- [RecipeSage](https://github.com/julianpoy/recipesage) - A recipe keeper, meal plan organizer, and shopping list manager that can import recipes directly from any URL. ([Demo](https://recipesage.com)) `AGPL-3.0` `Node.JS` +- [Tandoor Recipes](https://docs.tandoor.dev/) - Django application to manage, tag and search recipes using either built-in models or external storage providers hosting PDFs, Images or other files. ([Demo](https://app.tandoor.dev/), [Source Code](https://github.com/vabene1111/recipes/)) `MIT` `Python` + +### E-commerce + +- [Aimeos](https://aimeos.org/) - Ultra fast, Open Source e-commerce framework for building custom online shops, market places and complex B2B applications scaling to billions of items with Laravel. ([Demo](https://demo.aimeos.org/), [Source Code](https://github.com/aimeos)) `LGPL-3.0/MIT` `PHP` +- [Attendize](https://www.attendize.com/) - Ticket selling and event management platform. ([Source Code](https://github.com/attendize/attendize)) `AAL` `PHP` +- [Bagisto](https://bagisto.com/en/) - Leading Laravel open source e-commerce framework with multi-inventory sources, taxation, localization, dropshipping and more exciting features. ([Demo](https://demo.bagisto.com/), [Source Code](https://github.com/bagisto/bagisto)) `MIT` `PHP` +- [CoreShop](https://www.coreshop.org) - CoreShop is a e-commerce plugin for Pimcore. ([Source Code](https://github.com/coreshop/CoreShop)) `GPL-3.0` `PHP` +- [Drupal Commerce](https://drupalcommerce.org) - Drupal Commerce is a popular e-commerce module for Drupal CMS, with support for dozens of payment, shipping, and shopping related modules. ([Source Code](https://github.com/drupalcommerce/commerce)) `GPL-2.0` `PHP` +- [Magento](https://magento.com/) - Leading provider of open omnichannel innovation. ([Demo](https://magento.com/schedule-a-demo), [Source Code](https://github.com/magento/magento2)) `OSL-3.0` `PHP` +- [Microweber](https://microweber.com/) - Drag and Drop CMS and online shop. ([Demo](http://demo.microweber.org/), [Source Code](https://github.com/microweber/microweber)) `Apache-2.0` `PHP` +- [OpenBazaar](https://www.openbazaar.org) - Decentralized marketplace using cryptocurrency. ([Source Code](https://github.com/openbazaar/openbazaar-go)) `MIT` `Go` +- [OpenCart](https://www.opencart.com) - Free open source shopping cart solution. ([Source Code](https://github.com/opencart/opencart)) `GPL-3.0` `PHP` +- [Open Classifieds](http://open-classifieds.com/) - Free open-source, self-hosted CMS for classifieds sites. ([Source Code](https://github.com/open-classifieds/openclassifieds2)) `GPL-3.0` `PHP` +- [Open Source POS](https://www.opensourcepos.org/) - Open Source Point of Sale is a web based point of sale system. ( + [Source Code](https://github.com/opensourcepos/opensourcepos)) `MIT` `PHP` +- [OXID eShop](http://oxidforge.org) - OXID eShop is a flexible open source e-commerce software with a wide range of functionalities. ([Demo](http://demoshop.oxid-esales.com/community-edition/), [Source Code](https://github.com/OXID-eSales/oxideshop_ce)) `GPL-3.0` `PHP` +- [Open Food Network](https://openfoodnetwork.org/) - Online marketplace for local food. It enables a network of independent online food stores that connect farmers and food hubs with individuals and local businesses. ([Source Code](https://github.com/openfoodfoundation/openfoodnetwork)) `AGPL-3.0` `Ruby` +- [PrestaShop](https://www.prestashop.com/) - PrestaShop offers a free, open-source and fully scalable e-commerce solution. ([Demo](http://demo.prestashop.com/), [Source Code](https://github.com/PrestaShop/PrestaShop)) `OSL-3.0` `PHP` +- [Pretix](https://pretix.eu/) - Django based ticket sales platform for events. ([Source Code](https://github.com/pretix)) `Apache-2.0` `Python` +- [Reaction Commerce](https://reactioncommerce.com/) - Customizable, real-time reactive, JavaScript commerce platform. ([Source Code](https://github.com/reactioncommerce/reaction)) `GPL-3.0` `Nodejs` +- [Saleor](http://getsaleor.com/) - Django based open-sourced e-commerce storefront. ([Demo](https://demo.getsaleor.com/), [Source Code](https://github.com/mirumee/saleor)) `BSD-3-Clause` `Python` +- [Shuup](https://www.shuup.com/) - Django powered fully customizable open source e-commerce framework for small and large sites. ([Source Code](https://github.com/shuup/shuup)) `AGPL-3.0` `Python` +- [Shopware Community Edition](https://shopware.com/community/) - PHP based open source e-commerce software made in Germany. ([Demo](https://www.shopware.com/en/test-demo/), [Source Code](https://github.com/shopware/platform)) `MIT` `PHP` +- [Solidus](https://solidus.io/) - A free, open-source ecommerce platform that gives you complete control over your store. ([Demo](http://demo.solidus.io/), [Source Code](https://github.com/solidusio/solidus)) `BSD-3-Clause` `Ruby` +- [Spree Commerce](https://spreecommerce.org) - Spree is a complete, modular & API-driven open source e-commerce solution for Ruby on Rails. ([Demo](http://new-ux.spreecommerce.org/), [Source Code](https://github.com/spree/spree)) `BSD-3-Clause` `Ruby` +- [Sylius](http://sylius.org/) - Symfony2 powered open source full-stack platform for eCommerce. ([Demo](http://sylius.org/demo), [Source Code](https://github.com/Sylius/Sylius)) `MIT` `PHP` +- [Thelia](http://thelia.net/) - Thelia is an open source and flexible e-commerce solution. ([Demo](http://demo.thelia.net/), [Source Code](https://github.com/thelia/thelia)) `LGPL-3.0` `PHP` +- [WooCommerce](https://www.woothemes.com/woocommerce/) - WordPress based e-commerce solution. ([Source Code](https://github.com/woothemes/woocommerce)) `GPL-3.0` `PHP` + +## DNS + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#dns_ + +- [blocky](https://github.com/0xERR0R/blocky) - Fast and lightweight DNS proxy (like Pi-hole) as ad-blocker for local network with many features. `Apache-2.0` `Go` +- [CoreDNS](https://coredns.io/) - Plugin driven DNS Server with support for proxying to Google's DNS-over-HTTPS. ([Source Code](https://github.com/coredns/coredns)) `Apache-2.0` `Go` +- [Maza ad blocking](https://maza-ad-blocking.andros.dev/) - Local ad blocker. Like Pi-hole but local and using your operating system. ([Source Code](https://github.com/tanrax/maza-ad-blocking)) `Apache-2.0` `Bash` +- [nsupdate.info](https://www.nsupdate.info/) - nsupdate.info is a dynamic DNS service. ([Demo](https://www.nsupdate.info/account/register/), [Source Code](https://github.com/nsupdate-info/nsupdate.info)) `BSD-3-Clause` `Python` +- [SPF Toolbox](http://spftoolbox.com) - Application to look up DNS records such as SPF, MX, Whois, and more. ([Source Code](https://github.com/charlesabarnes/SPFtoolbox)) `MIT` `PHP` + +## Document Management + +**[`^ back to top ^`](#)** + +- [DOCAT](https://github.com/randombenj/docat) - Host your docs. Simple. Versioned. Fancy. `MIT` `Python/docker` +- [Docspell](https://docspell.org) - Auto-tagging document organizer and archive. ([Source Code](https://github.com/eikek/docspell)) `GPL-3.0` `Scala/Java` +- [EdPaper](https://github.com/Edraens/EdPaper) - PDF organizer with users management. `MIT` `PHP` +- [EveryDocs](https://github.com/jonashellmann/everydocs-core/) - A simple Document Management System for private use with basic functionality to organize your documents digitally. `GPL-3.0` `Ruby` +- [I, Librarian](https://i-librarian.net) - I, Librarian can organize PDF papers and office documents. It provides a lot of extra features for students and research groups both in industry and academia. ([Demo](https://i-librarian.net/demo/), [Source Code](https://github.com/mkucej/i-librarian-free)) `GPL-3.0` `PHP` +- [Mayan EDMS](http://www.mayan-edms.com) - Free Open Source Electronic Document Management System. An electronic vault for your documents with preview generation, OCR, and automatic categorization among other features. ([Source Code](https://gitlab.com/mayan-edms/mayan-edms)) `Apache-2.0` `Python` +- [Papermerge](https://www.papermerge.com) - Open Source Document Management System focused on scanned documents (electronic archives). Features file browsing in similar way to dropbox/google drive. OCR, full text search, text overlay/selection. ([Source Code](https://github.com/ciur/papermerge)) `Apache-2.0` `Python` +- [Paperless](https://github.com/the-paperless-project/paperless) - Scan, index, and archive all of your paper documents. `GPL-3.0` `Python` +- [Paperless-ng](https://github.com/jonaswinkler/paperless-ng) - A fork of paperless, adding a new interface and many other changes under the hood. Scan, index, and archive all of your paper documents. `GPL-3.0` `Python` +- [paper{s}pace](https://dedicatedcode.com/projects/) - a small web application to manage all your offline documents. Provides a searchable storage for your documents and reminds you of upcoming tasks. ([Source Code](https://gitlab.com/dedicatedcode/paperspace)) `MIT` `Java` +- [Teedy](https://teedy.io/) - (Ex SismicsDocs) Lightweight document management system packed with all the features you can expect from big expensive solutions. ([Source Code](https://github.com/sismics/docs)) `GPL-2.0` `Java` + +## E-books and Integrated Library Systems (ILS) + +**[`^ back to top ^`](#)** + +_Some [Content Management System](#content-management-systems-cms) and [Archiving and Digital Preservation](#archiving-and-digital-preservation-dp) solutions also overlap with library and institutional repository software._ + +### Personal e-book management software. + +- [Calibre](https://calibre-ebook.com/) - E-book library manager that can view, convert, and catalog e-books in most of the major e-book formats and provides a built-in Web server for remote clients. ([Demo](https://calibre-ebook.com/demo), [Source Code](https://launchpad.net/calibre)) `GPL-3.0` `Python` + - [BicBucStriim](http://projekte.textmulch.de/bicbucstriim/) - Provides web-based access to your Calibre Library's e-book collection. ([Source Code](https://github.com/rvolz/BicBucStriim)) `MIT` `PHP` + - [Calibre Web](https://github.com/janeczku/calibre-web) - Web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. `GPL-3.0` `Python` + - [COPS](https://blog.slucas.fr/en/oss/calibre-opds-php-server) - Lightweight e-book server alternative to Calibre content server or Calibre2OPDS. ([Demo](http://cops-demo.slucas.fr/index.php), [Source Code](https://github.com/seblucas/cops)) `GPL-2.0` `PHP` + - [The Epube](https://tt-rss.org/the-epube) - Self-hosted web EPUB reader using EPUB.js, Bootstrap, and Calibre. ([Source Code](https://git.tt-rss.org/fox/the-epube)) `GPL-3.0` `PHP` +- [Kavita](https://kareadita.github.io/) - Cross-platform manga server and web reader with user management, ratings and reviews, and metatdata support. ([Source Code](https://github.com/Kareadita/Kavita)) `GPL-3.0` `.NET Core` +- [Komga](https://komga.org) - Media server for comics/mangas/BDs with API and OPDS support, a modern web interface for exploring your libraries, as well as a web reader. ([Source Code](https://github.com/gotson/komga)) `MIT` `Java/Docker` +- [Mango](https://github.com/hkalexling/Mango) - Manga server and web reader with a built-in MangaDex downloader. `MIT` `Crystal` +- [pyShelf](https://pyshelf.com) - Lightweight Ebook Server. ([Source Code](https://github.com/th3r00t/pyShelf)) `GPL-3.0` `Python` + + +### Enterprise-class library management software. + +- [Evergreen](https://evergreen-ils.org) - Highly-scalable software for libraries that helps library patrons find library materials, and helps libraries manage, catalog, and circulate those materials. ([Source Code](https://github.com/evergreen-library-system/Evergreen)) `GPL-2.0` `PL/pgSQL` +- [Koha](https://koha-community.org/) - Enterprise-class ILS with modules for acquisitions, circulation, cataloging, label printing, offline circulation for when Internet access is not available, and much more. ([Demo](https://koha-community.org/demo/), [Source Code](https://github.com/Koha-Community/Koha)) `GPL-3.0` `Perl` +- [RERO ILS](https://rero21.ch/) - Large-scale ILS that can be run as a service with consortial features, intended primarily for library networks. Includes most standard modules (circulation, acquisitions, cataloging,...) and a web-based public and professional interface. ([Demo](https://ils.test.rero.ch/), [Source Code](https://github.com/rero/rero-ils)) `AGPL-3.0` `Python/Other` + +### Institutional repository and digital library software. + +- [DSpace](http://dspace.org/) - Turnkey repository application providing durable access to digital resources. ([Source Code](https://github.com/DSpace/DSpace)) `BSD-3-Clause` `Java` +- [EPrints](https://www.eprints.org/) - Digital document management system with a flexible metadata and workflow model primarily aimed at academic institutions. ([Demo](http://demoprints.eprints.org/), [Source Code](https://github.com/eprints/eprints)) `GPL-3.0` `Perl` +- [Fedora Commons Repository](https://fedorarepository.org/) - Robust and modular repository system for the management and dissemination of digital content especially suited for digital libraries and archives, both for access and preservation. ([Source Code](https://github.com/fcrepo4/fcrepo4)) `Apache-2.0` `Java` +- [Islandora](https://islandora.ca/) - Drupal module for browsing and managing Fedora-based digital repositories. ([Source Code](https://github.com/Islandora/islandora)) `GPL-3.0` `PHP` +- [Samvera Hyrax](https://samvera.org/) - Front-end for the Samvera framework, which itself is a Ruby on Rails application for browsing and managing Fedora-based digital repositories. ([Source Code](https://github.com/samvera/hyrax)) `Apache-2.0` `Ruby` + +## Federated Identity/Authentication + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#identity-management_ + +## Feed Readers + +**[`^ back to top ^`](#)** + +- [CommaFeed](https://www.commafeed.com/) - Google Reader inspired self-hosted RSS reader. ([Source Code](https://github.com/Athou/commafeed)) `Apache-2.0` `Java` +- [Feedbin](https://feedbin.com/) - Simple, fast and nice looking RSS reader. ([Source Code](https://github.com/feedbin/feedbin)) `MIT` `Ruby` +- [FeedHQ](https://feedhq.org/) - FeedHQ is a web-based feed reader. ([Source Code](https://github.com/feedhq/feedhq)) `BSD-3-Clause` `Python` +- [FreshRSS](http://freshrss.org/) - Self-hostable RSS feed aggregator. ([Demo](http://demo.freshrss.org/i/), [Source Code](https://github.com/FreshRSS/FreshRSS), [Clients](https://github.com/Alkarex/EasyRSS)) `AGPL-3.0` `PHP` +- [JARR](http://1pxsolidblack.pl/jarr-en.html) - JARR (Just Another RSS Reader) is a web-based news aggregator and reader (fork of Newspipe). ([Demo](https://jarr.info/login?next=%2F), [Source Code](https://github.com/jaesivsm/JARR)) `AGPL-3.0` `Python` +- [Kriss Feed](http://tontof.net/kriss/feed/) - Simple and smart (or stupid) feed reader. ([Demo](http://tontof.net/feed/), [Source Code](https://github.com/tontof/kriss_feed)) `CC0-1.0` `PHP` +- [Leed](https://github.com/LeedRSS/Leed) - Leed (for Light Feed) is a Free and minimalist RSS aggregator. ([Source Code](https://github.com/ldleman/Leed)) `AGPL-3.0` `PHP` +- [Leselys](https://github.com/socketubs/leselys) - Your very elegant RSS reader. `AGPL-3.0` `Python` +- [Lite-Reader](https://github.com/cubny/lite-reader) - Read your feeds on your own machine with a simple and lite application. ([Demo](http://cubny.com/lite-reader/)) `BSD-3-Clause` `PHP` +- [Moonmoon](http://moonmoon.org/) - simple feed aggregator (planet like): it only aggregates feeds and spits them out in one single page. ([Source Code](https://github.com/mauricesvay/moonmoon)) `BSD-3-Clause` `PHP` +- [Miniflux](https://miniflux.net/) - Miniflux 2 is a minimalist and open source news reader, written in Go and PostgreSQL. ([Source Code](https://github.com/miniflux/miniflux)) `Apache-2.0` `Go` +- [NewsBlur](http://www.newsblur.com/) - NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument. ([Source Code](https://github.com/samuelclay/NewsBlur)) `MIT` `Python` +- [newsdash](https://github.com/buzz/newsdash) - A news dashboard inspired by iGoogle and Netvibes. `AGPL-3.0` `NodeJS` +- [Newspipe](https://git.sr.ht/~cedric/newspipe) - Newspipe is a web news reader. ([Demo](https://www.newspipe.org/signup)) `AGPL-3.0` `Python` +- [reader](https://github.com/lemon24/reader) - A Python feed reader web app and library (so you can use it to build your own), with only standard library and pure-Python dependencies. `BSD-3-Clause` `Python` +- [Reader-Self](http://readerself.com/) - Self-hosted rss reader (php / mysql or sqlite) - Google Reader alternative. ([Source Code](https://github.com/readerself/readerself)) `GPL-3.0` `PHP` +- [RSS Monster](https://github.com/pietheinstrengholt/rssmonster) - RSS Monster is an easy to use web-based RSS aggregator and reader compatible with the Fever API, created as an alternative for Google Reader. `MIT` `PHP` +- [Selfoss](http://selfoss.aditu.de/) - New multipurpose rss reader, live stream, mashup, aggregation web application. ([Source Code](https://github.com/SSilence/selfoss)) `AGPL-3.0` `PHP` +- [Sismics Reader](http://sismics.com/reader/) - Free and open source feeds reader, including all major Google Reader features. ([Demo](https://www.sismics.com/reader/#!/demo), [Source Code](https://github.com/sismics/reader)) `GPL-2.0` `Java` +- [Stringer](https://github.com/swanson/stringer) - Work-in-progress self-hosted, anti-social RSS reader. `MIT` `Ruby` +- [Temboz](https://github.com/fazalmajid/temboz) - Two-column feed reader emphasizing filtering capabilities to manage information overload. `MIT` `Python` +- [Tiny Tiny RSS](https://tt-rss.org) - Open source web-based news feed (RSS/Atom) reader and aggregator. ([Demo](http://framanews.org/), [Source Code](https://git.tt-rss.org/fox/tt-rss)) `GPL-3.0` `PHP` + - [gritttt-rss](http://gritttt-rss.nicolashoening.de/) - More features for Tiny Tiny RSS. ([Source Code](https://github.com/nhoening/gritttt-rss)) `BSD-2-Clause` `Python` + - [ttrss-mobile](https://github.com/mboinet/ttrss-mobile) - Mobile webapp for Tiny Tiny RSS. `AGPL-3.0` `Javascript` + - [ttrss-reader](https://github.com/kucrut/ttrss-reader) - Light and responsive client for TTRSS. `GPL-2.0` `Javascript` +- [Winds](https://getstream.io/winds/) `⚠` - Open source and beautiful RSS reader built using React/Redux/Sails/Node and Stream. It showcases personalized feeds powered by the Stream API. ([Demo](https://winds.getstream.io/), [Source Code](https://github.com/GetStream/Winds)) `BSD-3-Clause` `Nodejs` + +_RSS/Atom automation_ + +- [Feedpushr](https://github.com/ncarlier/feedpushr) - Powerful RSS aggregator, able to transform and send articles to many outputs. Single binary, extensible with plugins. `GPL-3.0` `Go` +- [Full-Text RSS](https://fivefilters.org/content-only) - Extract article content from news sites and blogs and convert RSS feeds that contain only extracts of stories to full-text feeds. Developed by FiveFilters.org. ([Source Code](https://bitbucket.org/fivefilters/full-text-rss)) `GPL-3.0` `PHP` +- [Goeland](https://github.com/slurdge/goeland) - Reads RSS/Atom feeds and filter/digest them to create beautiful emails. `MIT` `Go` +- [PolitePol](https://github.com/taroved/pol) - Online tool for creation of RSS feeds for any web page. ([Demo](http://politepol.com)) `MIT` `Python` +- [RSS Fulltext Proxy](https://github.com/Kombustor/rss-fulltext-proxy) - Mirrors RSS feeds to return the full content of the items, extracted from the website. `MIT` `NodeJS` +- [RSS Merger](https://github.com/taophp/rss-merger) - PHP script which will take multiple RSS / Atom feeds as input and merge them into a single RSS feed. `GPL-2.0` `PHP` +- [RSS-Bridge](https://github.com/RSS-Bridge/rss-bridge) - rss-bridge is a PHP project capable of generating ATOM feeds for websites which don't have one. `Unlicense` `PHP` +- [RSS2EMail](https://github.com/rss2email/rss2email) - Fetches RSS/Atom-feeds and pushes new Content to any email-receiver, supports OPML. `GPL-2.0` `Python` +- [Screaming Liquid Tiger](https://github.com/herrbischoff/screaming-liquid-tiger) - Simple script to automatically generate valid RSS and Atom feeds from a list of media files in the same folder. `MIT` `PHP` + + +## File Sharing and Synchronization + +**[`^ back to top ^`](#)** + +_Some [Groupware](#groupware) solutions also feature file sharing and synchronization._ + +#### Distributed filesystems + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#distributed-filesystems_ + +#### File transfer/synchronization + +- [Git Annex](https://git-annex.branchable.com/) - File synchronization between computers, servers, external drives. ([Source Code](https://git.joeyh.name/index.cgi/git-annex.git/)) `GPL-3.0` `Haskell` +- [Kinto](https://kinto.readthedocs.org) - Kinto is a minimalist JSON storage service with synchronisation and sharing abilities. ([Source Code](https://github.com/Kinto)) `Apache-2.0` `Python` +- [myDrive](https://github.com/subnub/myDrive) - Fully featured online storage solution, upload/download files, photo/video viewer, and more, all through the web client. ([Demo](https://mydrive-demo.herokuapp.com/)) `GPL-3.0` `Node.js` +- [Nextcloud](https://nextcloud.com/) - Access and share your files, calendars, contacts, mail and [more](https://apps.nextcloud.com/) from any device, on your terms. ([Demo](https://demo.nextcloud.com/), [Source Code](https://github.com/nextcloud/server)) `AGPL-3.0` `PHP` +- [OpenSSH/SFTP](http://www.openssh.com/) - Secure File Transfer Program. ([Source Code](http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh)) `BSD-2-Clause` `C` +- [ownCloud](https://owncloud.org/) - All-in-one solution for saving, synchronizing, viewing, editing and sharing files, calendars, address books and more. ([Source Code](https://github.com/owncloud/core), [Clients](https://github.com/owncloud/core/wiki/Apps)) `AGPL-3.0` `PHP` +- [Pydio](https://pydio.com/) - Turn any web server into a powerful file management system and an alternative to mainstream cloud storage providers. ([Source Code](https://github.com/pydio/pydio-core)) `AGPL-3.0` `PHP` +- [Samba](https://www.samba.org/) - Samba is the standard Windows interoperability suite of programs for Linux and Unix. It provides secure, stable and fast file and print services for all clients using the SMB/CIFS protocol. ([Source Code](https://git.samba.org/samba.git/)) `GPL-3.0` `C` +- [Seafile](https://www.seafile.com/en/home/) - File hosting and sharing solution primary for teams and organizations. ([Source Code](https://github.com/haiwen/seafile)) `GPL-2.0/GPL-3.0/AGPL-3.0/Apache-2.0` `C` +- [SparkleShare](http://sparkleshare.org/) - Self hosted, instant, secure file sync. ([Source Code](https://github.com/hbons/SparkleShare)) `GPL-3.0` `C#` +- [Syncany](https://www.syncany.org/) - Secure file sync software for arbitrary storage backends, an open-source cloud storage and filesharing application. Securely synchronize your files to any kind of storage. `GPL-3.0` `Java` +- [Syncthing](https://syncthing.net/) - Syncthing is an open source peer-to-peer file synchronisation tool. ([Source Code](https://github.com/syncthing/syncthing)) `MPL-2.0` `Go` +- [Unison](https://www.cis.upenn.edu/~bcpierce/unison/) - Unison is a file-synchronization tool for OSX, Unix, and Windows. `GPL-3.0` `OCaml` +- [Z-Push](http://z-push.org/) - Implementation of Microsoft’s [ActiveSync](https://en.wikipedia.org/wiki/ActiveSync) protocol. ([Source Code](https://stash.z-hub.io/projects/ZP/repos/z-push)) `AGPL-3.0` `PHP` + +#### Peer-to-peer filesharing + +- [bittorrent-tracker](https://webtorrent.io/) - Simple, robust, BitTorrent tracker (client and server) implementation. ([Source Code](https://github.com/feross/bittorrent-tracker)) `MIT` `Nodejs` +- [cloud-torrent](https://github.com/jpillora/cloud-torrent) - Torrent Web Client with HTTP retrievable or streamable downloaded files. `AGPL-3.0` `Go` +- [Dat Project](https://datproject.org) - Powerful decentralized file sharing applications built from a large ecosystem of modules. ([Source Code](https://github.com/datproject)) `MIT` `Nodejs` +- [FilePizza](http://file.pizza/) - Peer-to-peer file transfers in your browser. ([Source Code](https://github.com/kern/filepizza)) `BSD-3-Clause` `Nodejs` +- [instant.io](https://github.com/feross/instant.io) - Streaming file transfer over WebTorrent. ([Demo](https://instant.io)) `MIT` `Nodejs` +- [Magnetico](https://github.com/boramalper/magnetico) - Magnetico is the first autonomous (self-hosted) BitTorrent DHT search engine suite that is designed for end-users. `AGPL-3.0` `Python` +- [Magnetissimo](https://github.com/sergiotapia/magnetissimo) - Search engine that indexes all popular torrent sites. `MIT` `Elixir` +- [Opentracker](http://erdgeist.org/arts/software/opentracker/) - Open and free bittorrent tracker. It aims for minimal resource usage and is intended to run at your wlan router. ([Source Code](http://erdgeist.org/gitweb/opentracker/)) `Beerware` `C` +- [peerflix-server](https://github.com/asapach/peerflix-server) - Downloads torrent files and provides a direct link download or a direct link stream. `MIT` `Nodejs` +- [qBittorrent](https://www.qbittorrent.org/) - Free cross-platform bittorrent client with a feature rich Web UI for remote access. ([Source Code](https://github.com/qbittorrent/qBittorrent)) `GPL-2.0` `C++` +- [rartracker](https://github.com/swetorrentking/rartracker) - Complete private bittorrent tracker. `WTFPL` `PHP` +- [Send](https://github.com/timvisee/send) - Simple, private, end to end encrypted temporary file sharing, originally built by Mozilla. ([Clients](https://github.com/timvisee/send#clients)) `MPL-2.0` `Nodejs` +- [Torrents.csv](https://gitlab.com/dessalines/torrents.csv) - A self-hostable torrent search engine. `GPL-3.0` `Rust` +- [Transmission](https://transmissionbt.com/) - Fast, easy, Free Bittorrent client. ([Source Code](https://github.com/transmission/transmission)) `GPL-3.0` `C` + +#### Object storage/file servers + +- [Minio](https://minio.io/) - Minio is an open source object storage server compatible with Amazon S3 APIs. ([Source Code](https://github.com/minio/minio)) `Apache-2.0` `Go` +- [SeaweedFS](https://github.com/chrislusf/seaweedfs) - SeaweedFS is an open source distributed file system supporting WebDAV, S3 API, FUSE mount, HDFS, etc, optimized for lots of small files, and easy to add capacity. `Apache-2.0` `Go` +- [SFTPGo](https://github.com/drakkan/sftpgo) - Flexible, fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. `AGPL-3.0` `Go` +- [Zenko CloudServer](https://www.zenko.io/cloudserver) - Zenko CloudServer, an open-source Node.js implementation of a server handling the Amazon S3 protocol. ([Source Code](https://github.com/scality/S3)) `Apache-2.0` `Nodejs` + +#### Single-click/drag-n-drop upload + +- [BoZoN](https://github.com/broncowdd/BoZoN) - Minimalist Drag and drop file sharing app. `AGPL-3.0` `PHP` +- [Chibisafe](https://lolisafe.moe/) - Blazing fast file uploader and awesome bunker written in node. ([Source Code](https://github.com/weebdev/chibisafe)) `MIT` `Nodejs` +- [Coquelicot](https://coquelicot.potager.org/) - Coquelicot is a “one-click” file sharing web application with a focus on protecting users’ privacy. ([Source Code](https://coquelicot.potager.org/dist/coquelicot-0.9.6.tar.gz)) `AGPL-3.0` `Ruby` +- [elixire](https://elixi.re) - Simple yet advanced screenshot uploading and link shortening service. ([Source Code](https://gitlab.com/elixire/elixire), [Clients](https://gitlab.com/elixire/elixiremanager)) `AGPL-3.0` `Python` +- [fibridge](https://github.com/anderspitman/fibridge-proxy-rs) - Stream huge files out of your browser without having to upload. `MIT` `Rust` +- [FireShare](https://github.com/rockmanvnx6/FireShare) - A full-stack, pub-sub, real-time secure file sharing system. ([Demo](https://auspham.dev/FireShare)) `MIT` `Nodejs` +- [FileShelter](https://github.com/epoupon/fileshelter) - FileShelter is a self-hosted software that allows you to easily share files over the Internet. ([Demo](http://fileshelter.demo.poupon.io/)) `GPL-3.0` `C++` +- [Files Sharing](https://github.com/axeloz/filesharing) - Open Source and self-hosted files sharing application based on unique and temporary links. `GPL-3.0` `PHP` +- [Gokapi](https://github.com/Forceu/gokapi) - Lightweight server to share files, which expire after a set amount of downloads or days. Similar to the discontinued Firefox Send, with the difference that only the admin is allowed to upload files. `GPL-3.0` `Go` +- [goploader](https://github.com/Depado/goploader) - Easy file sharing with server-side encryption, curl/httpie/wget compliant. `MIT` `Go` +- [image-uploader](https://github.com/daggy1234/image-uploader) - A shareX compatible image uploader built for speed with a web interface and REST API. `AGPL-3.0` `Rust` +- [imgpush](https://github.com/hauxir/imgpush) - imgpush is a self-hosted file upload service that can easily be integrated into other webapps. `MIT` `Python` +- [ipfs.pics](https://github.com/ipfspics/server) - ipfs.pics is a distributed image hosting website. `AGPL-3.0` `PHP` +- [Jirafeau](https://gitlab.com/mojo42/Jirafeau) - Jirafeau is a web site permitting to upload a file in a simple way and give an unique link to it. ([Demo](http://jirafeau.net/)) `AGPL-3.0` `PHP` +- [Kleeja](https://kleeja.net/) - File Upload/sharing application, used by thousands of webmasters since 2007. ([Source Code](https://github.com/kleeja-official/kleeja)) `GPL-2.0` `PHP` +- [linx-server](https://github.com/ZizzyDizzyMC/linx-server) - Simple file sharing and pastebin with API, auto-expiry, deletion keys, and web seed support. ([Demo](https://put.icu/)) `GPL-3.0` `Go` +- [lufi](https://framagit.org/fiat-tux/hat-softwares/lufi) - Let's Upload that FIle, client-side encrypted. ([Demo](https://demo.lufi.io), [Source Code](https://framagit.org/fiat-tux/hat-softwares/lufi/tree/master)) `AGPL-3.0` `Perl` +- [lutim](https://github.com/ldidry/lutim) - Let's Upload That Image. `AGPL-3.0` `Perl` +- [OnionShare](https://github.com/micahflee/onionshare) - Securely and anonymously share a file of any size. `GPL-2.0` `Python` +- [PictShare](https://www.pictshare.net/) - PictShare is a multi lingual, open source image hosting service with a simple resizing and upload API. ([Source Code](https://github.com/chrisiaut/pictshare)) `Apache-2.0` `PHP` +- [Plik](https://github.com/root-gg/plik) - Plik is a scalable and friendly temporary file upload system. ([Demo](https://plik.root.gg/)) `MIT` `Go` +- [Pomf](https://github.com/Pomf/Pomf) - Simple file uploading and sharing, source for the now shut down site Pomf.se. `MIT` `PHP` +- [ProjectSend](http://www.projectsend.org/) - Upload files and assign them to specific clients you create. Give access to those files to your clients. ([Source Code](https://github.com/ignacionelson/ProjectSend)) `GPL-2.0` `PHP` +- [PsiTransfer](https://github.com/psi-4ward/psitransfer) - Simple open source self-hosted file sharing solution with robust up-/download-resume and password protection. `BSD-2-Clause` `Nodejs` +- [Pste](https://dev.pste.pw/) - Just a simple file hosting application inspired by the likes of pomf.se and teknik.io. ([Source Code](https://github.com/FoxDev/pste)) `GPL-3.0` `Python` +- [Share](https://github.com/MrDemonWolf/share) - Simple yet advanced uploader - upload files, images and text with moderation tools for admins. Can be used for friends and family or just for you. Integration with ShareX and more. `MIT` `Nodejs` +- [Sharry](https://github.com/eikek/sharry) - Share files easily over the internet between authenticated and anonymous users (both ways) with resumable up- and downloads. `GPL-3.0` `Scala/Java` +- [Uguu](https://uguu.se/) - Stores files and deletes after X amount of time. ([Source Code](https://github.com/nokonoko/uguu)) `MIT` `PHP` +- [Up1](https://github.com/Upload/Up1) - Client-side Encrypted Image Host. `MIT` `Nodejs` +- [Web-File-Uploader](https://v2.femto.pw/) - A simple tool to let people upload and share images and files. ([Source Code](https://github.com/femto-apps/web-file-uploader)) `MIT` `Nodejs` +- [XBackBone](https://github.com/SergiX44/XBackBone) - A simple, fast and lightweight file manager with instant sharing tools integration, like ShareX (a free and open-source screenshot utility for Windows). `AGPL-3.0` `PHP` +- [YouTransfer](http://www.youtransfer.io) - YouTransfer is a simple but elegant self-hosted file transfer and sharing solution. ([Source Code](https://github.com/remie/YouTransfer)) `Apache-2.0` `Nodejs` +- [Zipline](https://zipline.diced.wtf/) - A lightweight, fast and reliable file sharing server that is commonly used with ShareX, offering a react-based Web UI and fast API. ([Source Code](https://github.com/diced/zipline)) `MIT` `Nodejs` + +#### Command-line file upload + +- [Beauties](https://github.com/dsx/beauties) - Minimalist file sharing written in Go, to be used primarily from Unix shell (e.g. with curl). Can be built as a Debian package for easy install. `MIT` `Go` +- [transfer.sh](https://transfer.sh) - Easy file sharing from the command line. ([Source Code](https://github.com/dutchcoders/transfer.sh)) `MIT` `Go` + +#### Web based file managers + +- [Apaxy](https://oupala.github.io/apaxy/) - Theme built to enhance the experience of browsing web directories, using the mod_autoindex Apache module and some CSS to override the default style of a directory listing. ([Source Code](https://github.com/AdamWhitcroft/Apaxy)) `Unlicense` `HTML` +- [DirectoryLister](http://www.directorylister.com/) - Simple PHP based directory lister that lists a directory and all its sub-directories and allows you to navigate there within. ([Source Code](https://github.com/DirectoryLister/DirectoryLister)) `MIT` `PHP` +- [Encode Explorer](http://encode-explorer.siineiolekala.net/) - Encode Explorer is a single page file browser, it is simple and functional. ([Demo](http://encode-explorer.siineiolekala.net/explorer/index.php), [Source Code](https://github.com/marekrei/encode-explorer)) `MIT` `PHP` +- [explorer](https://soyuka.github.io/explorer/) - Highly-configurable directory listing made with nodejs. ([Source Code](https://github.com/soyuka/explorer)) `MIT` `Nodejs` +- [filebrowser](https://filebrowser.org/) - Web File Browser with a Material Design web interface. ([Source Code](https://github.com/filebrowser/filebrowser)) `Apache-2.0` `Go` +- [FileGator](https://filegator.io/) - FileGator is a powerful multi-user file manager with a single page front-end. ([Demo](https://demo.filegator.io), [Source Code](https://github.com/filegator/filegator)) `MIT` `PHP` +- [Filestash](https://www.filestash.app/) - A web file manager that lets you manage your data anywhere it is located: FTP, SFTP, WebDAV, Git, S3, Minio, Dropbox, or Google Drive . ([Demo](https://demo.filestash.app/), [Source Code](https://github.com/mickael-kerjean/filestash)) `AGPL-3.0` `Go` +- [goBrowser](https://github.com/xataz/gobrowser) - Simple http file browser. `GPL-3.0` `Go` +- [Gossa](https://github.com/pldubouilh/gossa) - Gossa is a light and simple webserver for your files. `MIT` `Go` +- [h5ai](https://larsjung.de/h5ai/) - Modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. ([Demo](https://larsjung.de/h5ai/demo/), [Source Code](https://github.com/lrsjng/h5ai)) `MIT` `PHP` +- [IFM](https://github.com/misterunknown/ifm) - Single script file manager. `MIT` `PHP` +- [ResourceSpace](https://www.resourcespace.com) - ResourceSpace open source digital asset management software is the simple, fast, and free way to organise your digital assets. ([Demo](https://www.resourcespace.com/trial), [Source Code](https://www.resourcespace.com/svn)) `Other` `PHP` +- [s3server](https://github.com/jessfraz/s3server) - Simple HTTP interface to index and browse files in a public S3 or Google Cloud Storage bucket. `MIT` `Go` +- [Surfer](https://github.com/nebulade/surfer) - Simple static file server with webui to manage files. `MIT` `Nodejs` +- [TagSpaces](https://www.tagspaces.org/) - TagSpaces is an offline, cross-platform file manager and organiser that also can function as a note taking app. The WebDAV version of the application can be installed on top of a WebDAV servers such as Nextcloud or ownCloud. ([Demo](http://demo.tagspaces.org), [Source Code](https://github.com/tagspaces/tagspaces)) `AGPL-3.0` `Javascript` + +## Games + +**[`^ back to top ^`](#)** + +_Games, game servers and control panels._ + +- [A Dark Room](https://github.com/doublespeakgames/adarkroom) - Minimalist text adventure game for your browser. ([Demo](http://adarkroom.doublespeakgames.com/)) `MPL-2.0` `HTML5` +- [Agar.IO Clone](https://github.com/huytd/agar.io-clone) - Agar.io clone written with Socket.IO and HTML5 canvas. `MIT` `Nodejs` +- [battlecraft](https://github.com/jbreindel/battlecraft) - Fully distributed multiplayer browser game. `Apache-2.0` `Erlang` +- [elevatorsaga](http://play.elevatorsaga.com/) - The elevator programming game. ([Source Code](https://github.com/magwo/elevatorsaga)) `MIT` `Javascript` +- [Hextris](https://github.com/Hextris/hextris) - Fast paced HTML5 puzzle game inspired by Tetris. ([Demo](https://hextris.github.io/hextris)) `GPL-3.0` `HTML5` +- [Legend of the Green Dragon](https://github.com/lotgd/core) - Legend of the Green Dragon is a text-based RPG originally developed by Eric Stevens and JT Traub as a remake of and homage to the classic BBS Door game, Legend of the Red Dragon, by Seth Able Robinson. ([Demo](http://lotgd.net/)) `AGPL-3.0` `PHP` +- [Lila](https://lichess.org/) - The forever free, adless and open source chess server powering lichess.org, with official iOS and Android client apps. ([Source Code](https://github.com/ornicar/lila)) `AGPL-3.0` `Scala` +- [Mindustry](https://mindustrygame.github.io/) - Factorio-like tower defense game. Build production chains to gather more resources, and build complex facilities. ([Source Code](https://github.com/Anuken/Mindustry)) `GPL-3.0` `Java` +- [Minetest](https://www.minetest.net/) - An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server. ([Source Code](https://github.com/minetest/minetest)) `LGPL-2.1/CC-BY-SA-3.0/Other` `C++` +- [MTA:SA](https://mtasa.com/) `⚠` - Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto game series, in which this functionality is not originally found. ([Source Code](https://github.com/multitheftauto/mtasa-blue)) `GPL-3.0` `C++` +- [Net64+](https://net64-mod.github.io) `⚠` - Net64 aka SM64O allows playing Super Mario 64 in an online multiplayer mode. Net64+ is the official continuation of the program and features an integrated server list. ([Source Code](https://github.com/Tarnadas/net64plus-server/), [Clients](https://github.com/Tarnadas/net64plus/)) `MIT` `Nodejs` +- [node-virtual-gamepads](https://github.com/jehervy/node-virtual-gamepads) - Turn your smartphone into a game controller, keyboard, or touchpad for a remote Linux OS machine. `MIT` `Nodejs/CoffeScript` +- [Posio](https://github.com/abrenaut/posio) - Geography multiplayer game. `MIT` `Python` +- [piqueserver](https://github.com/piqueserver/piqueserver) - Server for openspades, the first-person shooter in a destructible voxel world. ([Clients](https://github.com/yvt/openspades)) `GPL-3.0` `Python/C++` +- [QuakeJS](https://github.com/begleysm/quakejs) - QuakeJS is a port of ioquake3 to JavaScript that can be played in a browser. `MIT` `Nodejs` +- [Quizmaster](https://github.com/nymanjens/quizmaster) - A web-app for conducting a quiz, including a page for players to enter their answers. `Apache-2.0` `Scala` +- [RconCli](https://github.com/gorcon/rcon-cli) - CLI for executing queries on a remote Valve Source dedicated server using the RCON Protocol. `MIT` `Go` +- [SourceBans++](https://sbpp.github.io) - Admin, ban, and communication management system for games running on the Source engine. ([Source Code](https://github.com/sbpp/sourcebans-pp)) `CC-BY-SA-4.0` `PHP` +- [Teeworlds](https://www.teeworlds.com) - Open source 2D retro multiplayer shooter. ([Source Code](https://github.com/teeworlds/teeworlds)) `BSD-3-Clause/Other` `C++` +- [TournamentMango](https://github.com/seiyria/tournamentmango) - TournamentMango is an open source tournament bracket and user management system. You can build an archive of players and keep track of all their scores over time as well as their regular characters, games, and aliases. `MIT` `Javascript` +- [The Battle for Wesnoth](https://github.com/wesnoth/wesnoth) - The Battle for Wesnoth is an Open Source, turn-based tactical strategy game with a high fantasy theme, featuring both singleplayer and online/hotseat multiplayer combat. +- [Zero-K](https://zero-k.info/) - Open Source on Springrts engine. Zero-K is a traditional real time strategy game with a focus on player creativity through terrain manipulation, physics, and a large roster of unique units - all while being balanced to support competitive play. [ZK source](https://github.com/ZeroK-RTS/Zero-K) + +## Gateways and terminal sharing + +**[`^ back to top ^`](#)** + +- [asciinema](https://github.com/asciinema/asciinema-server) - Web app for hosting asciicasts. ([Demo](https://asciinema.org/)) `Apache-2.0` `Elixir/Docker` +- [GateOne](http://liftoffsoftware.com/Products/GateOne) - Gate One is an HTML5 web-based terminal emulator and SSH client. ([Source Code](https://github.com/liftoff/GateOne)) `AGPL-3.0` `Python` +- [Guacamole](http://guac-dev.org/) - Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC and RDP. ([Source Code](https://github.com/glyptodon/)) `Apache-2.0` `Java/C` +- [Neko](https://github.com/nurdism/neko) - A self hosted virtual browser (rabb.it clone) that runs in Docker. `Apache-2.0` `Docker/Go` +- [oneye](https://oneye-project.org/) - Cloud software to access your data from everywhere with any browser. ([Demo](https://wiki.oneye-project.org/0.9:demo), [Source Code](https://github.com/oneye/oneye)) `AGPL-3.0` `PHP` +- [OS.js](https://www.os-js.org/) - Desktop implementation for your browser with a fully-fledged window manager, Application APIs, GUI toolkits and filesystem abstraction. ([Demo](https://demo.os-js.org/), [Source Code](https://github.com/os-js/OS.js)) `BSD-2-Clause` `Nodejs` +- [ShellHub](https://www.shellhub.io) - ShellHub is a modern SSH server for remotely accessing linux devices via command line (using any SSH client) or web-based user interface, designed as an alternative to sshd. Think ShellHub as centralized SSH for the the edge and cloud computing. ([Source Code](https://github.com/shellhub-io/shellhub)) `Apache-2.0` `Go/Other` +- [Sshwifty](https://github.com/nirui/sshwifty) - Sshwifty is a SSH and Telnet connector made for the Web. `AGPL-3.0` `Go/Docker` +- [tmate](https://tmate.io/) - Instant terminal sharing. ([Source Code](https://github.com/tmate-io/tmate)) `ISC` `C` + +## Genealogy + +**[`^ back to top ^`](#)** + +- [Genea.app](https://genea.app/) - Genea is a privacy by design and open source tool anyone can use to author or edit their family tree. Data is stored in the GEDCOM format and all processing is done in the browser. ([Source Code](https://github.com/genea-app/genea-app)) `MIT` `Javascript` +- [GeneWeb](https://geneweb.tuxfamily.org/wiki/GeneWeb) - GeneWeb is an open source genealogy software written in OCaml. It comes with a Web interface and can be used off-line or as a Web service. ([Demo](https://demo.geneweb.tuxfamily.org/gw7/), [Source Code](https://github.com/geneweb/geneweb)) `GPL-2.0` `OCAML` +- [webtrees](https://www.webtrees.net) - Webtrees is the web's leading on-line collaborative genealogy application. ([Demo](https://dev.webtrees.net/demo-stable/index.php?ctype=gedcom&ged=demo), [Source Code](https://github.com/fisharebest/webtrees)) `GPL-3.0` `PHP` + +## Groupware + +**[`^ back to top ^`](#)** + +- [BlueMind](https://www.bluemind.net/en/) - Groupware with email, calendar, addressbooks, exchange active sync, exchange "mapi" protocol support. ([Source Code](https://forge.bluemind.net/stash/projects/BM/repos/bluemind-public/browse)) `AGPL-3.0` `Java` +- [Citadel](http://www.citadel.org/doku.php) - Groupware including email, calendar/scheduling, address books, forums, mailing lists, IM, wiki and blog engines, RSS aggregation and more. ([Source Code](http://www.citadel.org/doku.php/installation:source)) `GPL-3.0` `C` +- [Corteza](https://cortezaproject.org) - CRM including a unified workspace, enterprise messaging and a low code environment for rapidly and securely delivering records-based management solutions. ([Demo](https://latest.cortezaproject.org), [Source Code](https://github.com/cortezaproject/corteza-server)) `Apache-2.0` `Go` +- [Cozy Cloud](https://cozy.io) - Personal cloud where you can manage and sync your contact, files and calendars, and manage your budget with an app store full of community contributions. ([Source Code](https://github.com/cozy)) `GPL-3.0` `Nodejs` +- [egroupware](http://www.egroupware.org/) - Software suite including calendars, address books, notepad, project management tools, client relationship management tools (CRM), knowledge management tools, a wiki and a CMS. ([Source Code](https://github.com/EGroupware/egroupware)) `GPL-2.0` `PHP` +- [EspoCRM](https://www.espocrm.com/) - CRM with a frontend designed as a single page application, and a REST API. ([Demo](http://demo.espocrm.de/basic/), [Source Code](https://github.com/espocrm/espocrm)) `GPL-3.0` `PHP` +- [Horde](http://www.horde.org/) - The Horde Project is about creating high quality Open Source applications and libraries, based on PHP and the Horde Framework. ([Demo](http://demo.horde.org/login.php), [Source Code](https://github.com/horde/horde)) `GPL-2.0` `PHP` +- [HRCloud2](https://github.com/zelon88/HRCloud2) - Full-featured home hosted Cloud Drive, Personal Assistant, App Launcher, File Converter, Streamer, Share Tool and more. `GPL-3.0` `PHP` +- [Kolab](https://kolab.org/) - Kolab community is a unified communication and collaboration system. ([Source Code](https://git.kolab.org/)) `GPL-2.0/LGPL-2.1/GPL-3.0` `C++/Python/PHP` +- [Kopano](https://kopano.com/) - Groupware suite including e-mail, calendars, tasks, todos and notes. Featuring a modern WebApp, DeskApp and mobile access over Z-Push/ActiveSync. ([Demo](http://demo.kopano.com), [Source Code](https://stash.kopano.io)) `AGPL-3.0` `C/Python/PHP` +- [Openmeetings](https://openmeetings.apache.org/index.html) - Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming. ([Source Code](https://openmeetings.apache.org/scm.html)) `Apache-2.0` `Java` +- [SOGo](https://sogo.nu/) - SOGo offers multiple ways to access the calendaring and messaging data. CalDAV, CardDAV, GroupDAV, as well as ActiveSync, including native Outlook compatibility and Web interface. ([Demo](http://demo.sogo.nu/SOGo/), [Source Code](https://github.com/inverse-inc/sogo)) `LGPL-2.1` `Objective-C` +- [SuiteCRM](http://www.suitecrm.com/) - The award-winning, enterprise-class open source CRM. ([Source Code](https://github.com/salesagility/SuiteCRM)) `AGPL-3.0` `PHP` +- [Tine 2.0](https://www.tine20.org) - Contacts, Calendar, Tasks, WebDAV, ActiveSync, VOIP, Mail-Client, CRM, Sales, Projects, Timetracker. ([Demo](https://demo.tine20.net), [Source Code](https://packages.tine20.com/maintenance/source/)) `AGPL-3.0/Other` `PHP` +- [Zimbra Collaboration](https://www.zimbra.com/) - Email, calendar, collaboration server with Web interface and lots of integrations. ([Source Code](https://github.com/zimbra)) `GPL-2.0/CPAL-1.0` `Java` + +## Human Resources Management (HRM) + +**[`^ back to top ^`](#)** + +- [admidio](https://www.admidio.org/) - Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization. ([Demo](https://www.admidio.org/demo/), [Source Code](https://github.com/Admidio/admidio)) `GPL-2.0` `PHP` +- [IceHrm](https://icehrm.com/) - IceHrm employee management system allows companies to centralize confidential employee information. ([Demo](https://icehrm.com/demo.php), [Source Code](https://github.com/gamonoid/icehrm)) `Apache-2.0` `PHP` +- [OrangeHRM](https://www.orangehrm.com/) - OrangeHRM is a comprehensive HRM system that captures all the essential functionalities required for any enterprise. ([Source Code](https://sourceforge.net/projects/orangehrm/)) `GPL-2.0` `PHP` +- [Sentrifugo](http://www.sentrifugo.com/) - Sentrifugo is a HRM system that can be easily configured to meet your organizational needs. ([Source Code](https://github.com/sapplica/sentrifugo)) `GPL-3.0` `PHP` +- [TimeOff.Management](https://timeoff.management) - Simple yet powerful absence management software for small and medium size business. ([Demo](https://app.timeoff.management), [Source Code](https://github.com/timeoff-management/application)) `MIT` `Nodejs` + +## Internet Of Things (IoT) + +**[`^ back to top ^`](#)** + +- [DeviceHive](https://www.devicehive.com/) - Open Source IoT Platform with a wide range of integration options. ([Demo](https://playground.devicehive.com/), [Source Code](https://github.com/devicehive/devicehive-java-server)) `Apache-2.0` `Java` +- [Domoticz](https://www.domoticz.com/) - Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. ([Source Code](https://github.com/domoticz/domoticz), [Clients](https://github.com/domoticz/domoticz-android)) `GPL-3.0` `C/C++` +- [FHEM](https://fhem.de/fhem.html) - FHEM is used to automate common tasks in the household like switching lamps and heating. It can also be used to log events like temperature or power consumption. You can control it via web or smartphone frontends, telnet or TCP/IP directly. ([Source Code](https://svn.fhem.de/trac)) `GPL-3.0` `Perl` +- [Gladys](https://gladysproject.com) - Gladys is an open-source home assistant which runs on your Raspberry Pi. ([Source Code](https://github.com/GladysProject/Gladys)) `MIT` `Nodejs` +- [Home Assistant](https://home-assistant.io/) - Open-source home automation platform. ([Demo](https://home-assistant.io/demo/), [Source Code](https://github.com/home-assistant/home-assistant)) `MIT` `Python` +- [Node RED](http://nodered.org/) - Browser-based flow editor that helps you wiring hardware devices, APIs and online services to create IoT solutions. ([Source Code](https://github.com/node-red/node-red)) `Apache-2.0` `Nodejs` +- [openHAB](http://www.openhab.org) - Vendor and technology agnostic open source software for home automation. ([Source Code](https://github.com/openhab/openhab-core)) `EPL-2.0` `Java` +- [OpenRemote](https://openremote.io) - 100% Open Source IoT Platform - IoT Asset management, Flow Rules and WHEN-THEN rules, Data visualization, Edge Gateway. ([Demo](https://demo.openremote.io/), [Source Code](https://github.com/openremote/openremote)) `AGPL-3.0` `Java` +- [Thingsboard](https://thingsboard.io/) - Open-source IoT Platform - Device management, data collection, processing and visualization. ([Demo](https://demo.thingsboard.io/signup), [Source Code](https://github.com/thingsboard/thingsboard)) `Apache-2.0` `Java` +- [Thingspeak](https://thingspeak.com/) - Open source “Internet of Things” application and API to store and retrieve data from things using HTTP. ([Demo](https://thingspeak.com/channels/public), [Source Code](https://github.com/iobridge/thingspeak)) `GPL-3.0` `Ruby` +- [WebThings Gateway](https://webthings.io/gateway/) - WebThings is an open source implementation of the Web of Things, including the WebThings Gateway and the WebThings Framework. ([Source Code](https://github.com/WebThingsIO/gateway)) `MPL-2.0` `NodeJS` + +## Knowledge Management Tools + +**[`^ back to top ^`](#)** + +- [Mindmaps](https://github.com/drichard/mindmaps) - Open source, offline capable, mind mapping application. ([Demo](http://drichard.org/mindmaps/)) `AGPL-3.0` `HTML5` +- [My Mind](https://github.com/ondras/my-mind) - Web application for creating and managing mind maps. ([Demo](https://my-mind.github.io/?url=examples%2Ffeatures.mymind)) `MIT` `Javascript` +- [Weaviate](https://github.com/semi-technologies/weaviate) - A cloud-native, realtime vector search engine integrating scalable machine learning models (GraphQL and RESTful APIs). ([Demo](https://www.semi.technology/documentation/weaviate/current/)) `BSD-3-Clause` `Go` + +## Learning and Courses + +**[`^ back to top ^`](#)** + +- [Canvas LMS](https://www.canvaslms.com/) - Canvas is the trusted, open-source learning management system (LMS) that is revolutionizing the way we educate. ([Demo](https://canvas.instructure.com/register), [Source Code](https://github.com/instructure/canvas-lms)) `AGPL-3.0` `Ruby` +- [Chamilo LMS](https://chamilo.org/) - Chamilo LMS allows you to create a virtual campus for the provision of online or semi-online training. ([Source Code](https://github.com/chamilo/chamilo-lms)) `GPL-3.0` `PHP` +- [edX](https://www.edx.org/) - The Open edX platform is open-source code that powers edX.org. ([Source Code](https://github.com/edx/)) `AGPL-3.0` `Python` +- [ILIAS](http://www.ilias.de) - ILIAS is the Learning Management System that can cope with anything you throw at it. ([Demo](http://demo.ilias.de), [Source Code](https://github.com/ILIAS-eLearning/ILIAS)) `GPL-3.0` `PHP` +- [Mahara](https://mahara.org/) - Open Source fully featured web application to build students electronic portfolio. ([Source Code](https://github.com/MaharaProject/mahara)) `GPL-3.0` `PHP` +- [Moodle](https://moodle.org/) - Moodle is a learning and courses platform with one of the largest open source communities worldwide. ([Demo](https://moodle.org/demo/), [Source Code](https://git.moodle.org/gw)) `GPL-3.0` `PHP` +- [Open eClass](http://www.openeclass.org/) - Open eClass is an advanced e-learning solution that can enhance the teaching and learning process. ([Demo](http://demo.openeclass.org/), [Source Code](https://github.com/gunet/openeclass)) `GPL-2.0` `PHP` +- [OpenOLAT](https://www.openolat.com/?lang=en) - OpenOLAT is a web-based learning management system for teaching, education, assessment and communication. ([Demo](https://learn.olat.com), [Source Code](https://github.com/OpenOLAT/OpenOLAT)) `Apache-2.0` `Java` +- [RELATE](https://documen.tician.de/relate/) - RELATE is a web-based courseware package, includes features such as: flexible rules, statistics, multi-course support, class calendar. ([Source Code](https://github.com/inducer/relate)) `MIT` `Python` +- [RosarioSIS](https://www.rosariosis.org/) - RosarioSIS, free Student Information System for school management. ([Demo](https://www.rosariosis.org/demo/), [Source Code](https://gitlab.com/francoisjacquet/rosariosis/)) `GPL-2.0` `PHP` +- [Sakai](https://www.sakaiproject.org/) - The Sakai project provides a flexible and feature-rich environment for teaching, learning, research and other collaboration. ([Demo](https://www.sakaiproject.org/try-sakai), [Source Code](https://github.com/sakaiproject/sakai)) `ECL-2.0` `Java` + +## Maps and Global Positioning System (GPS) + +**[`^ back to top ^`](#)** + +_See also [awesome-gis](https://github.com/sshuair/awesome-gis)._ + +- [Geo2tz](https://github.com/noandrea/geo2tz) - Get the timezone from geo coordinates (lat, lon). `MIT` `Go/Docker` +- [GraphHopper](https://graphhopper.com/) - Fast routing library and server using OpenStreetMap. ([Source Code](https://github.com/graphhopper/graphhopper)) `Apache-2.0` `Java` +- [Hauk](https://github.com/bilde2910/Hauk) - Easy to setup location sharing platform that lets you temporarily share your location with anyone in real-time. ([Demo](https://github.com/bilde2910/Hauk#demo-server)) `Apache-2.0` `PHP` +- [MapBBCodeShare](https://github.com/MapBBCode/share.mapbbcode.org) - Tool for sharing custom OSM maps. Support for annotated markers, polygons, lines, multi-format import/export, multiple layers, shortlinks. ([Demo](http://share.mapbbcode.org/)) `WTFPL/Other` `PHP` +- [Open Source Routing Machine (OSRM)](http://project-osrm.org/) - High performance routing engine designed to run on OpenStreetMap data and offering an HTTP API, C++ library interface, and NodeJS wrapper. ([Demo](https://map.project-osrm.org/), [Source Code](https://github.com/Project-OSRM/osrm-backend)) `BSD-2-Clause` `C++` +- [Nominatim](https://nominatim.org/) - Server application for reverse geocoding (address -> coordinates) on OpenStreetMap data. ([Source Code](https://github.com/openstreetmap/Nominatim)) `GPL-2.0` `C` +- [OpenGTS](http://www.opengts.org/) - Entry-level fleet tracking system. Supports variety of tracking devices and protocols. Comes with rich web-interface and reporting features. ([Demo](http://track.opengts.org/track/Track), [Source Code](https://sourceforge.net/projects/opengts/files/server-base/)) `Apache-2.0` `Java` +- [OpenStreetMap](https://www.openstreetmap.org/) - Collaborative project to create a free editable map of the world. ([Source Code](https://github.com/openstreetmap/openstreetmap-website), [Clients](https://wiki.openstreetmap.org/wiki/Software)) `GPL-2.0` `Ruby` +- [OpenTripPlanner](https://www.opentripplanner.org/) - Multimodal trip planning software based on OpenStreetMap data and consuming published GTFS-formatted data to suggest routes using local public transit systems. ([Source Code](https://github.com/opentripplanner/OpenTripPlanner)) `LGPL-3.0` `Java/JavaScript` +- [Orion](https://github.com/LINKIWI/orion-web) - Powerful OwnTracks API-compliant location data visualization frontend for the web. ([Demo](https://linkiwi.github.io/orion-web/)) `MIT` `Python/Nodejs` +- [OwnTracks Recorder](https://github.com/owntracks/recorder) `⚠` - Store and access data published by [OwnTracks](http://owntracks.org/) location tracking apps. `GPL-2.0` `C`/`Lua` +- [TileServer GL](http://tileserver.readthedocs.io/) - Vector and raster maps with GL styles. Server side rendering by Mapbox GL Native. Map tile server for Mapbox GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc. ([Source Code](https://github.com/klokantech/tileserver-gl)) `BSD-2-Clause` `Nodejs` +- [TileServer PHP](https://github.com/klokantech/tileserver-php) - Serve map tiles from any PHP hosting. `BSD-2-Clause` `PHP` +- [Traccar](https://www.traccar.org/) - Java application to track GPS positions. Supports loads of tracking devices and protocols, has an Android and iOS App. Has a web interface to view your trips. ([Demo](http://demo.traccar.org/), [Source Code](https://github.com/traccar)) `Apache-2.0` `Java` +- [μlogger](https://github.com/bfabiszewski/ulogger-server) - Collect geolocation from users in real-time and display their GPS tracks on a website. ([Demo](http://ulogger.fabiszewski.net/)) `GPL-3.0` `PHP` +- [uMap](https://umap.openstreetmap.fr/en/) - Create maps with OpenStreetMap layers in a minute and embed them in your site. ([Source Code](https://github.com/umap-project/umap)) `WTFPL` `Python` + +## Media Streaming + +**[`^ back to top ^`](#)** + +_See also , _ + +### Multimedia Streaming + +- [Gerbera](https://gerbera.io/) - Gerbera is an UPnP Media Server. It allows you to stream your digital media throughout your home network and listen to/watch it on a variety of UPnP compatible devices. ([Source Code](https://github.com/gerbera/gerbera)) `GPL-2.0` `C++` +- [homehost](https://github.com/ridhwaans/homehost) `⚠` - Self-hosted React + Redux app that streams your media collection (music, movies, books, podcasts, comics etc). `MIT` `Nodejs` +- [Icecast 2](http://www.icecast.org/) - streaming audio/video server which can be used to create an Internet radio station or a privately running jukebox and many things in between. ([Source Code](https://gitlab.xiph.org/xiph/icecast-server), [Clients](http://www.icecast.org/apps/)) `GPL-2.0` `C` +- [Jellyfin](https://jellyfin.org) - Media server for audio, video, books, comics, and photos with a sleek interface and robust transcoding capabilities. Almost all modern platforms have clients, including Roku, Android TV, iOS, and Kodi. ([Demo](https://demo.jellyfin.org/stable), [Source Code](https://github.com/jellyfin/jellyfin)) `GPL-2.0` `C#` +- [Karaoke Forever](https://www.karaoke-forever.com) - Host awesome karaoke parties where everyone can easily find and queue songs from their phone's web browser. The player is also browser-based with support for MP3+G, MP4 and WebGL visualizations. ([Source Code](https://www.karaoke-forever.com/repo)) `ISC` `Nodejs` +- [LBRY](https://lbry.com/) - Is a secure, open, and community-run digital marketplace that aims to replace Youtube and Amazon. ([Demo](https://lbry.tv/), [Source Code](https://github.com/lbryio/lbry.com), [Clients](https://github.com/lbryio/lbry-desktop)) `MIT` `PHP` +- [MistServer](http://mistserver.org/) - Streaming media server that works well in any streaming environment. ([Source Code](https://github.com/DDVTECH/mistserver)) `AGPL-3.0` `C++` +- [NymphCast](http://nyanko.ws/nymphcast.php) - NymphCast is a Chromecast alternative which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. ([Source Code](https://github.com/MayaPosch/NymphCast)) `BSD-3-Clause` `C++` +- [Podify](https://www.podify.org/) - Allows you to download videos and audio from any source supported by youtube-dl and subscribe to and watch these downloads using your favorite podcast app. ([Source Code](https://github.com/podify-org/podify/)) `GPL-3.0` `Ruby` +- [ReadyMedia](http://sourceforge.net/projects/minidlna/) - Simple media server software, with the aim of being fully compliant with DLNA/UPnP-AV clients. Formerly known as MiniDLNA. ([Source Code](https://sourceforge.net/p/minidlna/git/ci/master/tree/)) `GPL-2.0` `C` +- [Rygel](https://wiki.gnome.org/action/show/Projects/Rygel) - Rygel is a UPnP AV MediaServer that allows you to easily share audio, video, and pictures. Media player software may use Rygel to become a MediaRenderer that may be controlled remotely by a UPnP or DLNA Controller. ([Source Code](https://gitlab.gnome.org/GNOME/rygel/)) `GPL-3.0` `C` +- [üWave](http://u-wave.net/) `⚠` - üWave is a self-hosted collaborative listening platform. Users take turns playing media—songs, talks, gameplay videos, or anything else—from a variety of media sources like YouTube and SoundCloud. ([Demo](https://wlk.yt/), [Source Code](https://github.com/u-wave)) `MIT` `Nodejs` + + +### Audio Streaming + +- [Ampache](http://ampache.org/) - Web based audio/video streaming application. ([Demo](http://play.dogmazic.net/), [Source Code](https://github.com/ampache/ampache)) `AGPL-3.0` `PHP` +- [Airsonic](https://airsonic.github.io/) - Open-source web-based media streamer and jukebox. A fork of Subsonic's last open-source release, before it switched licenses. ([Source Code](https://github.com/airsonic/airsonic), [Clients](https://airsonic.github.io/docs/apps/)) `GPL-3.0` `Java` +- [AzuraCast](https://www.azuracast.com/) - A modern and accessible self-hosted web radio management suite. ([Source Code](https://github.com/AzuraCast/AzuraCast)) `Apache-2.0` `PHP` +- [Audioserve](https://github.com/izderadicka/audioserve) - Simple personal server to serve audio files from directories (audiobooks, music, podcasts...). Focused on simplicity and supports sync of play position between clients. `MIT` `Rust` +- [Beets](http://beets.io/) - Music library manager and MusicBrainz tagger (command-line and Web interface). ([Source Code](https://github.com/beetbox/beets)) `MIT` `Python` +- [Black Candy](https://github.com/aidewoode/black_candy) - Music streaming server built with Rails and Stimulus. `MIT` `Ruby` +- [Compactd](https://github.com/compactd/compactd) - Remote music player that supports adding content. `MIT` `Nodejs` +- [FriendsRadio](https://github.com/xouabita/friends-radio) `⚠` - Share music with your friends from Youtube and Soundcloud. ([Demo](https://friends-radio.herokuapp.com/)) `MIT` `Nodejs` +- [Funkwhale](https://funkwhale.audio/) - Modern, web-based, convivial, multi-user and free music server. ([Demo](https://demo.funkwhale.audio/), [Source Code](https://code.eliotberriot.com/funkwhale/funkwhale)) `BSD-3-Clause` `Python/Django` +- [GNU FM](https://gnu.io/fm/) - Running music community websites, alternative to last.fm. ([Source Code](http://git.savannah.gnu.org/cgit/librefm.git/)) `AGPL-3.0` `PHP` +- [gonic](https://github.com/sentriz/gonic) - Lightweight music streaming server. Subsonic compatible. `GPL-3.0` `Go` +- [Groove Basin](https://github.com/andrewrk/groovebasin) - Music player server with a web-based user interface inspired by Amarok 1.4. `MIT` `Nodejs` +- [koel](http://koel.phanan.net/) - Personal music streaming server that works. ([Source Code](https://github.com/phanan/koel)) `MIT` `PHP` +- [KooZic](https://koozic.net/) - Music server with powerful playlist features and Subsonic compatibility. ([Demo](https://demo.koozic.net/public), [Source Code](https://github.com/DocMarty84/koozic)) `LGPL-3.0/MIT` `Python` +- [LibreTime](http://libretime.org) - Simple, open source platform that lets you broadcast streaming radio on the web (fork of [Airtime](https://github.com/sourcefabric/Airtime)). ([Source Code](https://github.com/LibreTime/libretime)) `AGPL-3.0` `PHP` +- [LMS](https://github.com/epoupon/lms) - Access your self-hosted music using a web interface. ([Demo](http://lms.demo.poupon.io/)) `GPL-3.0` `C++` +- [moOde Audio](https://moodeaudio.org/) - Audiophile-quality music playback for the wonderful Raspberry Pi family of single board computers. ([Source Code](https://github.com/moode-player/moode)) `GPL-3.0` `PHP` +- [Mopidy](http://mopidy.readthedocs.org/) - Extensible music server. Offers a superset of the mpd API, as well as integration with 3rd party services like Spotify, SoundCloud etc. ([Source Code](https://github.com/mopidy/mopidy)) `Apache-2.0` `Python` + - [Moped](https://github.com/martijnboland/moped) - Responsive HTML5 + Javascript client for the Mopidy music server. `MIT` `HTML5` + - [Mopidy MusicBox](https://github.com/pimusicbox/mopidy-musicbox-webclient) - Web Client for Mopidy Music Server. `Apache-2.0` `HTML5` + - [Mopidy-Party](https://github.com/Lesterpig/mopidy-party) - Mopidy web extension designed for party! Let your guests manage the sound. `Apache-2.0` `Python` +- [mpd](http://www.musicpd.org/) - Daemon to remotely play music, stream music, handle and organize playlists. Many clients available. ([Source Code](https://github.com/MusicPlayerDaemon/MPD), [Clients](https://www.musicpd.org/clients/)) `GPL-2.0` `C++` + - [ympd](http://www.ympd.org/) - Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS. ([Source Code](https://github.com/notandy/ympd)) `GPL-2.0` `C` +- [mStream](http://mstream.io/) - Music streaming server with GUI management tools. Runs on Mac, Windows, and Linux. ([Source Code](https://github.com/IrosTheBeggar/mStream)) `GPL-2.0` `Nodejs` +- [musikcube](https://musikcube.com/) - Streaming audio server with Linux/macOS/Windows/Android clients. ([Source Code](https://github.com/clangen/musikcube)) `BSD-3-Clause` `C++` +- [Navidrome Music Streamer](https://www.navidrome.org) - Modern Music Server and Streamer, compatible with Subsonic/Airsonic. ([Demo](https://www.navidrome.org/demo), [Source Code](https://github.com/deluan/navidrome), [Clients](https://www.navidrome.org/docs/overview/#apps)) `GPL-3.0` `Go/JavaScript` +- [Polaris](https://github.com/agersant/polaris) - Music browsing and streaming application optimized for large music collections, ease of use and high performance. `MIT` `Rust` +- [Snapcast](https://github.com/badaix/snapcast) - Synchronous multiroom audio server. `GPL-3.0` `C++` +- [Stretto](https://github.com/benkaiser/stretto) - Music player with Youtube/Soundcloud import and iTunes/Spotify discovery. ([Demo](https://next.kaiserapps.com), [Clients](https://github.com/benkaiser/stretto-mobile-next)) `MIT` `Nodejs` +- [Volumio](https://volumio.org/) - A free and open source linux distribution, designed and fine-tuned exclusively for music playback. ([Source Code](https://github.com/volumio/Volumio2)) `GPL-3.0` `NodeJS` + +### Video Streaming + +- [Bluecherry](https://www.bluecherrydvr.com/) - Closed-circuit television (CCTV) software application which supports IP and Analog cameras. ([Source Code](https://github.com/bluecherrydvr/bluecherry-apps)) `GPL-2.0` `PHP` +- [crtmpserver](https://packages.debian.org/stable/crtmpserver) - High performance RTMP/RTSP streaming server. `GPL-3.0` `C++` +- [CyTube](https://github.com/calzoneman/sync) - CyTube is a web application providing media synchronization, chat, and more for an arbitrary number of channels. ([Demo](http://cytu.be)) `MIT` `Nodejs` +- [Hellowlol HTPC Manager fork](https://github.com/Hellowlol/HTPC-Manager) - Fully responsive interface to manage all your favorite media on your HTPC. `MIT` `Python` +- [Invidious](https://github.com/omarroth/invidious/) - `⚠` Invidious is an alternative front-end to YouTube. ([Demo](https://invidio.us/)) `AGPL-3.0` `Crystal` +- [Kerberos.io](https://kerberos.io) - Kerberos.io is a video surveillance solution, which works with any camera and on every Linux based machine (Raspberry Pi, Docker, Kubernetes cluster). ([Demo](https://demo.kerberos.io/), [Source Code](https://github.com/kerberos-io/kerberos-docker)) `MIT` `C++` +- [MediaCMS](https://mediacms.io) - MediaCMS is a modern, fully featured open source video and media CMS, written in Python/Django/React, featuring a REST API. ([Source Code](https://github.com/mediacms-io/mediacms)) `AGPL-3.0` `Python/Docker` +- [Myflix](https://github.com/pastapojken/Myflix) - Self-hosted, super lightweight Netflix alternative. `MIT` `Shell` +- [Oblecto](https://github.com/robinp7720/Oblecto) `⚠` - Media server for Movies and TV Shows with a responsive Vue.js frontend. It has robust transcoding support as well as federation capabilities to share your library with your friends. `AGPL-3.0` `Nodejs` +- [Oddworks](https://gitlab.com/oddnetworks/oddworks/core) - Oddworks is an open source video distribution platform built to destroy the barriers to streaming television with SDKs for Roku, Apple iOS/tvOS, Google Android, and Amazon FireTV. `MIT` `Nodejs` +- [Open Streaming Platform](https://openstreamingplatform.com) - Self-Hosted alternative to Twitch and Youtube Live for live and on-demand video streaming. ([Source Code](https://gitlab.com/Deamos/flask-nginx-rtmp-manager)) `MIT` `Python` +- [Olaris](https://gitlab.com/olaris/olaris-server) - Olaris is an open-source, community driven, media manager and transcoding server. `GPL-3.0` `Go` +- [PeerTube](https://joinpeertube.org/en/) - Decentralized video streaming platform using P2P (BitTorrent) directly in the web browser. ([Source Code](https://github.com/Chocobozzz/PeerTube)) `AGPL-3.0` `Nodejs` +- [Rapidbay](https://github.com/hauxir/rapidbay/) - Self-hosted torrent videostreaming service/torrent client that allows searching and playing videos from torrents in the browser or from a Chromecast/AppleTV/Smart TV. `MIT` `Python/Docker` +- [Restreamer](https://datarhei.github.io/restreamer/) - Restreamer allows you to do h.264 real-time video streaming on your website without a streaming provider. ([Source Code](https://github.com/datarhei/restreamer)) `Apache-2.0` `Nodejs/Docker` +- [Radium](https://github.com/Zibbp/Radium) - Synced stream and video playback with VOD capabilities utilizing HLS. Developed for movie nights but has many use cases. ([Demo](https://radium-demo.herokuapp.com)) `MIT` `Nodejs/Docker` +- [ShinobiCE](https://gitlab.com/Shinobi-Systems/ShinobiCE) - Open Source CCTV software written in Node with both IP and local camera support. `AGPL-3.0/GPL-3.0` `Nodejs` +- [Streama](https://github.com/streamaserver/streama) - Self hosted streaming media server. `MIT` `Java` +- [SyncTube](https://github.com/RblSb/SyncTube) - Lightweight and very simple to setup CyTube alternative to watch videos with friends and chat. ([Demo](http://synctube-example.herokuapp.com/)) `MIT` `Nodejs/Haxe` +- [Tube](https://prologic.github.io/tube) - a Youtube-like (_without censorship and features you don't need!_) Video Sharing App written in Go which also supports automatic transcoding to MP4 H.265 AAC, multiple collections and RSS feed. ([Demo](https://tube.mills.io), [Source Code](https://github.com/prologic/tube)) `MIT` `Go` +- [VideoLAN Client (VLC)](https://www.videolan.org/) - Cross-platform multimedia player client and server supporting most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols. ([Source Code](https://github.com/videolan/vlc)) `Multiple` `C` +- [Zoneminder](https://www.zoneminder.com/) - Closed-circuit television (CCTV) software application which supports IP, USB and Analog cameras. ([Source Code](https://github.com/ZoneMinder/ZoneMinder)) `GPL-2.0` `PHP` + +## Misc/Other + +**[`^ back to top ^`](#)** + +- [2FAuth](https://github.com/Bubka/2FAuth) - A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes. ([Demo](https://demo.2fauth.app/)) `AGPL-3.0` `PHP` +- [411](https://github.com/etsy/411) - Alert Management Web Application. `MIT` `PHP` +- [AlertHub](https://github.com/Ardakilic/alerthub) `⚠` - AlertHub is a simple tool to get alerted from GitHub releases. `MIT` `Nodejs` +- [Anchr](https://anchr.io) - Anchr is a toolbox for tiny tasks on the internet, including bookmark collections, URL shortening and (encrypted) image uploads. ([Source Code](https://github.com/n1try/anchr)) `GPL-3.0` `Nodejs` +- [Anuko](https://www.anuko.com/time_tracker/index.htm) - Anuko provides simple time and project tracking on a selfhosted basis. ([Demo](https://timetracker.anuko.com/), [Source Code](https://github.com/anuko/timetracker)) `Other` `PHP` +- [asciiflow](http://asciiflow.com/) - Flow Diagram Drawing Tool. ([Source Code](https://github.com/lewish/asciiflow2)) `GPL-3.0` `Java/JavaScript` +- [Databunker](https://databunker.org/) - Network-based, self-hosted, GDPR compliant, secure database for personal data or PII. ([Source Code](https://github.com/securitybunker/databunker)) `MIT` `Go` +- [blynk](https://blynk.io/) - Platform with iOS and Android apps to control Arduino, ESP8266, Raspberry Pi and similar microcontroller boards over the Internet. ([Source Code](https://github.com/blynkkk/blynk-server)) `AGPL-3.0` `Java` +- [Cachet](https://cachethq.io/) - An open source status page system for everyone. ([Demo](https://demo.cachethq.io/), [Source Code](https://github.com/CachetHQ/Cachet)) `BSD-3-Clause` `PHP` +- [CapRover](https://caprover.com/) - Build your own PaaS in a few minutes. ([Demo](https://captain.server.demo.caprover.com/#/login), [Source Code](https://github.com/caprover/caprover)) `Apache-2.0` `Docker/Nodejs` +- [changedetection.io](https://github.com/dgtlmoon/changedetection.io) - Self-hosted tool for staying up-to-date with web-site content changes. `Apache-2.0` `Python/Docker` +- [cState](https://github.com/cstate/cstate/) - Static status page for hyperfast Hugo. Clean design, minimal JS, super light HTML/CSS, high customization, optional admin panel, read-only API, IE8+. Best used with Netlify, Docker. ([Demo](https://cstate.mnts.lt/)) `MIT` `Go` +- [CUPS](https://www.cups.org/) - The Common Unix Print System uses Internet Printing Protocol (IPP) to support printing to local and network printers. ([Source Code](https://github.com/apple/cups)) `GPL-2.0` `C` +- [CyberChef](https://github.com/gchq/CyberChef) - Perform all manner of "cyber" operations within a web browser such as AES, DES and Blowfish encryption and decryption, creating hexdumps, calculating hashes, and much more. ([Demo](https://gchq.github.io/CyberChef)) `Apache-2.0` `JavaScript` +- [DailyTxT](https://github.com/PhiTux/DailyTxT) - Encrypted Diary Web-App to save your personal memories of each day. Includes a search-function and encrypted file-upload. `MIT` `Python` +- [Digital-Currency](https://github.com/Icesofty/Digital-Currency) - Create your own Self-Hosted Digital Currency. ([Demo](https://tonken.glitch.me/)) `GPL-3.0` `Nodejs` +- [DomainMOD](https://domainmod.org) - Application to manage your domains and other internet assets in a central location. DomainMOD includes a Data Warehouse framework that allows you to import your WHM/cPanel web server data so that you can view, export, and report on your data. ([Demo](https://demo.domainmod.org), [Source Code](https://github.com/domainmod/domainmod)) `GPL-3.0` `PHP` +- [Flox](https://github.com/devfake/flox) `⚠` - Self hosted movie, TV series and anime watch list with a 3-point rating system. Uses The Movie Database backend for information. ([Demo](https://flox-demo.pyxl.dev/)) `MIT` `PHP` +- [formspree](https://formspree.io/) `⚠` - Just send your form to our URL and we'll forward it to your email. No PHP, Javascript or sign up required. ([Demo](http://test.formspree.io/), [Source Code](https://github.com/formspree/formspree)) `AGPL-3.0` `Python` +- [graph-vl](https://github.com/verifid/graph-vl) - Identity document verification using Machine Learning and GraphQL. `MIT` `Python` +- [How Secure Is My Password](https://github.com/howsecureismypassword/hsimp) - Rather than just saying a password is "weak" or "strong", How Secure is My Password? lets your users know how long it would take someone to crack their password. ([Demo](https://howsecureismypassword.net/)) `MIT` `Javascript` +- [google-webfonts-helper](https://github.com/majodev/google-webfonts-helper) `⚠` - Hassle-Free Way to Self-Host Google Fonts. Get eot, ttf, svg, woff and woff2 files + CSS snippets. ([Demo](https://google-webfonts-helper.herokuapp.com/)) `MIT` `Nodejs` +- [ytdl-webserver](https://github.com/Algram/ytdl-webserver) - Docker-ready webserver for downloading youtube videos. `MIT` `Nodejs` +- [Journal](https://github.com/inoda/journal) - Simple journaling with encrypted entries and sharing capabilities. `MIT` `Ruby` +- [Kimai](https://www.kimai.org/) - Kimai is a free & open source timetracker. It tracks work time and prints out a summary of your activities on demand. ([Demo](https://www.kimai.org/demo/), [Source Code](https://github.com/kevinpapst/kimai2/)) `MIT` `PHP` +- [King Phisher](https://github.com/securestate/king-phisher) - King Phisher is a tool for testing and promoting user awareness by simulating real world phishing attacks. `BSD-3-Clause` `Python` +- [MailyGo](https://codeberg.org/jlelse/MailyGo) - MailyGo is a small tool written in Go that allows to send HTML forms, for example from static websites without a dynamic backend, via email. `MIT` `Go` +- [MalwareMultiScan](https://github.com/mindcollapse/MalwareMultiScan) - Self-hosted VirusTotal-like for scanning files with multiple antiviruses running in a Docker. `MIT` `C#` +- [MindsDB](https://github.com/mindsdb/mindsdb) - MindsDB is an open source self hosted AI layer for existing databases that allows you to effortlessly develop, train and deploy state-of-the-art machine learning models using standard queries. `GPL-3.0` `Python` +- [MissionKontrol](https://www.missionkontrol.io) - Configurable admin panel allowing non-technical users to CRUD data on MySQL/PostGRES databases. ([Source Code](https://github.com/Mission-Kontrol/MissionKontrol-rails)) `AGPL-3.0` `Ruby` +- [Monica](https://monicahq.com/) - Personal relationship manager, and a new kind of CRM to organize interactions with your friends and family. ([Source Code](https://github.com/monicahq/monica)) `AGPL-3.0` `PHP` +- [Musical Artifacts](https://musical-artifacts.com/) - Helping to catalog, preserve and free the artifacts you need to produce music. ([Source Code](https://github.com/lfzawacki/musical-artifacts)) `MIT` `Ruby` +- [nnmm](https://github.com/Mechazawa/nnmm) - Super tiny pastebin/url minifier "microservice". `Beerware` `PHP` +- [Notica](https://notica.us) - Lets you send browser notifications from your terminal to your desktop or phone. No installation or registration is required. ([Source Code](https://github.com/tannercollin/Notica)) `MIT` `Nodejs` +- [Ombi](https://ombi.io/) - A content request system for Plex/Emby, connects to SickRage, CouchPotato, Sonarr, with a growing feature set. ([Demo](https://app.ombi.io/), [Source Code](https://github.com/tidusjar/Ombi)) `GPL-2.0` `C#` +- [Orchest](https://www.orchest.io/) - A new kind of IDE for Data Science. ([Demo](https://cloud.orchest.io), [Source Code](https://github.com/orchest/orchest)) `AGPL-3.0` `Docker` +- [oTranscribe](https://github.com/oTranscribe/oTranscribe) - Free web app to take the pain out of transcribing recorded interviews. ([Demo](https://otranscribe.com/)) `MIT` `JavaScript` +- [PassCheck](https://apacketofsweets.github.io/PassCheck/) - A web application featuring some handy password tools, including a password generator, strength checker and HaveIBeenPwned breach checker. ([Source Code](https://github.com/apacketofsweets/PassCheck)) `MIT` `JavaScript` +- [Reactive Resume](http://rxresu.me/) - A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. ([Demo](https://rxresu.me/app/dashboard/), [Source Code](https://github.com/AmruthPillai/Reactive-Resume)) `MIT` `Docker/Nodejs` +- [ReleaseBell](https://releasebell.com/) - Send release notifications for starred Github repos. ([Source Code](https://git.cloudron.io/cloudron/releasebell)) `MIT` `Nodejs` +- [revealjs](https://revealjs.com) - Framework for easily creating beautiful presentations using HTML. ([Demo](https://revealjs.com/), [Source Code](https://github.com/hakimel/reveal.js)) `MIT` `JavaScript` +- [Revive Adserver](https://www.revive-adserver.com/) - World's most popular free, open source ad serving system. Formerly known as OpenX Adserver and phpAdsNew. ([Source Code](https://github.com/revive-adserver/revive-adserver)) `GPL-2.0-or-later` `PHP` +- [SANE Network Scanning](http://sane-project.org/) - Allow remote clients to access image acquisition devices (scanners) available on the local host. ([Source Code](http://www.sane-project.org/cvs.html)) `GPL-2.0` `C` +- [TeslaMate](https://github.com/adriankumpf/teslamate) - A powerful data logger for Tesla vehicles. `MIT` `Elixir` +- [Trello Burndown](https://github.com/swordbeta/trello-burndown) `⚠` - Easy to use SCRUM burndown chart for Trello boards. `MIT` `Go/Docker` +- [ViMbAdmin](http://www.vimbadmin.net/) - Provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases. ([Demo](http://www.vimbadmin.net/demo/auth/login), [Source Code](https://github.com/opensolutions/ViMbAdmin)) `GPL-3.0` `PHP` +- [Web fonts repository](https://github.com/Finesse/web-fonts-repository) - Simple webfont hosting. Google Fonts alternative for your own fonts. `MIT` `PHP` + +## Money, Budgeting and Management + +**[`^ back to top ^`](#)** + +_See also https://github.com/n1trux/awesome-sysadmin#it-asset-management_ + +- [Akaunting](https://akaunting.com/) - Akaunting is a free, online and open source accounting software designed for small businesses and freelancers. ([Source Code](https://github.com/akaunting/akaunting)) `GPL-3.0` `PHP` +- [BTCPay Server](https://btcpayserver.org/) - A self-hosted Bitcoin and other cryptocurrencies payment processor. ([Demo](https://mainnet.demo.btcpayserver.org/), [Source Code](https://github.com/btcpayserver/)) `MIT` `C#` +- [Boodle](https://github.com/manuel-uberti/boodle) - Simple accounting single-page application in Clojure and ClojureScript. `EPL-1.0` `Java` +- [Budget App](https://github.com/paukiatwee/budgetapp) - Budget App is an open source personal budgeting application. `Apache-2.0` `Java` +- [Dot Ledger](https://www.dotledger.com/) - Web-based personal finance management tool. ([Demo](https://demo.dotledger.com/), [Source Code](https://github.com/dotledger/dotledger)) `Apache-2.0` `Ruby` +- [EasyQuickImport](https://github.com/karser/EasyQuickImport) `⚠` - A tool that helps you import transactions, invoices and bills into QuickBooks Desktop from Excel or CSV. `MIT` `PHP` +- [Economizzer](http://www.economizzer.org/) - An easy and secure system for you to manage your personal money and achieve your goals, and can be accessed by computer, tablet or smartphone. ([Demo](https://github.com/gugoan/economizzer#live-demo), [Source Code](https://github.com/gugoan/economizzer)) `MIT` `PHP` +- [ExMoney](https://github.com/gaynetdinov/ex_money) - Self-hosted personal finance app. `ISC` `Elixir` +- [Firefly III](https://firefly-iii.org/) - Firefly III is a modern financial manager. It helps you to keep track of your money and make budget forecasts. It supports credit cards, has an advanced rule engine and can import data from many banks. ([Demo](https://demo.firefly-iii.org/), [Source Code](https://github.com/firefly-iii/firefly-iii)) `AGPL-3.0` `PHP` +- [Family Accounting Tool](https://github.com/nymanjens/facto) - Web-based finance management tool for partners with partially shared expenses. `Apache-2.0` `Scala` +- [Fava](https://beancount.github.io/fava/) - Fava is the web frontend of Beancount, a text based double-entry accounting system. ([Demo](https://fava.pythonanywhere.com/example-with-budgets/income_statement/), [Source Code](https://github.com/beancount/fava)) `MIT` `Python` +- [Galette](http://galette.eu/dc/) - Galette is a membership management web application towards non profit organizations. ([Source Code](http://git.tuxfamily.org/galette/galette.git/)) `GPL-3.0` `PHP` +- [GRR](http://grr.devome.com/?lang=en) - Assets management and booking for small/medium companies. ([Source Code](https://github.com/JeromeDevome/GRR)) `GPL-2.0` `PHP` +- [Hospital Run](http://hospitalrun.io/) - Hospital Run is offline enabled hospital management software. ([Demo](http://hospitalrun.io/demo/), [Source Code](https://github.com/HospitalRun/hospitalrun-server)) `GPL-3.0` `Nodejs` +- [Inventaire](https://inventaire.io/welcome) - Collaborative resources mapper project, while yet only focused on exploring books mapping with wikidata and ISBNs. ([Source Code](https://github.com/inventaire/inventaire)) `AGPL-3.0` `Nodejs` +- [Inventree](https://inventree.readthedocs.io/en/latest/) - InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. ([Source Code](https://github.com/inventree/InvenTree)) `MIT` `Python` +- [Invoice Ninja](https://www.invoiceninja.org/) - Powerful tool to invoice clients online. ([Demo](https://app.invoiceninja.com/invoices/create), [Source Code](https://github.com/invoiceninja/invoiceninja)) `AAL` `PHP` +- [InvoicePlane](https://github.com/InvoicePlane/InvoicePlane) - Manage quotes, invoices, payments and customers for your small business. `MIT` `PHP` +- [IHateMoney](http://ihatemoney.org/) - Manage your shared expenses, easily. ([Demo](https://ihatemoney.org/demo/), [Source Code](https://github.com/spiral-project/ihatemoney)) `BSD-3-Clause` `Python` +- [IHateToBudget](https://github.com/bminusl/ihatetobudget) - A simple web app to understand and control your expenses. `GPL-3.0` `Docker/Python` +- [Kresus](https://kresus.org/) - Open source personal finance manager. ([Demo](https://kresus.org/en/demo.html), [Source Code](https://github.com/kresusapp/kresus)) `MIT` `Nodejs` +- [OnTrack](https://github.com/inoda/ontrack) - A simple app to track spend and set goals. `MIT` `Ruby/React` +- [PartKeepr](https://www.partkeepr.org) - PartKeepr is an electronic part inventory management software. It helps you to keep track of your available parts and assist you with re-ordering parts. ([Demo](https://demo.partkeepr.org/), [Source Code](https://github.com/partkeepr/PartKeepr)) `GPL-3.0` `PHP` +- [SilverStrike](https://silverstrike.org/) - Personal finance management made easy. ([Demo](https://demo.silverstrike.org/), [Source Code](https://github.com/agstrike/silverstrike)) `MIT` `Python/Django` +- [StockazNG](https://dev.sigpipe.me/dashie/StockazNG) - Asset Management System. `MIT` `Python` +- [Tabby](https://github.com/bertvandepoel/tabby) - A tool to manage shared expenses across friends, such as restaurant costs or food delivery, without requiring everyone to create an account. Includes email reminders and tracks who has (re)paid what. `AGPL-3.0-only` `PHP` + +## Monitoring + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#monitoring and https://github.com/n1trux/awesome-sysadmin#metric--metric-collection_ + +## Note-taking and Editors + +**[`^ back to top ^`](#)** + +_See also [Wikis](#wikis)_ + +- [BulletNotes](https://bulletnotes.io/) - Workflowy / Dynalist clone with Kanban (Trello) and Calendar functionality. Organize everything. ([Source Code](https://gitlab.com/NickBusey/BulletNotes)) `MIT` `Nodejs` +- [Boostnote](https://boostnote.io/) - The note-taking app for programmers that focuses on markdown, snippets, and customizability. ([Source Code](https://github.com/BoostIO/Boostnote)) `GPL-3.0` `JavaScript` +- [DailyNotes](https://github.com/m0ngr31/DailyNotes/) - App for taking notes and tracking tasks on a daily basis in Markdown. `MIT` `Python` +- [dillinger](http://dillinger.io/) - The last Markdown editor, ever. ([Source Code](https://github.com/joemccann/dillinger)) `MIT` `Nodejs` +- [Dnote](https://www.getdnote.com) - A simple command line notebook with multi-device sync and web interface. ([Source Code](https://github.com/dnote/dnote)) `AGPL-3.0` `Go` +- [DocPHT](https://docpht.org/) - With DocPHT you can take notes and quickly document anything and without the use of any database. ([Demo](https://demo.docpht.org/), [Source Code](https://github.com/kenlog/docpht)) `MIT` `PHP` +- [draw.io](https://draw.io) - Diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams. ([Source Code](https://github.com/jgraph/drawio)) `Apache-2.0` `JavaScript` +- [HedgeDoc](https://demo.hedgedoc.org/) - Realtime collaborative markdown notes on all platforms, formerly known as CodiMD and HackMD CE. ([Source Code](https://github.com/hedgedoc/hedgedoc)) `AGPL-3.0` `TypeScript` +- [Joplin](https://joplinapp.org/) - Joplin is a note taking application with Markdown editor and encryption support for mobile and desktop platforms. Runs client-side and syncs through self hosted Nextcloud or similar. Consider it like open source alternative to Evernote. ([Source Code](https://github.com/laurent22/joplin)) `MIT` `Nodejs` +- [Leanote](http://leanote.org/) - Leanote, Not Just A Notepad! Open source cloud notepad. ([Demo](https://leanote.com/note), [Source Code](https://github.com/leanote/leanote)) `GPL-2.0` `Go` +- [Markdown Edit](https://github.com/georgeOsdDev/markdown-edit/) - Online markdown editor/viewer. `MIT` `HTML5` +- [Meemo](https://meemo.minimal-space.de/) - Personal notes stream with Markdown support. ([Source Code](https://github.com/nebulade/meemo)) `MIT` `Nodejs` +- [minimalist-web-notepad](https://github.com/pereorga/minimalist-web-notepad) - Minimalist notepad.cc clone. ([Demo](https://notes.orga.cat/)) `Apache-2.0` `PHP` +- [MiniNote](https://github.com/n1try/mininote) - Simple Markdown note-taking app with persistence. `MIT` `Nodejs` +- [Notea](https://cinwell.com/notea/) - Self-hosted note-taking app stored on S3-compatible storage. ([Source Code](https://github.com/QingWei-Li/notea)) `MIT` `Nodejs` +- [Oddmuse](https://oddmuse.org/) - A simple wiki engine written in Perl. No database required. ([Source Code](https://github.com/kensanata/oddmuse)) `GPL-3.0` `Perl` +- [OpenNote](https://github.com/FoxUSA/OpenNote) - OpenNote was built to be an open web-based alternative to Microsoft OneNote (T) and EverNote. ([Demo](https://foxusa.github.io/OpenNote/OpenNote/#/folder)) `MIT` `HTML5` +- [Overleaf](https://www.overleaf.com/) - Web-based collaborative LaTeX editor. ([Source Code](https://github.com/overleaf/overleaf)) `AGPL-3.0` `Ruby` +- [Paperwork](https://paperwork.cloud) - OpenSource note-taking and archiving alternative to Evernote, Microsoft OneNote and Google Keep. ([Source Code](https://github.com/paperwork/paperwork)) `MIT` `PHP` +- [Plainpad](https://alextselegidis.com/get/plainpad/) - A modern note taking application for the cloud, utilizing the best features of progressive web apps technology. ([Demo](https://alextselegidis.com/try/plainpad/), [Source Code](https://github.com/alextselegidis/plainpad)) `GPL-3.0` `PHP` +- [savepad](https://github.com/shelltr/textpad) - Minimalist notepad based on notepad.cc. `MIT` `PHP` +- [Standard Notes](https://standardnotes.org) - Simple and private notes app. Protect your privacy while getting more done. That's Standard Notes. ([Demo](https://app.standardnotes.org/), [Source Code](https://github.com/standardnotes)) `GPL-3.0` `Ruby` +- [turndown](https://domchristie.github.io/turndown/) - HTML to Markdown converter written in JavaScript. ([Source Code](https://github.com/domchristie/turndown)) `MIT` `Javascript` +- [Trilium Notes](https://github.com/zadam/trilium) - Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. `AGPL-3.0` `Nodejs` +- [Turtl](https://turtl.it/) - Totally private personal database and note taking app. ([Source Code](https://github.com/turtl)) `GPL-3.0` `CommonLisp` +- [Wreeto](https://wreeto.com) - Wreeto is an open source note-taking, knowledge management and wiki system built on top of Ruby on Rails framework. ([Source Code](https://github.com/chrisvel/wreeto_official)) `AGPL-3.0` `Ruby` +- [Writing](https://josephernest.github.io/writing/) - Lightweight distraction-free text editor, in the browser (Markdown and LaTeX supported). No lag when writing. ([Source Code](https://github.com/josephernest/writing)) `MIT` `Javascript` + +## Office Suites + +**[`^ back to top ^`](#)** + +- [ Collabora Online Development Edition](https://www.collaboraoffice.com/code) - Collabora Online Development Edition (CODE) is a powerful LibreOffice-based online office that supports all major document, spreadsheet and presentation file formats, which you can integrate in your own infrastructure. ([Source Code](https://cgit.freedesktop.org/libreoffice/online/)) `MPL-2.0` `C++` +- [CryptPad](https://cryptpad.fr/) - CryptPad is the zero knowledge realtime collaborative editor (rich-text, files, source-code, ...). ([Source Code](https://github.com/xwiki-labs/cryptpad)) `AGPL-3.0` `Nodejs` +- [EtherCalc](https://ethercalc.net/) - Web spreadsheet. ([Source Code](https://github.com/audreyt/ethercalc)) `CPAL-1.0/Other` `Nodejs` +- [Etherpad](http://etherpad.org/) - Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time. ([Demo](https://demo.sandstorm.io/appdemo/h37dm17aa89yrd8zuqpdn36p6zntumtv08fjpu8a8zrte7q1cn60), [Source Code](https://github.com/ether/etherpad-lite)) `Apache-2.0` `Nodejs` +- [Infinoted](https://github.com/gobby/gobby/wiki/Dedicated%20Server) - Server for [Gobby](https://github.com/gobby/gobby/wiki), a multi-platform collaborative text editor. ([Source Code](https://github.com/gobby/gobby)) `MIT` `C++` +- [ONLYOFFICE](https://helpcenter.onlyoffice.com/faq/server-opensource.aspx) - Office suite that enables you to manage documents, projects, team and customer relations in one place. ([Source Code](https://github.com/ONLYOFFICE/DocumentServer)) `AGPL-3.0` `Nodejs` +- [PHPOffice](https://github.com/PHPOffice) - PHPOffice contains libraries which permits to write and read files from most office suites. `LGPL-3.0` `PHP` +- [WebODF](http://webodf.org/) - Tools and libraries to view and edit Open Document Format (ODF) files. ([Source Code](https://github.com/kogmbh/WebODF)) `AGPL-3.0` `HTML5` + +## Password Managers + +**[`^ back to top ^`](#)** + +- [Bitwarden](https://bitwarden.com/) `⚠` - Password manager with webapp, browser extension, and mobile app. ([Source Code](https://github.com/bitwarden/core)) `AGPL-3.0` `C#` +- [keeweb](https://keeweb.info/) - This webapp is a browser and desktop password manager compatible with KeePass databases. ([Source Code](https://github.com/keeweb/keeweb)) `MIT` `HTML5` +- [Padloc](https://padloc.app/) - A modern, open source password manager for individuals and teams. ([Source Code](https://github.com/padloc/padloc)) `GPL-3.0` `Nodejs` +- [Passbolt](https://www.passbolt.com/) - Password manager dedicated for managing passwords in a collaborative way on any Web server, using a MySQL database backend. ([Source Code](https://github.com/passbolt/passbolt_api)) `AGPL-3.0` `PHP` +- [PassIt](https://passit.io/) - Simple password manage with sharing features by group and user, but no administration interface. ([Demo](https://app.passit.io/), [Source Code](https://gitlab.com/passit)) `AGPL-3.0` `Python` +- [PassWall](https://github.com/passwall/passwall-server) - Open source password manager. `AGPL-3.0` `Go` +- [Psono](https://psono.com/) - A promising password managers fully featured for teams. ([Demo](https://www.psono.pw), [Source Code](https://gitlab.com/psono)) `Apache-2.0` `Python` +- [Shaark](https://github.com/MarceauKa/shaark) - All in one platform for your links, stories, passwords and albums. Built with Laravel and Vue.js. `MIT` `PHP` +- [sysPass](http://www.syspass.org/) - Multiuser password management system. ([Demo](http://demo.syspass.org/), [Source Code](https://github.com/nuxsmin/sysPass)) `GPL-3.0` `PHP` +- [Teampass](http://teampass.net/) - Password manager dedicated for managing passwords in a collaborative way. One symmetric key is used to encrypt all shared/team passwords and stored server side in a file and the database. works on any server Apache, MySQL and PHP. ([Source Code](https://github.com/nilsteampassnet/TeamPass)) `GPL-3.0` `PHP` +- [Vaultwarden](https://github.com/dani-garcia/vaultwarden) - Lightweight Bitwarden server API implementation written in Rust. `GPL-3.0` `Rust` + + +## Pastebins + +**[`^ back to top ^`](#)** + +- [0bin](https://github.com/sametmax/0bin) - Client side encrypted pastebin. `WTFPL` `Python` +- [bepasty](https://bepasty-server.readthedocs.io/en/latest/) - A pastebin for all kinds of files. ([Source Code](https://github.com/bepasty/bepasty-server)) `BSD-2-Clause` `Python` +- [bin](https://github.com/w4/bin) - a paste bin. `WTFPL/0BSD` `Rust` +- [cryptonote](https://cryptonote.me/) - Simple open source web application that lets users encrypt and share messages that can only be read once. ([Source Code](https://github.com/alainmeier/cryptonote)) `MIT` `Ruby` +- [EdPaste](https://github.com/Edraens/EdPaste) - Self-hosted pastebin written in Laravel (PHP Framework). `MIT` `PHP` +- [ExBin](https://github.com/m1dnight/exbin) - A pastebin with public/private snippets and netcat server. ([Demo](https://exbin.call-cc.be)) `MIT` `Elixir` +- [fiche](https://github.com/solusipse/fiche) - Command line pastebin, all you need is netcat. ([Demo](http://termbin.com/)) `MIT` `C` +- [filite](https://github.com/raftario/filite) - A simple, light and standalone pastebin, URL shortener and file-sharing service. ([Demo](https://filite.raphaeltheriault.com)) `MIT` `Rust` +- [FlashPaper](https://github.com/AndrewPaglusch/FlashPaper) - A one-time encrypted zero-knowledge password/secret sharing application focused on simplicity and security. No database or complicated set-up required. ([Demo](https://flashpaper.io)) `MIT` `PHP` +- [Fugacious](https://fugacio.us) - Open source short-term secure messaging (OSSSM). ([Source Code](https://github.com/fugacious/fugacious)) `CC0-1.0` `Ruby` +- [Hastebin](https://haste.zneix.eu/about.md) - Open source pastebin written in Node.js (This is a fork with extended maintenance). ([Demo](https://haste.zneix.eu), [Source Code](https://github.com/zneix/haste-server)) `MIT` `Node.js` +- [LogPaste](https://github.com/mtlynch/logpaste) - Minimal pastebin web app that's easy to self-host and persists data to any S3-compatible backend. ([Demo](https://logpaste.com/)) `MIT` `Go` +- [mojopaste](http://search.cpan.org/dist/App-mojopaste/) - Perl based pastebin. ([Demo](http://p.thorsen.pm/), [Source Code](https://github.com/jhthorsen/app-mojopaste)) `Artistic-2.0` `Perl` +- [MokinToken](https://github.com/nexus-uw/mokintoken) - Clientside encrypted pastebin using tweetnacl. `Unlicense` `PHP` +- [NoteHub](https://github.com/chmllr/NoteHub) - Free and Hassle-free Pastebin for Markdown Pages. Simple, clean, password provided, generated-short link. `MIT` `Nodejs` +- [Paste](https://phpaste.sourceforge.io/) - Paste is forked from the original source pastebin.com used before it was bought. ([Source Code](https://github.com/jordansamuel/PASTE)) `GPL-3.0` `PHP` +- [pastebin](https://github.com/prologic/pastebin) - Simple pastebin service with convenient api and CLI. ([Demo](https://paste.mills.io)) `MIT` `Go` +- [pastebin](https://github.com/mkaczanowski/pastebin) - Simple, fast, feature-rich, standalone pastebin service. `MIT` `Rust` +- [pb](https://github.com/ptpb/pb) - Lightweight pastebin (and url shortener) built using flask. `GPL-3.0` `Python` +- [PrivateBin](https://privatebin.info/) - PrivateBin is a minimalist, opensource online pastebin/discussion board where the server has zero knowledge of hosted data. ([Demo](https://privatebin.net/), [Source Code](https://github.com/PrivateBin/PrivateBin)) `Zlib` `PHP` +- [PurritoBin](https://github.com/PurritoBin/PurritoBin) - Ultra fast, minimalistic, encrypted command line paste-bin, where the server has no knowledge of the paste data. `ISC` `C++` +- [SharpPaste](https://github.com/phonicmouse/SharpPaste) - Cross-platform C# pastebin with client-side AES-256 encryption that just works. `MIT` `C#/NancyFX` +- [Snibox](https://snibox.github.io/) - Code snippets manager with attractive tag-oriented interface. ([Demo](https://snibox-demo.herokuapp.com/), [Source Code](https://github.com/snibox/snibox)) `MIT` `Ruby` +- [snipt](https://github.com/nicksergeant/snipt) - Long-term memory for coders. Share and store code snippets. `MIT` `Python` +- [SocksBin](https://github.com/magnumdingusedu/socksbin) - Simple and fast terminal based pastebin, with optional code highlighting. No specific client required, all you need is netcat. `GPL-3.0` `Python` +- [Spacebin](https://docs.spaceb.in) - Text-sharing for the final frontier — Reliable Pastebin server in Golang and Fiber. ([Demo](https://spaceb.in), [Source Code](https://github.com/spacebin-org/spirit)) `Apache-2.0` `Go` +- [Stikked](https://github.com/claudehohl/Stikked) - Advanced and beautiful pastebin. ([Demo](https://paste.scratchbook.ch/)) `GPL-3.0` `PHP` +- [Sup3rS3cretMes5age](https://github.com/algolia/sup3rS3cretMes5age) - Very simple (to deploy and to use) secret message service using Hashicorp Vault as a secrets storage. `MIT` `Go` +- [Pasty](https://github.com/lus/pasty) - Pasty is a fast and lightweight code pasting server. ([Demo](https://paste.pelkum.dev/)) `MIT` `Go` + +## Personal Dashboards + +**[`^ back to top ^`](#)** + +_See also [Monitoring](#monitoring)_ + +- [Baby Buddy](https://github.com/cdubz/babybuddy) - Helps caregivers track baby sleep, feedings, diaper changes, and tummy time. ([Demo](https://babybuddy.herokuapp.com/)) `BSD-2-Clause` `Python` +- [Dashboard](https://github.com/phntxx/dashboard) - Minimalist homepage for organizing your web applications and bookmarks using JSON-files. `MIT` `Nodejs/Docker` +- [DashMachine](https://github.com/rmountjoy92/DashMachine) - Another web application bookmark dashboard, with fun features. `GPL-3.0` `Python` +- [Dashy](https://github.com/lissy93/dashy) - Feature-rich homepage for your homelab, with easy YAML configuration. ([Demo](https://dashy-demo-2.as93.net)) `MIT` `Nodejs/Docker` +- [Habitica](https://habitica.com/) - Habit tracker app which treats your goals like a Role Playing Game. Previously called HabitRPG. ([Source Code](https://github.com/HabitRPG/habitrpg)) `GPL-3.0/CC-BY-NC-SA-3.0/CC-BY-SA-3.0` `Nodejs` +- [Heimdall](https://heimdall.site/) - Heimdall is an elegant solution to organise all your web applications. ([Source Code](https://github.com/linuxserver/Heimdall)) `MIT` `PHP` +- [Hiccup](https://designedbyashw.in/test/hiccup/) - A beautiful static homepage to get to your links and services quickly. It has built-in search, editing, PWA support and localstorage caching to easily organize your start page. ([Source Code](https://github.com/ashwin-pc/hiccup)) `MIT` `HTML5` +- [Homepage](https://github.com/tomershvueli/homepage) - Simple, standalone, self-hosted PHP page that is your window to your server and the web. `MIT` `PHP` +- [Homer](https://github.com/bastienwirtz/homer) - A dead simple static homepage to expose your server services, with an easy yaml configuration and connectivity check. `Apache-2.0` `HTML5` +- [Organizr](https://github.com/causefx/Organizr) - Organizr aims to be your one stop shop for your Servers Frontend. `GPL-3.0` `PHP` +- [Personal management system](https://github.com/Volmarg/personal-management-system) - Central point for managing personal data (billings, payments, job holidays, notes etc.). ([Demo](http://personal-management-system.pl/)) `MIT` `PHP` +- [simple-dash](https://github.com/kutyla-philipp/simple-dash) - A simple, fully responsive Dashboard to forward to the services of your choice. ([Demo](https://kutyla-philipp.github.io/simple-dash/)) `MIT` `Javascript` +- [Smashing](https://smashing.github.io/) - Smashing, the spiritual successor to Dashing, is a Sinatra based framework that lets you build excellent dashboards. It looks especially great on TVs. ([Source Code](https://github.com/Smashing/smashing)) `MIT` `Ruby` +- [wger](http://wger.de/) - Web-based personal workout, fitness and weight logger/tracker. It can also be used as a simple gym management utility and offers a full REST API as well. ([Demo](http://wger.de), [Source Code](https://github.com/rolandgeider/wger)) `AGPL-3.0` `Python` +- [Your Spotify](https://github.com/Yooooomi/your_spotify) `⚠` - Allows you to record your Spotify listening activity and have statistics about them served through a Web application. `MIT` `Nodejs/Docker` + +## Photo and Video Galleries + +**[`^ back to top ^`](#)** + +- [Chevereto Free](https://chevereto.com/free) - Powerful and fast image hosting script that allows you to create your very own full featured image hosting website in just minutes. ([Source Code](https://github.com/Chevereto/Chevereto-Free)) `AGPL-3.0` `PHP` +- [Coppermine](http://coppermine-gallery.net/) - Multilingual photo gallery that integrates with various bulletin boards. Includes upload approval and password protected albums. ([Demo](http://coppermine-gallery.net/demo/cpg15x/), [Source Code](https://github.com/coppermine-gallery/cpg1.6.x)) `GPL-3.0` `PHP` +- [Damselfly](https://damselfly.info) - Server-based Digital Asset Management with workflow similar to Picasa. `GPL-3.0` `C#/.Net` +- [Fussel](https://github.com/cbenning/fussel) - Fussel is a static photo gallery generator. Easily generate a reactive gallery and host the optimized static folder of assets. `MIT` `Python` +- [Gallery CSS](https://benschwarz.github.io/gallery-css/) - Gallery.css is all CSS. Think: Simple, maintainable and understandable galleries without the use of Javascript. ([Source Code](https://github.com/benschwarz/gallery-css)) `MIT` `CSS` +- [HomeGallery](https://home-gallery.org) - Self-hosted open-source web gallery to browse personal photos and videos featuring tagging, mobile-friendly, and AI powered image discovery. ([Demo](https://demo.home-gallery.org), [Source Code](https://github.com/xemle/home-gallery)) `MIT` `Node.js` +- [ImageStore](https://github.com/gregordr/ImageStore) - Self-hosted Google Photos alternative, with a very similar UI. ([Demo](https://gregordr.github.io/ImageStore/)) `Apache-2.0` `Nodejs/Docker` +- [LibrePhotos](https://github.com/LibrePhotos/librephotos) - Self hosted wannabe Google Photos clone, with a slight focus on cool graphs. `MIT` `Python` +- [Lychee](https://lycheeorg.github.io/) - Open source grid and album based photo-management-system. ([Source Code](https://github.com/LycheeOrg/Lychee)) `MIT` `PHP` +- [Mediagoblin](http://mediagoblin.org) - Free software media publishing platform that anyone can run. You can think of it as a decentralized alternative to Flickr, YouTube, SoundCloud, etc. ([Source Code](https://savannah.gnu.org/projects/mediagoblin)) `AGPL-3.0` `Python` +- [Photato](https://github.com/trebonius0/Photato) - Self-hosted photo gallery, accessible through a responsive WebUI. Directly uses and indexes a specific folder in the filesystem. `AGPL-3.0` `Java` +- [PhotoLight](https://github.com/thibaud-rohmer/PhotoLight) - The easiest photo gallery there is. `GPL-3.0` `PHP` +- [Photonix](https://photonix.org/) - A new web-based photo management application with object recognition, location awareness, color analysis and other ML algorithms. ([Demo](https://demo.photonix.org/), [Source Code](https://github.com/damianmoore/photonix)) `AGPL-3.0` `Python` +- [PhotoPrism](https://photoprism.org) - Personal photo management powered by Go and Google TensorFlow. Browse, organize, and share your personal photo collection, using the latest technologies to automatically tag and find pictures. ([Source Code](https://github.com/photoprism/photoprism)) `MIT` `Go` +- [Photo Stream](https://github.com/maxvoltar/photo-stream) - Minimalist self-hosted photo stream. ([Demo](https://maxvoltar.photo/)) `MIT` `Ruby` +- [Photoview](https://github.com/viktorstrate/photoview) - A simple and user-friendly Photo Gallery for personal servers. It is made for photographers and aims to provide an easy and fast way to navigate directories, with thousands of high resolution photos. ([Demo](https://photos.qpqp.dk/)) `GPL-3.0` `Go` +- [PiGallery 2](https://bpatrik.github.io/pigallery2/) - A directory-first photo gallery website, with a rich UI, optimised for running on low resource servers. ([Source Code](https://github.com/bpatrik/pigallery2)) `MIT` `Docker/Nodejs` +- [Piwigo](http://piwigo.org/) - Photo gallery software for the web, built by an active community of users and developers. ([Demo](http://piwigo.org/demo/), [Source Code](https://github.com/Piwigo/Piwigo)) `GPL-2.0` `PHP` +- [Plumi](http://plumi.org/) - Create your own sophisticated video-sharing site. ([Source Code](https://github.com/plumi/plumi.app)) `GPL-2.0` `Python` +- [Quru Image Server](https://quruimageserver.com/) - High performance dynamically resizing image server offering directory based access control cropping, rotation, color management and other tools. ([Demo](https://quruimageserver.com), [Source Code](https://github.com/quru/qis)) `AGPL-3.0` `Python` +- [sigal](https://github.com/saimn/sigal) - Yet another simple static gallery generator. `MIT` `Python` +- [UberGallery](http://www.ubergallery.net) - UberGallery is an easy to use, simple to manage, web photo gallery. UberGallery does not require a database and supports JPEG, GIF and PNG file types. Simply upload your images and UberGallery will automatically generate thumbnails and output HTML. ([Source Code](https://github.com/UberGallery/UberGallery)) `MIT` `PHP` +- [Zenphoto](http://www.zenphoto.org/) - Open-source gallery and CMS project. ([Source Code](https://github.com/zenphoto/zenphoto)) `GPL-2.0` `PHP` + +## Polls and Events + +**[`^ back to top ^`](#)** + +- [Calagator](http://calagator.org/) - Event aggregator. ([Source Code](https://github.com/calagator/calagator)) `MIT` `Ruby` +- [Clerk](https://github.com/chr15m/Clerk) - Simple event logger to keep track of periodic events, habits, etc. as they occur. `GPL-3.0` `PHP` +- [Croodle](https://github.com/jelhan/croodle) - Croodle is an end-to-end encrypted web application to schedule a date or to do a poll on any topic. `MIT` `JavaScript` +- [dudle](http://primelife.ercim.eu/results/opensource/63-dudle) - Online scheduling application. ([Demo](https://dudle.inf.tu-dresden.de/), [Source Code](https://github.com/kellerben/dudle)) `AGPL-3.0` `Ruby` +- [Feedka](https://github.com/drabkirn/feedka) `⚠` - Open-source web application that can serve as a platform to get authentic, kindful, and constructive feedback from your friends, family, and co-workers. ([Demo](https://feedka.herokuapp.com)) `AGPL-3.0` `Ruby` +- [Fider](http://getfider.com) - Open source alternative to UserVoice for customer feedback. ([Demo](https://demo.fider.io), [Source Code](https://github.com/getfider/fider)) `MIT` `Go` +- [Framadate](https://framadate.org/) - Online service for planning an appointment or make a decision quickly and easily: Make a poll, Define dates or subjects to choose, Send the poll link to your friends or colleagues, Discuss and make a decision. ([Demo](https://framadate.org/aqg259dth55iuhwm), [Source Code](https://git.framasoft.org/framasoft/framadate)) `CECILL-B` `PHP` +- [Gancio](https://gancio.org/) - A shared agenda for local communities. ([Demo](https://demo.gancio.org/), [Source Code](https://framagit.org/les/gancio)) `AGPL-3.0` `Nodejs` +- [hitobito](https://hitobito.com/en) - A web application to manage complex group hierarchies with members, events and a lot more. ([Demo](https://demo.hitobito.com/en/users/sign_in), [Source Code](https://github.com/hitobito/hitobito)) `AGPL-3.0` `Ruby` +- [JD Esurvey](https://www.jdsoft.com/jd-esurvey.html) - Open source enterprise survey web application. ([Source Code](https://github.com/JD-Software/JDeSurvey)) `AGPL-3.0` `Java` +- [Kyélà](http://kyela.net/) - Participation polls for group events. ([Demo](https://kyela.net/concert/), [Source Code](https://github.com/abienvenu/Kyela)) `AGPL-3.0` `PHP` +- [LimeSurvey](https://www.limesurvey.org) - Feature-rich Open Source web based polling software. Supports extensive survey logic. ([Demo](https://demo.limesurvey.org), [Source Code](https://github.com/LimeSurvey/LimeSurvey)) `GPL-2.0` `PHP` +- [Meetable](https://meetable.org) - Event aggregator. ([Demo](https://events.indieweb.org), [Source Code](https://github.com/aaronpk/Meetable)) `MIT` `PHP` +- [Mobilizon](https://mobilizon.org) - A federated tool that helps you find, create and organise events and groups. ([Demo](https://demo.mobilizon.org/), [Source Code](https://framagit.org/framasoft/mobilizon/)) `GPL-3.0` `Elixir` +- [Open Event Server](https://github.com/fossasia/open-event-server) - Enables organizers to manage events from concerts to conferences and meet-ups. `GPL-3.0` `Python` +- [PHPBack](http://www.phpback.org) - The open source feedback system. ([Demo](http://www.phpback.org/demo/), [Source Code](https://github.com/ivandiazwm/phpback)) `GPL-3.0` `PHP` + +### Booking and Scheduling + +- [Alf.io](https://alf.io/) - The open source ticket reservation system. ([Demo](https://demo.alf.io/authentication), [Source Code](https://github.com/alfio-event/alf.io)) `GPL-3.0` `Java` +- [Easy!Appointments](http://easyappointments.org/) - A highly customizable web application that allows your customers to book appointments with you via the web. ([Demo](http://easyappointments.org/demo/), [Source Code](https://github.com/alextselegidis/easyappointments)) `GPL-3.0` `PHP` + +## Proxy + +**[`^ back to top ^`](#)** + +- [http2-serverpush-proxy](https://github.com/n1try/http2-serverpush-proxy) - Reverse proxy that helps to automatically utilize HTTP/2.0's server push mechanism for static websites. Available as middleware and standalone application. `MIT` `Nodejs` +- [imgproxy](https://github.com/DarthSim/imgproxy) - Fast and secure standalone server for resizing and converting remote images. It works great when you need to resize multiple images on the fly without preparing a ton of cached resized images or re-doing it every time the design changes. `MIT` `Go/Docker` +- [inlets](https://inlets.dev/) - Expose your local endpoints to the Internet - with a Kubernetes integration, Docker image and CLI available. `MIT` `Go/Docker` +- [iodine](http://code.kryo.se/iodine/) - IPv4 over DNS tunnel solution, enabling you to start up a socks5 proxy listener. ([Source Code](https://github.com/yarrick/iodine)) `ISC` `C` +- [microproxy](https://github.com/thekvs/microproxy) - lightweight non-caching HTTP/HTTPS proxy server. `MIT` `Go` +- [Nginx Proxy Manager](https://nginxproxymanager.com/) - Nginx Proxy Manager is an easy way to accomplish reverse proxying hosts with SSL termination. ([Source Code](https://github.com/jc21/nginx-proxy-manager)) `MIT` `Nodejs/Docker` +- [PHP-Proxy](https://www.php-proxy.com/) - Web proxy script built specifically to be fast, easy to modify and to support video sites such as YouTube. ([Demo](https://unblockvideos.com/), [Source Code](https://github.com/Athlon1600/php-proxy-app)) `MIT` `PHP` +- [Pomerium](https://pomerium.io) - An identity-aware reverse proxy, successor to now obsolete oauth_proxy. It inserts an OAuth step before proxying your request to the backend, so that you can safely expose your self-hosted websites to public Internet. ([Source Code](https://github.com/pomerium/pomerium)) `Apache-2.0` `Go` +- [Pound](http://www.apsis.ch/pound/) - Light-weight reverse proxy and load balancer for HTTP/HTTPS. `GPL-2.0` `C` +- [Privoxy](http://www.privoxy.org) - Non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. `GPL-2.0` `C` +- [Redbird](https://github.com/OptimalBits/redbird) - A modern reverse proxy for node that includes cluster, HTTP2, LetsEncrypt, and Docker support. `BSD-2-Clause` `Javascript` +- [sish](https://github.com/antoniomika/sish) - Open source serveo/ngrok alternative providing HTTP(S)/WS(S)/TCP tunnels to localhost using only SSH. `MIT` `Go` +- [socks5-proxy-server](https://github.com/nskondratev/socks5-proxy-server) - SOCKS5 proxy server with built-in authentication and Telegram-bot for user management and user statistics on data spent (handy when you pay per GB of data). It is dockerised and simple to install. `Apache-2.0` `NodeJS` +- [SOCKS5Engine](https://github.com/VeeSecurity/SOCKS5Engine) - Lightweight & resource-efficient SOCKS5 proxy server, optimized for high-load. `AGPL-3.0` `Go` +- [Squid](http://www.squid-cache.org/) - Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. ([Source Code](https://code.launchpad.net/squid)) `GPL-2.0` `C` +- [Swiperproxy](https://swiperproxy.github.io/) - Lightning-fast, open source web proxy that is easy for you to run and customize. ([Source Code](https://github.com/swiperproxy/swiperproxy)) `MIT` `Python` +- [Tinyproxy](https://tinyproxy.github.io/) - Light-weight HTTP/HTTPS proxy daemon. ([Source Code](https://github.com/tinyproxy/tinyproxy)) `GPL-2.0` `C` +- [Traefik](https://traefik.io/) - Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Mesos/Marathon, …) to manage its configuration automatically and dynamically. ([Source Code](https://github.com/containous/traefik)) `MIT` `Go` + +## Read it Later Lists + +**[`^ back to top ^`](#)** + +- [Nunux Keeper](http://keeper.nunux.org/) - Your personal content curation service. ([Source Code](https://github.com/ncarlier/nunux-keeper)) `GPL-3.0` `Nodejs` +- [Readflow](https://readflow.app) - Lightweight news reader with modern interface and features: full-text search, automatic categorization, archiving, offline support, notifications... ([Source Code](https://github.com/ncarlier/readflow)) `MIT` `Go` +- [Wallabag](https://www.wallabag.org) - Wallabag, formerly Poche, is a web application allowing you to save articles to read them later with improved readability. ([Demo](https://app.wallabag.it/register/), [Source Code](https://github.com/wallabag/wallabag)) `MIT` `PHP` + +## Resource Planning + +**[`^ back to top ^`](#)** + +- [farmOS](http://farmos.org/) - Web-based farm record keeping application. ([Source Code](https://github.com/farmOS/farmOS)) `GPL-2.0` `PHP` +- [grocy](https://grocy.info/) - ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home. ([Demo](https://en.demo.grocy.info/), [Source Code](https://github.com/grocy/grocy)) `MIT` `PHP` +- [Tania](https://github.com/Tanibox/tania-core) - Tania is a free and open source farming management system for everyone. You can manage your areas, reservoirs, farm tasks, inventories, and the crop growing progress. `Apache-2.0` `Go` + +### Enterprise Resource Planning + +- [Dolibarr](https://www.dolibarr.org/) - Dolibarr ERP CRM is a modern software package to manage your company or foundation activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). ([Demo](https://www.dolibarr.org/onlinedemo.php), [Source Code](https://github.com/Dolibarr/dolibarr)) `GPL-3.0-or-later` `PHP` +- [ERPNext](https://erpnext.com) - Free open source ERP system. ([Demo](https://demo.erpnext.com), [Source Code](https://github.com/frappe/erpnext)) `GPL-3.0` `Python` +- [LedgerSMB](https://ledgersmb.org/) - Integrated accounting and ERP system for small and midsize businesses, with double entry accounting, budgeting, invoicing, quotations, projects, orders and inventory management, shipping and more. ([Demo](https://demo.cloud.efficito.com/erp/1.5/login.pl), [Source Code](https://github.com/ledgersmb/LedgerSMB)) `GPL-2.0` `Perl` +- [Odoo](http://odoo.com) - Free open source ERP system. ([Demo](https://demo.odoo.com/), [Source Code](https://github.com/odoo/odoo)) `LGPL-3.0` `Python` +- [OFBiz](https://ofbiz.apache.org/) - FOSS enterprise resource planning system with a suite of business applications flexible enough to be used across any industry. ([Source Code](https://svn.apache.org/viewvc/ofbiz/)) `Apache-2.0` `Java` +- [Tryton](http://www.tryton.org/) - Free open source business solution. ([Demo](http://www.tryton.org/download.html), [Source Code](https://hg.tryton.org/)) `GPL-3.0` `Python` + +## Search Engines + +**[`^ back to top ^`](#)** + +- [Ambar](https://ambar.cloud) - Document Search Engine (OCR, Store & Search). ([Demo](https://app.ambar.cloud/), [Source Code](https://github.com/RD17/ambar)) `MIT` `Nodejs/Python` +- [Gigablast](http://www.gigablast.com/) - open source search engine. ([Source Code](https://github.com/gigablast/open-source-search-engine)) `Apache-2.0` `C++` +- [Jina](https://github.com/jina-ai/jina/) - Cloud-native neural search framework for any kind of data. `MIT` `Python` +- [MeiliSearch](https://meilisearch.com) - Ultra relevant, instant and typo-tolerant full-text search API. ([Source Code](https://github.com/meilisearch/MeiliSearch)) `MIT` `Rust` +- [Searx](https://asciimoo.github.io/searx/) - Privacy-respecting, hackable metasearch engine. ([Demo](https://searx.me/), [Source Code](https://github.com/asciimoo/searx)) `AGPL-3.0` `Python` +- [sist2](https://github.com/simon987/sist2) - Lightning-fast file system indexer and search tool. ([Demo](https://sist2.simon987.net/)) `GPL-3.0` `C` +- [Typesense](https://typesense.org) - Blazing fast, typo-tolerant open source search engine optimized for developer happiness and ease of use. ([Source Code](https://github.com/typesense/typesense)) `GPL-3.0` `C++` +- [Yacy](http://yacy.net/en/index.html) - Peer based, decentralized search engine server. ([Demo](http://search.yacy.net/), [Source Code](https://github.com/yacy/yacy_search_server)) `GPL-2.0` `Java` + +## Software Development + +**[`^ back to top ^`](#)** + +### Project Management + +_See also [Ticketing](#ticketing), [Task management/To-do lists](#task-managementto-do-lists), [awesome-sysadmin/Code Review](https://github.com/n1trux/awesome-sysadmin#code-review)_ + +- [Bonobo Git Server](https://bonobogitserver.com/) - Set up your own self hosted git server on IIS for Windows. Manage users and have full control over your repositories with a nice user friendly graphical interface. ([Source Code](https://github.com/jakubgarfield/Bonobo-Git-Server)) `MIT` `C#` +- [Fossil](https://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki) - Distributed version control system featuring wiki and bug tracker. `BSD-2-Clause-FreeBSD` `C` +- [Goodwork](https://usegood.work/) - Self hosted project management and collaboration tool powered by Laravel & VueJS. ([Demo](https://github.com/iluminar/goodwork#demo), [Source Code](https://github.com/iluminar/goodwork)) `MIT` `PHP` +- [Gitblit](http://gitblit.com/) - Pure Java stack for managing, viewing, and serving Git repositories. ([Source Code](https://github.com/gitblit/gitblit)) `Apache-2.0` `Java` +- [gitbucket](https://gitbucket.github.io/gitbucket-news/) - Easily installable GitHub clone powered by Scala. ([Source Code](https://github.com/gitbucket/gitbucket)) `Apache-2.0` `Scala/Java` +- [Gitea](https://gitea.io) - Community managed fork of Gogs, lightweight code hosting solution. ([Demo](https://try.gitea.io), [Source Code](https://github.com/go-gitea/gitea)) `MIT` `Go` +- [GitLab](http://gitlab.org/) - Self Hosted Git repository management, code reviews, issue tracking, activity feeds and wikis. ([Demo](https://gitlab.com/), [Source Code](https://gitlab.com/gitlab-org/gitlab-foss)) `MIT` `Ruby` +- [Gitlist](http://gitlist.org/) - Web-based git repository browser - GitList allows you to browse repositories using your favorite browser, viewing files under different revisions, commit history and diffs. ([Source Code](https://github.com/klaussilveira/gitlist)) `BSD-3-Clause` `PHP` +- [Gitolite](http://gitolite.com/gitolite/index.html) - Gitolite allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features. ([Source Code](https://github.com/sitaramc/gitolite)) `GPL-2.0` `Perl` +- [GitPrep](http://gitprep.yukikimoto.com/) - Portable Github clone. ([Demo](http://perlcodesample.sakura.ne.jp/gitprep/gitprep.cgi), [Source Code](https://github.com/yuki-kimoto/gitprep)) `Artistic-2.0` `Perl` +- [Git WebUI](https://github.com/alberthier/git-webui) - Standalone web based user interface for git repositories. `Apache-2.0` `Python` +- [Gogs](https://gogs.io/) - Painless self-hosted Git Service written in Go. ([Demo](https://try.gogs.io/), [Source Code](https://github.com/gogits/gogs)) `MIT` `Go` +- [Kallithea](https://kallithea-scm.org/) - Source code management system that supports two leading version control systems, Mercurial and Git, with a web interface. ([Source Code](https://kallithea-scm.org/repos/kallithea)) `GPL-3.0` `Python` +- [Klaus](https://github.com/jonashaag/klaus) - Simple, easy-to-set-up Git web viewer that Just Works. `ISC` `Python` +- [Lavagna](http://lavagna.io) - Lavagna is an open-source issue/project management tool designed for small teams. Lightweight, pure Java, easy to install, easy to use. ([Source Code](https://github.com/digitalfondue/lavagna)) `GPL-3.0` `Java` +- [Lazylead](https://lazylead.org) `⚠` - Eliminate the annoying work within ticketing systems (Jira, GitHub, Trello). Allows to automate daily actions like tickets fields verification, email notifications by JQL/GQL, meeting requests to your (or teammates) calendar. ([Source Code](https://github.com/dgroup/lazylead)) `MIT` `Ruby` +- [Leantime](https://leantime.io) - Leantime is a lean project management system for small teams and startups helping to manage projects from ideation through delivery. ([Source Code](https://github.com/leantime/leantime)) `GPL-2.0` `PHP` +- [Microgit](https://github.com/microgit-com/microgit) - Git hosting service made in Crystal and Lucky. `MIT` `Crystal` +- [Octobox](https://octobox.io/) `⚠` - Take back control of your GitHub Notifications. ([Source Code](https://github.com/octobox/octobox)) `AGPL-3.0` `Ruby` +- [OpenProject](https://www.openproject.org) - OpenProject is a web-based project management system. ([Source Code](https://github.com/opf/openproject)) `GPL-3.0` `Ruby` +- [Pagure](https://pagure.io/pagure) - A lightweight, powerful, and flexible git-centric forge with features laying the foundation for federated and decentralized development. ([Demo](https://pagure.io/)) `GPL-2.0` `Python` +- [Phabricator](http://phabricator.org/) - Collection of web applications that help build better software. ([Demo](https://secure.phabricator.com/), [Source Code](https://github.com/phacility/phabricator)) `Apache-2.0` `PHP` +- [Phproject](http://www.phproject.org/) - High performance full-featured project management system. ([Demo](http://demo.phproject.org/), [Source Code](https://github.com/Alanaktion/phproject)) `GPL-3.0` `PHP` +- [ProjeQtOr](https://www.projeqtor.org/) - A complete, mature, multi-user project management system with extensive functionality for all phases of a project. ([Demo](https://demo.projeqtor.org/), [Source Code](https://sourceforge.net/p/projectorria/code/HEAD/tree/branches/)) `AGPL-3.0` `PHP` +- [Re:Backlogs](https://github.com/kaishuu0123/rebacklogs) - Project management and collaboration tool powered by Ruby on Rails & VueJS. ([Demo](https://rebacklogs.saino.me/users/sign_up)) `MIT` `Ruby` +- [Redmine](http://www.redmine.org/) - Redmine is a flexible project management web application. ([Demo](http://demo.redmine.org/), [Source Code](https://svn.redmine.org/redmine/)) `GPL-2.0` `Ruby` +- [RhodeCode](https://rhodecode.com/) - RhodeCode is an open source platform for software development teams. It unifies and simplifies repository management for Git, Subversion, and Mercurial. ([Source Code](https://code.rhodecode.com/)) `AGPL-3.0` `Python` +- [SCM Manager](https://www.scm-manager.org/) - The easiest way to share and manage your Git, Mercurial and Subversion repositories over http. ([Source Code](https://github.com/scm-manager/scm-manager)) `BSD-3-Clause` `Java` +- [Taiga](https://taiga.io/) - Agile Project Management Tool based on the Kanban and Scrum methods. ([Source Code](https://github.com/taigaio)) `AGPL-3.0` `Python` +- [Titra](https://titra.io/en/free-time-tracking-online/) - Time-tracking solution for freelancers and small teams. ([Demo](https://app.titra.io/try), [Source Code](https://github.com/kromitgmbh/titra)) `GPL-3.0` `JavaScript` +- [Trac](http://trac.edgewall.org/) - Trac is an enhanced wiki and issue tracking system for software development projects. `BSD-3-Clause` `Python` +- [Tuleap](https://www.tuleap.org/) - Tuleap is a libre suite to plan, track, code and collaborate on software projects. ([Source Code](https://tuleap.net/plugins/git/tuleap/tuleap/stable?p=tuleap%2Fstable.git&a=tree)) `GPL-2.0` `PHP` +- [UVDesk](https://www.uvdesk.com/) - UVDesk community is a service oriented, event driven extensible opensource helpdesk system that can be used by your organization to provide efficient support to your clients effortlessly whichever way you imagine. ([Demo](https://demo.uvdesk.com/), [Source Code](https://github.com/uvdesk/community-skeleton)) `MIT` `PHP` +- [ZenTao](http://www.zentao.pm/) - An agile(scrum) project management system/tool. ([Demo](http://demo.zentao.pm/user-login.html), [Source Code](https://github.com/easysoft/zentaopms)) `ZPL-1.2` `PHP` + +### Bug Trackers + +_See [Ticketing](#ticketing)_ + +### IDE/Tools + +- [Appsmith](https://www.appsmith.com/) - Cloud or self-hosted open-source platform to build admin panels, CRUD apps and workflows. Build everything you need, 10x faster. ([Source Code](https://github.com/appsmithorg/appsmith)) `Apache-2.0` `Java/Docker` +- [Atheos](https://www.atheos.io) - Web-based IDE framework with a small footprint and minimal requirements, continued from Codiad. ([Source Code](https://github.com/Atheos/Atheos)) `MIT` `PHP` +- [Babelfish](https://github.com/bblfsh/bblfshd) - Self-hosted server for source code parsing. It can parse any file, in any supported language, extract an Abstract Syntax Tree from it, and convert it to a Universal Abstract Syntax Tree which can enable further analysis and transformation. `GPL-3.0` `Go` +- [Code-Server](https://coder.com/) - Visual Studio Code in the browser, hosted on a remote server. ([Source Code](https://github.com/cdr/code-server)) `MIT` `Nodejs/Docker` +- [Eclipse Che](http://www.eclipse.org/che/) - Open source workspace server and cloud IDE. ([Source Code](https://github.com/eclipse/che)) `EPL-1.0` `Docker/Java` +- [Gitpod](https://gitpod.io/) - Online IDE for GitHub and GitLab. ([Demo](https://gitpod.io/#https://github.com/awesome-selfhosted/awesome-selfhosted), [Source Code](https://github.com/gitpod-io/self-hosted)) `EPL-2.0` `Go/Docker` +- [Hakatime](https://github.com/mujx/hakatime) - WakaTime server implementation with analytics dashboard. `Unlicense` `Haskell` +- [HttPlaceholder](https://github.com/dukeofharen/httplaceholder) - Quickly mock away any webservice using HttPlaceholder. HttPlaceholder lets you specify what the request should look like and what response needs to be returned. `MIT` `C#` +- [ICEcoder](https://icecoder.net/) - ICEcoder is a web IDE / browser based code editor, which allows you to develop websites directly within the web browser. ([Demo](http://demo.icecoder.net/ICEcoder/), [Source Code](https://github.com/icecoder/ICEcoder)) `MIT` `PHP` +- [JS Bin](http://jsbin.com/) - Open source collaborative web development debugging tool. ([Source Code](https://github.com/jsbin/jsbin)) `MIT` `Nodejs` +- [Judge0 API](https://api.judge0.com) - Open source API to compile and run source code. ([Source Code](https://github.com/judge0/api)) `GPL-3.0` `Ruby` +- [JupyterLab](http://jupyterlab.github.io/jupyterlab/) - Web-based environment for interactive and reproducible computing. ([Demo](https://mybinder.org/v2/gh/jupyterlab/jupyterlab-demo/try.jupyter.org?urlpath=lab), [Source Code](https://github.com/jupyterlab/jupyterlab/)) `BSD-3-Clause` `Python/Docker` +- [Lowdefy](https://www.lowdefy.com/) - Build internal tools, BI dashboards, admin panels, CRUD apps and workflows in minutes using YAML / JSON on an self-hosted, open-source platform. Connect to your data sources, host via Serverless, Netlify or Docker. ([Source Code](https://github.com/lowdefy/lowdefy)) `Apache-2.0` `NodeJs` +- [ML Workspace](https://github.com/ml-tooling/ml-workspace) - All-in-one web-based IDE for machine learning and data science. `Apache-2.0` `Docker` +- [Regexr](http://regexr.com/) - RegExr is a HTML/JS based tool for creating, testing, and learning about Regular Expressions. ([Source Code](https://github.com/gskinner/regexr)) `MIT` `Nodejs` +- [RStudio Server](https://www.rstudio.com/products/rstudio/#Server) - Web browser based IDE for R. ([Source Code](https://github.com/rstudio/rstudio)) `AGPL-3.0` `Java/C++` +- [Slingcode](https://slingcode.net/) - Web app IDE and computing platform in a single static HTML file. ([Demo](https://slingcode.net/slingcode.html), [Source Code](https://github.com/chr15m/slingcode/)) `MIT` `HTML` +- [sourcegraph](https://sourcegraph.com) - Sourcegraph is a fast, open-source, fully-featured code search and navigation engine written in Go. ([Source Code](https://github.com/sourcegraph/sourcegraph)) `Apache-2.0` `Go` +- [Wakapi](https://github.com/n1try/wakapi) - Tracking tool for coding statistics, compatible with WakaTime. `GPL-3.0` `Go` + +### Continuous Integration + +_See [awesome-sysadmin/Continuous Integration & Continuous Deployment](https://github.com/n1trux/awesome-sysadmin#continuous-integration--continuous-deployment)_ + +### UX testing + +- [Uier](https://github.com/sjoerdvanderhoorn/Uier) - Codeless or low-code User Experience test editing and management using Selenium to perform testing or UI automation. Uier tends to be a free self hostable alternative to Applitools, Endtest, Ghost Inspector, Usetrace, Screenster and many others. `Apache-2.0` `Nodejs` +- [Selenoid](http://aerokube.com/selenoid/latest/) - Lightweight Selenium hub implementation launching browsers within Docker containers. ([Source Code](https://github.com/aerokube/selenoid)) `Apache-2.0` `Go` + +### FaaS/Serverless + +_[Serverless computing on Wikipedia](https://en.wikipedia.org/wiki/Serverless_computing)_ + +- [Appwrite](https://appwrite.io) - End to end backend server for web, native, and mobile developers 🚀. ([Source Code](https://github.com/appwrite/appwrite)) `BSD-3-Clause` `PHP` +- [fx](https://github.com/metrue/fx) - fx is a tool to help you do Function as a Service with painless on your own servers. `MIT` `Go` +- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform by [iron.io](https://www.iron.io/). `Apache-2.0` `Go` +- [LocalStack](https://localstack.cloud/) - LocalStack is a fully functional local AWS cloud stack. This includes Lambda for serverless computation. ([Source Code](https://github.com/localstack/localstack)) `Apache-2.0` `Python/Other` +- [OpenFaaS](https://www.openfaas.com/) - Serverless Functions Made Simple for Docker & Kubernetes. ([Source Code](https://github.com/openfaas/faas)) `MIT` `Go` +- [Trusted-CGI](https://github.com/reddec/trusted-cgi) - Lightweight self-hosted lambda/applications/cgi/serverless-functions platform. `MIT` `Go` + +### API Management + +- [DreamFactory](https://www.dreamfactory.com/) - Turns any SQL/NoSQL/Structured data into Restful API. ([Source Code](https://github.com/dreamfactorysoftware/dreamfactory)) `Apache-2.0` `PHP` +- [form.io](https://form.io) - A REST API building platform that utilizes a drag & drop form builder, and is application framework agnostic. Contains open source and enterprise version. ([Demo](https://portal.form.io), [Source Code](https://github.com/formio)) `MIT` `NodeJS` +- [Fusio](http://www.fusio-project.org/) - Open-source API management platform which helps to build and manage REST APIs. ([Demo](http://fusio-project.org/demo), [Source Code](https://github.com/apioo/fusio)) `AGPL-3.0` `PHP` +- [Hapttic](https://github.com/jsoendermann/hapttic) - Simple HTTP server that forwards all requests to a shell script to handle webhooks you receive. `Apache-2.0` `Go` +- [Hasura](https://hasura.io) - Fast, instant realtime GraphQL APIs on Postgres with fine grained access control, also trigger webhooks on database events. ([Source Code](https://github.com/hasura/graphql-engine)) `Apache-2.0` `Haskell` +- [Hoppscotch](https://hoppscotch.io) - A free, fast and beautiful API request builder. ([Source Code](https://github.com/hoppscotch/hoppscotch)) `MIT` `Nodejs/Vue/Nuxt` +- [Kong](https://konghq.com/kong/) - The World’s Most Popular Open Source Microservice API Gateway and Platform. ([Source Code](https://github.com/Kong/kong)) `Apache-2.0` `Lua` +- [KrakenD](https://www.krakend.io/) - Open source High-Performance API Gateway. ([Source Code](https://github.com/devopsfaith/krakend)) `Apache-2.0` `Go` +- [Para](http://www.paraio.org) - Flexible and modular backend framework/server for object persistence, API development and authentication. ([Source Code](https://github.com/erudika/para)) `Apache-2.0` `Java` +- [Pizzly](https://github.com/bearer/pizzly) - Open-source API Integrations Manager that provides everything a developer needs to interact with OAuth based APIs. `MIT` `Nodejs` +- [Tyk](https://tyk.io) - Fast and scalable open source API Gateway. Out of the box, Tyk offers an API Management Platform with an API Gateway, API Analytics, Developer Portal and API Management Dashboard. ([Source Code](https://github.com/TykTechnologies/tyk)) `MPL-2.0` `Go` + +### Documentation Generators + +_See also [Static site generators](#static-site-generators)_ + +- [Docstore](http://haldean.org/) - Static document hosting without any server-side processing, does not require you to recompile every time you change an article. Clone the repository and add articles in the text/ directory to get started. ([Source Code](https://github.com/haldean/docstore)) `BSD-3-Clause` `Javascript` +- [Flatdoc](http://ricostacruz.com/flatdoc/) - Small Javascript file that fetches Markdown files and renders them as full pages. `MIT` `Javascript` +- [markdown-tree](https://github.com/mil/markdown-tree) - Serve a hierarchy / tree directory of markdown files. Use intended for small sites built in markdown. `MIT` `Ruby` +- [Read the Docs](https://docs.readthedocs.org/en/latest/install.html) - Host documentation, making it fully searchable and easy to find; import your docs using any major version control system, including Mercurial, Git, Subversion, and Bazaar. ([Demo](https://readthedocs.org/projects/), [Source Code](https://github.com/rtfd/readthedocs.org)) `MIT` `Python` + +### Localization + +- [Accent](https://www.accent.reviews/) - Open-source, self-hosted, developer-oriented translation tool. ([Source Code](https://github.com/mirego/accent)) `BSD-3-Clause` `Elixir` +- [Localizer](https://localizer.dev) - Free self-hosted open-source crowd-translating service for your product. ([Demo](https://localize.todorant.com), [Source Code](https://github.com/backmeupplz/localizer-backend)) `MIT` `Nodejs/Docker` +- [Pootle](http://pootle.translatehouse.org) - Online translation and localization tool. ([Source Code](https://github.com/translate/pootle)) `GPL-3.0` `Python` +- [Traduora](https://traduora.com) - Translation management platform for teams. ([Source Code](https://github.com/traduora/traduora)) `AGPL-3.0` `Docker/Nodejs` +- [Weblate](https://weblate.org) - Web-based translation tool with tight version control integration. ([Demo](https://demo.weblate.org), [Source Code](https://github.com/WeblateOrg/weblate)) `GPL-3.0` `Python` +- [Zanata](http://zanata.org) - Web-based translation platform for translators, content creators and developers to manage localisation projects. ([Source Code](https://github.com/zanata/zanata-platform)) `GPL-2.0` `Java` + +## Static site generators + +**[`^ back to top ^`](#)** + +_See https://staticsitegenerators.net and https://www.staticgen.com_ + +## Task management/To-do lists + +**[`^ back to top ^`](#)** + +_See also [Project Management](#project-management) and [Ticketing](#ticketing)._ + +- [Focalboard](https://www.focalboard.com/) - An open source, self-hosted alternative to Trello, Notion, and Asana. It helps define, organize, track and manage work across individuals and teams. ([Source Code](https://github.com/mattermost/focalboard), [Clients](https://www.focalboard.com/download/personal-edition/desktop/)) `MIT/AGPL-3.0/Apache-2.0` `Nodejs/Go` +- [Kanbana](https://github.com/SrGMC/kanbana) - Create boards to track users and projects from flat markdown files. Forked from Crepido. `MIT` `Nodejs` +- [Kanboard](http://kanboard.net/) - Simple and open source visual task board. ([Source Code](https://github.com/kanboard/kanboard)) `MIT` `PHP` +- [myTinyTodo](http://www.mytinytodo.net/) - Simple way to manage your todo list in AJAX style. Uses PHP, jQuery, SQLite/MySQL. GTD compliant. ([Demo](http://www.mytinytodo.net/demo/), [Source Code](https://github.com/maxpozdeev/mytinytodo/)) `GPL-2.0` `PHP` +- [Nullboard](https://github.com/apankrat/nullboard) - Single-page minimalist kanban board; compact, highly readable and quick to use. `BSD-2-Clause` `Javascript` +- [PHP Task/Todo list](https://github.com/lgg/tasks.php) - Simple task/todo list that uses a JSON text file for the tasks. `MIT` `PHP` +- [Planka](https://planka.app/) - Open source Trello alternative. ([Demo](https://plankanban.github.io/planka/#/), [Source Code](https://github.com/plankanban/planka)) `MIT` `Nodejs` +- [Restyaboard](http://restya.com/board/) - Open source Trello-like kanban board. ([Demo](http://restya.com/board/demo.html), [Source Code](https://github.com/RestyaPlatform/board)) `OSL-3.0` `PHP` +- [Task Keeper](https://github.com/nymanjens/piga) - List editor for power users, backed by a self-hosted server. `Apache-2.0` `Scala` +- [TaskBoard](http://taskboard.matthewross.me/) - Kanban-inspired app for keeping track of things that need to get done. ([Demo](https://taskboard.matthewross.me/demo.html), [Source Code](https://github.com/kiswa/TaskBoard)) `MIT` `PHP` +- [Taskfreak](http://www.taskfreak.com/original) - Simple but efficient web based task manager written in PHP. `GPL-3.0` `PHP` +- [Tasks](https://github.com/m1guelpf/tasks) - Simple tasks and notes manager written in PHP, jQuery and Bootstrap using a custom flat file database. `MPL-2.0` `PHP` +- [Tasks](https://github.com/thewhitetulip/Tasks) - Kanban based to-do list manager written in Go. `MIT` `Go` +- [Taskord](https://taskord.com) - Get things done socially with community of makers. ([Source Code](https://gitlab.com/yo/taskord)) `MIT` `PHP` +- [Taskwarrior](https://taskwarrior.org/) - Taskwarrior is Free and Open Source Software that manages your TODO list from your command line. It is flexible, fast, efficient, and unobtrusive. It does its job then gets out of your way. ([Source Code](https://taskwarrior.org/download/#git)) `MIT` `C++` +- [Tinyissue](https://github.com/satrun77/tinyissue) - Simple Issue Tracking for Teams. `MIT` `PHP` +- [todo](https://github.com/prologic/todo) - Simple todo list manager. ([Demo](https://todo.mills.io)) `MIT` `Go` +- [todoMini](https://www.todomini.app/) - Mobile friendly zero-feature TODO list web app. Unix philosophy. ([Demo](https://appmini.github.io/todoMini/?demo), [Source Code](https://github.com/appMini/todoMini)) `GPL-3.0` `PHP/Java` +- [Tracks](http://www.getontracks.org/) - Web-based application to help you implement David Allen’s [Getting Things Done™](https://en.wikipedia.org/wiki/Getting_Things_Done) methodology. ([Source Code](https://github.com/TracksApp/tracks)) `GPL-2.0` `Ruby` +- [Vikunja](https://vikunja.io/) - The to-do app to organize your life. ([Demo](https://try.vikunja.io/login), [Source Code](https://kolaente.dev/vikunja/)) `GPL-3.0` `Go` +- [Wekan](https://wekan.github.io/) - Open-source Trello-like kanban. ([Source Code](https://github.com/wekan/wekan)) `MIT` `Nodejs` + +## Ticketing + +**[`^ back to top ^`](#)** + +_See also [Task management/To-do lists](#task-managementto-do-lists) and [Project Management](#project-management)_ + +- [Bugzilla](https://www.bugzilla.org/) - General-purpose bugtracker and testing tool originally developed and used by the Mozilla project. `MPL-2.0` `Perl` +- [Bumpy Booby](http://bumpy-booby.derivoile.fr/) - Simple, responsive and highly customizable PHP bug tracking system. ([Source Code](https://github.com/piero-la-lune/Bumpy-Booby)) `MIT` `PHP` +- [DiamanteDesk](http://diamantedesk.com/) - DiamanteDesk is FREE Open Source easy-to-use help-desk solution. ([Demo](http://diamantedesk.com/demo/), [Source Code](https://github.com/eltrino/diamantedesk-application)) `OSL-3.0` `PHP` +- [django-todo](http://django-todo.org/) - django-todo is a pluggable, multi-user, multi-group, multi-list todo and ticketing system - a reusable app designed to be dropped into any existing Django project. ([Source Code](https://github.com/shacker/django-todo)) `BSD-3-Clause` `Python/Django` +- [Erxes](https://erxes.io/install/) - Marketing, sales, and customer service platform designed to help businesses attract more engaged customers. ([Demo](https://demo.erxes.io/), [Source Code](https://github.com/erxes/erxes)) `GPL-3.0` `Javascript` +- [Flyspray](http://www.flyspray.org/) - Uncomplicated, web-based bug tracking system. ([Source Code](https://github.com/Flyspray/flyspray)) `GPL-2.0` `PHP` +- [FreeScout](https://github.com/freescout-helpdesk/freescout) - Open source clone of Help Scout: email-based customer support application, help desk and shared mailbox. `AGPL-3.0` `PHP` +- [Helpy](https://helpy.io) - Helpy is a modern, open source helpdesk customer support application. Features include knowledgebase, community discussions and support tickets integrated with email. ([Demo](https://demo.helpy.io), [Source Code](https://github.com/helpyio/helpy)) `MIT` `Ruby` +- [HuBoard](https://github.com/huboard/huboard) `⚠` - Instant project management for your GitHub issues (Connects directly GitHub API). `MIT` `Ruby` +- [MantisBT](https://www.mantisbt.org/) - Self hosted bug tracker, fits best for software development. ([Demo](https://www.mantisbt.org/bugs/my_view_page.php), [Source Code](https://github.com/mantisbt/mantisbt)) `GPL-2.0` `PHP` +- [OpenSupports](https://www.opensupports.com/) - Multi language ticket system with FAQ, role management, metrics and canned response features. ([Demo](https://www.opensupports.com/demo/), [Source Code](https://github.com/opensupports/opensupports)) `GPL-3.0` `PHP` +- [osTicket](http://osticket.com/) - Manage, organize and archive all your support requests and responses in one place. ([Source Code](https://github.com/osTicket/osTicket)) `GPL-2.0` `PHP` +- [OTRS](http://www.otrs.com/) - Trouble ticket system for assigning tickets to incoming queries and tracking further communications. ([Source Code](https://github.com/OTRS/otrs)) `AGPL-3.0` `Perl` +- [Request Tracker](https://www.bestpractical.com/rt/) - An enterprise-grade issue tracking system. ([Source Code](https://github.com/bestpractical/rt)) `GPL-2.0` `Perl` +- [Sentry On-Premise](https://github.com/getsentry/onpremise) - A powerful error tracking platform with wide language support and a robust API. ([Source Code](https://github.com/getsentry/sentry)) `BSD-3-Clause` `Python/Django` +- [SIT](https://sit.fyi/) - SCM-agnostic, file-based, offline-first, immutable issue tracker. ([Source Code](https://github.com/sit-fyi/sit)) `MIT` `Apache-2.0` `Rust` +- [TheBugGenie](http://www.thebuggenie.org) - friendly project management and issue tracking tool, with extensive user rights system. ([Source Code](https://github.com/thebuggenie/thebuggenie)) `MPL-2.0` `PHP` +- [Zammad](https://zammad.org/) - Easy to use but powerful open-source support and ticketing system. ([Source Code](https://github.com/zammad/zammad)) `AGPL-3.0` `Ruby` + +## URL Shorteners + +_Before hosting one, please see [shortcomings](https://en.wikipedia.org/wiki/URL_shortening#Shortcomings) of URL shorteners._ + +**[`^ back to top ^`](#)** + +- [gShort](https://github.com/someone-stole-my-name/gShort) - Privacy-friendly self-hosted URL shortener. ([Demo](http://gshort.christiansegundo.com/)) `GPL-3.0` `Go` +- [Kutt](https://kutt.it) - A modern URL shortener with support for custom domains. ([Source Code](https://github.com/thedevs-network/kutt)) `MIT` `Nodejs` +- [Link-shortener-bot](https://github.com/tommyku/link-shortener-front-end) `⚠` - URL shortener using a Telegram Bot. ([Demo](http://t.me/GiveMeShortLinkBot)) `MIT` `Ruby` +- [liteshort](https://git.ikl.sh/132ikl/liteshort) - User-friendly, actually lightweight, and configurable URL shortener. ([Demo](https://ls.ikl.sh)) `MIT` `Python` +- [Lstu](https://github.com/ldidry/lstu) - _Let's SHorten That Url_ - Lightweight URL shortener. `WTFPL` `Perl` +- [Polr](https://project.polr.me/) - Modern, minimalist, modular, and lightweight URL shortener. ([Source Code](https://github.com/Cydrobolt/polr)) `GPL-2.0` `PHP` +- [reduc.io](https://github.com/ziyasal/reducio) - URL shortener service written in Scala, using Akka-Http and Redis. `MIT` `Scala` +- [ReducePy](https://github.com/abdullahselek/ReducePy) - URL shortener service using Tornado and Redis runs on Docker and Kubernetes. `MIT` `Python` +- [schort](https://github.com/sqozz/schort) - No login, no javascript, just short links. ([Demo](https://s.wx0.de)) `CC0-1.0` `Python` +- [Shlink](https://shlink.io) - URL shortener with REST API and command line interface. Includes official progressive web application and docker images. ([Source Code](https://github.com/shlinkio/shlink), [Clients](https://shlink.io/apps)) `MIT` `PHP` +- [shorturl](https://github.com/prologic/shorturl) - Simple URL shortener with very tiny URLs. ([Demo](https://url.mills.io)) `MIT` `Go` +- [Simple-URL-Shortener](https://github.com/azlux/Simple-URL-Shortener) - KISS URL shortener, public or private (with account). Minimalist and lightweight. No dependencies. ([Demo](https://u.azlux.fr)) `MIT` `PHP` +- [Simply Shorten](https://github.com/draganczukp/simply-shorten) - A simple URL shortener that just shortens links. `MIT` `Java` +- [url-shortener](https://github.com/cagataycali/url-shortener) `⚠` - Shitty url shortener, emoji and AI powered. `MIT` `Nodejs` +- [URL-Shortener](https://github.com/sapioit/URL-shortener) - Make your long links short and only uses lowercase, so you can write and spell them faster. ([Demo](http://scurtez.cf)) `GPL-3.0` `PHP` +- [YOURLS](http://yourls.org/) - YOURLS is a set of PHP scripts that will allow you to run Your Own URL Shortener. Features include password protection, URL customization, bookmarklets, statistics, API, plugins, jsonp. ([Source Code](https://github.com/YOURLS/YOURLS)) `MIT` `PHP` + +## VPN + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#vpn_ + +## Web servers + +**[`^ back to top ^`](#)** + +_See https://github.com/n1trux/awesome-sysadmin#web_ + +## Wikis + +**[`^ back to top ^`](#)** + +_See also [Documentation Generators](#documentation-generators), [Wikimatrix](http://www.wikimatrix.org/), [Wiki Engines on WikiIndex](http://wikiindex.org/Category:Wiki_Engine), [List of wiki software on wikipedia](https://en.wikipedia.org/wiki/List_of_wiki_software), [Comparison of wiki software on wikipedia](https://en.wikipedia.org/wiki/Comparison_of_wiki_software)._ + +- [BookStack](https://www.bookstackapp.com/) - BookStack is a simple, self-hosted, easy-to-use platform for organizing and storing information. It allows for documentation to be stored in a book like fashion. ([Demo](https://www.bookstackapp.com/#demo), [Source Code](https://github.com/ssddanbrown/BookStack)) `MIT` `PHP` +- [Cowyo](https://github.com/schollz/cowyo) - Cowyo is a feature-rich wiki for minimalists. ([Demo](https://cowyo.com)) `MIT` `Go` +- [django-wiki](https://github.com/django-wiki/django-wiki) - Wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models. ([Demo](https://demo.django-wiki.org/)) `GPL-3.0` `Python` +- [Documize](https://documize.com) - Modern Docs + Wiki software with built-in workflow, single binary executable, just bring MySQL/Percona. ([Source Code](https://github.com/documize/community)) `AGPL-3.0` `Go` +- [Dokuwiki](https://www.dokuwiki.org/DokuWiki) - Easy to use, lightweight, standards-compliant wiki engine with a simple syntax allowing reading the data outside the wiki. All data is stored in plain files, therefore no database is required. ([Source Code](https://github.com/splitbrain/dokuwiki)) `GPL-2.0` `PHP` +- [Gitit](https://github.com/jgm/gitit) - Wiki program that stores pages and uploaded files in a git repository, which can then be modified using the VCS command line tools or the wiki's web interface. `GPL-2.0` `Haskell` +- [Gollum](https://github.com/gollum/gollum) - Simple, Git-powered wiki with a sweet API and local frontend. `MIT` `Ruby` +- [jingo](https://github.com/claudioc/jingo) - Git based wiki engine written for node.js, with a decent design, a search capability and good typography. `MIT` `Nodejs` +- [Mediawiki](https://www.mediawiki.org/wiki/MediaWiki) - MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects, used by hundreds of millions of people each month. ([Demo](https://en.wikipedia.org/wiki/Main_Page), [Source Code](https://phabricator.wikimedia.org/diffusion/MW/)) `GPL-2.0` `PHP` +- [MoinMoin](https://moinmo.in/) - Advanced, easy to use and extensible WikiEngine with a large community of users. ([Source Code](https://github.com/moinwiki/moin-1.9)) `GPL-2.0` `Python` +- [Outline](https://www.getoutline.com/) `⚠` - An open, extensible, wiki for your team built using React and Node.js. ([Source Code](https://github.com/outline/outline)) `BSD-3-Clause` `Nodejs` +- [Pepperminty Wiki](https://github.com/sbrl/Pepperminty-Wiki) - Complete markdown-powered wiki contained in a single PHP file. ([Demo](https://starbeamrainbowlabs.com/labs/peppermint/build/)) `MPL-2.0` `PHP` +- [PineDocs](https://github.com/xy2z/PineDocs) - Simple, fast, customizable and lightweight site for browsing files. `GPL-3.0` `PHP` +- [PmWiki](http://www.pmwiki.org) - Wiki-based system for collaborative creation and maintenance of websites. `GPL-3.0` `PHP` +- [Raneto](http://raneto.com/) - Raneto is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. `MIT` `Nodejs` +- [TiddlyWiki](http://tiddlywiki.com/) - Reusable non-linear personal web notebook. ([Source Code](https://github.com/Jermolene/TiddlyWiki5)) `BSD-3-Clause` `Nodejs` +- [Tiki](https://tiki.org) - Wiki CMS Groupware with the most built-in features. ([Demo](https://tiki.org/Demo), [Source Code](https://sourceforge.net/p/tikiwiki/code/HEAD/tree/)) `LGPL-2.1` `PHP` +- [TWiki](http://twiki.org/) - TWiki is a Perl-based structured wiki application, typically used to run a collaboration platform, knowledge or document management system, a knowledge base, or team portal. ([Demo](http://twiki.org/cgi-bin/view/Sandbox/WebHome), [Source Code](http://svn.twiki.org/svn/twiki/)) `GPL-1.0` `Perl` +- [wiki](https://github.com/prologic/wiki) - Simple Markdown based wiki engine. ([Demo](https://wiki.mills.io)) `MIT` `Go` +- [Wiki.js](https://wiki.js.org/) - Modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown. ([Demo](https://docs.requarks.io)) `AGPL-3.0` `Nodejs` +- [WiKiss](http://wikiss.tuxfamily.org/) - Wiki, simple to use and install. ([Source Code](https://svnweb.tuxfamily.org/listing.php?repname=wikiss/svn&path=%2F&sc=0)) `GPL-2.0` `PHP` +- [XWiki](http://www.xwiki.org) - Second generation wiki that allows the user to extend its functionalities with a powerful extension-based architecture. ([Demo](http://playground.xwiki.org), [Source Code](https://github.com/xwiki/xwiki-platform)) `LGPL-2.1` `Java` +- [Zim](https://zim-wiki.org/) - Graphical text editor used to maintain a collection of wiki pages. Each page can contain links to other pages, simple formatting and images. ([Source Code](https://github.com/zim-desktop-wiki/zim-desktop-wiki)) `GPL-2.0` `Python` + +## Self-hosting Solutions + +**[`^ back to top ^`](#)** + +- [1Backend](https://github.com/1backend/1backend) - Self-host web apps, microservices and lambdas on your server. Advanced features enable service reuse and composition. `AGPL-3.0` `Go` +- [Ansible-NAS](https://github.com/DaveStephens/ansible-nas) - Build a full-featured home server with this playbook and an Ubuntu box. `MIT` `YAML/Docker` +- [Bitsii Bridge](https://gitlab.com/bitsii/Bitsii/-/wikis/home) `⚠` - Easy to install self-hosting platform for Windows, MacOS, and Linux. Depends on a dynamic DNS provider and Let's Encrypt. ([Source Code](https://gitlab.com/edgii/BBridge)) `MPL-2.0` `Java/Other` +- [CharjaBox](https://github.com/CherryKitten/CharjaBox) - Highly configurable Ansible based Homeserver setup using Docker. `GPL-3.0` `YAML/Ansible/Docker` +- [DietPi](http://dietpi.com/) - Minimal Debian OS optimized for single-board computers, which allows you to easily install and manage several services for selfhosting at home. ([Source Code](https://github.com/Fourdee/DietPi)) `GPL-2.0` `Shell` +- [DockSTARTer](https://dockstarter.com/) - DockSTARTer helps you get started with home server apps running in Docker. ([Source Code](https://github.com/GhostWriters/DockSTARTer)) `MIT` `Shell` +- [DPlatform](https://dfabric.github.io/DPlatform-Shell/) - Deploy self-hosted apps easily: simple, bloat-free, independent installation. ([Source Code](https://github.com/j8r/DPlatform)) `MIT` `Shell` +- [FLAP](https://www.flap.cloud) - Low maintenance framework to manage self-hosted services. ([Source Code](https://gitlab.com/flap-box/flap)) `AGPL-3.0` `Docker/Shell` +- [FreedomBone](https://freedombone.net/) - Home server configuration based on Debian. ([Source Code](https://code.freedombone.net/bashrc/freedombone)) `AGPL-3.0` `Shell` +- [FreedomBox](https://freedomboxfoundation.org/) - Community project to develop, design and promote personal servers running free software for private, personal, communications. ([Source Code](https://salsa.debian.org/freedombox-team/freedombox)) `AGPL-3.0` `Python/Other` +- [HomelabOS](https://homelabos.com) - Your very own offline-first privacy-centric open-source data-center. Deploy over 100 services with a few commands. ([Source Code](https://gitlab.com/NickBusey/HomelabOS)) `MIT` `Docker` +- [NextCloudPi](https://nextcloudpi.com/) - Nextcloud preinstalled and preconfigured, with a text and web management interface and all the tools needed to self host private data. With installation images for Raspberry Pi, Odroid, Rock64, Docker, and a curl installer for Armbian/Debian. ([Source Code](https://github.com/nextcloud/nextcloudpi)) `GPL-2.0-or-later` `Bash/PHP` +- [OpenMediaVault](http://www.openmediavault.org/) - OpenMediaVault is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. ([Source Code](https://github.com/openmediavault/openmediavault)) `GPL-3.0` `PHP` +- [Sandstorm](https://sandstorm.io/) - Personal server for running self-hosted apps easily and securely. ([Demo](https://demo.sandstorm.io/), [Source Code](https://github.com/sandstorm-io/sandstorm)) `Apache-2.0` `C++/Other` +- [sovereign](https://github.com/sovereign/sovereign) - Set of Ansible playbooks to build and maintain your own private cloud: email, calendar, contacts, file sync, IRC bouncer, VPN, and more. `GPL-3.0` `YAML/Other` +- [Syncloud](https://syncloud.org/) - Your own online file storage, social network or email server. ([Source Code](https://github.com/syncloud/platform)) `GPL-3.0` `Python/Other` +- [UBOS](http://ubos.net/) - Linux distro that runs on indie boxes (personal servers and IoT devices). Single-command installation and management of apps - Jenkins, Mediawiki, Owncloud, WordPress, etc., and other features. `GPL-3.0` `Perl/Other` +- [WikiSuite](https://wikisuite.org) - The most comprehensive and integrated Free / Libre / Open Source enterprise software suite. ([Source Code](https://wikisuite.org/Source-Code)) `Multiple` `ClearOS` +- [xsrv](https://xsrv.readthedocs.io/) - Install and manage self-hosted services/applications, on your own server(s). ([Source Code](https://github.com/nodiscc/xsrv)) `GPL-3.0` `Shell/Ansible` +- [YunoHost](https://yunohost.org/) - Server operating system aiming to make self-hosting accessible to everyone. ([Demo](https://yunohost.org/#/try), [Source Code](https://github.com/YunoHost)) `AGPL-3.0` `Python/Other` + + + +-------------------- + +## List of Licenses + +**[`^ back to top ^`](#)** + +- `⚠ ` - Depends on a proprietary service outside the user's control +- `0BSD` - [BSD Zero-Clause Licence](https://opensource.org/licenses/0BSD) +- `AAL` - [Attribution Assurance License](https://opensource.org/licenses/AAL) +- `AGPL-3.0` - [GNU Affero General Public License 3.0](https://www.gnu.org/licenses/agpl-3.0) +- `AGPL-3.0-only` - [GNU Affero General Public License 3.0 only](https://spdx.org/licenses/AGPL-3.0-only.html) +- `Apache-2.0` - [Apache, Version 2.0](http://www.apache.org/licenses/) +- `APSL-2.0` - [Apple Public Source License, Version 2.0](https://opensource.org/licenses/APSL-2.0) +- `Artistic-2.0` - [Artistic License Version 2.0](http://opensource.org/licenses/Artistic-2.0) +- `Beerware` - [Beerware License](https://spdx.org/licenses/Beerware.html) +- `BSD-2-Clause` - [BSD 2-clause "Simplified"](https://opensource.org/licenses/BSD-2-Clause) +- `BSD-2-Clause-FreeBSD` - [BSD 2-Clause FreeBSD License](https://www.freebsd.org/copyright/freebsd-license.html) +- `BSD-3-Clause` - [BSD 3-Clause "New" or "Revised"](https://opensource.org/licenses/BSD-3-Clause) +- `BSD-3-Clause-Attribution` - [BSD with attribution](https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution) +- `CC-BY-NC-SA-3.0` - [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 International License](https://creativecommons.org/licenses/by-nc-sa/3.0/) +- `CC-BY-SA-3.0` - [Creative Commons Attribution-ShareAlike 3.0 International License](https://creativecommons.org/licenses/by-sa/3.0/) +- `CC-BY-SA-4.0` - [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/) +- `CC0-1.0` - [Public Domain](https://creativecommons.org/about/cc0/) +- `CDDL-1.0` - [Common Development and Distribution License](https://opensource.org/licenses/CDDL-1.0) +- `CECILL-B` - [CEA CNRS INRIA Logiciel Libre](https://spdx.org/licenses/CECILL-B.html) +- `CPAL-1.0` - [Common Public Attribution License Version 1.0](http://opensource.org/licenses/CPAL-1.0) +- `DPL` - [Devblocks Public License 1.0](https://cerb.ai/license/) +- `ECL-2.0` - [Educational Community License, Version 2.0 ](http://opensource.org/licenses/ECL-2.0) +- `EPL-1.0` - [Eclipse Public License, Version 1.0](https://www.eclipse.org/legal/epl-v10.html) +- `EPL-2.0` - [Eclipse Public License, Version 2.0](https://www.eclipse.org/legal/epl-v20.html) +- `EUPL-1.2` - [European Union Public License 1.2](https://joinup.ec.europa.eu/collection/eupl/eupl-text-11-12) +- `GFDL-1.1-only` - [GNU Free Documentation License v1.1](https://spdx.org/licenses/GFDL-1.1-only.html) +- `GFDL-1.1-or-later` - [GNU Free Documentation License v1.1](https://spdx.org/licenses/GFDL-1.1-or-later.html) +- `GFDL-1.2-only` - [GNU Free Documentation License v1.2](https://spdx.org/licenses/GFDL-1.2-only.html) +- `GFDL-1.2-or-later` - [GNU Free Documentation License v1.2](https://spdx.org/licenses/GFDL-1.2-or-later.html) +- `GFDL-1.3-only` - [GNU Free Documentation License v1.3](https://spdx.org/licenses/GFDL-1.3-only.html) +- `GFDL-1.3-or-later` - [GNU Free Documentation License v1.3](https://spdx.org/licenses/GFDL-1.3-or-later.html) +- `GPL-1.0` - [GNU General Public License](https://www.gnu.org/licenses/gpl-1.0) +- `GPL-2.0` - [GNU General Public License 2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) +- `GPL-2.0-or-later` - [GNU General Public License v2.0 or later](https://spdx.org/licenses/GPL-2.0-or-later.html) +- `GPL-3.0-only` - [GNU General Public License v3.0 only](https://spdx.org/licenses/GPL-3.0-only.html) +- `GPL-3.0-or-later` - [GNU General Public License v3.0 or later](https://spdx.org/licenses/GPL-3.0-or-later.html) +- `GPL-3.0` - [GNU General Public License 3.0](http://www.gnu.org/licenses/gpl-3.0.en.html) +- `IPL-1.0` - [IBM Public License](https://opensource.org/licenses/IPL-1.0) +- `ISC` - [Internet Systems Consortium License](https://www.isc.org/downloads/software-support-policy/isc-license/) +- `LGPL-2.1` - [Lesser General Public License 2.1](http://opensource.org/licenses/LGPL-2.1) +- `LGPL-3.0` - [Lesser General Public License 3.0](http://opensource.org/licenses/LGPL-3.0) +- `MIT` - [MIT License](http://opensource.org/licenses/MIT) +- `MPL-1.1` - [Mozilla Public License Version 1.1](https://www.mozilla.org/media/MPL/1.1/index.txt) +- `MPL-2.0` - [Mozilla Public License](https://www.mozilla.org/MPL/2.0/index.txt) +- `Multiple` - Various different licenses, for different components of the project's software. +- `OSL-3.0` - [Open Software License 3.0](https://opensource.org/licenses/osl-3.0.php) +- `Other` - Non-standard license, usually unique to the project itself. +- `Sendmail` - [Sendmail License](https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf) +- `SSPL-1.0` - [Server Side Public License](https://spdx.org/licenses/SSPL-1.0.html) +- `Unlicense` - [The Unlicense](http://unlicense.org/) +- `WTFPL` - [Do What the Fuck You Want to Public License](http://www.wtfpl.net/about/) +- `Zlib` - [Zlib/libpng License](https://opensource.org/licenses/Zlib) +- `ZPL-1.2` - [Zope Public License 1.2](http://zpl.pub/page/zplv12) +- `ZPL-2.0` - [Zope Public License 2.0](http://opensource.org/licenses/ZPL-2.0) + +-------------------- + +## External links + +**[`^ back to top ^`](#)** + +- [Awesome Big Data](https://github.com/onurakpolat/awesome-bigdata) - Curated list of awesome big data frameworks, resources and other awesomeness. +- [Awesome Public Datasets](https://github.com/awesomedata/awesome-public-datasets) - List of high quality, topic-centric public data sources. +- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) - Curated list of amazingly awesome open source sysadmin resources. +- Lists of software aimed at privacy and decentralization in some form: [PRISM Break](https://prism-break.org/en/), [privacytools.io](https://www.privacytools.io/), [Alternative Internet](https://redecentralize.github.io/alternative-internet/), [Libre Projects](http://libreprojects.net/) +- Dynamic Domain Name services: [Afraid.org](https://freedns.afraid.org/domain/registry/), [Pagekite](https://pagekite.net/) +- Communities/forums: [/r/selfhosted](https://www.reddit.com/r/selfhosted), [IndieWeb](https://indieweb.org/) +- Mirrors: [GitHub.com](https://github.com/awesome-selfhosted/awesome-selfhosted), [Gitlab.com](https://gitlab.com/awesome-selfhosted/awesome-selfhosted) + +-------------------- + +## Contributing + +Contributing guidelines can be found in [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md). + +## Authors + +The list of authors can be found in [AUTHORS.md](AUTHORS.md). + +## License + +This list is under the [Creative Commons Attribution-ShareAlike 3.0 Unported](LICENSE) License. diff --git a/INDEX/docker-compose.yml b/INDEX/docker-compose.yml new file mode 100644 index 0000000..568a6c4 --- /dev/null +++ b/INDEX/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' + +services: + server: + image: + container_name: + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + privileged: true + volumes: + - /etc/localtime:/etc/localtime + ports: + - "9080:80" + diff --git a/INDEX/docker.md b/INDEX/docker.md new file mode 100644 index 0000000..b07794b --- /dev/null +++ b/INDEX/docker.md @@ -0,0 +1,96 @@ +### 使用官方安装脚本自动安装 + +#### 安装命令 + +``` +curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun + +``` + +#### 国内 daocloud 一键安装命令 + +``` +curl -sSL https://get.daocloud.io/docker | sh + +``` + +### 配置docker + +Run Docker commands without sudo + +1. Add the docker group if it doesn't already exist +``` +$ sudo groupadd docker +``` +2. Add the connected user $USER to the docker group + +Optionally change the username to match your preferred user. +``` +$ sudo gpasswd -a $USER docker +``` +3. Restart the docker daemon +``` +$ sudo service docker restart +``` +If you are on Ubuntu 14.04-15.10, use docker.io instead: +``` +$ sudo service docker.io restart +``` + + + + +### Compose 安装 + +Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。 + +#### 运行以下命令以下载 Docker Compose 的最新版本: + +``` +sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + +``` + +#### 将可执行权限应用于二进制文件: + +``` +sudo chmod +x /usr/local/bin/docker-compose + +``` + +#### 创建软链: + +``` +sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose + +``` + +#### 测试是否安装成功: + +``` +docker-compose --version + +``` + + +### Docker + + +Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。 + +1、快速,一致地交付您的应用程序 +Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。 + +容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案: + +您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。 +他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。 +当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。 +测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。 +2、响应式部署和扩展 +Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。 + +Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。 + +3、在同一硬件上运行更多工作负载 +Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。 \ No newline at end of file diff --git a/INDEX/non-free.md b/INDEX/non-free.md new file mode 100644 index 0000000..2db3840 --- /dev/null +++ b/INDEX/non-free.md @@ -0,0 +1,131 @@ +# Awesome Selfhosted - Proprietary Software + +**Software listed here does not allow you to run it for any purpose, study, modify or distribute the source code.** Some of the software here may not be audited due to its closed source nature, and can therefore contain anti-features, such as but not limited to: undisclosed security vulnerabilities, backdoors, user lock-in, sending personal data to a third party. + +## Analytics + +- [userTrack](https://www.usertrack.net/) `⊘ Proprietary` - userTrack is a web analytics platform with heatmaps, session recordings and powerful user segmentation feature. Updated very regularly. ([Demo](https://dashboard.usertrack.net/server/demoLogin.php)) `PHP/MySQL/ReactJS` +- [UXLens](https://uxlens.com/) `⊘ Proprietary` - UXLens is a website visitor recording software meant for identifying UI issues and fix them to improve user experience. Formerly known as SessionRecord ([Demo](https://console.uxlens.com/test)) `Docker Nodejs` + + +## Content Management Systems (CMS) + +- [CraftCMS](https://craftcms.com/) `⊘ Proprietary` - Craft is a content-first CMS that aims to make life enjoyable for developers and content managers alike. ([Demo](https://demo.craftcms.com/)) `PHP` +- [Gazelle](https://github.com/WhatCD/Gazelle) - Gazelle is a web framework geared towards private BitTorrent trackers. Although naturally focusing on music, it can be modified for most needs. `unlicensed` `PHP` +- [Kirby](https://getkirby.com/) `⊘ Proprietary` - File-based CMS. Easy to setup. Easy to use. Flexible as hell. ([Source Code](https://github.com/getkirby/kirby)) `PHP` + +### E-Commerce +- [Sharetribe](https://www.sharetribe.com) `⊘ Proprietary` - An open source platform to create your own peer-to-peer marketplace, also available with SaaS model. ([Source Code](https://github.com/sharetribe/sharetribe)) `Ruby` + +## Communication Systems + +- [Dialog](https://dlg.im) `⊘ Proprietary` - Handy and feature-rich multi-device solution with native mobile clients, SIP integration, chatbots, 3rd-party integrations. It brings communication efficiency without sacrificing privacy. Works in closed circuit, encrypts push notifications. ([Demo](https://dlg.im/en/download)) `Scala/Go` +- [Groupboard](https://www.groupboard.com) `⊘ Proprietary` - Online whiteboard, audio/video conferencing, screen sharing, shared code editing and optional session recording/playback. +- [PrivMX WebMail](https://privmx.com) - an alternative private mail system - web-based, end-to-end encrypted by design, self-hosted, decentralized, uses independent PKI. Easy to install and administrate, freeware, open-source. `PHP` + +## E-books and Integrated Library Systems (ILS) + +- [Ubooquity](https://vaemendis.net/ubooquity/) `⊘ Proprietary` - Ubooquity is a free to use, versatile, lightweight, multi-platform, and secure home server for your comic and e-book library. `Java` + + +## File Sharing and Synchronization + +- [Yetishare](https://yetishare.com) `⊘ Proprietary` - A powerful file hosting script with support for Amazon S3, Wasabi, Backblaze, local, direct and SFTP storage. ([Demo](https://fhscript.com)) `PHP` +- [Resilio Sync](https://www.resilio.com/) `⊘ Proprietary` - Resilio Sync by Resilio, Inc is a proprietary peer-to-peer file synchronisation tool. +- [Drive Virtual](http://www.drivevirtual.com/) `⊘ Proprietary` - With Drive Virtual you can sync, backup and share your files privately with your own FTP (SFTP) server or account. +- [Dropcenter](http://projet.idleman.fr/dropcenter/) - Upload files by simple drag-n-drop. ([Source Code](https://github.com/ldleman/dropcenter)) `CCBYNCSAv3` `PHP` +- [FileRun](http://www.filerun.com/) `⊘ Proprietary` - A complete solution for your files with integration with Google and Office. ([Demo](http://www.filerun.com/demo)) `PHP` + + +## Games + +- [Cubiks-2048](https://github.com/Kshitij-Banerjee/Cubiks-2048) - Clone of 2048 game in 3D. ([Demo](https://kshitij-banerjee.github.io/Cubiks-2048/)) `CCBYNCv4` `HTML5` +- [untrusted](https://github.com/AlexNisnevich/untrusted) - Untrusted is a unique puzzle game designed for geeks and developers, where you solve the puzzles in the game by reading and writing Javascript. ([Demo](http://alex.nisnevich.com/untrusted/)) `CCBYNCSAv3/Custom` `Nodejs` + +## Internet Of Things (IoT) +- [Atman IoT](https://atman-iot.com) - Atman IoT is a self hosted IoT gateway focused on IoT solution rapid prototyping, packaged as stand alone docker container, promising to help you build your IoT solution in a week!. ([Demo](https://atman-iot.com/signup-redirect)) `⊘ Proprietary` `Nodejs` + +## IPBX + +- [Elastix](http://www.elastix.org) `⊘ Proprietary` - Unified communications server software based on 3CX. + + +## Maps & GPS + +- [OpenMapTiles Server](https://openmaptiles.org/) `⊘ Proprietary` - Set of tools for self-hosting of OpenStreetMap vector tiles. ([Partial Source Code](https://github.com/openmaptiles)) `Python/JavaScript` + +## Media Streaming + +- [Channels DVR Server](https://getchannels.com/dvr-server/) `⊘ Proprietary` - Flexible server providing a whole home self hosted DVR experience for [Channels](https://getchannels.com). +- [Emby](https://emby.media/) `⊘ Proprietary` - Home media server supporting both DLNA and DIAL (Chromecast) devices out-of-the-box. ([Partial source Code](https://github.com/MediaBrowser/Emby)) `Proprietary with some GPL-2.0` `C#` +- [Plex](https://plex.tv/) `⊘ Proprietary` - Plex is a centralized home media playback system with a powerful central server. +- [Subsonic](http://subsonic.org/) - Web-based media streamer and jukebox. ([Demo](http://demo.subsonic.org/login.view?user=guest4&password=guest)) + + +## Money, Budgeting and Management + +- [Anchor](http://theanchorapp.com/) - Anchor is an invoicing system that integrates with Stripe and Paypal. Includes features such as: reporting, dashboard and no client limit. ([Demo](http://theanchorapp.com/demo/admin-login)) `PHP` +- [Manager](http://manager.io/server) `⊘ Proprietary` - Online accounting software for small businesses. `Mono` +- [Pancake](http://pancakeapp.com/) `⊘ Proprietary` - Online invoicing, project management, time tracking and proposal software. `PHP` + + +## Photo and Video Galleries + +- [ArtVenue](http://codecanyon.net/item/artvenue-image-sharing-community-script/5771542) `⊘ Proprietary` - Start your own photography community website, platform based on the Laravel PHP Framework. ([Demo](http://codecanyon.net/item/artvenue-image-sharing-community-script/full_screen_preview/5771542)) `PHP` +- [Chevereto](https://chevereto.com/) `⊘ Proprietary` - A powerful and fast image hosting script that allows you to create your very own full featured image hosting website in just minutes. ([Demo](http://demo.chevereto.com/)) `PHP` +- [Koken](http://koken.me/) `⊘ Proprietary` - Content management and web site publishing for photographers. `PHP` +- [Lomorage](https://lomorage.com/) `⊘ Proprietary` - Google photo alternative via simple self-hosting software. Supported clients: iOS, Android, Web, MAC/Windows. Backend can run on Raspberry pi, Armbian, MAC/Windows/Linux `GO` +- [PhotoStructure](https://photostructure.com/) `⊘ Proprietary` - All your family's photos and videos automatically organized into a fun and beautiful website. Runs via Docker, NodeJS, or native desktop installers. `NodeJS` +- [Reservo](https://reservo.co) `⊘ Proprietary` - A scalable image hosting script with support for CDNs, paid account upgrades, advertising spots and drag & drop upload. ([Demo](https://demo.reservo.co/)) `PHP` +- [Single File PHP Gallery](http://sye.dk/sfpg/) `⊘ Proprietary` - is a web gallery in one single PHP file. `PHP` + + +## Project Management +- [Active Collab](https://www.activecollab.com/) `⊘ Proprietary` - Project management - `PHP` +- [Duet](https://duetapp.com/) `⊘ Proprietary` - Invoicing and project management with an integrated client portal. ([Demo](https://duetapp.com/start-demo)) `PHP` +- [Kanban Tool](https://kanbantool.com/kanban-tool-on-site) `⊘ Proprietary` - Advanced Kanban boards with time tracking. `Ruby On Rails` +- [Kantree](https://kantree.io) `⊘ Proprietary` - Work management and collaboration - `Python` +- [Solo](http://www.getsoloapp.com/) - Solo is a free project management app created for freelancers. Create contacts, manage tasks, upload files, track project progress, and keep notes. ([Demo](http://www.getsoloapp.com/demo/)) `PHP` + + +## Self-hosting Solutions +- [Axigen](https://www.axigen.com/mail-server/free/) `⊘ Proprietary` - Great alternative to open source. It's a turnkey messaging solution, perfect for small & micro businesses, integration projects or test environments. +- [Cloudron](https://cloudron.io) `⊘ Proprietary` - Open-core software allowing you to effortlessly self-host web apps on your server. ([Source Code](https://git.cloudron.io/groups/cloudron))([Demo](https://my.demo.cloudron.io/)) `Nodejs/Docker` +- [EmbassyOS](https://start9labs.com) - `⊘ Proprietary` A graphical Operating System for running self-hosted, open source services. ([Source Code](https://github.com/Start9Labs/embassy-os)) `Start9 Personal Use License` `Rust` +- [hMailServer](https://www.hmailserver.com) `⊘ Proprietary` - Open source e-mail server for Microsoft Windows. ([Source Code](https://github.com/hmailserver/hmailserver)) `C++` +- [Poste.io](https://poste.io) `⊘ Proprietary` - Full featured solution for your Email server. Native implementation of last anti-SPAM methods, webmail and easy administration included. Free tier available. ([Demo](https://poste.io/demo)) + + +## Software Development + +- [92five](http://92fiveapp.com/) `⊘ Proprietary` - Self hosted project management application ([Source code](https://github.com/chintanbanugaria/92five)) `CC BY-NC 4.0` `PHP` +- [Bamboo](https://www.atlassian.com/software/bamboo) `⊘ Proprietary` - A continuous integration server `Java` +- [Buddy Enterprise](https://buddy.works/) - The Git and Continuous Integration / Delivery Platform. `⊘ Proprietary` `Nodejs/Java` +- [Cloud9](https://c9.io/) `⊘ Proprietary` - Your development environment, in the cloud ([Source code](https://github.com/c9/core)) `Nodejs` +- [Crucible](https://www.atlassian.com/software/crucible/overview) `⊘ Proprietary` - A peer code review application `Java` +- [Documize](https://documize.com) `⊘ Proprietary` - Modern docs & wiki software built for software team collaboration. `Go` +- [JIRA](https://www.atlassian.com/software/jira) `⊘ Proprietary` - A professional and extensible issue tracker `Java` +- [Kloudless](https://kloudless.com) `⊘ Proprietary` - Platform for native, embedded, SaaS integrations using Unified APIs. `Python` +- [RhodeCode](https://rhodecode.com) `⊘ Proprietary` - On-premise Source Code Management for Mercurial, Git & Subversion. `Python` +- [BitBucket Server](https://www.atlassian.com/software/bitbucket/server) `⊘ Proprietary` - An enterprise-level Git solution similar to GitLab `Java` + +## Ticketing +- [Deskpro](https://www.deskpro.com/) `⊘ Proprietary` - On-Premise helpdesk software that includes email, chat, voice & helpcentre publishing. Full visible source code and API. +- [Full Help](https://www.fullhelp.com/en/) `⊘ Proprietary` - Simple, easy to use help desk & knowledge base software. Custom branding, custom themes, restful API, communication channels, multi-company support, multi-language support, and much more! At least 1 new release per month. [Changelog](https://www.fullhelp.com/en/changelog) `PHP` +- [Jitbit Helpdesk](https://www.jitbit.com/helpdesk/) `⊘ Proprietary` - Self-hosted help desk software - simple but powerful. ([Demo](https://www.jitbit.com/hosted-helpdesk/trial/)) `ASP.NET` +- [SupportPal](https://www.supportpal.com/) `⊘ Proprietary` - Powerful help desk software - easy, fast and intuitive. ([Demo](http://demo.supportpal.com/)) `PHP` +- [Cerb](http://www.cerberusweb.com/) - Group-based e-mail management project. ([Source Code](https://github.com/wgm/cerb)) `DPL` `PHP` + + +## Time Tracking +- [Virtual TimeClock](https://www.redcort.com/timeclock) `⊘ Proprietary` - Powerful, easy-to-use time tracking software. ([Demo](https://www.redcort.com/timeclock/free-timeclock-software-trial)) + + +## Remote Support + + * [ScreenConnect](https://www.screenconnect.com/) `⊘ Proprietary` - ScreenConnect offers lightning-fast remote support and remote access to connect instantly and solve problems faster. + * [RemoteUtilities](https://www.remoteutilities.com/) `⊘ Proprietary` - Remote Utilities is self-hosted remote support software for LAN administration and remote support over the Internet. + +### UX testing + +- [Moon](https://aerokube.com/moon/) `⊘ Proprietary` - An efficient Selenium protocol implementation running everything in Kubernetes or Openshift. `Go` diff --git a/README.md b/README.md index f72e919..209829f 100644 --- a/README.md +++ b/README.md @@ -1 +1,28 @@ -# my-docker + +*** + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +### 直接运行 + + +这些项目均可以在其目录下执行`docker-compose up`执行 + +根据运行需要修改端口号和目录映射 + +能够正常运行的项目均可以在linux docker里运行,也可以选择docker for windows wsl2版本运行 + + +### 注意事项 + +部分项目需要下载程序压缩包,并解压缩到对应目录 + +部分项目需要对项目目录权限设置成777 + +部分项目在运行时需要自动使用docker build,从而导致构建时间过长 \ No newline at end of file diff --git a/adguardhome/docker-compose.yml b/adguardhome/docker-compose.yml new file mode 100644 index 0000000..2566e15 --- /dev/null +++ b/adguardhome/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3' + +services: + server: + image: adguard/adguardhome + container_name: adguardhome + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + volumes: + - ./adguardhome/aworkdir:/opt/adguardhome/work + - ./adguardhome/confdir:/opt/adguardhome/conf + - /etc/localtime:/etc/localtime + ports: + - "53:53" + - "80:80" + - "67:67" + - "443:443" + - "853:853" + - "68:68" + - "3000:3000" \ No newline at end of file diff --git a/adminer/README.md b/adminer/README.md new file mode 100755 index 0000000..282500a --- /dev/null +++ b/adminer/README.md @@ -0,0 +1,19 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + +### 运行 + +下载代码 + +在代码目录下,运行`docker-compose up` \ No newline at end of file diff --git a/adminer/docker-compose.yml b/adminer/docker-compose.yml new file mode 100644 index 0000000..b2769e4 --- /dev/null +++ b/adminer/docker-compose.yml @@ -0,0 +1,17 @@ +# Use root/example as user/password credentials + +version: '3.1' + +services: + + adminer: + image: adminer + restart: always + ports: + - 8080:8080 + + db: + image: mysql:5.6 + restart: always + environment: + MYSQL_ROOT_PASSWORD: example \ No newline at end of file diff --git a/alfresco/README.md b/alfresco/README.md new file mode 100644 index 0000000..6b37cd5 --- /dev/null +++ b/alfresco/README.md @@ -0,0 +1,12 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + + + +*** \ No newline at end of file diff --git a/alfresco/docker-compose.yml b/alfresco/docker-compose.yml new file mode 100644 index 0000000..70ea246 --- /dev/null +++ b/alfresco/docker-compose.yml @@ -0,0 +1,122 @@ +# This docker-compose file will spin up an ACS cluster on a local host or on a server and it requires a minimum of 12GB Memory to distribute among containers. +# Limit container memory and assign X percentage to JVM. There are couple of ways to allocate JVM Memory for ACS Containers +# For example: 'JAVA_OPTS: "$JAVA_OPTS -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"' +# See Oracle docs (https://docs.oracle.com/javase/9/gctuning/parallel-collector1.htm#JSGCT-GUID-CAB83393-3438-44ED-98F0-D15641B43C7D). +# If the container memory is not explicitly set then the flags above will set the max heap default to 1/4 of the container's memory, which may not be ideal. +# For performance tuning, assign the container memory and give a percentage of it to the JVM. + +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + alfresco: + image: alfresco/alfresco-content-repository-community:7.0.0 + mem_limit: 1500m + environment: + JAVA_TOOL_OPTIONS: " + -Dencryption.keystore.type=JCEKS + -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding + -Dencryption.keyAlgorithm=DESede + -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore + -Dmetadata-keystore.password=mp6yc0UD9e + -Dmetadata-keystore.aliases=metadata + -Dmetadata-keystore.metadata.password=oKIWzVdEdA + -Dmetadata-keystore.metadata.algorithm=DESede + " + JAVA_OPTS: " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=solr6 + -Dsolr.port=8983 + -Dsolr.http.connection.timeout=1000 + -Dsolr.secureComms=none + -Dsolr.base.url=/solr + -Dindex.subsystem.name=solr6 + -Dshare.host=127.0.0.1 + -Dshare.port=8080 + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ + -Dcsrf.filter.enabled=false + -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80 + " + + transform-core-aio: + image: alfresco/alfresco-transform-core-aio:2.3.10 + mem_limit: 1536m + environment: + JAVA_OPTS: " -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80" + ports: + - 8090:8090 + + share: + image: alfresco/alfresco-share:7.0.0 + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -XX:MinRAMPercentage=50 + -XX:MaxRAMPercentage=80 + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:13.1 + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + solr6: + image: alfresco/alfresco-search-services:2.0.1 + mem_limit: 2g + environment: + #Solr needs to know how to register itself with Alfresco + - SOLR_ALFRESCO_HOST=alfresco + - SOLR_ALFRESCO_PORT=8080 + #Alfresco needs to know how to call solr + - SOLR_SOLR_HOST=solr6 + - SOLR_SOLR_PORT=8983 + #Create the default alfresco and archive cores + - SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive + #HTTP by default + - ALFRESCO_SECURE_COMMS=none + ports: + - 8083:8983 #Browser port + + activemq: + image: alfresco/alfresco-activemq:5.16.1 + mem_limit: 1g + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + proxy: + image: alfresco/alfresco-acs-nginx:3.1.1 + mem_limit: 128m + environment: + DISABLE_PROMETHEUS: "true" + DISABLE_SYNCSERVICE: "true" + DISABLE_ADW: "true" + depends_on: + - alfresco + ports: + - 8080:8080 + links: + - alfresco + - share \ No newline at end of file diff --git a/ampache/docker-compose.yml b/ampache/docker-compose.yml new file mode 100755 index 0000000..07bd513 --- /dev/null +++ b/ampache/docker-compose.yml @@ -0,0 +1,35 @@ + +version: '3' + +services: + ampache: + image: ampache/ampache:latest + container_name: ampache + restart: unless-stopped + environment: + - USER_UID=1000 + - USER_GID=1000 + ports: + - 9680:80 + volumes: + - ./data/config:/var/www/config + - ./data/log:/var/log/ampache + - ./data/media:/media + - ./data/mysql:/var/lib/mysql + + mysql: + image: mysql:5.7.22 + restart: always + container_name: ampachedb + ports: + - 9306:3306 + privileged: true + environment: + TZ: Asia/Shanghai + MYSQL_ROOT_PASSWORD: 123456 + MYSQL_DATABASE: ampache + MYSQL_USER: user + MYSQL_PASSWORD: 123456 + volumes: + - ./mysql/data:/var/lib/mysql + - ./mysql/conf/my.cnf:/etc/my.cnf \ No newline at end of file diff --git a/apaxy/.github/ISSUE_TEMPLATE/bug_report.md b/apaxy/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..b735373 --- /dev/null +++ b/apaxy/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/apaxy/.github/ISSUE_TEMPLATE/feature_request.md b/apaxy/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..066b2d9 --- /dev/null +++ b/apaxy/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/apaxy/.github/PULL_REQUEST_TEMPLATE.md b/apaxy/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4959149 --- /dev/null +++ b/apaxy/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +fixes # + +## proposed changes + +- +- +- + diff --git a/apaxy/.gitignore b/apaxy/.gitignore new file mode 100644 index 0000000..fd4f2b0 --- /dev/null +++ b/apaxy/.gitignore @@ -0,0 +1,2 @@ +node_modules +.DS_Store diff --git a/apaxy/CHANGELOG.md b/apaxy/CHANGELOG.md new file mode 100644 index 0000000..0cda90b --- /dev/null +++ b/apaxy/CHANGELOG.md @@ -0,0 +1,116 @@ +# [2.3.0](https://github.com/oupala/apaxy/compare/2.2.0...2.3.0) (2021-04-23) + + +### Bug Fixes + +* fix the doctype in the error pages ([0c75e64](https://github.com/oupala/apaxy/commit/0c75e64761939b1b1f02ae08a74bb64772bc4ac0)) +* improve the way Faenza icons are embedded ([060d547](https://github.com/oupala/apaxy/commit/060d5478e46864fdc185e4c29db8d2cfe99eae93)), closes [#143](https://github.com/oupala/apaxy/issues/143) +* use
instead of
([3bba904](https://github.com/oupala/apaxy/commit/3bba904d33fd4139b2e31f721612484590063cfa)) + + +### Features + +* switch to GPLv3 licence ([86fc8ee](https://github.com/oupala/apaxy/commit/86fc8ee74db4542f62bc342d960344838bfaf6b2)), closes [#148](https://github.com/oupala/apaxy/issues/148) + + + +# [2.2.0](https://github.com/oupala/apaxy/compare/2.1.3...2.2.0) (2020-03-19) + + +### Bug Fixes + +* **doc:** fix links in table of content ([cc02ee5](https://github.com/oupala/apaxy/commit/cc02ee5e65359a95315d7d848589d4f4b05b8e14)) +* favicon not being loaded when using Apaxy in a subdirectory ([b9c2521](https://github.com/oupala/apaxy/commit/b9c25218f177b22ba0590706692d47f54986cd0d)) + + +### Features + +* optimize icons ([49289c4](https://github.com/oupala/apaxy/commit/49289c439cd032a95a4be93e1eb74f0fc7e821ef)) +* **theme:** add a proper dark mode (and globally improve CSS styles) ([301c932](https://github.com/oupala/apaxy/commit/301c9329af1ceea467b786ce287ae5557a08002b)) + + + +## [2.1.3](https://github.com/oupala/apaxy/compare/2.1.2...2.1.3) (2019-07-18) + + +### Bug Fixes + +* remove useless js ([afa2e51](https://github.com/oupala/apaxy/commit/afa2e51)), closes [#132](https://github.com/oupala/apaxy/issues/132) + + + +## [2.1.2](https://github.com/oupala/apaxy/compare/2.1.1...2.1.2) (2019-06-04) + + +### Bug Fixes + +* add gif extension to image gallery viewer ([5668b92](https://github.com/oupala/apaxy/commit/5668b92)) + + + +## [2.1.1](https://github.com/oupala/apaxy/compare/2.1.0...2.1.1) (2019-06-03) + + +### Bug Fixes + +* improve cli parameters management ([8ca6129](https://github.com/oupala/apaxy/commit/8ca6129)) + + + +# [2.1.0](https://github.com/oupala/apaxy/compare/2.0.1...2.1.0) (2019-05-30) + + +### Features + +* install script can set a header and a footer message ([8f85f2c](https://github.com/oupala/apaxy/commit/8f85f2c)) + + + +## [2.0.1](https://github.com/oupala/apaxy/compare/2.0.0...2.0.1) (2019-05-30) + + +### Bug Fixes + +* make the script apaxy-configure.sh more robust ([367722a](https://github.com/oupala/apaxy/commit/367722a)) + + + +# [2.0.0](https://github.com/oupala/apaxy/compare/1.0.0...2.0.0) (2019-05-29) + + +### Bug Fixes + +* filter content works again ([f8670f0](https://github.com/oupala/apaxy/commit/f8670f0)), closes [#125](https://github.com/oupala/apaxy/issues/125) +* invalid links from the root folder ([04b185d](https://github.com/oupala/apaxy/commit/04b185d)) +* remove a minor typo in the Dockerfile ([08446fb](https://github.com/oupala/apaxy/commit/08446fb)) +* remove dependency to font Open Sans ([bb8503b](https://github.com/oupala/apaxy/commit/bb8503b)), closes [#59](https://github.com/oupala/apaxy/issues/59) [#59](https://github.com/oupala/apaxy/issues/59) +* remove the leading slash before {FOLDERNAME} ([17475e1](https://github.com/oupala/apaxy/commit/17475e1)) +* rename htaccess.txt in theme directory ([05ba73c](https://github.com/oupala/apaxy/commit/05ba73c)) +* title and paths in error pages ([2eeb079](https://github.com/oupala/apaxy/commit/2eeb079)) + + +### Features + +* **css:** responsive design for small screen ([4471ec1](https://github.com/oupala/apaxy/commit/4471ec1)), closes [#29](https://github.com/oupala/apaxy/issues/29) +* add a breadcrumb ([33d4777](https://github.com/oupala/apaxy/commit/33d4777)) +* add a favicon ([b393699](https://github.com/oupala/apaxy/commit/b393699)), closes [#128](https://github.com/oupala/apaxy/issues/128) +* add ebooks to supported filetypes ([1164a1b](https://github.com/oupala/apaxy/commit/1164a1b)) +* add install script with instructions ([23f3b8e](https://github.com/oupala/apaxy/commit/23f3b8e)) +* add lightgallery as lightbox gallery ([cc36486](https://github.com/oupala/apaxy/commit/cc36486)), closes [#89](https://github.com/oupala/apaxy/issues/89) +* Add styled error pages ([0e69f5d](https://github.com/oupala/apaxy/commit/0e69f5d)) +* css styling for breadcrumb ([4d61aab](https://github.com/oupala/apaxy/commit/4d61aab)) +* docker image ([f2a8144](https://github.com/oupala/apaxy/commit/f2a8144)) +* replace lightGallery by lightgallery.js ([a1cfdd3](https://github.com/oupala/apaxy/commit/a1cfdd3)) + + + + +# 1.0.0 (2018-02-21) + + +### Features + +* Although it is a quite old piece of software (2012), here is the first release of apaxy. + + + diff --git a/apaxy/CODE_OF_CONDUCT.md b/apaxy/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..1266193 --- /dev/null +++ b/apaxy/CODE_OF_CONDUCT.md @@ -0,0 +1,77 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at . All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq + diff --git a/apaxy/CONTRIBUTING.md b/apaxy/CONTRIBUTING.md new file mode 100644 index 0000000..57db9ca --- /dev/null +++ b/apaxy/CONTRIBUTING.md @@ -0,0 +1,161 @@ +# Contributing to apaxy + +First and foremost, thank you! We appreciate that you want to contribute +to apaxy, your time is valuable, and your contributions mean a lot to us. + +## Important! + +By contributing to this project, you: + +- Agree that you have authored 100% of the content +- Agree that you have the necessary rights to the content +- Agree that you have received the necessary permissions from your +employer to make the contributions (if applicable) +- Agree that the content you contribute may be provided under the +Project license(s) + +## Getting started + +**What does "contributing" mean?** + +Creating an issue is the simplest form of contributing to a project. Creating a +merge reques is more efficient form of contributing. But there are many ways to +contribute, including the following: + +- Updating or correcting documentation +- Feature requests +- Bug reports + +If you'd like to learn more about contributing in general, the [Guide to +Idiomatic +Contributing](https://github.com/jonschlinkert/idiomatic-contributing) +has a lot of useful information. + +**Showing support for apaxy** + +Please keep in mind that open source software is built by people like +you, who spend their free time creating things the rest the community +can use. + +Don't have time to contribute? No worries, here are some other ways to +show your support for apaxy: + +- star the [project](https://github.com/oupala/apaxy) +- tweet your support for apaxy + +## Issues + +### Before creating an issue + +Please try to determine if the issue is caused by an underlying library, +and if so, create the issue there. Sometimes this is difficult to know. +We only ask that you attempt to give a reasonable attempt to find out. +Oftentimes the readme will have advice about where to go to create issues. + +Try to follow these guidelines + +- **Investigate the issue**: +- **Check the readme** - oftentimes you will find notes about creating +issues, and where to go depending on the type of issue +- Create the issue in the appropriate repository + +### Creating an issue + +Please be as descriptive as possible when creating an issue. Give us the +information we need to successfully answer your question or address your +issue by answering the following in your issue: + +- **version**: please note the version of apaxy are you using +- **extensions, plugins, helpers, etc** (if applicable): please list any +extensions you're using +- **error messages**: please paste any error messages into the issue, or +a [gist](https://gist.github.com/) + +### Closing issues + +The original poster or the maintainer's of apaxy may close an issue at +any time. Typically, but not exclusively, issues are closed when: + +- The issue is resolved +- The project's maintainers have determined the issue is out of scope +- An issue is clearly a duplicate of another issue, in which case the +duplicate issue will be linked +- A discussion has clearly run its course + + +## Pull requests + +### Before creating a merge request + +Please try to determine if the issue is caused by an underlying library, +and if so, create the merge request there. Sometimes this is difficult to know. +We only ask that you attempt to give a reasonable attempt to find out. +Oftentimes the readme will have advice about where to go to create merge +requests. + +Try to follow these guidelines + +- **Investigate the issue**: +- **Check the readme** - oftentimes you will find notes about creating +issues, and where to go depending on the type of issue +- Create the merge request in the appropriate repository + +### Creating a merge request + +Please be as descriptive as possible when creating a merge request. Give us the +information we need to successfully understand what you want to change or to add +to apaxy. Create the merge request as soon as possible so that the discussion +around your changes can start at the beginning of your work, not when it's over +and you don't time anymore to discuss it. + +### Closing merge requests + +The original poster or the maintainer's of apaxy may close a merge request at +any time. Typically, but not exclusively, issues are closed when: + +- The merge request has conflict with the develop branch that makes it difficult +to merge without a hard work +- The commit message of each commit of the merge request does not follow the +[conventional commits](https://www.conventionalcommits.org/) standard +- The project's maintainers have determined the merge request is out of scope +- A merge request is clearly a duplicate of another merge request, in which case +the duplicate merge request will be linked +- A discussion has clearly run its course + + +## Next steps + +**Tips for creating idiomatic issues** + +Spending just a little extra time to review best practices and brush up +on your contributing skills will, at minimum, make your issue easier to +read, easier to resolve, and more likely to be found by others who have +the same or similar issue in the future. At best, it will open up doors +and potential career opportunities by helping you be at your best. + +The following resources were hand-picked to help you be the most +effective contributor you can be: + +- The [Guide to Idiomatic +Contributing](https://github.com/jonschlinkert/idiomatic-contributing) +is a great place for newcomers to start, but there is also information +for experienced contributors there +- Take some time to learn basic markdown. We can't stress this enough. +Don't start pasting code into GitHub issues before you've taken a moment +to review this [markdown +cheatsheet](https://gist.github.com/jonschlinkert/5854601) +- The GitHub guide to [basic +markdown](https://help.github.com/articles/markdown-basics/) is another +great markdown resource +- Learn about [GitHub Flavored +Markdown](https://help.github.com/articles/github-flavored-markdown/). +And if you want to really go above and beyond, read [mastering +markdown](https://guides.github.com/features/mastering-markdown/) + +At the very least, please try to: + +- Use backticks to wrap code. This ensures that it retains its +formatting and isn't modified when it's rendered by GitHub, and makes +the code more readable to others +- When applicable, use syntax highlighting by adding the correct +language name after the first "code fence" diff --git a/apaxy/COPYING.md b/apaxy/COPYING.md new file mode 100644 index 0000000..2fb2e74 --- /dev/null +++ b/apaxy/COPYING.md @@ -0,0 +1,675 @@ +### GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +### Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish +to avoid the special danger that patents applied to a free program +could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS + +#### 0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +#### 1. Source Code. + +The "source code" for a work means the preferred form of the work for +making modifications to it. "Object code" means any non-source form of +a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +#### 2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +#### 4. Conveying Verbatim Copies. + +You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +#### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + +- a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. +- b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section 4 + to "keep intact all notices". +- c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +- d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +#### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + +- a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. +- b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the Corresponding + Source from a network server at no charge. +- c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. +- d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. +- e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the general + public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +#### 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +- a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or +- b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or +- c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or +- d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or +- e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or +- f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the recipient, + for any liability that these contractual assumptions directly + impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +#### 8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +#### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +#### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +#### 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned +or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +#### 12. No Surrender of Others' Freedom. + +If 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 convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +#### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +#### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU 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 that a certain numbered version of the GNU General Public +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that numbered version or +of any later version published by the Free Software Foundation. If the +Program does not specify a version number of the GNU General Public +License, you may choose any version ever published by the Free +Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +#### 15. Disclaimer of Warranty. + +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. + +#### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS 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. + +#### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +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 state +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 3 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, see . + +Also add information on how to contact you by electronic and paper +mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your +program's commands might be different; for a GUI interface, you would +use an "about box". + +You should also get your employer (if you work as a programmer) or +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. For more information on this, and how to apply and follow +the GNU GPL, see . + +The GNU 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. But first, +please read . diff --git a/apaxy/Dockerfile b/apaxy/Dockerfile new file mode 100644 index 0000000..030ae44 --- /dev/null +++ b/apaxy/Dockerfile @@ -0,0 +1,53 @@ +# bash docker image will be used for configuring apaxy +FROM bash + +# set apaxyPath to the path where you want apaxy to be installed +# by default, apaxy will be available at "/" (web root) +ARG apaxyPath="" + +# copy apaxy and proceed to configuration +WORKDIR / +COPY . / +RUN bash apaxy-configure.sh -w "${apaxyPath}" + +# httpd docker image will be used for running apaxy +FROM httpd:2.4 + +# set apaxyPath to the path where you want apaxy to be installed +# by default, apaxy will be available at "/" (web root) +ARG apaxyPath="" + +# image labels and description +LABEL name="apaxy" \ + description="Apaxy is a customisable theme built to enhance the experience of browsing web directories. It uses the mod_autoindex Apache module — and some CSS — to override the default style of a directory listing" \ + maintainer="Ploc" \ + url="https://oupala.github.io/apaxy/" + +# remove index.html file from original httpd image +RUN rm /usr/local/apache2/htdocs/index.html + +# enable apache config to be overridden by .htaccess files +RUN sed -i '//,/<\/Directory>/ s/AllowOverride None/AllowOverride Options Indexes FileInfo/' /usr/local/apache2/conf/httpd.conf + +# define apache listen port on a port greater than 1024 to allow a non-root user to start apache +RUN sed -i 's/Listen\ 80/Listen\ 8080/g' /usr/local/apache2/conf/httpd.conf +EXPOSE 8080 + +# create 'me' group whith gid 1000 and 'me' user in this group with uid 1000 +# see https://docs.openshift.com/enterprise/3.2/creating_images/guidelines.html#use-uid +RUN groupadd -f -g 1000 me && \ + useradd -u 1000 -g me me + +# copy apaxy directory +COPY --from=0 /var/www/html${apaxyPath} /usr/local/apache2/htdocs${apaxyPath} + +WORKDIR /usr/local/apache2/htdocs${apaxyPath} +RUN for file_extension in 3dml 3ds 3g2 3gp 7z aac adp ai aif aifc aiff apk appcache asf asm asx atom au avi azw bat bin bmp bpk btif bz bz2 c cab caf cb7 cba cbr cbt cbz cc cgm class cmx com conf cpp css csv curl cxx dcurl deb def deploy dic diff dist distz djv djvu dll dmg dms doc docx dot dra dsc dtd dts dtshd dump dvb dwg dxf ecelp4800 ecelp7470 ecelp9600 elc eol eps epub etx exe f f4v f77 f90 fbs fh fh4 fh5 fh7 fhc flac fli flv flx fly for fpx fst fvt g3 gif gv gz gzip h h261 h263 h264 hh hpp htm html ico ics ief ifb in iso jad jar java jpe jpeg jpg jpgm jpgv jpm js json kar ktx latex list log lrf lvp m1v m2a m2v m3a m3u m3u8 m4a m4u m4v Makefile man mar markdown mcurl md mdb mdi me mid midi mj2 mjp2 mk3d mka mks mkv mmr mng mobi mov movie mp2 mp2a mp3 mp4 mp4a mp4v mpe mpeg mpg mpg4 mpga mpkg ms msi mxu n3 nfo npx odb odc odf odft odg odi odm odp ods odt oga ogg ogv opml otc otf otg oth oti otp ots ott p pas patch pbm pct pcx pdf pgm php phtml pic pkg pls png pnm pot ppm pps ppsx ppt pptx prc ps psd py pya pyv qt ra ram rar ras rb README rgb rip rlc rmi rmp roff rpm rss rtf rtx s s3m sass scss scurl sfv sgi sgm sgml sh sid sil smv snd so spot spx sql sub svg svgz t tar tex text tga tif tiff torrent tr tsv ttc ttf ttl txt udeb uri uris urls uu uva uvg uvh uvi uvm uvp uvs uvu uvv uvva uvvg uvvh uvvi uvvm uvvp uvvs uvvu uvvv vcard vcf vcs viv vob wav wax wbmp wdp weba webm webp wm wma wml wmls wmv wmx woff woff2 wvx xbm xcf xht xhtml xif xla xlc xlm xls xlsx xlt xlw xm xml xpm xwd xsl zip; do touch example.${file_extension}; done +RUN touch README + +# allow user 'me' to read apache's files +RUN chown -R me:root /usr/local/apache2/ && \ + chmod -R g+rwX /usr/local/apache2/ + +# start container as me +USER me diff --git a/apaxy/README.md b/apaxy/README.md new file mode 100644 index 0000000..84dc3dc --- /dev/null +++ b/apaxy/README.md @@ -0,0 +1,151 @@ +# Apaxy + +apaxy is a customisable theme built to enhance the experience of browsing web directories. It uses the `mod_autoindex` Apache module - and some css - to override the default style of a directory listing. + +## Table of contents + +- [features](#features) +- [installation](#installation) +- [docker image](#docker-image) +- [apaxy themes](#apaxy-themes) +- [media types](#media-types) +- [gallery](#gallery) +- [troubleshooting](#troubleshooting) +- [credits](#credits) + +## Features + +Apaxy may be basic, but it gives you a great deal of creative freedom when styling your directory. + +- style your directory listing with css +- make it pop with javascript +- add welcome messages, download instructions or copyright notices +- add custom media type icons (requires editing the `.htaccess` file) +- use custom error pages + +*Sadly, visual style is all you can work with. It's not possible to alter the generated table structure of the listing directory with Apaxy.* + +## Installation + +apaxy requires an apache (2.2.11+) enabled http server. + +### Quick start + +If you would like, you can automate the installation of Apaxy with the included `apaxy-configure.sh` script. + +To get started, first open `apaxy.config` in your favorite editor, then edit the `apacheWebRootPath` and `installWebPath` variables to correspond to your server's settings. Save the file and exit. + +You can set some parameters of `apaxy.config` on the command line instead of the config file. You can see the documentation of the cli with the following command: `apaxy-configure.sh -h`. + +Then run the configuration script as a user that can write to the `installWebPath` directory. With apache under debian, this would be the `www-data` user: + +```bash +$ sudo -u www-data ./apaxy-configure.sh +``` + +The files will be copied to the web server directory, and modified automatically based on the settings specified. + +### Manual install + +Let's assume you have a folder named `share` in your server root directory (the path thus being `http://mywebsite.com/share`) that you'd like to use as your listing directory: + +- [download](https://github.com/oupala/apaxy/archive/master.zip) and unzip apaxy +- copy and paste the contents of the `/apaxy` folder to your `/share` folder +- edit `htaccess.txt` (now in the `/share` folder) and update all instances of paths marked with *{FOLDERNAME}* to point to your site root + +So... + +```apache +AddIconByType (gif,{FOLDERNAME}/theme/icons/gif.png) image/gif +``` + +Should be changed to... + +```apache +AddIconByType (gif,/share/theme/icons/gif.png) image/gif +``` + +- if you want to enable the [gallery](#gallery) feature, overwrite the header and footer files: + +```bash +mv footer-lightgallery.html footer.html +mv header-lightgallery.html header.html +``` + +- edit `footer.html`, along with all the other `html` documents (in the `/share/theme` folder) and update all instances of paths marked with *{FOLDERNAME}* to point to your site root + +So... + +```html + +``` + +Should be changed to... + +```html + +``` + +- once done, rename `htaccess.txt` to `.htaccess` in the `/share` directory +- [treat yo'self](http://25.media.tumblr.com/tumblr_lw7q28y0Mz1qanm80o1_500.gif), you're done! + +## Docker image + +A [local Demo](http://localhost:8080) can be started with docker. + +```bash +docker-compose up +``` + +## Apaxy themes + +If you'd like to alter the default Apaxy theme, look in the `/theme` folder and you'll find the following files: + +- `header.html` +- `footer.html` +- `style.css` + +Edit these as you would any other html or css file. + +Adding your own icons is a little more involved. You'll need to edit the main Apaxy `.htaccess` file. Look for the following as an example: + +```apache +AddIconByType (gif,{FOLDERNAME}/theme/icons/gif.png) image/gif +``` + +The above rule will assign an icon named `gif.png` from the directory `{FOLDERNAME}/theme/icons/` to any file whose media type is `image/gif`. + +This url path is relative to your site's root. + +## Media types + +The default apaxy theme `/themes/apaxy` has icons in place for the following media types: + +3dml 3ds 3g2 3gp 7z aac adp ai aif aifc aiff apk appcache asf asm asx atom au avi azw bat bin bmp bpk btif bz bz2 c cab caf cb7 cba cbr cbt cbz cc cgm class cmx com conf cpp css csv curl cxx dcurl deb def deploy dic diff dist distz djv djvu dll dmg dms doc docx dot dra dsc dtd dts dtshd dump dvb dwg dxf ecelp4800 ecelp7470 ecelp9600 elc eol eps epub etx exe f f4v f77 f90 fbs fh fh4 fh5 fh7 fhc flac fli flv flx fly for fpx fst fvt g3 gif gv gz gzip h h261 h263 h264 hh hpp htm html ico ics ief ifb in iso jad jar java jpe jpeg jpg jpgm jpgv jpm js json kar ktx latex list log lrf lvp m1v m2a m2v m3a m3u m3u8 m4a m4u m4v Makefile man mar markdown mcurl md mdb mdi me mid midi mj2 mjp2 mk3d mka mks mkv mmr mng mobi mov movie mp2 mp2a mp3 mp4 mp4a mp4v mpe mpeg mpg mpg4 mpga mpkg ms msi mxu n3 nfo npx odb odc odf odft odg odi odm odp ods odt oga ogg ogv opml otc otf otg oth oti otp ots ott p pas patch pbm pct pcx pdf pgm php phtml pic pkg pls png pnm pot ppm pps ppsx ppt pptx prc ps psd py pya pyv qt ra ram rar ras rb README rgb rip rlc rmi rmp roff rpm rss rtf rtx s s3m sass scss scurl sfv sgi sgm sgml sh sid sil smv snd so spot spx sql sub svg svgz t tar tex text tga tif tiff torrent tr tsv ttc ttf ttl txt udeb uri uris urls uu uva uvg uvh uvi uvm uvp uvs uvu uvv uvva uvvg uvvh uvvi uvvm uvvp uvvs uvvu uvvv vcard vcf vcs viv vob wav wax wbmp wdp weba webm webp wm wma wml wmls wmv wmx woff woff2 wvx xbm xht xhtml xif xla xlc xlm xls xlsx xlt xlw xm xml xpmxwd xsl zip + +## Gallery + +You can enable a gallery feature on apaxy. This feature is based on [lightgallery.js](https://sachinchoolur.github.io/lightgallery.js/). + +See [installation](#installation) section for more information. + +## Troubleshooting + +Make sure the options set in `.htaccess` files of Apaxy can actually be changed. This means that you need to allow to override the used options in your apache configuration of the directory apaxy used with: `AllowOverride Indexes`. + +Find more information in the in the [apache documentation](https://httpd.apache.org/docs/current/mod/core.html#allowoverride). + +## Credits + +apaxy owes its existence to the amazing [h5ai](http://larsjung.de/h5ai/) by [Lars Jung](https://twitter.com/lrsjng). Had I not seen this, I would never have looked into making my own (probably way less useful) version. + +[Faenza icons](http://tiheum.deviantart.com/art/Faenza-Icons-173323228) are used in the `apaxy` theme. [Faenza icon theme](https://code.google.com/archive/p/faenza-icon-theme/) has been released under GPLv3 licence. + +## Licence + +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 3 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, see . + diff --git a/apaxy/apaxy-configure.sh b/apaxy/apaxy-configure.sh new file mode 100755 index 0000000..fea382a --- /dev/null +++ b/apaxy/apaxy-configure.sh @@ -0,0 +1,306 @@ +#!/bin/bash +# +# apaxy configurator +# v0.2 +# configure apaxy according to your local paths and configuration +# author : Jordan Bancino and Ploc +# contact : jordan [@] bancino.net +# licence : GPLv3 + +# enabling strict mode +# -e - exit immediatly on error (disable with "+e" when an error can happens, then enable it again with "-e") +# -u - undefined variables are forbidden (enable this option after getting parameters from $1 $2...) see below +# -o pipefail - find error return code inside piped commands +# IFS - set strong internal field separator +set -eo pipefail +IFS=$'\n\t' + +# default config +defaultConfigFile="apaxy.config" +defaultApacheWebRootPath="/var/www/html" +defaultInstallWebPath="" +defaultEnableGallery=false +defaultHeaderMessage="" +defaultFooterMessage="" +defaultLogLevel=2 +defaultLogFile="$(basename "${0}" .sh).log" + +workingDirectory="$(dirname "${0}")" +logLevel="${defaultLogLevel}" + +# functions + +### + # display help + ## +displayHelp () { + cat <> "${logFile}" + fi +} + +# getting parameters value from cli (can overload config file values) +while [ "$#" -ge 1 ] ; do + case "${1}" in + -h|--help) # display help + displayHelp + exit 0 + ;; + -c) # set path/to/apaxy.config file that contains all configuration + shiftStep=2 + paramConfigFile="${2}" + ;; + -d) # set path/to/dir/ directory where apaxy will be available on the httpd server + shiftStep=2 + paramApacheWebRootPath="${2}" + ;; + -w) # set path/to/dir/ directory where apaxy will be installed on the filesystem + shiftStep=2 + paramInstallWebPath="${2}" + ;; + -g) # enable or disable gallery feature + shiftStep=2 + paramEnableGallery="${2}" + ;; + -hm) # set the default header message displayed on top of each page + shiftStep=2 + paramHeaderMessage="${2}" + ;; + -fm) # set the default footer message displayed on bottom of each page + shiftStep=2 + paramFooterMessage="${2}" + ;; + -ll) # set the log level + shiftStep=2 + paramLogLevel="${2}" + ;; + -lf) # set the log file + shiftStep=2 + paramLogFile="${2}" + ;; + *) + displayUsage + exit 2 + ;; + esac + + if [ "$#" -ge "${shiftStep}" ] + then + shift "${shiftStep}" + else + log 1 "ERROR - invalid number of arguments" + exit 3 + fi +done + +# setting parameters value +if [ -r "${paramConfigFile}" ] +then + # getting parameters value from config file (config file name set by cli values) + configFile="${paramConfigFile}" + # shellcheck source=apaxy.config + source "${configFile}" +elif [ -r "${workingDirectory}/${defaultConfigFile}" ] +then + # getting parameters value from config file (config file name is default) + configFile="${workingDirectory}/${defaultConfigFile}" + # shellcheck source=apaxy.config + source "${configFile}" +else + log 1 "apaxy configuration not found, using internal config from script shell itself" + configFile=null +fi + +if [ -n "${paramApacheWebRootPath}" ] +then + apacheWebRootPath="${paramApacheWebRootPath}" +elif [ -z "${apacheWebRootPath}" ] +then + apacheWebRootPath="${defaultApacheWebRootPath}" +fi + +if [ -n "${paramInstallWebPath}" ] +then + installWebPath="${paramInstallWebPath}" +elif [ -z "${installWebPath}" ] +then + installWebPath="${defaultInstallWebPath}" +fi + +if [ -n "${paramApacheWebRootPath}" ] +then + apacheWebRootPath="${paramApacheWebRootPath}" +elif [ -z "${apacheWebRootPath}" ] +then + apacheWebRootPath="${defaultApacheWebRootPath}" +fi + +if [ -n "${paramInstallWebPath}" ] +then + installWebPath="${paramInstallWebPath}" +elif [ -z "${installWebPath}" ] +then + installWebPath="${defaultInstallWebPath}" +fi + +installDir="${apacheWebRootPath}${installWebPath}" + +if [ -n "${paramEnableGallery}" ] +then + enableGallery="${paramEnableGallery}" +elif [ -z "${enableGallery}" ] +then + enableGallery="${defaultEnableGallery}" +fi + +if [ -n "${paramHeaderMessage}" ] +then + headerMessage="${paramHeaderMessage}" +elif [ -z "${headerMessage}" ] +then + headerMessage="${defaultHeaderMessage}" +fi + +if [ -n "${paramFooterMessage}" ] +then + footerMessage="${paramFooterMessage}" +elif [ -z "${footerMessage}" ] +then + footerMessage="${defaultFooterMessage}" +fi + +if [ -n "${paramLogLevel}" ] +then + logLevel="${paramLogLevel}" +elif [ -z "${logLevel}" ] +then + logLevel="${defaultLogLevel}" +fi + +if [ -n "${paramLogFile}" ] +then + logFile="${paramLogFile}" +elif [ -z "${logFile}" ] +then + logFile="${workingDirectory}/${defaultLogFile}" +fi + +# enabling strict mode +# -u - undefined variables are forbidden (enable this option after getting parameters from $1 $2...) +set -u + +# checking parameters value +if [ ! -d "$(dirname "${logFile}")" ] +then + log 1 "ERROR - $(dirname "${logFile}") does not exist" + exit 4 +fi + +# script + +# output current config +log 3 "- current config" +log 3 " configFile: ${configFile}" +log 3 " apacheWebRootPath: ${apacheWebRootPath}" +log 3 " installWebPath: ${installWebPath}" +log 3 " installDir: ${installDir}" +log 3 " enableGallery: ${enableGallery}" +log 3 " headerMessage: ${headerMessage}" +log 3 " footerMessage: ${footerMessage}" +log 3 " logLevel: ${logLevel}" +log 3 " logFile: ${logFile}" + +log 1 "- creating install directory ${installDir}" +mkdir -p "${installDir}" +if [ ! -d "${installDir}" ] || [ ! -w "${installDir}" ]; then + log 1 "ERROR - install directory ${installDir} does not exist or is not writable by the current user" + exit 5 +fi + +log 1 "- copying apaxy in install directory" +# we want globbing +# shellcheck disable=SC2086 +cp -r ${workingDirectory}/apaxy/* "${installDir}/" + +log 1 "- configuring apaxy in install directory" + +log 2 "- generating htaccess" +sed "s|{FOLDERNAME}|${installWebPath}|g" < "${installDir}/htaccess.txt" > "${installDir}/.htaccess" +rm "${installDir}/htaccess.txt" + +if [ "${enableGallery}" = "true" ] +then + log 1 "- enabling gallery feature" + mv -f "${installDir}/theme/header-lightgallery.html" "${installDir}/theme/header.html" + mv -f "${installDir}/theme/footer-lightgallery.html" "${installDir}/theme/footer.html" +else + log 2 "- gallery feature not enabled" +fi + +# find all the html files and replace the variable in them +# this will automatically take care of the error pages, headers and footers +log 2 "- setting path in html files" +files=$(find ${installDir} -name "*.html") +while read -r file; do + sed -i "s|{FOLDERNAME}|${installWebPath}|g" "${file}" + sed -i "s|{HEADER-MESSAGE}|${headerMessage}|g" "${file}" + sed -i "s|{FOOTER-MESSAGE}|${footerMessage}|g" "${file}" +done <<< "${files}" + +log 2 "- syncing filesystem" +sync +log 1 "- filesystem has been synced and is now consistent" +log 1 "- apaxy has been successfully configured and installed in ${installDir}" diff --git a/apaxy/apaxy.config b/apaxy/apaxy.config new file mode 100644 index 0000000..8de3fc0 --- /dev/null +++ b/apaxy/apaxy.config @@ -0,0 +1,58 @@ +#!/bin/bash +# +# apaxy configurator +# v0.2 +# use "apaxy-configure.sh" to configure apaxy after adjusting the needed values in this file +# author : Jordan Bancino and Ploc +# contact : jordan [@] bancino.net +# licence : GPLv3 + +# default log level on the console (the lower the number is, the less verbose it is) +#defaultLogLevel=2 + +# all log messages are written to log file +#defaultLogFile="apaxy.log" + +# the apache web root path where the server serves documents +# +# default for apache is /var/www/html +# +# note that path should be absolute, so make sure it starts with a "/" +# and DO NOT leave a trailing slash +# +# good: "/var/www/html" <- starts with "/", does not have trailing "/" +# bad : "var/www/html/" <- does not start with "/", have a trailing "/" +# +apacheWebRootPath="/var/www/html" + +# the directory where apaxy will be used (this is relative to the web server root, and contains the "theme" folder) +# +# for instance: "http://example.org/share" would make this value "/share", where "/share/theme" is the theme directory +# +# note that path should be absolute, so make sure it starts with a "/" +# and DO NOT leave a trailing slash +# +# good: "/share" <- starts with "/", does not have trailing "/" +# bad : "share/" <- does not start with "/", has a trailing "/" +# +# by default, apaxy is configured to be installed at the root level of your web server +# +# if you want apaxy to be installed anywhere else, you can set it in the installWebPath variable +# +# installWebPath="/share" +# +installWebPath="" + +# enable lightgallery.js to preview images in the browser with navigation links +# +# this feature is disabled by default as it downloads css and js files from a CDN +# +# please enable it with caution +# +enableGallery=false + +# set the default header message displayed on top of each page +defaultHeaderMessage="" + +# set the default footer message displayed on bottom of each page +defaultFooterMessage="" diff --git a/apaxy/apaxy/htaccess.txt b/apaxy/apaxy/htaccess.txt new file mode 100644 index 0000000..f5b7171 --- /dev/null +++ b/apaxy/apaxy/htaccess.txt @@ -0,0 +1,438 @@ +# +# apaxy +# Copyright (C) 2021 @adamwhitcroft +# +# 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 3 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, see . +# + +# +# for a full breakdown of the mod_autoindex module: +# http://apache.org/docs/2.4/mod/mod_autoindex.html +# + +# +# official media types list from IANA +# https://www.iana.org/assignments/media-types/media-types.xhtml +# +# media types included in apache +# https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +# + +# enable indexing +Options +Indexes + +# index options +IndexOptions +Charset=UTF-8 +FancyIndexing +FoldersFirst +HTMLTable +IconsAreLinks +IgnoreCase +NameWidth=* +SuppressDescription +SuppressRules +XHTML + +# favicon & meta viewport +IndexHeadInsert "\ + \ + " + +# hide ".htaccess" file and "/theme" directory +IndexIgnore .htaccess /theme + + +# +# general icons (blank, directory, parent directory) +# + +# +# replace {FOLDERNAME} with your directory url +# +# if your directory is http://mywebsite.com/share/ you would change to: +# +# AddIcon /share/theme/icons/empty.svg ^^BLANKICON^^ +# + +AddIcon {FOLDERNAME}/theme/icons/empty.svg ^^BLANKICON^^ +AddIcon {FOLDERNAME}/theme/icons/folder.svg ^^DIRECTORY^^ +AddIcon {FOLDERNAME}/theme/icons/user-home.svg .. + +# +# unused icons (that should be soon removed) +# +# folder-open.svg => maybe a js when a folder is hovered +# folder-document.svg +# + + +# +# image +# + +# ext: ai eps ps +AddIconByType (ps,{FOLDERNAME}/theme/icons/image-x-eps.svg) application/postscript + +# ext: bmp +AddIconByType (bmp,{FOLDERNAME}/theme/icons/image-bmp.svg) image/bmp + +# ext: gif +AddIconByType (gif,{FOLDERNAME}/theme/icons/image-gif.svg) image/gif + +# ext: ico +AddIconByType (ico,{FOLDERNAME}/theme/icons/image-x-ico.svg) image/x-icon + +# ext: jpg jpeg jpe +AddIconByType (jpg,{FOLDERNAME}/theme/icons/image-jpeg.svg) image/jpeg + +# ext: png +AddIconByType (png,{FOLDERNAME}/theme/icons/image-png.svg) image/png + +# ext: psd +AddIconByType (psd,{FOLDERNAME}/theme/icons/image-x-psd.svg) image/vnd.adobe.photoshop + +# ext: svg svgz +AddIconByType (draw,{FOLDERNAME}/theme/icons/x-office-drawing.svg) image/svg+xml + +# ext: tiff tif +AddIconByType (tiff,{FOLDERNAME}/theme/icons/image-tiff.svg) image/tiff + +# xcf media type not yet included in apache, fallback to AddIcon +# ext: xcf +#AddIconByType (xcf,{FOLDERNAME}/theme/icons/image-x-xcf.svg) image/x-xcf +AddIcon {FOLDERNAME}/theme/icons/image-x-xcf.svg .xcf + +# all other images +# ext: bmp cgm g3 gif ief jpeg jpg jpe ktx png btif sgi svg svgz tiff tif psd uvi uvvi uvg uvvg djvu djv sub dwg dxf fbs fpx fst mmr rlc mdi wdp npx wbmp xif webp 3ds ras cmx fh fhc fh4 fh5 fh7 ico sid pcx pic pct pnm pbm pgm ppm rgb tga xbm xpm xwd +# ext: odg +# ext: otg +# ext: odi +# ext: oti +AddIconByType (image,{FOLDERNAME}/theme/icons/image-x-generic.svg) image/* \ + application/vnd.oasis.opendocument.graphics \ + application/vnd.oasis.opendocument.graphics-template \ + application/vnd.oasis.opendocument.image \ + application/vnd.oasis.opendocument.image-template + + +# +# audio +# + +# audio playlist +# ext: m3u +# ext: m3u8 +# ext: pls +AddIconByType (playlist,{FOLDERNAME}/theme/icons/audio-x-mp3-playlist.svg) audio/x-mpegurl \ + application/vnd.apple.mpegurl \ + application/pls+xml + +# all audio +# ext: adp au snd mid midi kar rmi m4a mp4a mpga mp2 mp2a mp3 m2a m3a oga ogg spx s3m sil uva uvva eol dra dts dtshd lvp pya ecelp4800 ecelp7470 ecelp9600 rip weba aac aif aiff aifc caf flac mka m3u wax wma xm rmp ram ra wav +AddIconByType (audio,{FOLDERNAME}/theme/icons/audio-x-generic.svg) audio/* + + +# +# video +# + +# video playlist +# ext: mxu m4u +AddIconByType (playlist,{FOLDERNAME}/theme/icons/video-x-generic.svg) video/vnd.mpegurl + +# all video +# ext: 3g2 3gp h261 h263 h264 jpgv jpm jpgm mj2 mjp2 mp4 mp4v mpg4 mpeg mpg mpe m1v m2v ogv qt mov uvh uvvh uvm uvvm uvp uvvp uvs uvvs uvv uvvv dvb fvt mxu m4u pyv uvu uvvu viv webm f4v fli flv m4v mkv mk3d mks mng asf asx avi vob wmv wm wmx wvx movie smv +AddIconByType (video,{FOLDERNAME}/theme/icons/video-x-generic.svg) video/* + + +# +# internet +# + +# ext: html htm +# ext: xhtml xht +# ext: uri uris urls +AddIconByType (html,{FOLDERNAME}/theme/icons/text-html.svg) text/html \ + application/xhtml+xml \ + text/uri-list + +# ext: rss +# ext: atom +AddIconByType (rss,{FOLDERNAME}/theme/icons/application-rss+xml.svg) application/rss+xml \ + application/atom+xml + +# ext: ics ifb +# ext: vcs +AddIconByType (vcal,{FOLDERNAME}/theme/icons/evolution-calendar.svg) text/calendar \ + text/x-vcalendar + +# ext: vcard +# ext: vcf +AddIconByType (vcard,{FOLDERNAME}/theme/icons/addressbook.svg) text/vcard \ + text/x-vcard + +# ext: torrent +AddIconByType (torrent,{FOLDERNAME}/theme/icons/application-x-bittorrent.svg) application/x-bittorrent + + +# +# office +# + +# ext: odc +# ext: otc +# ext: odf +# ext: odft +# ext: ods +# ext: ots +# ext: csv +# ext: xls xlm xla xlc xlt xlw +# ext: xlsx +AddIconByType (calc,{FOLDERNAME}/theme/icons/x-office-spreadsheet.svg) application/vnd.oasis.opendocument.chart \ + application/vnd.oasis.opendocument.chart-template \ + application/vnd.oasis.opendocument.formula \ + application/vnd.oasis.opendocument.formula-template \ + application/vnd.oasis.opendocument.spreadsheet \ + application/vnd.oasis.opendocument.spreadsheet-template \ + text/csv \ + application/vnd.ms-excel \ + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + +# ext: odt +# ext: odm +# ext: ott +# ext: oth +# ext: doc dot +# ext: docx +AddIconByType (doc,{FOLDERNAME}/theme/icons/x-office-document.svg) application/vnd.oasis.opendocument.text \ + application/vnd.oasis.opendocument.text-master \ + application/vnd.oasis.opendocument.text-template \ + application/vnd.oasis.opendocument.text-web \ + application/msword \ + application/vnd.openxmlformats-officedocument.wordprocessingml.document + +# ext: odp +# ext: otp +# ext: ppt pps pot +# ext: pptx +# ext: ppsx +AddIconByType (slideshow,{FOLDERNAME}/theme/icons/x-office-presentation.svg) application/vnd.oasis.opendocument.presentation \ + application/vnd.oasis.opendocument.presentation-template \ + application/vnd.ms-powerpoint \ + application/vnd.openxmlformats-officedocument.presentationml.presentation \ + application/vnd.openxmlformats-officedocument.presentationml.slideshow + +# ext: mdb +# ext: odb +AddIconByType (database,{FOLDERNAME}/theme/icons/text-x-sql.svg) application/x-msaccess \ + application/vnd.oasis.opendocument.database + +# ext: pdf +AddIconByType (pdf,{FOLDERNAME}/theme/icons/application-pdf.svg) application/pdf + +# ext: rtf +AddIconByType (rtf,{FOLDERNAME}/theme/icons/text-richtext.svg) application/rtf + +# ext: latex +# ext: tex +AddIconByType (tex,{FOLDERNAME}/theme/icons/text-x-tex.svg) application/x-latex \ + application/x-tex + + +# +# programming +# + +# h media type not yet included in apache, fallback to AddIcon +# ext: h +#AddIconByType (h,{FOLDERNAME}/theme/icons/text-x-chdr.svg) text/x-h +AddIcon {FOLDERNAME}/theme/icons/text-x-chdr.svg .h + +# hpp files do not have a specific media type, fallback to AddIcon +# ext: hpp +AddIcon {FOLDERNAME}/theme/icons/text-x-c++hdr.svg .hpp + +# cpp files do not have a specific media type, fallback to AddIcon +# ext: cpp +AddIcon {FOLDERNAME}/theme/icons/text-x-c++.svg .cpp + +# ext: c cc cxx cpp h hh dic +AddIconByType (c,{FOLDERNAME}/theme/icons/text-x-c.svg) text/x-c + +# ext: java +# ext: jar +# ext: class +AddIconByType (java,{FOLDERNAME}/theme/icons/text-x-java.svg) text/x-java-source \ + application/java-archive \ + application/java-vm + +# sass and scss files do not have a specific media type, fallback to AddIcon +# ext: sass scss +AddIcon {FOLDERNAME}/theme/icons/text-css.svg .sass .scss + +# ext: css +AddIconByType (css,{FOLDERNAME}/theme/icons/text-css.svg) text/css + +# ext: js +# ext: json +AddIconByType (js,{FOLDERNAME}/theme/icons/text-x-javascript.svg) application/javascript \ + application/json + +# diff and patch files do not have a specific media type, fallback to AddIcon +# ext: diff patch +AddIcon {FOLDERNAME}/theme/icons/text-x-source.svg .diff .patch + +# makefile files do not have a specific media type, fallback to AddIcon +# ext: Makefile +AddIcon {FOLDERNAME}/theme/icons/text-x-makefile.svg Makefile + +# php files do not have a specific media type, fallback to AddIcon +# ext: php phtml +AddIcon {FOLDERNAME}/theme/icons/application-x-php.svg .php .phtml + +# python files do not have a specific media type, fallback to AddIcon +# ext: py +AddIcon {FOLDERNAME}/theme/icons/text-x-python.svg .py + +# ruby files do not have a specific media type, fallback to AddIcon +# ext: rb +AddIcon {FOLDERNAME}/theme/icons/application-x-ruby.svg .rb + +# ext: sql +AddIconByType (sql,{FOLDERNAME}/theme/icons/text-x-sql.svg) application/x-sql + +# ext: xml xsl +# ext: dtd +AddIconByType (xml,{FOLDERNAME}/theme/icons/text-xml.svg) application/xml \ + application/xml-dtd + + +# +# sysadmin +# + +# pkg files do not have a specific media type, fallback to AddIcon +# ext: pkg +AddIcon {FOLDERNAME}/theme/icons/package-x-generic.svg .pkg + +# ext: bin dms lrf mar so dist distz pkg bpk dump elc deploy +AddIconByType (bin,{FOLDERNAME}/theme/icons/multipart-encrypted.svg) application/octet-stream + +# ext: iso +AddIconByType (cd,{FOLDERNAME}/theme/icons/application-x-cd-image.svg) application/x-iso9660-image + +# ext: deb udeb +AddIconByType (deb,{FOLDERNAME}/theme/icons/deb.svg) application/x-debian-package + +# msi files do not have a specific media type, fallback to AddIcon +# ext: msi +AddIcon {FOLDERNAME}/theme/icons/text-x-install.svg .msi + +# ext: exe dll com bat msi +AddIconByType (exe,{FOLDERNAME}/theme/icons/application-x-ms-dos-executable.svg) application/x-msdownload + +# ext: dmg +# ext: mpkg +# ext: apk +AddIconByType (package,{FOLDERNAME}/theme/icons/package-x-generic.svg) application/x-apple-diskimage \ + application/vnd.apple.installer+xml \ + application/vnd.android.package-archive + +# rpm files do not have a specific media type, fallback to AddIcon +# ext: rpm +AddIcon {FOLDERNAME}/theme/icons/rpm.svg .rpm + +# ext: sh +AddIconByType (script,{FOLDERNAME}/theme/icons/text-x-script.svg) application/x-sh + +# ext: ttc otf ttf woff2 woff +AddIconByType (font,{FOLDERNAME}/theme/icons/font-x-generic.svg) font/* + +# +# archives +# + +# ext: gz +AddIconByType (gzip,{FOLDERNAME}/theme/icons/application-x-archive.svg) application/x-gzip + +# gzip media type does not include .gzip file extension, fallback to AddIcon +# ext: gzip +AddIcon {FOLDERNAME}/theme/icons/application-x-archive.svg .gzip + +# ext: rar +AddIconByType (rar,{FOLDERNAME}/theme/icons/application-x-rar.svg) application/x-rar-compressed + +# ext: tar +AddIconByType (tar,{FOLDERNAME}/theme/icons/application-x-tar.svg) application/x-tar + +# ext: zip +AddIconByType (zip,{FOLDERNAME}/theme/icons/application-x-zip.svg) application/zip + +# ext: 7z bz bz2 cab +AddIconByType (archive,{FOLDERNAME}/theme/icons/application-x-archive.svg) application/x-7z-compressed \ + application/x-bzip \ + application/x-bzip2 \ + application/vnd.ms-cab-compressed + + +# +# books +# + +# ext: cbr cba cbt cbz cb7 +AddIconByType (text,{FOLDERNAME}/theme/icons/image-x-generic.svg) application/x-cbr + +# ext: epub +# ext: prc mobi +# ext: azw +AddIconByType (text,{FOLDERNAME}/theme/icons/text-plain.svg) application/epub+zip \ + application/x-mobipocket-ebook \ + application/vnd.amazon.ebook + + +# +# text +# + +# readme files do not have a specific media type, fallback to AddIcon +# ext: README +AddIcon {FOLDERNAME}/theme/icons/text-x-readme.svg README + +# markdown media type not yet included in apache, fallback to AddIcon +# ext: markdown md +#AddIconByType (markdown,{FOLDERNAME}/theme/icons/text-richtext.svg) text/mardown +AddIcon {FOLDERNAME}/theme/icons/text-richtext.svg .markdown .md + +# this directive has to be at the end of the file because the text/* media type is very generic and should not be interpreted before other more specific directives +# ext: appcache ics ifb css csv html htm n3 txt text conf def list log in dsc rtx sgml sgm tsv t tr roff man me ms ttl uri uris urls vcard curl dcurl mcurl scurl sub fly flx gv 3dml spot jad wmls wml s asm c cc cxx cpp h hh dic f for f77 f90 java nfo opml p pas etx sfv uu vcs vcf +AddIconByType (text,{FOLDERNAME}/theme/icons/text-plain.svg) text/* + + +# +# default +# + +DefaultIcon {FOLDERNAME}/theme/icons/empty.svg + + +# +# theme files +# + +HeaderName {FOLDERNAME}/theme/header.html +ReadmeName {FOLDERNAME}/theme/footer.html +IndexStyleSheet {FOLDERNAME}/theme/style.css + + +# +# error pages +# + +ErrorDocument 400 {FOLDERNAME}/theme/400.html +ErrorDocument 403 {FOLDERNAME}/theme/403.html +ErrorDocument 404 {FOLDERNAME}/theme/404.html +ErrorDocument 408 {FOLDERNAME}/theme/408.html +ErrorDocument 500 {FOLDERNAME}/theme/500.html +ErrorDocument 502 {FOLDERNAME}/theme/502.html diff --git a/apaxy/apaxy/theme/.htaccess b/apaxy/apaxy/theme/.htaccess new file mode 100644 index 0000000..f9e5472 --- /dev/null +++ b/apaxy/apaxy/theme/.htaccess @@ -0,0 +1,9 @@ +# +# Apaxy by @adamwhitcroft +# +# For a full breakdown of the mod_autoindex module +# http://apache.org/docs/2.2/mod/mod_autoindex.html +# + +# Don't index this folder +Options -Indexes diff --git a/apaxy/apaxy/theme/400.html b/apaxy/apaxy/theme/400.html new file mode 100644 index 0000000..1b608e5 --- /dev/null +++ b/apaxy/apaxy/theme/400.html @@ -0,0 +1,18 @@ + + + + + + Error 400 + + + + +
+

Error.

+
400 +
+

Sorry, I don't understand what you want me to do.

+
+ + diff --git a/apaxy/apaxy/theme/403.html b/apaxy/apaxy/theme/403.html new file mode 100644 index 0000000..f9f20e2 --- /dev/null +++ b/apaxy/apaxy/theme/403.html @@ -0,0 +1,18 @@ + + + + + + Error 403 + + + + +
+

Error.

+
403 +
+

You aren't allowed to be here.

+
+ + diff --git a/apaxy/apaxy/theme/404.html b/apaxy/apaxy/theme/404.html new file mode 100644 index 0000000..d851ebf --- /dev/null +++ b/apaxy/apaxy/theme/404.html @@ -0,0 +1,18 @@ + + + + + + Error 404 + + + + +
+

Error.

+
404 +
+

I can't find what you are looking for...

+
+ + diff --git a/apaxy/apaxy/theme/408.html b/apaxy/apaxy/theme/408.html new file mode 100644 index 0000000..1016869 --- /dev/null +++ b/apaxy/apaxy/theme/408.html @@ -0,0 +1,18 @@ + + + + + + Error 408 + + + + +
+

Error.

+
408 +
+

I refuse to wait any longer.

+
+ + diff --git a/apaxy/apaxy/theme/500.html b/apaxy/apaxy/theme/500.html new file mode 100644 index 0000000..51c7693 --- /dev/null +++ b/apaxy/apaxy/theme/500.html @@ -0,0 +1,18 @@ + + + + + + Error 500 + + + + +
+

Error.

+
500 +
+

I don't know what to do. This isn't your fault.

+
+ + diff --git a/apaxy/apaxy/theme/502.html b/apaxy/apaxy/theme/502.html new file mode 100644 index 0000000..0414f84 --- /dev/null +++ b/apaxy/apaxy/theme/502.html @@ -0,0 +1,18 @@ + + + + + + Error 502 + + + + +
+

Error.

+
502 +
+

I received some invalid information from my master.

+
+ + diff --git a/apaxy/apaxy/theme/apaxy-lightgallery.js b/apaxy/apaxy/theme/apaxy-lightgallery.js new file mode 100644 index 0000000..5e78dea --- /dev/null +++ b/apaxy/apaxy/theme/apaxy-lightgallery.js @@ -0,0 +1,15 @@ +var imageSelector = [ + 'tr:not(.parent) td.indexcolname a[href$=".png"]', + 'tr:not(.parent) td.indexcolname a[href$=".jpg"]', + 'tr:not(.parent) td.indexcolname a[href$=".gif"]', +].join(', '); + +lightGallery(document.getElementById('indexlist'), { + selector: imageSelector, + mode: 'lg-slide', + hideBarsDelay: 2000, + loop: false, + hideControlOnEnd: true, + download: true, + cssEasing : 'cubic-bezier(0.25, 0, 0.25, 1)' +}); diff --git a/apaxy/apaxy/theme/apaxy.js b/apaxy/apaxy/theme/apaxy.js new file mode 100644 index 0000000..cc2080a --- /dev/null +++ b/apaxy/apaxy/theme/apaxy.js @@ -0,0 +1,92 @@ +// content filtering, based on "light javascript table filter" by Chris Coyier +// https://codepen.io/chriscoyier/pen/tIuBL - MIT License +(function(document) { + 'use strict'; + + var TableFilter = (function(Arr) { + + // the search bar element + var _input; + + // find all rows of all tables and call _filter on them + function _onInputEvent(e) { + _input = e.target; + var tables = document.getElementsByTagName('table'); + Arr.forEach.call(tables, function(table) { + Arr.forEach.call(table.tBodies, function(tbody) { + Arr.forEach.call(tbody.rows, _filter); + }); + }); + } + + // show or hide a row based on the value of _input + function _filter(row) { + // skip "special" rows + if (row.className.indexOf('indexhead') != -1 || row.className.indexOf('parent') != -1) { + return; + } + + // only check the 'name' field + var text = row.getElementsByTagName('td')[1].textContent.toLowerCase(); + var val = _input.value.toLowerCase(); + + // change display type to show / hide this row + row.style.display = text.indexOf(val) === -1 ? 'none' : 'table-row'; + } + + return { + init: function() { + // grab the 1st child and add the indexhead class. tr:nth-child(1) + var row = document.getElementsByTagName('tr')[0]; + // some versions of apache already add this class + if (row !== null && row.className.indexOf('indexhead') == -1) { + row.className += ' indexhead'; + } + + // grab the 2nd child and add the parent class. tr:nth-child(2) + row = document.getElementsByTagName('tr')[1]; + // when apaxy is installed at doc root, there is no "parent directory" row + if (row !== null && row.getElementsByTagName('td')[1].textContent === 'Parent Directory') { + row.className += ' parent'; + } + + // find the search box and bind the input event + document.getElementById('filter').oninput = _onInputEvent; + } + }; + + })(Array.prototype); + + document.addEventListener('readystatechange', function() { + if (document.readyState === 'complete') { + TableFilter.init(); + } + }); + +})(document); + +// generate a breadcrumb +var uri = window.location.pathname.substr(1); +var arr = uri.split('/'); +var url = "" +var bread = '
  • Home
  • '; +var cont = 1; +arr.forEach(function(value){ + url = url + '/' + value; + if(value != ''){ + if(arr.length == cont+1) + bread += "
  • "+decodeURI(value)+"
  • "; + else + bread += "
  • "+decodeURI(value)+"
  • "; + } + cont++; +}); +document.getElementById("breadcrumb").innerHTML = bread; +if (uri.substring(uri.length-1) != '/'){ + var indexes = document.getElementsByClassName('indexcolname'), + i = indexes.length; + while (i--){ + var a = indexes[i].getElementsByTagName('a')[0]; + a.href = uri + '/' + a.getAttribute('href',2); + } +} diff --git a/apaxy/apaxy/theme/favicon.ico b/apaxy/apaxy/theme/favicon.ico new file mode 100644 index 0000000..8f8a5c1 Binary files /dev/null and b/apaxy/apaxy/theme/favicon.ico differ diff --git a/apaxy/apaxy/theme/footer-lightgallery.html b/apaxy/apaxy/theme/footer-lightgallery.html new file mode 100644 index 0000000..fece1b5 --- /dev/null +++ b/apaxy/apaxy/theme/footer-lightgallery.html @@ -0,0 +1,12 @@ +
    + {FOOTER-MESSAGE} +
    + +
    + + + + + diff --git a/apaxy/apaxy/theme/footer.html b/apaxy/apaxy/theme/footer.html new file mode 100644 index 0000000..392af46 --- /dev/null +++ b/apaxy/apaxy/theme/footer.html @@ -0,0 +1,10 @@ +
    + {FOOTER-MESSAGE} +
    + + + + + diff --git a/apaxy/apaxy/theme/header-lightgallery.html b/apaxy/apaxy/theme/header-lightgallery.html new file mode 100644 index 0000000..1c496cb --- /dev/null +++ b/apaxy/apaxy/theme/header-lightgallery.html @@ -0,0 +1,11 @@ + + +
    + + + + + + +{HEADER-MESSAGE} diff --git a/apaxy/apaxy/theme/header.html b/apaxy/apaxy/theme/header.html new file mode 100644 index 0000000..6680f87 --- /dev/null +++ b/apaxy/apaxy/theme/header.html @@ -0,0 +1,9 @@ +
    + + + + + + +{HEADER-MESSAGE} diff --git a/apaxy/apaxy/theme/icons/addressbook.svg b/apaxy/apaxy/theme/icons/addressbook.svg new file mode 100644 index 0000000..1d64a87 --- /dev/null +++ b/apaxy/apaxy/theme/icons/addressbook.svg @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-pdf.svg b/apaxy/apaxy/theme/icons/application-pdf.svg new file mode 100644 index 0000000..7add632 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-pdf.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-rss+xml.svg b/apaxy/apaxy/theme/icons/application-rss+xml.svg new file mode 100644 index 0000000..5b61040 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-rss+xml.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-archive.svg b/apaxy/apaxy/theme/icons/application-x-archive.svg new file mode 100644 index 0000000..ad2bd73 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-archive.svg @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-bittorrent.svg b/apaxy/apaxy/theme/icons/application-x-bittorrent.svg new file mode 100644 index 0000000..26ec726 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-bittorrent.svg @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-cd-image.svg b/apaxy/apaxy/theme/icons/application-x-cd-image.svg new file mode 100644 index 0000000..6c827e5 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-cd-image.svg @@ -0,0 +1,984 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-ms-dos-executable.svg b/apaxy/apaxy/theme/icons/application-x-ms-dos-executable.svg new file mode 100644 index 0000000..fe72166 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-ms-dos-executable.svg @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-php.svg b/apaxy/apaxy/theme/icons/application-x-php.svg new file mode 100644 index 0000000..b01b665 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-php.svg @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-rar.svg b/apaxy/apaxy/theme/icons/application-x-rar.svg new file mode 100644 index 0000000..1659b76 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-rar.svg @@ -0,0 +1,617 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-ruby.svg b/apaxy/apaxy/theme/icons/application-x-ruby.svg new file mode 100644 index 0000000..333dc64 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-ruby.svg @@ -0,0 +1,1003 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-tar.svg b/apaxy/apaxy/theme/icons/application-x-tar.svg new file mode 100644 index 0000000..71d4b07 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-tar.svg @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/application-x-zip.svg b/apaxy/apaxy/theme/icons/application-x-zip.svg new file mode 100644 index 0000000..9e72c64 --- /dev/null +++ b/apaxy/apaxy/theme/icons/application-x-zip.svg @@ -0,0 +1,582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/audio-x-generic.svg b/apaxy/apaxy/theme/icons/audio-x-generic.svg new file mode 100644 index 0000000..d212d81 --- /dev/null +++ b/apaxy/apaxy/theme/icons/audio-x-generic.svg @@ -0,0 +1,578 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/audio-x-mp3-playlist.svg b/apaxy/apaxy/theme/icons/audio-x-mp3-playlist.svg new file mode 100644 index 0000000..0d377fc --- /dev/null +++ b/apaxy/apaxy/theme/icons/audio-x-mp3-playlist.svg @@ -0,0 +1,644 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/deb.svg b/apaxy/apaxy/theme/icons/deb.svg new file mode 100644 index 0000000..87d3ddb --- /dev/null +++ b/apaxy/apaxy/theme/icons/deb.svg @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/empty.svg b/apaxy/apaxy/theme/icons/empty.svg new file mode 100644 index 0000000..9bad349 --- /dev/null +++ b/apaxy/apaxy/theme/icons/empty.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/evolution-calendar.svg b/apaxy/apaxy/theme/icons/evolution-calendar.svg new file mode 100644 index 0000000..dba8b00 --- /dev/null +++ b/apaxy/apaxy/theme/icons/evolution-calendar.svg @@ -0,0 +1,373 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/folder-documents.svg b/apaxy/apaxy/theme/icons/folder-documents.svg new file mode 100644 index 0000000..a0e5aab --- /dev/null +++ b/apaxy/apaxy/theme/icons/folder-documents.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/folder-open.svg b/apaxy/apaxy/theme/icons/folder-open.svg new file mode 100644 index 0000000..4ab2a94 --- /dev/null +++ b/apaxy/apaxy/theme/icons/folder-open.svg @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/folder.svg b/apaxy/apaxy/theme/icons/folder.svg new file mode 100644 index 0000000..881ed7b --- /dev/null +++ b/apaxy/apaxy/theme/icons/folder.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/font-x-generic.svg b/apaxy/apaxy/theme/icons/font-x-generic.svg new file mode 100644 index 0000000..1dc3728 --- /dev/null +++ b/apaxy/apaxy/theme/icons/font-x-generic.svg @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + A + + + diff --git a/apaxy/apaxy/theme/icons/image-bmp.svg b/apaxy/apaxy/theme/icons/image-bmp.svg new file mode 100644 index 0000000..85e4b29 --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-bmp.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-gif.svg b/apaxy/apaxy/theme/icons/image-gif.svg new file mode 100644 index 0000000..39531c0 --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-gif.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-jpeg.svg b/apaxy/apaxy/theme/icons/image-jpeg.svg new file mode 100644 index 0000000..160951c --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-jpeg.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-png.svg b/apaxy/apaxy/theme/icons/image-png.svg new file mode 100644 index 0000000..40c912a --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-png.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-tiff.svg b/apaxy/apaxy/theme/icons/image-tiff.svg new file mode 100644 index 0000000..3b96491 --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-tiff.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-x-eps.svg b/apaxy/apaxy/theme/icons/image-x-eps.svg new file mode 100644 index 0000000..4163c3d --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-x-eps.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-x-generic.svg b/apaxy/apaxy/theme/icons/image-x-generic.svg new file mode 100644 index 0000000..742fb7b --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-x-generic.svg @@ -0,0 +1,1200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-x-ico.svg b/apaxy/apaxy/theme/icons/image-x-ico.svg new file mode 100644 index 0000000..d1e92bb --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-x-ico.svg @@ -0,0 +1,975 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-x-psd.svg b/apaxy/apaxy/theme/icons/image-x-psd.svg new file mode 100644 index 0000000..78bb2d4 --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-x-psd.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/image-x-xcf.svg b/apaxy/apaxy/theme/icons/image-x-xcf.svg new file mode 100644 index 0000000..0295446 --- /dev/null +++ b/apaxy/apaxy/theme/icons/image-x-xcf.svg @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/multipart-encrypted.svg b/apaxy/apaxy/theme/icons/multipart-encrypted.svg new file mode 100644 index 0000000..c6551a4 --- /dev/null +++ b/apaxy/apaxy/theme/icons/multipart-encrypted.svg @@ -0,0 +1,373 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/package-x-generic.svg b/apaxy/apaxy/theme/icons/package-x-generic.svg new file mode 100644 index 0000000..aec0a31 --- /dev/null +++ b/apaxy/apaxy/theme/icons/package-x-generic.svg @@ -0,0 +1,559 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/rpm.svg b/apaxy/apaxy/theme/icons/rpm.svg new file mode 100644 index 0000000..e7fcfdd --- /dev/null +++ b/apaxy/apaxy/theme/icons/rpm.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-css.svg b/apaxy/apaxy/theme/icons/text-css.svg new file mode 100644 index 0000000..792dddd --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-css.svg @@ -0,0 +1,564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-html.svg b/apaxy/apaxy/theme/icons/text-html.svg new file mode 100644 index 0000000..c07762c --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-html.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-plain.svg b/apaxy/apaxy/theme/icons/text-plain.svg new file mode 100644 index 0000000..f7b1264 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-plain.svg @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-richtext.svg b/apaxy/apaxy/theme/icons/text-richtext.svg new file mode 100644 index 0000000..d6e65f9 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-richtext.svg @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-c++.svg b/apaxy/apaxy/theme/icons/text-x-c++.svg new file mode 100644 index 0000000..881c10a --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-c++.svg @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-c++hdr.svg b/apaxy/apaxy/theme/icons/text-x-c++hdr.svg new file mode 100644 index 0000000..ed17e08 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-c++hdr.svg @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-c.svg b/apaxy/apaxy/theme/icons/text-x-c.svg new file mode 100644 index 0000000..fb01218 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-c.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-chdr.svg b/apaxy/apaxy/theme/icons/text-x-chdr.svg new file mode 100644 index 0000000..8c16c82 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-chdr.svg @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-install.svg b/apaxy/apaxy/theme/icons/text-x-install.svg new file mode 100644 index 0000000..ff96671 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-install.svg @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-java.svg b/apaxy/apaxy/theme/icons/text-x-java.svg new file mode 100644 index 0000000..053badd --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-java.svg @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-javascript.svg b/apaxy/apaxy/theme/icons/text-x-javascript.svg new file mode 100644 index 0000000..f386821 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-javascript.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-makefile.svg b/apaxy/apaxy/theme/icons/text-x-makefile.svg new file mode 100644 index 0000000..452feb9 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-makefile.svg @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-python.svg b/apaxy/apaxy/theme/icons/text-x-python.svg new file mode 100644 index 0000000..87b850e --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-python.svg @@ -0,0 +1,452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-readme.svg b/apaxy/apaxy/theme/icons/text-x-readme.svg new file mode 100644 index 0000000..b9bfa7f --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-readme.svg @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-script.svg b/apaxy/apaxy/theme/icons/text-x-script.svg new file mode 100644 index 0000000..64a6862 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-script.svg @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-source.svg b/apaxy/apaxy/theme/icons/text-x-source.svg new file mode 100644 index 0000000..107fffe --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-source.svg @@ -0,0 +1,495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-sql.svg b/apaxy/apaxy/theme/icons/text-x-sql.svg new file mode 100644 index 0000000..ecfb9f5 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-sql.svg @@ -0,0 +1,435 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-x-tex.svg b/apaxy/apaxy/theme/icons/text-x-tex.svg new file mode 100644 index 0000000..eaa3408 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-x-tex.svg @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/text-xml.svg b/apaxy/apaxy/theme/icons/text-xml.svg new file mode 100644 index 0000000..ae76a45 --- /dev/null +++ b/apaxy/apaxy/theme/icons/text-xml.svg @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/user-home.svg b/apaxy/apaxy/theme/icons/user-home.svg new file mode 100644 index 0000000..fd2d9b9 --- /dev/null +++ b/apaxy/apaxy/theme/icons/user-home.svg @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/video-x-generic.svg b/apaxy/apaxy/theme/icons/video-x-generic.svg new file mode 100644 index 0000000..0b5ac4f --- /dev/null +++ b/apaxy/apaxy/theme/icons/video-x-generic.svg @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/x-office-document.svg b/apaxy/apaxy/theme/icons/x-office-document.svg new file mode 100644 index 0000000..4d61122 --- /dev/null +++ b/apaxy/apaxy/theme/icons/x-office-document.svg @@ -0,0 +1,681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/x-office-drawing.svg b/apaxy/apaxy/theme/icons/x-office-drawing.svg new file mode 100644 index 0000000..962b859 --- /dev/null +++ b/apaxy/apaxy/theme/icons/x-office-drawing.svg @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/x-office-presentation.svg b/apaxy/apaxy/theme/icons/x-office-presentation.svg new file mode 100644 index 0000000..3238a7e --- /dev/null +++ b/apaxy/apaxy/theme/icons/x-office-presentation.svg @@ -0,0 +1,733 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/icons/x-office-spreadsheet.svg b/apaxy/apaxy/theme/icons/x-office-spreadsheet.svg new file mode 100644 index 0000000..789fd55 --- /dev/null +++ b/apaxy/apaxy/theme/icons/x-office-spreadsheet.svg @@ -0,0 +1,607 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/apaxy/apaxy/theme/style.css b/apaxy/apaxy/theme/style.css new file mode 100644 index 0000000..92dc240 --- /dev/null +++ b/apaxy/apaxy/theme/style.css @@ -0,0 +1,359 @@ +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ +button,hr,input{overflow:visible}audio,canvas,progress,video{display:inline-block}progress,sub,sup{vertical-align:baseline}html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0} menu,article,aside,details,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{}button,select{text-transform:none}[type=submit], [type=reset],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}; + +/*------------------------------------*\ + Apaxy + by @adamwhitcroft + + Theme name: Apaxy + Theme author: @adamwhitcroft +\*------------------------------------*/ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +html { + min-height: 100%; + color: #61666c; + background-color: #fff; + font-weight: 400; + font-size: 1em; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + line-height: 2em; +} +@media (prefers-color-scheme: dark) { + html { + background-color: #232323; + } +} + +body { + padding: 20px; + -webkit-backface-visibility: hidden; +} + +code { + font-family: consolas,monospace; +} + +a { + color: #000; + text-decoration: none; +} +@media (prefers-color-scheme: dark) { + a { + color: #e9e9e9; + } +} + +a, img { + border: none; + outline: none; +} + +a > img:hover { + opacity: 0.4; +} + +a:hover { + color: #bababa; +} +@media (prefers-color-scheme: dark) { + a:hover { + color: #696969; + } +} + +/*------------------------------------*\ + Wrapper +\*------------------------------------*/ + +.wrapper { + margin: 0 auto; + padding-top: 20px; + max-width: 80%; +} + +/*------------------------------------*\ + Filter (search box) +\*------------------------------------*/ +#filter { + background-color: rgba(0, 0, 0, 0.04); + float: right; + font-size:.75em; + padding: .5em; + margin-bottom: .5em; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: .25em; + width: 10em; + transition: width 0.25s ease; +} +@media (prefers-color-scheme: dark) { + #filter { + background-color: rgba(255, 255, 255, 0.07); + border-color: rgba(255, 255, 255, 0.15); + color: white; + } +} +#filter:focus { + width: 14em; +} + +/*------------------------------------*\ + Demo block +\*------------------------------------*/ + +.block { + font-size: .875em; + margin: 20px 0; + padding: 20px; + color: #9099A3; +} + +/*------------------------------------*\ + Table (directory listing) +\*------------------------------------*/ + +table { + width: 100%; + border-collapse: collapse; + font-size: .875em; + color: rgb(143, 143, 143); +} +@media (prefers-color-scheme: dark) { + table { + color: rgb(111, 111, 111); + } +} + +.odd { + background-color: rgb(244, 244, 244); +} +@media (prefers-color-scheme: dark) { + .odd { + background-color: rgb(50, 50, 50); + } +} + +tr { + outline: 0; + border: 0; +} + +th { + text-align: left; + font-size: .75em; + padding-right: 20px; +} + +/* 2nd Column: Filename */ + +th + th { + width: 65%; +} + +/* 3rd Column: Last Modified */ +th + th + th { +} + +/* 4th Column: Size */ +th + th + th + th { + width: 5%; +} + +tr td:first-of-type { + padding-left: 10px; + padding-right: 10px; +} + +td { + padding: 5px 0; + outline: 0; + border: 0; + vertical-align: middle; + text-align: left; + transition: background 300ms ease; + -o-transition: background 300ms ease; + -ms-transition: background 300ms ease; + -moz-transition: background 300ms ease; + -webkit-transition: background 300ms ease; +} +@media (prefers-color-scheme: dark) { + td { + border-color: #424242; + } +} + +td a { + display: block; +} + +tr.parent a[href^="/"] { + color: #9099A3; +} + +.parent a[href^="/"]:hover { + color: #2281d0; +} + +/*------------------------------------*\ + Footer +\*------------------------------------*/ + +.footer { + text-align: center; + font-size: .75em; +} + +/*------------------------------------*\ + Media query for small screens +\*------------------------------------*/ +@media (max-width: 768px) { + body { + padding: 10px; + } + .indexcollastmod { display: none; } + .wrapper { max-width: 100%; } +} + +/*------------------------------------*\ + Error pages +/*------------------------------------*/ +/* Animation */ +@-webkit-keyframes fadeDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeDown { + 0% { + opacity: 0; + -moz-transform: translateY(-20px); + } + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-ms-keyframes fadeDown { + 0% { + opacity: 0; + -ms-transform: translateY(-20px); + } + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@-o-keyframes fadeDown { + 0% { + opacity: 0; + -o-transform: translateY(-20px); + } + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeDown { + -webkit-animation:fadeDown 1s ease; + -moz-animation:fadeDown 1s ease; + -ms-animation:fadeDown 1s ease; + -o-animation:fadeDown 1s ease; + animation:fadeDown 1s ease; +} + +/* Center elements in error pages */ +.fadeDown .center { + text-align: center; +} + +/* Error code display */ +.errorCode { + font-size: 80px; +} + +/*------------------------------------*\ + Breadcrumb +\*------------------------------------*/ + +.breadcrumb { + white-space: nowrap; + padding: 0; + margin: 0; +} + +.breadcrumb li { + color: rgb(154, 154, 154); + display: inline-block; + line-height: 10px; + margin: 0 9px 20px -10px; + padding: 0 15px; + position: relative; +} +@media (prefers-color-scheme: dark) { + .breadcrumb li { + color: rgb(100, 100, 100); + } +} + +.breadcrumb li::before, +.breadcrumb li::after { + border-right: 1.5px solid #000; + content: ''; + display: block; + height: 50%; + position: absolute; + left: 0; + right: 0; + top: 0; + z-index: -1; + transform: skewX(45deg); +} +@media (prefers-color-scheme: dark) { + .breadcrumb li::before, + .breadcrumb li::after { + border-color: #fff; + } +} + +.breadcrumb li::after { + bottom: 0; + top: auto; + transform: skewX(-45deg); +} + +.breadcrumb li:last-of-type::before, +.breadcrumb li:last-of-type::after { + display: none; +} + +.breadcrumb li a { + letter-spacing: -1px; + text-decoration: none; +} diff --git a/apaxy/docker-compose.yml b/apaxy/docker-compose.yml new file mode 100644 index 0000000..cda4918 --- /dev/null +++ b/apaxy/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' +services: + apaxy: + image: apaxy + build: + context: . + args: + apaxyPath: '' + ports: + - '80:8080' + volumes: + - './share/:/usr/local/apache2/htdocs/share/' diff --git a/apaxy/package.json b/apaxy/package.json new file mode 100644 index 0000000..1c07b25 --- /dev/null +++ b/apaxy/package.json @@ -0,0 +1,32 @@ +{ + "name": "apaxy", + "version": "2.4.0-dev", + "description": "A simple, customisable theme for your Apache directory listing.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "update-changelog": "conventional-changelog --preset angular --infile CHANGELOG.md --same-file --release-count 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/oupala/apaxy.git" + }, + "keywords": [ + "apaxy", + "apaxy-themes", + "css", + "icons", + "mime-types", + "customisable-theme", + "docker" + ], + "author": "Adam Whitcroft", + "license": "GPL-3.0", + "bugs": { + "url": "https://github.com/oupala/apaxy/issues" + }, + "homepage": "https://github.com/oupala/apaxy#readme", + "devDependencies": { + "conventional-changelog": "^3.1.8" + } +} diff --git a/apaxy/share/PLACE_YOUR_FILES_HERE.txt b/apaxy/share/PLACE_YOUR_FILES_HERE.txt new file mode 100644 index 0000000..5b6b08a --- /dev/null +++ b/apaxy/share/PLACE_YOUR_FILES_HERE.txt @@ -0,0 +1,3 @@ +You can place your file in the "share" directory (here!) so that they are accessible if you use docker-compose. + +If you want to share files at the root level of your docker container, you'll have to edit the Dockerfile. diff --git a/aria2-pro/README.md b/aria2-pro/README.md new file mode 100644 index 0000000..56a4efc --- /dev/null +++ b/aria2-pro/README.md @@ -0,0 +1,12 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** \ No newline at end of file diff --git a/aria2-pro/docker-compose.yml b/aria2-pro/docker-compose.yml new file mode 100644 index 0000000..3a7ff95 --- /dev/null +++ b/aria2-pro/docker-compose.yml @@ -0,0 +1,51 @@ +version: "3.3" + +services: + + Aria2-Pro: + container_name: aria2-pro + image: p3terx/aria2-pro + environment: + - PUID=65534 + - PGID=65534 + - UMASK_SET=022 + - RPC_SECRET=Spoience + - RPC_PORT=6800 + - LISTEN_PORT=6888 + - DISK_CACHE=32M + - IPV6_MODE=false + - UPDATE_TRACKERS=true + - CUSTOM_TRACKER_URL= + - TZ=Asia/Shanghai + volumes: + - ./config:/config + - ./downloads:/downloads +# If you use host network mode, then no port mapping is required. +# This is the easiest way to use IPv6 networks. + # network_mode: host + network_mode: bridge + ports: + - 6800:6800 + - 6888:6888 + - 6888:6888/udp + restart: unless-stopped +# Since Aria2 will continue to generate logs, limit the log size to 1M to prevent your hard disk from running out of space. + logging: + driver: json-file + options: + max-size: 1m + +# AriaNg is just a static web page, usually you only need to deploy on a single host. + AriaNg: + container_name: ariang + image: p3terx/ariang + command: --port 6880 + # network_mode: host + network_mode: bridge + ports: + - 6880:6880 + restart: unless-stopped + logging: + driver: json-file + options: + max-size: 1m diff --git a/baota/.env b/baota/.env new file mode 100755 index 0000000..06b10bd --- /dev/null +++ b/baota/.env @@ -0,0 +1,44 @@ +# 宝塔安装地址URL +BAOTA_INSTALL_PATH=http://download.bt.cn/install/install_panel.sh + +# Driver +VOLUMES_DRIVER=local +# bridge / host +NETWORKS_DRIVER=bridge + +# Centos 版本 +CENTOS_VERSION=7 + +# PORT 开放端口 +# 面板端口 +BAOTA_PORT=9900 +# 网站默认端口 +WEB_PORT=8080 +# HTTPS 端口 +HTTPS_PORT=443 +# FTP 端口 +FTP_PORT=21 +# FTP 数据传输端口 +FTP_DATA_PORT=20 +# SSH 端口 +SSH_PORT=10022 +# MYSQL 端口 +MYSQL_PORT=3306 +# PhpMyAdmin 端口 +PHPMYADMIN_PORT=888 +# REDIS 端口 +REDIS_PORT=6379 +# Memcached 端口 +MEMCACHED_PORT=11211 + +# PATH 路径 +# 网站默认路径 +WEB_PATH=./wwwroot +# 日志 +LOGS_PATH=./wwwlogs +# 宝塔备份 +BACKUP_PATH=./backup +# 数据库相关存储路径 +DATA_PATH=./data +# 计划任务 +CRON_PATH=./cron \ No newline at end of file diff --git a/baota/README.md b/baota/README.md new file mode 100644 index 0000000..c37cb61 --- /dev/null +++ b/baota/README.md @@ -0,0 +1,150 @@ +# DOCKER 宝塔面板 一键部署脚本 + +- 镜像默认使用 `Centos7` 基础镜像,使用 `Dockerfile` 构建 + +- 该脚本每次 `build` 的用户名和密码以及登录 URL 都不同,请使用 `docker-compose logs app` 查看默认信息 + +- 安装时间视网络环境而定,建议更换 `Docker` 的国内源 + +- 配置文件 `.env` 中都有详细的注释 + +- 使用 `volume` 作持久化存储,数据卷名为 `baota_www` `baota_usr` `baota_etc` + +- 该产品不适合线上使用,仅供本地开发使用,请知晓 + +## 如何使用 + +> 建议使用 Liunx 或者 MAC 部署,windows 用户想来是用不到这个 + +### 1. 安装 git,或者直接下载`zip`也可以 + +`sudo yum install -y git` + +### 2. 到你想生成项目的文件夹下执行命令 + +`git clone https://github.com/ifui/baota.git` + +### 3. 进入项目根目录 + +`cd baota` + +### 4. 生成配置文件 + +`cp .env-example .env` + +### 5. 启动宝塔镜像,在项目根目录下执行命令 + +`docker-compose up -d app` + +### 6. 查看默认登录信息 + +`docker-compose logs app` + +## 如何进行数据备份和迁移 + +### 1. 首先正常部署成功后,将需要的应用程序和配置安装和设置完毕 + +### 2. 启动并进入`app_backup`容器,注意:接下来的操作都是在该容器下的交互命令下执行 + +```bash +docekr-compose stop +docekr-compose up -d app_backup +docekr-compose exec app_backup sh +``` + +#### 3.1 备份 + +> 执行成功后会在宿主机项目目录下的`app_backup/export`目录下生成`baota_backup_*.tar.gz`的数据包 + +`sh /app_backup/export.sh` + +#### 3.2 迁移 + +> 将数据包放在`app_backup/export`目录下,然后执行,根据提示操作即可 + +`sh /app_backup/import.sh` + +## 其他说明 + +### 目录结构 + +- app + - app.sh 宝塔镜像启动脚本 + - Dockerfile +- app_backup + - app_backup 宝塔数据备份迁移脚本 + - Dockerfile + - export.sh 导出脚本 + - import.sh 导入脚本 +- backup .env 可配置,默认为宝塔备份目录 +- wwwlogs .env 可配置,默认为宝塔日志目录 +- wwwroot .env 可配置,默认为宝塔网站目录,请把你的网站放在此目录下 +- data .env 可配置,默认为宝塔数据存储目录 +- cron .env 可配置,默认为宝塔计划任务放置目录 + +### .env 配置说明 + +> 这里可以自定义端口和目录,请酌情设置,默认也可 + +```bash +# Driver +VOLUMES_DRIVER=local +# bridge / host +NETWORKS_DRIVER=bridge + +# baota_app 宝塔镜像版本 +APP_VERSION=latest + +# PORT 开放端口 +# 面板端口 +BAOTA_PORT=8888 +# 网站默认端口 +WEB_PORT=80 +# HTTPS 端口 +HTTPS_PORT=443 +# FTP 端口 +FTP_PORT=21 +# FTP 数据传输端口 +FTP_DATA_PORT=20 +# SSH 端口 +SSH_PORT=10022 +# MYSQL 端口 +MYSQL_PORT=3306 +# PHPMYADMIN 端口 +PHPMYADMIN_PORT=888 + +# PATH 路径 +# 网站默认路径 +WEB_PATH=./wwwroot +# 日志 +LOGS_PATH=./wwwlogs +# 宝塔备份 +BACKUP_PATH=./backup +# 启动脚本路径 +DOCKERSCRIPT_PATH=./DockerScript +# 数据库相关存储路径 +DATA_path=./data +# 计划任务 +CRON_PATH=./cron +``` + +### 常用命令 + +```bash +# 构建容器 +docker-compose build +# 不缓存构建,执行后默认登录信息会变化 +docker-compose build --no-cache +# 查看运行情况 +docker-compose ps +# 启动宝塔镜像 +docker-compose up -d app +# 启动宝塔数据备份迁移系统 +docker-compose up -d app_backup +# 启动所有 + +# 停止运行 +docker-compose stop app +# 删除容器和数据卷 +docker-compose down --volumes +``` diff --git a/baota/app/Dockerfile b/baota/app/Dockerfile new file mode 100755 index 0000000..fcbbf5c --- /dev/null +++ b/baota/app/Dockerfile @@ -0,0 +1,22 @@ +ARG CENTOS_VERSION +FROM centos:${CENTOS_VERSION} +LABEL maintainer="ifui " + +RUN groupadd -f www && useradd -g www www + +ARG BAOTA_INSTALL_PATH +# install pkg +RUN yum install -y wget \ + && yum install -y ca-certificates \ + && yum install -y gd + +# install baota +RUN set -eux \ + && wget -O install_panel.sh ${BAOTA_INSTALL_PATH} \ + && echo y | sh install_panel.sh + +COPY app.sh / + +RUN chmod 777 /app.sh + +CMD [ "/app.sh" ] diff --git a/baota/app/app.sh b/baota/app/app.sh new file mode 100755 index 0000000..d631054 --- /dev/null +++ b/baota/app/app.sh @@ -0,0 +1,28 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH +Main() +{ + Init + /etc/init.d/bt default +} + +Move_Ln_File() +{ + mv $1 $1_backup + ln -s /www/data$1 $1 +} + +Init() +{ + cd /etc/init.d + for i in `ls` + do + if [ -x $i ]; then + ./$i start + fi + done +} + +Main +/bin/bash \ No newline at end of file diff --git a/baota/app_backup/Dockerfile b/baota/app_backup/Dockerfile new file mode 100755 index 0000000..5b67423 --- /dev/null +++ b/baota/app_backup/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine:3.9.5 +LABEL maintainer="ifui " + +RUN mkdir /app_backup + +COPY app_backup.sh /app_backup/app_backup.sh +COPY import.sh /app_backup/import.sh +COPY export.sh /app_backup/export.sh + +RUN chmod +x /app_backup/app_backup.sh \ + && chmod +x /app_backup/import.sh \ + && chmod +x /app_backup/export.sh + +CMD [ "sh", "/app_backup/app_backup.sh" ] \ No newline at end of file diff --git a/baota/app_backup/app_backup.sh b/baota/app_backup/app_backup.sh new file mode 100644 index 0000000..d803c70 --- /dev/null +++ b/baota/app_backup/app_backup.sh @@ -0,0 +1,3 @@ +echo -e "Starting app_backup... \033[32m done \033[0m" + +sh \ No newline at end of file diff --git a/baota/app_backup/export.sh b/baota/app_backup/export.sh new file mode 100644 index 0000000..67a5e2a --- /dev/null +++ b/baota/app_backup/export.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# 宝塔面板数据备份 +set -e +DATE=`date +%Y%m%d%H%M%S` +echo '开始备份...' +cd /app_backup +tar -cvpzf /app_backup/export/baota_backup_$DATE.tar.gz data +echo -e "\033[32m 备份成功! /app_backup/export/baota_backup_${DATE}.tar.gz \033[0m" \ No newline at end of file diff --git a/baota/app_backup/import.sh b/baota/app_backup/import.sh new file mode 100644 index 0000000..11b681c --- /dev/null +++ b/baota/app_backup/import.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# 宝塔面板数据导入脚本 +set -e +EXPORT_PATH='/app_backup/export' +IMPORT_PATH='/app_backup' +cd $EXPORT_PATH + +Menu() +{ +cat << EOF +宝塔面板数据迁移 +`Menu_List` + +EOF +read -p "请选择需要迁移的数据包:" num +Menu_Case $num + +} + +Menu_List() +{ + n=0 + for i in `ls $EXPORT_PATH`; + do + let n++ + echo -e "${n})\033[35m ${i}\033[0m" + done +} + +Menu_Case() +{ + if [[echo $1 | grep -q '[^0-9]']] || [[ $1 != 0 ]]; + then + echo -e "\e[31m请输入正确的数字选项!\e[0m" + exit 1 + fi + file="$(($1+1))p" + FILENAME=`ls -l $EXPORT_PATH | sed -n $file | awk '{print $9}'` + if [ ! -f $FILENAME ]; + then + echo -e "\e[31m文件不存在!\e[0m" + exit 1 + fi + tar -zxvpf $FILENAME -C $IMPORT_PATH + echo -e "\033[32m数据迁移成功!\033[0m" +} + +Menu \ No newline at end of file diff --git a/baota/docker-compose.yml b/baota/docker-compose.yml new file mode 100755 index 0000000..2b3ef59 --- /dev/null +++ b/baota/docker-compose.yml @@ -0,0 +1,56 @@ +version: '3' +services: + app: + build: + context: ./app/ + args: + - CENTOS_VERSION=${CENTOS_VERSION} + - BAOTA_INSTALL_PATH=${BAOTA_INSTALL_PATH} + stdin_open: true + tty: true + privileged: true + restart: always + ports: + - ${BAOTA_PORT}:8888 + - ${WEB_PORT}:80 + - ${HTTPS_PORT}:443 + - ${FTP_DATA_PORT}:20 + - ${FTP_PORT}:21 + - ${SSH_PORT}:22 + - ${MYSQL_PORT}:3306 + - ${PHPMYADMIN_PORT}:888 + - ${REDIS_PORT}:6379 + - ${MEMCACHED_PORT}:11211 + volumes: + - www:/www + - usr:/usr + - etc:/etc + - ${WEB_PATH}:/www/wwwroot:cached + - ${BACKUP_PATH}:/www/backup + - ${LOGS_PATH}:/www/wwwlogs + - ${DATA_PATH}:/www/server/data:cached + - ${CRON_PATH}:/www/server/cron + app_backup: + build: + context: ./app_backup/ + depends_on: + - app + stdin_open: true + tty: true + privileged: true + volumes: + - ./app_backup/export:/app_backup/export + - www:/app_backup/data/www + - usr:/app_backup/data/usr + - etc:/app_backup/data/etc +volumes: + www: + driver: ${VOLUMES_DRIVER} + usr: + driver: ${VOLUMES_DRIVER} + etc: + driver: ${VOLUMES_DRIVER} + +networks: + default: + driver: ${NETWORKS_DRIVER} diff --git a/baota/package-lock.json b/baota/package-lock.json new file mode 100644 index 0000000..c08805f --- /dev/null +++ b/baota/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "vue-router": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.1.6.tgz", + "integrity": "sha512-GYhn2ynaZlysZMkFE5oCHRUTqE8BWs/a9YbKpNLi0i7xD6KG1EzDqpHQmv1F5gXjr8kL5iIVS8EOtRaVUEXTqA==" + } + } +} diff --git a/beets/README.md b/beets/README.md new file mode 100644 index 0000000..1c1d028 --- /dev/null +++ b/beets/README.md @@ -0,0 +1,31 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +### docker + + +``` + +docker run -d \ + --name=beets \ + -e PUID=1000 \ + -e PGID=1000 \ + -e TZ=Europe/London \ + -p 8337:8337 \ + -v :/config \ + -v :/music \ + -v :/downloads \ + --restart unless-stopped \ + ghcr.io/linuxserver/beets + +``` \ No newline at end of file diff --git a/beets/docker-compose.yml b/beets/docker-compose.yml new file mode 100644 index 0000000..f1b26f9 --- /dev/null +++ b/beets/docker-compose.yml @@ -0,0 +1,16 @@ +version: "2.1" +services: + beets: + image: ghcr.io/linuxserver/beets + container_name: beets + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - :/config + - :/music + - :/downloads + ports: + - 8337:8337 + restart: unless-stopped \ No newline at end of file diff --git a/bitwarden/README.md b/bitwarden/README.md new file mode 100644 index 0000000..8a1b1b7 --- /dev/null +++ b/bitwarden/README.md @@ -0,0 +1,15 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +# vaultwarden + diff --git a/bitwarden/config.env b/bitwarden/config.env new file mode 100644 index 0000000..9296e9d --- /dev/null +++ b/bitwarden/config.env @@ -0,0 +1,5 @@ +SIGNUPS_ALLOWED=true +DOMAIN=http://domain +DATABASE_URL=/data/bitwarden.db +ROCKET_WORKERS=10 +WEB_VAULT_ENABLED=true \ No newline at end of file diff --git a/bitwarden/docker-compose.yml b/bitwarden/docker-compose.yml new file mode 100644 index 0000000..a8c0237 --- /dev/null +++ b/bitwarden/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + bitwarden: + image: vaultwarden/server:latest + container_name: bitwarden + restart: always + volumes: + - ./data:/data + env_file: + - config.env + ports: + - "9050:80" \ No newline at end of file diff --git a/bludit/README.md b/bludit/README.md new file mode 100644 index 0000000..e3bfa76 --- /dev/null +++ b/bludit/README.md @@ -0,0 +1,16 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +**docker hub** + +本文档代码来自[docker hub](https://registry.hub.docker.com/) \ No newline at end of file diff --git a/bludit/docker-compose.yml b/bludit/docker-compose.yml new file mode 100644 index 0000000..464d045 --- /dev/null +++ b/bludit/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3' + +networks: + bludit: + external: false + +services: + bludit: + image: bludit/docker:latest + container_name: bludit + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + privileged: true + networks: + - bludit + volumes: + - ./bludit:/usr/share/nginx/html/bl-content + - /etc/localtime:/etc/localtime + ports: + - "9090:80" diff --git a/booksonic/README.md b/booksonic/README.md new file mode 100644 index 0000000..55df931 --- /dev/null +++ b/booksonic/README.md @@ -0,0 +1,20 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +**docker hub** + +本文档代码来自[docker hub](https://registry.hub.docker.com/) + + +### Application Setup +Default user/pass is admin/admin \ No newline at end of file diff --git a/booksonic/docker-compose.yml b/booksonic/docker-compose.yml new file mode 100644 index 0000000..64bccd3 --- /dev/null +++ b/booksonic/docker-compose.yml @@ -0,0 +1,18 @@ +version: "2.1" +services: + booksonic: + image: ghcr.io/linuxserver/booksonic + container_name: booksonic + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - CONTEXT_PATH=url-base + volumes: + - :/config + - :/audiobooks + - :/podcasts + - :/othermedia + ports: + - 4040:4040 + restart: unless-stopped \ No newline at end of file diff --git a/bookstack/README.md b/bookstack/README.md new file mode 100644 index 0000000..e7d2714 --- /dev/null +++ b/bookstack/README.md @@ -0,0 +1,31 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +Application Setup +The default username is admin@admin.com with the password of password, access the container at http://dockerhost:6875. + +This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/. + +If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the environment variable is set to your external domain, or it will not workAPP_URL + +Documentation for BookStack can be found at https://www.bookstackapp.com/docs/ + +Advanced Users (full control over the .env file) +If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation. + +When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit. + +PDF Rendering +wkhtmltopdf is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/. + +The path to wkhtmltopdf in this image to include in your .env file is ./usr/bin/wkhtmltopdf \ No newline at end of file diff --git a/bookstack/docker-compose.yml b/bookstack/docker-compose.yml new file mode 100644 index 0000000..a6824b3 --- /dev/null +++ b/bookstack/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3" +services: + bookstack: + image: linuxserver/bookstack + container_name: bookstack + environment: + - PUID=1000 + - PGID=1000 + - APP_URL= + - DB_HOST=bookstack_db + - DB_USER=bookstack + - DB_PASS=123456 + - DB_DATABASE=bookstackapp + volumes: + - ./data/config:/config + ports: + - 6875:80 + restart: unless-stopped + depends_on: + - bookstack_db + bookstack_db: + image: linuxserver/mariadb + container_name: bookstack_db + environment: + - PUID=1000 + - PGID=1000 + - MYSQL_ROOT_PASSWORD=123456 + - TZ=Europe/London + - MYSQL_DATABASE=bookstackapp + - MYSQL_USER=bookstack + - MYSQL_PASSWORD=123456 + volumes: + - ./db/config:/config + restart: unless-stopped \ No newline at end of file diff --git a/busybox/README.md b/busybox/README.md new file mode 100644 index 0000000..c4aa8f7 --- /dev/null +++ b/busybox/README.md @@ -0,0 +1,10 @@ +docker run -it --rm busybox + + +Create a Dockerfile for a binary + +``` +FROM busybox +COPY ./my-static-binary /my-static-binary +CMD ["/my-static-binary"] +``` \ No newline at end of file diff --git a/caddy/Caddyfile b/caddy/Caddyfile new file mode 100644 index 0000000..0d80508 --- /dev/null +++ b/caddy/Caddyfile @@ -0,0 +1,3 @@ +:2015 + +respond "Hello, world!" \ No newline at end of file diff --git a/caddy/README.md b/caddy/README.md new file mode 100755 index 0000000..3124f4d --- /dev/null +++ b/caddy/README.md @@ -0,0 +1,10 @@ +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + + +### 运行 + +下载代码 + +在代码目录下,运行`docker-compose up` \ No newline at end of file diff --git a/caddy/docker-compose.yml b/caddy/docker-compose.yml new file mode 100755 index 0000000..68b1b49 --- /dev/null +++ b/caddy/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + caddy: + image: caddy + restart: unless-stopped + environment: + - USER_UID=1000 + - USER_GID=1000 + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - ./site:/srv + - caddy_data:/data + - caddy_config:/config + +volumes: + caddy_data: + caddy_config: \ No newline at end of file diff --git a/calibre-web/README.md b/calibre-web/README.md new file mode 100755 index 0000000..282500a --- /dev/null +++ b/calibre-web/README.md @@ -0,0 +1,19 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + +### 运行 + +下载代码 + +在代码目录下,运行`docker-compose up` \ No newline at end of file diff --git a/calibre-web/docker-compose.yml b/calibre-web/docker-compose.yml new file mode 100644 index 0000000..e8a9812 --- /dev/null +++ b/calibre-web/docker-compose.yml @@ -0,0 +1,30 @@ +version: "2.1" +services: + calibre-web: + image: ghcr.io/linuxserver/calibre-web + container_name: calibre-web + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - DOCKER_MODS=linuxserver/calibre-web:calibre + volumes: + - /path/to/data:/config + - /path/to/calibre/library:/books + ports: + - 8083:8083 + restart: unless-stopped + + db: + image: mariadb + restart: always + volumes: + - ./conf:/etc/mysql/conf.d + - /etc/localtime:/etc/localtime + environment: + - PUID=1000 + - PGID=1000 + - MYSQL_ROOT_PASSWORD=example + - MYSQL_DATABASE=USER_DB_NAME #optional + - MYSQL_USER=MYSQL_USER #optional + - MYSQL_PASSWORD=DATABASE_PASSWORD #optional \ No newline at end of file diff --git a/calibre/docker-compose.yml b/calibre/docker-compose.yml new file mode 100644 index 0000000..aab976a --- /dev/null +++ b/calibre/docker-compose.yml @@ -0,0 +1,17 @@ +version: "2.1" +services: + calibre: + image: ghcr.io/linuxserver/calibre + container_name: calibre + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - PASSWORD= #optional + - CLI_ARGS= #optional + volumes: + - /path/to/data:/config + ports: + - 8080:8080 + - 8081:8081 + restart: unless-stopped \ No newline at end of file diff --git a/ceph-deamon/README.md b/ceph-deamon/README.md new file mode 100644 index 0000000..1ceec19 --- /dev/null +++ b/ceph-deamon/README.md @@ -0,0 +1,6 @@ +docker run -d --net=host \ +-v /etc/ceph:/etc/ceph \ +-v /var/lib/ceph/:/var/lib/ceph/ \ +-e MON_IP=192.168.0.20 \ +-e CEPH_PUBLIC_NETWORK=192.168.0.0/24 \ +ceph/daemon mon \ No newline at end of file diff --git a/chevereto-linuxserver/docker-compose.yml b/chevereto-linuxserver/docker-compose.yml new file mode 100644 index 0000000..445ab4a --- /dev/null +++ b/chevereto-linuxserver/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.5" +services: + chevereto: + image: linuxserver/chevereto + container_name: chevereto + environment: + - PUID=1000 + - PGID=1000 + - TZ=Asia/Shanghai + volumes: + - ./app/config:/config + - ./app/data:/data + ports: + - 9180:80 + - 9143:443 + restart: unless-stopped + mariadb: + image: linuxserver/mariadb:latest + container_name: chevereto_mariadb + restart: always + volumes: + - ./db/mariadb/data:/config + ports: + - 9306:3306 + environment: + - MYSQL_ROOT_PASSWORD=password + - MYSQL_DATABASE=chevereto + - MYSQL_USER=chevereto + - MYSQL_PASSWORD=password + - PGID=1000 + - PUID=1000 + - TZ=Asia/Shanghai \ No newline at end of file diff --git a/chevereto/README.md b/chevereto/README.md new file mode 100644 index 0000000..f6e4a1f --- /dev/null +++ b/chevereto/README.md @@ -0,0 +1,16 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +# chevereto + +直接运行docker-compose up -d \ No newline at end of file diff --git a/chevereto/docker-compose.yml b/chevereto/docker-compose.yml new file mode 100644 index 0000000..3b00231 --- /dev/null +++ b/chevereto/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3' + +services: + db: + image: mariadb + volumes: + - database:/var/lib/mysql:rw + restart: always + networks: + - private + environment: + MYSQL_ROOT_PASSWORD: chevereto_root + MYSQL_DATABASE: chevereto + MYSQL_USER: chevereto + MYSQL_PASSWORD: chevereto + + chevereto: + depends_on: + - db + image: nmtan/chevereto + restart: always + networks: + - private + environment: + CHEVERETO_DB_HOST: db + CHEVERETO_DB_USERNAME: chevereto + CHEVERETO_DB_PASSWORD: chevereto + CHEVERETO_DB_NAME: chevereto + CHEVERETO_DB_PREFIX: chv_ + volumes: + - chevereto_images:/var/www/html/images:rw + ports: + - 8080:80 + +networks: + private: +volumes: + database: + chevereto_images: \ No newline at end of file diff --git a/cloud9/README.md b/cloud9/README.md new file mode 100644 index 0000000..8292c67 --- /dev/null +++ b/cloud9/README.md @@ -0,0 +1,2 @@ +Application Setup +Access the webui at http://your-ip:8000, for more information check out here. \ No newline at end of file diff --git a/cloud9/docker-compose.yml b/cloud9/docker-compose.yml new file mode 100644 index 0000000..c2fd899 --- /dev/null +++ b/cloud9/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.5" +services: + cloud9: + image: ghcr.io/linuxserver/cloud9 + container_name: cloud9 + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - GITURL=https://github.com/linuxserver/docker-cloud9.git #optional + - USERNAME= #optional + - PASSWORD= #optional + volumes: + - /path/to/your/code:/code #optional + - /var/run/docker.sock:/var/run/docker.sock #optional + ports: + - 8000:8000 + restart: unless-stopped \ No newline at end of file diff --git a/cloudreve/README-DOCKER-COMPOSE.md b/cloudreve/README-DOCKER-COMPOSE.md new file mode 100644 index 0000000..aa82624 --- /dev/null +++ b/cloudreve/README-DOCKER-COMPOSE.md @@ -0,0 +1,89 @@ +# Cloudreve Docker - Docker Compose + +## 使用Nginx作为服务器 + +在开始之前,请检查: + +- 已安装docker,如果没有请执行`wget -qO- https://get.docker.com/ | bash`安装docker。 +- 已安装docker compose,如果没有请参考[Install Docker Compose](https://docs.docker.com/compose/install/)。 +- 一个域名并解析到运行Cloudreve的服务器,这里以`cloudreve.example.com`为例。 +- 确保80和443端口没有被占用,如果您已经有服务器软件(如Nginx或Caddy),请考虑为原有服务器软件增加配置文件并删除docker compose配置文件中的caddy容器。 + +该docker-compose文件仅适用于linux/amd64架构,如果您正在使用arm请尝试修改部分参数。 + +### 预创建文件 + +Nginx配置文件 + +```bash +mkdir -p /dockercnf/nginx/conf.d \ + && mkdir -p /dockercnf/nginx/ssl \ + && vim /dockercnf/nginx/conf.d/cloudreve.conf +``` + +填入以下信息 + +``` +server { + listen 80; + location / { + proxy_pass http://cloudreve:5212; + proxy_set_header Host $host; + } +} +``` + +### 下载环境文件以及Docker Compose文件 + +下载环境文件 + +```bash +wget -qO- https://raw.githubusercontent.com/xavier-niu/cloudreve-docker/master/docker-compose-env-example > .env +``` + +根据需要对环境变量进行修改 + +- 必填项 + - CLOUDREVE_PUID: PUID的获取方式详见`获取PUID和PGID` + - CLOUDREVE_PGID: PGID的获取方式详见`获取PUID和PGID` + - ARIA2_RPC_SECRET: Aria2 RPC密码(你可以去[这里](https://miniwebtool.com/zh-cn/random-string-generator/)生成随机字符串)。请记下该密码!在后续Cloudreve设置Aria2中会使用。 +- 选填项(如无特殊需要不建议修改) + - TEMP_FOLDER_PATH: 离线下载临时文件夹路径 + - ARIA2_CONFIG_PATH: Aria2的配置文件夹路径 + - CLOUDREVE_UPLOAD_PATH: Cloudreve上传文件夹路径 + - CLOUDREVE_CONF_PATH: Cloudreve配置文件夹路径 + - CLOUDREVE_DB_PATH: Cloudreve数据库文件夹路径 + +下载Docker Compose文件 + +```bash +wget -qO- https://raw.githubusercontent.com/xavier-niu/cloudreve-docker/master/docker-compose-amd64.yml > docker-compose.yml +``` + +### 启动Docker Compose + +```bash +docker-compose up -d +``` + +说明 + +- Aria2-RPC会暴露于外网,访问端口`6800`,Secret为你对`ARIA2_RPC_SECRET`设置的随机字符串。 + +### 配置Cloudreve连接Aria2服务器 + +- 以管理员身份登陆 +- 点击"头像(右上角) > 管理面板" +- 点击"参数设置 > 离线下载" + + - RPC服务器地址: `http://aria2:6800/` + - RPC Secret: 你对`ARIA2_RPC_SECRET`设置的随机字符串 + - 临时下载地址: `/downloads` + - 其他选项按照默认值即可 +- 测试连接并保存 + +### 使用Traefik作为服务器 + +本方案由@expoli提供。Traefik是新一代的Web服务器,支持docker服务发现和自动申请HTTPS证书,只需修改相应的服务的label即可实现服务的反向代理,简化了配置。 + +相关配置请参阅[https://github.com/expoli/docker-compose-files](https://github.com/expoli/docker-compose-files),Cloudreve使用**traefik + cloudreve + mysql + redis**实现。 \ No newline at end of file diff --git a/cloudreve/README.md b/cloudreve/README.md new file mode 100644 index 0000000..1a0d0e3 --- /dev/null +++ b/cloudreve/README.md @@ -0,0 +1,12 @@ +**TEST** + + +官网: + +https://docs.cloudreve.org/ + + + +项目地址: + +https://hub.docker.com/r/xavierniu/cloudreve \ No newline at end of file diff --git a/cloudreve/docker-compose-amd64.yml b/cloudreve/docker-compose-amd64.yml new file mode 100644 index 0000000..b5a0061 --- /dev/null +++ b/cloudreve/docker-compose-amd64.yml @@ -0,0 +1,52 @@ +version: '3' + +services: + caddy: + image: nginx:alpine + ports: + - 80:80 + - 443:443 + volumes: + - /dockercnf/nginx/conf.d:/etc/nginx/conf.d + - /dockercnf/nginx/ssl:/etc/nginx/ssl + networks: + - cloudreve-network + restart: unless-stopped + + aria2: + image: p3terx/aria2-pro + logging: + options: + max-size: 1m + ports: + - 6800:6800 + - 6888:6888 + - 6888:6888/udp + environment: + - PUID=${CLOUDREVE_PUID} + - PGID=${CLOUDREVE_PGID} + - RPC_SECRET=${ARIA2_RPC_SECRET} + volumes: + - ${ARIA2_CONFIG_PATH}:/config + - ${TEMP_FOLDER_PATH}:/downloads + networks: + - cloudreve-network + restart: unless-stopped + + cloudreve: + image: xavierniu/cloudreve + environment: + - PUID=${CLOUDREVE_PUID} + - PGID=${CLOUDREVE_PGID} + volumes: + - ${CLOUDREVE_UPLOAD_PATH}:/cloudreve/uploads + - ${TEMP_FOLDER_PATH}:/downloads + - ${CLOUDREVE_CONF_PATH}:/cloudreve/config + - ${CLOUDREVE_DB_PATH}:/cloudreve/db + - ${CLOUDREVE_AVATAR_PATH}:/cloudreve/avatar + networks: + - cloudreve-network + + +networks: + cloudreve-network: diff --git a/cloudreve/docker-compose-env-example b/cloudreve/docker-compose-env-example new file mode 100644 index 0000000..cafcae1 --- /dev/null +++ b/cloudreve/docker-compose-env-example @@ -0,0 +1,24 @@ +# Required + +# > PUID & PGID +CLOUDREVE_PUID= +CLOUDREVE_PGID= + +# > Aria2 +ARIA2_RPC_SECRET= + +# Optional +# But I highly recommend you keep items below as default +# unless you know what you are doing. + +# > Temp download folder for Aria2 & Cloudreve +TEMP_FOLDER_PATH=/dockercnf/aria2/temp + +# > Aria2 +ARIA2_CONFIG_PATH=/dockercnf/aria2/conf + +# > Cloudreve +CLOUDREVE_UPLOAD_PATH=/sharedfolders +CLOUDREVE_CONF_PATH=/dockercnf/cloudreve/config +CLOUDREVE_DB_PATH=/dockercnf/cloudreve/db +CLOUDREVE_AVATAR_PATH=/dockercnf/cloudreve/avatar \ No newline at end of file diff --git a/cloudreve/docker-compose.yml b/cloudreve/docker-compose.yml new file mode 100644 index 0000000..5b259cb --- /dev/null +++ b/cloudreve/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' + +services: + cloudreve: + image: xavierniu/cloudreve + container_name: cloudreve + environment: + - USER_UID=1000 + - USER_GID=1000 + - TZ="Asia/Shanghai" + restart: unless-stopped + volumes: + - ./app/uploads:/cloudreve/uploads + - ./app/config:/cloudreve/config + - ./app/db:/cloudreve/db + - ./app/avatar:/cloudreve/avatar + ports: + - "9212:5212" \ No newline at end of file diff --git a/codimd/README.md b/codimd/README.md new file mode 100644 index 0000000..c1bc481 --- /dev/null +++ b/codimd/README.md @@ -0,0 +1 @@ +**TEST** \ No newline at end of file diff --git a/codimd/docker-compose.yml b/codimd/docker-compose.yml new file mode 100644 index 0000000..d7152ee --- /dev/null +++ b/codimd/docker-compose.yml @@ -0,0 +1,36 @@ +version: "3" +services: + mariadb: + image: linuxserver/mariadb:latest + container_name: codimd_mariadb + restart: always + volumes: + - ./mariadb/config:/config + environment: + - MYSQL_ROOT_PASSWORD=123456 + - MYSQL_DATABASE=codimd + - MYSQL_USER=codimd + - MYSQL_PASSWORD=123456 + - PGID=1000 + - PUID=1000 + - TZ=Europe/London + codimd: + image: linuxserver/codimd:latest + container_name: codimd + restart: always + depends_on: + - mariadb + volumes: + - ./codimd/config:/config + environment: + - DB_HOST=mariadb + - DB_USER=codimd + - DB_PASS=123456 + - DB_NAME=codimd + - DB_PORT=3306 + - PGID=1000 + - PUID=1000 + - FILE__PASSWORD=/run/secrets/mysecretpassword + - TZ=Europe/London + ports: + - "3000:3000" \ No newline at end of file diff --git a/composer/README.md b/composer/README.md new file mode 100644 index 0000000..696aea9 --- /dev/null +++ b/composer/README.md @@ -0,0 +1,26 @@ +Basic usage +``` +$ docker run --rm --interactive --tty \ + --volume $PWD:/app \ + composer +``` +Persist cache / global configuration +You can bind mount the Composer home directory from your host to the container to enable a persistent cache or share global configuration: +``` +$ docker run --rm --interactive --tty \ + --volume $PWD:/app \ + --volume ${COMPOSER_HOME:-$HOME/.composer}:/tmp \ + composer +``` +Note: this relies on the fact that the COMPOSER_HOME value is set to /tmp in the image by default. + +Or if your environment follows the XDG specification: +``` +$ docker run --rm --interactive --tty \ + --env COMPOSER_HOME \ + --env COMPOSER_CACHE_DIR \ + --volume ${COMPOSER_HOME:-$HOME/.config/composer}:$COMPOSER_HOME \ + --volume ${COMPOSER_CACHE_DIR:-$HOME/.cache/composer}:$COMPOSER_CACHE_DIR \ + --volume $PWD:/app \ + composer +``` diff --git a/coredns/data/coredns/Corefile b/coredns/data/coredns/Corefile new file mode 100644 index 0000000..40940e5 --- /dev/null +++ b/coredns/data/coredns/Corefile @@ -0,0 +1,4 @@ +.:53 { + forward . 8.8.8.8:53 + log +} \ No newline at end of file diff --git a/coredns/docker-compose.yml b/coredns/docker-compose.yml new file mode 100644 index 0000000..9eefb13 --- /dev/null +++ b/coredns/docker-compose.yml @@ -0,0 +1,7 @@ +version: '3.9' +services: + kavita: + image: coredns/coredns + volumes: + - ./data/coredns:/etc/coredns/ + restart: unless-stopped \ No newline at end of file diff --git a/coredns/readme.md b/coredns/readme.md new file mode 100644 index 0000000..c1bc481 --- /dev/null +++ b/coredns/readme.md @@ -0,0 +1 @@ +**TEST** \ No newline at end of file diff --git a/couchbase/README.md b/couchbase/README.md new file mode 100644 index 0000000..80c60c1 --- /dev/null +++ b/couchbase/README.md @@ -0,0 +1 @@ +docker run -d --name db -p 8091-8094:8091-8094 -p 11210:11210 couchbase \ No newline at end of file diff --git a/couchbase/docker-compose.yml b/couchbase/docker-compose.yml new file mode 100644 index 0000000..396ee6f --- /dev/null +++ b/couchbase/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.5" +services: + cloud9: + image: couchbase + container_name: couchbase + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - ./app/data:/opt/couchbase/var #optional + ports: + - 8091:8091 + - 8092:8092 + - 8093:8093 + - 8094:8094 + - 11210:11210 + restart: unless-stopped \ No newline at end of file diff --git a/cyberchef/README.md b/cyberchef/README.md new file mode 100644 index 0000000..6a4ad1d --- /dev/null +++ b/cyberchef/README.md @@ -0,0 +1 @@ +docker run -d -p 8000:8000 mpepping/cyberchef \ No newline at end of file diff --git a/cyberchef/docker-compose.yml b/cyberchef/docker-compose.yml new file mode 100644 index 0000000..3926649 --- /dev/null +++ b/cyberchef/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' +services: + server: + image: mpepping/cyberchef + container_name: cyberchef + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + privileged: true + ports: + - "8000:8000" \ No newline at end of file diff --git a/dailycheckin/README.md b/dailycheckin/README.md new file mode 100755 index 0000000..3124f4d --- /dev/null +++ b/dailycheckin/README.md @@ -0,0 +1,10 @@ +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + + +### 运行 + +下载代码 + +在代码目录下,运行`docker-compose up` \ No newline at end of file diff --git a/dailycheckin/config/config.json b/dailycheckin/config/config.json new file mode 100644 index 0000000..cc888f8 --- /dev/null +++ b/dailycheckin/config/config.json @@ -0,0 +1,278 @@ +{ + "DINGTALK_SECRET": "", + "DINGTALK_ACCESS_TOKEN": "", + "SCKEY": "", + "SENDKEY": "", + "BARK_URL": "", + "QMSG_KEY": "", + "QMSG_TYPE": "", + "TG_BOT_TOKEN": "", + "TG_USER_ID": "", + "TG_API_HOST": "", + "TG_PROXY": "", + "COOLPUSHSKEY": "", + "COOLPUSHQQ": true, + "COOLPUSHWX": true, + "COOLPUSHEMAIL": true, + "QYWX_KEY": "", + "QYWX_CORPID": "", + "QYWX_AGENTID": "", + "QYWX_CORPSECRET": "", + "QYWX_TOUSER": "", + "PUSHPLUS_TOKEN": "", + "PUSHPLUS_TOPIC": "", + "CITY_NAME_LIST": [ + "上海" + ], + "MOTTO": true, + "IQIYI_COOKIE_LIST": [ + { + "iqiyi_cookie": "__dfp=xxxxxx; QP0013=xxxxxx; QP0022=xxxxxx; QYABEX=xxxxxx; P00001=xxxxxx; P00002=xxxxxx; P00003=xxxxxx; P00007=xxxxxx; QC163=xxxxxx; QC175=xxxxxx; QC179=xxxxxx; QC170=xxxxxx; P00010=xxxxxx; P00PRU=xxxxxx; P01010=xxxxxx; QC173=xxxxxx; QC180=xxxxxx; P00004=xxxxxx; QP0030=xxxxxx; QC006=xxxxxx; QC007=xxxxxx; QC008=xxxxxx; QC010=xxxxxx; nu=xxxxxx; __uuid=xxxxxx; QC005=xxxxxx;" + }, + { + "iqiyi_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "VQQ_COOKIE_LIST": [ + { + "auth_refresh": "https://access.video.qq.com/user/auth_refresh?vappid=xxxxxx&vsecret=xxxxxx&type=qq&g_tk=&g_vstk=xxxxxx&g_actk=xxxxxx&callback=xxxxxx&_=xxxxxx", + "vqq_cookie": "pgv_pvid=xxxxxx; pac_uid=xxxxxx; RK=xxxxxx; ptcz=xxxxxx; tvfe_boss_uuid=xxxxxx; video_guid=xxxxxx; video_platform=xxxxxx; pgv_info=xxxxxx; main_login=xxxxxx; vqq_access_token=xxxxxx; vqq_appid=xxxxxx; vqq_openid=xxxxxx; vqq_vuserid=xxxxxx; vqq_refresh_token=xxxxxx; login_time_init=xxxxxx; uid=xxxxxx; vqq_vusession=xxxxxx; vqq_next_refresh_time=xxxxxx; vqq_login_time_init=xxxxxx; login_time_last=xxxxxx;" + }, + { + "auth_refresh": "多账号 refresh url,请参考上面,以实际获取为准", + "vqq_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "YOUDAO_COOKIE_LIST": [ + { + "youdao_cookie": "JSESSIONID=xxxxxx; __yadk_uid=xxxxxx; OUTFOX_SEARCH_USER_ID_NCOO=xxxxxx; YNOTE_SESS=xxxxxx; YNOTE_PERS=xxxxxx; YNOTE_LOGIN=xxxxxx; YNOTE_CSTK=xxxxxx; _ga=xxxxxx; _gid=xxxxxx; _gat=xxxxxx; PUBLIC_SHARE_18a9dde3de846b6a69e24431764270c4=xxxxxx;" + }, + { + "youdao_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "KGQQ_COOKIE_LIST": [ + { + "kgqq_cookie": "muid=xxxxxx; uid=xxxxxx; userlevel=xxxxxx; openid=xxxxxx; openkey=xxxxxx; opentype=xxxxxx; qrsig=xxxxxx; pgv_pvid=xxxxxx;" + }, + { + "kgqq_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "MUSIC163_ACCOUNT_LIST": [ + { + "music163_phone": "18888xxxxxx", + "music163_password": "Sitoi" + }, + { + "music163_phone": "多账号 手机号", + "music163_password": "多账号 密码" + } + ], + "ONEPLUSBBS_COOKIE_LIST": [ + { + "oneplusbbs_cookie": "acw_tc=xxxxxx; qKc3_0e8d_saltkey=xxxxxx; qKc3_0e8d_lastvisit=xxxxxx; bbs_avatar=xxxxxx; qKc3_0e8d_sendmail=xxxxxx; opcid=xxxxxx; opcct=xxxxxx; oppt=xxxxxx; opsid=xxxxxx; opsct=xxxxxx; opbct=xxxxxx; UM_distinctid=xxxxxx; CNZZDATA1277373783=xxxxxx; www_clear=xxxxxx; ONEPLUSID=xxxxxx; qKc3_0e8d_sid=xxxxxx; bbs_uid=xxxxxx; bbs_uname=xxxxxx; bbs_grouptitle=xxxxxx; opuserid=xxxxxx; bbs_sign=xxxxxx; bbs_formhash=xxxxxx; qKc3_0e8d_ulastactivity=xxxxxx; opsertime=xxxxxx; qKc3_0e8d_lastact=xxxxxx; qKc3_0e8d_checkpm=xxxxxx; qKc3_0e8d_noticeTitle=xxxxxx; optime_browser=xxxxxx; opnt=xxxxxx; opstep=xxxxxx; opstep_event=xxxxxx; fp=xxxxxx;" + }, + { + "oneplusbbs_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "BAIDU_URL_SUBMIT_LIST": [ + { + "data_url": "https://cdn.jsdelivr.net/gh/Sitoi/Sitoi.github.io/baidu_urls.txt", + "submit_url": "http://data.zz.baidu.com/urls?site=https://sitoi.cn&token=xxxxxx", + "times": 10 + }, + { + "data_url": "多账号 data_url 链接地址,以实际获取为准", + "submit_url": "多账号 submit_url 链接地址,以实际获取为准", + "times": 10 + } + ], + "FMAPP_ACCOUNT_LIST": [ + { + "fmapp_token": "xxxxxx.xxxxxx-xxxxxx-xxxxxx.xxxxxx-xxxxxx", + "fmapp_cookie": "sensorsdata2015jssdkcross=xxxxxx", + "fmapp_blackbox": "eyJlcnJxxxxxx", + "fmapp_device_id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxx", + "fmapp_fmversion": "xxxxxx", + "fmapp_os": "xxxxxx", + "fmapp_useragent": "xxxxxx" + }, + { + "fmapp_token": "多账号 token 填写,请参考上面,以实际获取为准", + "fmapp_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)", + "fmapp_blackbox": "多账号 blackbox 填写,请参考上面,blackbox 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)", + "fmapp_device_id": "多账号 device_id 填写,请参考上面,以实际获取为准", + "fmapp_fmversion": "多账号 fmVersion 填写,请参考上面,以实际获取为准", + "fmapp_os": "多账号 os 填写,请参考上面,以实际获取为准", + "fmapp_useragent": "多账号 User-Agent 填写,请参考上面,以实际获取为准" + } + ], + "TIEBA_COOKIE_LIST": [ + { + "tieba_cookie": "BIDUPSID=xxxxxx; PSTM=xxxxxx; BAIDUID=xxxxxx; BAIDUID_BFESS=xxxxxx; delPer=xxxxxx; PSINO=xxxxxx; H_PS_PSSID=xxxxxx; BA_HECTOR=xxxxxx; BDORZ=xxxxxx; TIEBA_USERTYPE=xxxxxx; st_key_id=xxxxxx; BDUSS=xxxxxx; BDUSS_BFESS=xxxxxx; STOKEN=xxxxxx; TIEBAUID=xxxxxx; ab_sr=xxxxxx; st_data=xxxxxx; st_sign=xxxxxx;" + }, + { + "tieba_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "BILIBILI_COOKIE_LIST": [ + { + "bilibili_cookie": "_uuid=xxxxxx; rpdid=xxxxxx; LIVE_BUVID=xxxxxx; PVID=xxxxxx; blackside_state=xxxxxx; CURRENT_FNVAL=xxxxxx; buvid3=xxxxxx; fingerprint3=xxxxxx; fingerprint=xxxxxx; buivd_fp=xxxxxx; buvid_fp_plain=xxxxxx; DedeUserID=xxxxxx; DedeUserID__ckMd5=xxxxxx; SESSDATA=xxxxxx; bili_jct=xxxxxx; bsource=xxxxxx; finger=xxxxxx; fingerprint_s=xxxxxx;", + "coin_num": 0, + "coin_type": 1, + "silver2coin": true + }, + { + "bilibili_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)", + "coin_num": 0, + "coin_type": 1, + "silver2coin": true + } + ], + "V2EX_COOKIE_LIST": [ + { + "v2ex_cookie": "_ga=xxxxxx; __cfduid=xxxxxx; PB3_SESSION=xxxxxx; A2=xxxxxx; V2EXSETTINGS=xxxxxx; V2EX_REFERRER=xxxxxx; V2EX_LANG=xxxxxx; _gid=xxxxxx; V2EX_TAB=xxxxxx;", + "v2ex_proxy": "使用代理的信息,无密码例子: http://127.0.0.1:1080 有密码例子: http://username:password@127.0.0.1:1080" + }, + { + "v2ex_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)", + "v2ex_proxy": "使用代理的信息,无密码例子: http://127.0.0.1:1080 有密码例子: http://username:password@127.0.0.1:1080" + } + ], + "WWW2NZZ_COOKIE_LIST": [ + { + "www2nzz_cookie": "YPx9_2132_saltkey=xxxxxx; YPx9_2132_lastvisit=xxxxxx; YPx9_2132_sendmail=xxxxxx; YPx9_2132_con_request_uri=xxxxxx; YPx9_2132_sid=xxxxxx; YPx9_2132_client_created=xxxxxx; YPx9_2132_client_token=xxxxxx; YPx9_2132_ulastactivity=xxxxxx; YPx9_2132_auth=xxxxxx; YPx9_2132_connect_login=xxxxxx; YPx9_2132_connect_is_bind=xxxxxx; YPx9_2132_connect_uin=xxxxxx; YPx9_2132_stats_qc_login=xxxxxx; YPx9_2132_checkpm=xxxxxx; YPx9_2132_noticeTitle=xxxxxx; YPx9_2132_nofavfid=xxxxxx; YPx9_2132_lastact=xxxxxx;" + }, + { + "www2nzz_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "SMZDM_COOKIE_LIST": [ + { + "smzdm_cookie": "__jsluid_s=xxxxxx; __ckguid=xxxxxx; device_id=xxxxxx; homepage_sug=xxxxxx; r_sort_type=xxxxxx; _zdmA.vid=xxxxxx; sajssdk_2015_cross_new_user=xxxxxx; sensorsdata2015jssdkcross=xxxxxx; footer_floating_layer=xxxxxx; ad_date=xxxxxx; ad_json_feed=xxxxxx; zdm_qd=xxxxxx; sess=xxxxxx; user=xxxxxx; _zdmA.uid=xxxxxx; smzdm_id=xxxxxx; userId=xxxxxx; bannerCounter=xxxxxx; _zdmA.time=xxxxxx;" + }, + { + "smzdm_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "MIMOTION_ACCOUNT_LIST": [ + { + "mimotion_phone": "18888xxxxxx", + "mimotion_password": "Sitoi", + "mimotion_min_step": "10000", + "mimotion_max_step": "20000" + }, + { + "mimotion_phone": "多账号 手机号填写,请参考上面", + "mimotion_password": "多账号 密码填写,请参考上面", + "mimotion_min_step": "多账号 最小步数填写,请参考上面", + "mimotion_max_step": "多账号 最大步数填写,请参考上面" + } + ], + "ACFUN_ACCOUNT_LIST": [ + { + "acfun_phone": "18888xxxxxx", + "acfun_password": "Sitoi" + }, + { + "acfun_phone": "多账号 手机号填写,请参考上面", + "acfun_password": "多账号 密码填写,请参考上面" + } + ], + "CLOUD189_ACCOUNT_LIST": [ + { + "cloud189_phone": "18888xxxxxx", + "cloud189_password": "Sitoi" + }, + { + "cloud189_phone": "多账号 手机号填写,请参考上面", + "cloud189_password": "多账号 密码填写,请参考上面" + } + ], + "POJIE_COOKIE_LIST": [ + { + "pojie_cookie": "htVD_2132_client_token=xxxxxx; htVD_2132_connect_is_bind=xxxxxx; htVD_2132_connect_uin=xxxxxx; htVD_2132_nofavfid=xxxxxx; htVD_2132_smile=xxxxxx; Hm_lvt_46d556462595ed05e05f009cdafff31a=xxxxxx; htVD_2132_saltkey=xxxxxx; htVD_2132_lastvisit=xxxxxx; htVD_2132_client_created=xxxxxx; htVD_2132_auth=xxxxxx; htVD_2132_connect_login=xxxxxx; htVD_2132_home_diymode=xxxxxx; htVD_2132_visitedfid=xxxxxx; htVD_2132_viewid=xxxxxx; KF4=xxxxxx; htVD_2132_st_p=xxxxxx; htVD_2132_lastcheckfeed=xxxxxx; htVD_2132_sid=xxxxxx; htVD_2132_ulastactivity=xxxxxx; htVD_2132_noticeTitle=xxxxxx;" + }, + { + "pojie_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "MGTV_PARAMS_LIST": [ + { + "mgtv_params": "uuid=xxxxxx&uid=xxxxxx&ticket=xxxxxx&token=xxxxxx&device=iPhone&did=xxxxxx&deviceId=xxxxxx&appVersion=6.8.2&osType=ios&platform=iphone&abroad=0&aid=xxxxxx&nonce=xxxxxx×tamp=xxxxxx&appid=xxxxxx&type=1&sign=xxxxxx&callback=xxxxxx" + }, + { + "mgtv_params": "多账号 请求参数填写,请参考上面" + } + ], + "PICACOMIC_ACCOUNT_LIST": [ + { + "picacomic_email": "Sitoi", + "picacomic_password": "xxxxxx" + }, + { + "picacomic_email": "多账号 账号填写,请参考上面", + "picacomic_password": "多账号 密码填写,请参考上面" + } + ], + "MEIZU_COOKIE_LIST": [ + { + "meizu_cookie": "aliyungf_tc=xxxxxx; logined_uid=xxxxxx; acw_tc=xxxxxx; LT=xxxxxx; MZBBS_2132_saltkey=xxxxxx; MZBBS_2132_lastvisit=xxxxxx; MZBBSUC_2132_auth=xxxxxx; MZBBSUC_2132_loginmember=xxxxxx; MZBBSUC_2132_ticket=xxxxxx; MZBBS_2132_sid=xxxxxx; MZBBS_2132_ulastactivity=xxxxxx; MZBBS_2132_auth=xxxxxx; MZBBS_2132_loginmember=xxxxxx; MZBBS_2132_lastcheckfeed=xxxxxx; MZBBS_2132_checkfollow=xxxxxx; MZBBS_2132_lastact=xxxxxx;", + "draw_count": "1" + }, + { + "meizu_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)", + "draw_count": "多账号 抽奖次数设置" + } + ], + "ZHIYOO_COOKIE_LIST": [ + { + "zhiyoo_cookie": "ikdQ_9242_saltkey=xxxxxx; ikdQ_9242_lastvisit=xxxxxx; ikdQ_9242_onlineusernum=xxxxxx; ikdQ_9242_sendmail=1; ikdQ_9242_seccode=xxxxxx; ikdQ_9242_ulastactivity=xxxxxx; ikdQ_9242_auth=xxxxxx; ikdQ_9242_connect_is_bind=xxxxxx; ikdQ_9242_nofavfid=xxxxxx; ikdQ_9242_checkpm=xxxxxx; ikdQ_9242_noticeTitle=1; ikdQ_9242_sid=xxxxxx; ikdQ_9242_lip=xxxxxx; ikdQ_9242_lastact=xxxxxx" + }, + { + "zhiyoo_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "WEIBO_COOKIE_LIST": [ + { + "weibo_show_url": "https://api.weibo.cn/2/users/show?wm=xxxxxx&launchid=xxxxxx&b=xxxxxx&from=xxxxxx&c=xxxxxx&networktype=xxxxxx&v_p=xxxxxx&skin=xxxxxx&v_f=xxxxxx&lang=xxxxxx&sflag=xxxxxx&ua=xxxxxx&ft=xxxxxx&aid=xxxxxx&has_extend=xxxxxx&uid=xxxxxx&gsid=xxxxxx&sourcetype=&get_teenager=xxxxxx&s=xxxxxx&has_profile=xxxxxx" + }, + { + "weibo_show_url": "多账号 show_url 填写,请参考上面,show_url 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "DUOKAN_COOKIE_LIST": [ + { + "duokan_cookie": "user_id=xxxxxx; token=xxxxxx; user_gender=xxxxxx; device_id=xxxxxx; app_id=xxxxxx; build=xxxxxx; short_version=xxxxxx" + }, + { + "duokan_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "CSDN_COOKIE_LIST": [ + { + "csdn_cookie": "uuid_tt_dd=xxxxxx; _ga=xxxxxx; UserName=xxxxxx; UserInfo=xxxxxx; UserToken=xxxxxx; UserNick=xxxxxx; AU=768; UN=xxxxxx; BT=xxxxxx; p_uid=xxxxxx; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=xxxxxx; Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=xxxxxx; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=xxxxxx dc_sid=xxxxxx; c_segment=xxxxxx; dc_session_id=xxxxxx; csrfToken=xxxxxx; c_first_ref=xxxxxx; c_first_page=xxxxxx; c_page_id=xxxxxx; announcement-new=xxxxxx; log_Id_click=xxxxxx; c_pref=xxxxxx; c_ref=xxxxxx; dc_tos=xxxxxx; log_Id_pv=xxxxxx; log_Id_view=xxxxxx" + }, + { + "csdn_cookie": "多账号 cookie 填写,请参考上面,cookie 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "WZYD_DATA_LIST": [ + { + "wzyd_data": "areaId=xxxxxx&roleId=xxxxxx&gameId=xxxxxx&serverId=xxxxxx&gameOpenid=xxxxxx&userId=xxxxxx&appVersion=xxxxxx&cClientVersionName=xxxxxx&platid=xxxxxx&source=xxxxxx&algorithm=xxxxxx&version=xxxxxx×tamp=xxxxxx&appid=xxxxxx&openid=xxxxxx&sig=xxxxxx&encode=2&msdkEncodeParam=xxxxxx&cSystem=xxxxxx&h5Get=xxxxxx&msdkToken=&appOpenid=xxxxxx" + }, + { + "wzyd_data": "多账号 data 填写,请参考上面,data 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ], + "WOMAIL_URL_LIST": [ + { + "womail_url": "https://nyan.mail.wo.cn/cn/sign/index/index?mobile=xxxxxx&userName=&openId=xxxxxx" + }, + { + "womail_url": "多账号 url 填写,请参考上面,url 以实际获取为准(遇到特殊字符如双引号\" 请加反斜杠转义)" + } + ] + } \ No newline at end of file diff --git a/dailycheckin/docker-compose.yml b/dailycheckin/docker-compose.yml new file mode 100644 index 0000000..7f63878 --- /dev/null +++ b/dailycheckin/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3' +services: + dailycheckin: + image: sitoi/dailycheckin:latest + container_name: dailycheckin + restart: always + tty: true + volumes: + - ./config:/dailycheckin/config + - ./logs:/dailycheckin/logs \ No newline at end of file diff --git a/dailynotes/docker-compose.yml b/dailynotes/docker-compose.yml new file mode 100644 index 0000000..c904d06 --- /dev/null +++ b/dailynotes/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + server: + image: m0ngr31/dailynotes + container_name: dailynotes + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + privileged: true + volumes: + - ./config_dir:/app/config + - /etc/localtime:/etc/localtime + ports: + - "5000:5000" + diff --git a/damselfly/README.md b/damselfly/README.md new file mode 100644 index 0000000..59b0236 --- /dev/null +++ b/damselfly/README.md @@ -0,0 +1,26 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + + +damselfly + damselfly: + container_name: damselfly + image: webreaper/damselfly + ports: + - 6363:6363/tcp + volumes: + - /volume1/dockerdata/damselfly:/config + - /volume1/dockerdata/damselfly/thumbs:/thumbs + - /volume1/photo:/pictures + restart: unless-stopped \ No newline at end of file diff --git a/damselfly/docker-compose.yml b/damselfly/docker-compose.yml new file mode 100644 index 0000000..71e942d --- /dev/null +++ b/damselfly/docker-compose.yml @@ -0,0 +1,19 @@ + + +version: '3' + +services: + damselfly: + image: webreaper/damselfly + container_name: damselfly + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: unless-stopped + privileged: true + volumes: + - ./volume1/dockerdata/damselfly:/config + - ./volume1/dockerdata/damselfly/thumbs:/thumbs + - ./volume1/photo:/pictures + ports: + - "9063:6363" \ No newline at end of file diff --git a/ddns/README.md b/ddns/README.md new file mode 100644 index 0000000..4f0da93 --- /dev/null +++ b/ddns/README.md @@ -0,0 +1,20 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + +### 修改参数 + +修改以下参数为自己的密钥信息 + - "AKID=LTAI4GDFXXXXX" + - "AKSCT=atFgYY54DTMXXXXXXX" +修改以下域名为自己阿里云账户里解析的域名xxxx.cn,并添加一个新的解析test.xxxx.cn + - "DOMAIN=test.xxxx.cn" diff --git a/ddns/docker-compose.yml b/ddns/docker-compose.yml new file mode 100644 index 0000000..4ba48cd --- /dev/null +++ b/ddns/docker-compose.yml @@ -0,0 +1,15 @@ + + +version: '3' + + +services: + server: + image: chenhw2/aliyun-ddns-cli + container_name: ddns + privileged: true + environment: + - "AKID=LTAI4GDFXXXXX" + - "AKSCT=atFgYY54DTMXXXXXXX" + - "DOMAIN=test.xxxx.cn" + diff --git a/digikam/README.md b/digikam/README.md new file mode 100644 index 0000000..10c2cea --- /dev/null +++ b/digikam/README.md @@ -0,0 +1,6 @@ +Application Setup +The application can be accessed at: + +http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: + +http://yourhost:3000/?login=true \ No newline at end of file diff --git a/digikam/docker-compose.yml b/digikam/docker-compose.yml new file mode 100644 index 0000000..7974b51 --- /dev/null +++ b/digikam/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.5" +services: + digikam: + image: linuxserver/digikam + container_name: digikam + network_mode: host + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/New_York + volumes: + - ./app/config:/config + ports: + - 3000:3000 #optional + restart: unless-stopped \ No newline at end of file diff --git a/dillinger/README.md b/dillinger/README.md new file mode 100644 index 0000000..a511552 --- /dev/null +++ b/dillinger/README.md @@ -0,0 +1,2 @@ +Application Setup +Access the webui at http://your-ip:8080 , keep in mind that storage for this application is in your browser session not server side. Only plugin configurations will ever be stored server side. \ No newline at end of file diff --git a/dillinger/docker-compose.yml b/dillinger/docker-compose.yml new file mode 100644 index 0000000..55a6332 --- /dev/null +++ b/dillinger/docker-compose.yml @@ -0,0 +1,14 @@ +version: "2.1" +services: + dillinger: + image: linuxserver/dillinger + container_name: dillinger + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - ./data/config:/config + ports: + - 8080:8080 + restart: unless-stopped \ No newline at end of file diff --git a/discuzq/README.md b/discuzq/README.md new file mode 100644 index 0000000..0b56cdc --- /dev/null +++ b/discuzq/README.md @@ -0,0 +1,13 @@ +使用`docker-compose up`启动,访问 https://<域名>/install 就可以开始安装,并正常使用。使用`docker-compose up -d`后台运行。 + +如果未能提供nginx的ssl证书,需要将` - ./data/certs/:/etc/nginx/certs/`注释掉。映射nginx证书目录必须保证该目录下有相应的文件,SSL证书文件分别为discuz.crt 和 discuz.key。无此文件可能导致容器运行不正常。 + +MySQL Host:请输入`127.0.0.1`即可 + +MySQL 数据库:请输入`root`即可 + +MySQL 用户名:请输入`root`即可 + +MySQL 密码:请输入`root`即可 + +请参照[Discuz! Q 官方文档](https://discuz.com/docs/) \ No newline at end of file diff --git a/discuzq/docker-compose.yml b/discuzq/docker-compose.yml new file mode 100644 index 0000000..07fad83 --- /dev/null +++ b/discuzq/docker-compose.yml @@ -0,0 +1,27 @@ +version: '2.1' + +networks: + discuzq: + external: false + +services: + discuzq: + image: ccr.ccs.tencentyun.com/discuzq/dzq:latest + container_name: discuzq + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + privileged: true + networks: + - discuzq + volumes: + - ./data/mysqldb:/var/lib/mysqldb/ + - ./data/discuz:/var/lib/discuz/ + - ./data/certs/:/etc/nginx/certs/ + - /etc/localtime:/etc/localtime + ports: + - "7180:80" + - "7443:443" + + \ No newline at end of file diff --git a/django-docker/.gitignore b/django-docker/.gitignore new file mode 100644 index 0000000..536ecec --- /dev/null +++ b/django-docker/.gitignore @@ -0,0 +1,110 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# dotenv +.env + +# virtualenv +.venv +venv/ +ENV/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# vscode +.vscode/ + +# db-data +mysql/ + +# static files for nginx +staticfiles/ diff --git a/django-docker/Dockerfile b/django-docker/Dockerfile new file mode 100644 index 0000000..4872154 --- /dev/null +++ b/django-docker/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3 +ENV PYTHONUNBUFFERED=1 +RUN mkdir /code +WORKDIR /code +ADD requirements.txt /code/ +RUN pip install -r requirements.txt +# ADD . /code/ \ No newline at end of file diff --git a/django-docker/LICENSE b/django-docker/LICENSE new file mode 100644 index 0000000..6feda8b --- /dev/null +++ b/django-docker/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 蛞蝓 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/django-docker/README.md b/django-docker/README.md new file mode 100644 index 0000000..6ebed3c --- /dev/null +++ b/django-docker/README.md @@ -0,0 +1,47 @@ +# django-docker +A complete example for deploying Django project with Nginx and MySQL on Docker. +## QuickStart +Install Docker Engine from the tutorial .
    +Install Docker Compose from the tutorial .
    +Get the latest project clone to your computer: +```bash +$ git clone https://github.com/huchenw/django-docker.git +``` +Run docker-compose commands to start containers: +```bash +$ docker-compose up -d +``` +Now you can access the application at or (Docker Toolbox).
    +## Static Files +To collect static files for nginx to access, just run: +```bash +$ docker-compose exec web bash +$ python manage.py collectstatic +``` +## Django Admin +If you want to access django admin site, please apply the django default migrations to database: +```bash +$ docker-compose exec web bash +$ python manage.py migrate +``` +Then you need to create a superuser account: +```bash +$ python manage.py createsuperuser +$ ... +``` +## Celery Results +Redis is used as broker for Celery .
    +The official tutorial tells us how to use Celery with Django.
    +You can check the Celery results from logs: +```bash +$ docker-compose logs celery +``` +## Docker Images Reference + +| Name | Image | +| ------ | ---------------------------------- | +| Nginx | | +| MySQL | | +| Redis | | +| Python | | + diff --git a/django-docker/docker-compose.yml b/django-docker/docker-compose.yml new file mode 100644 index 0000000..0f13cb0 --- /dev/null +++ b/django-docker/docker-compose.yml @@ -0,0 +1,57 @@ +version: '3' + +services: + mysql: + image: mysql:5.7 + volumes: + - ./mysql:/var/lib/mysql + expose: + - "3306" + restart: always + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_DATABASE=djangodocker + - MYSQL_USER=django + - MYSQL_PASSWORD=django + + nginx: + image: nginx:alpine + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/conf:/etc/nginx/conf.d + - ./web/staticfiles:/django_static + ports: + - "80:80" + depends_on: + - web + + redis: + image: redis:alpine + expose: + - "6379" + restart: always + + web: + build: . + # command: python manage.py runserver 0:8000 + # ports: + # - "8000:8000" + command: uwsgi --ini uwsgi.ini + working_dir: /code/web + volumes: + - .:/code + expose: + - "8000" + depends_on: + - mysql + - redis + + celery: + build: . + command: celery -A web worker -l info + working_dir: /code/web + volumes: + - .:/code + depends_on: + - mysql + - redis \ No newline at end of file diff --git a/django-docker/nginx/conf/default.conf b/django-docker/nginx/conf/default.conf new file mode 100644 index 0000000..459a613 --- /dev/null +++ b/django-docker/nginx/conf/default.conf @@ -0,0 +1,15 @@ +server { + listen 80; + server_name localhost; + charset utf-8; + client_max_body_size 10M; + + location /static/ { + alias /django_static/; + } + + location / { + include uwsgi_params; + uwsgi_pass web:8000; + } +} \ No newline at end of file diff --git a/django-docker/nginx/nginx.conf b/django-docker/nginx/nginx.conf new file mode 100644 index 0000000..e4bad8d --- /dev/null +++ b/django-docker/nginx/nginx.conf @@ -0,0 +1,32 @@ + +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; +} diff --git a/django-docker/requirements.txt b/django-docker/requirements.txt new file mode 100644 index 0000000..9e3eb35 --- /dev/null +++ b/django-docker/requirements.txt @@ -0,0 +1,5 @@ + django + mysqlclient + uwsgi + celery + redis \ No newline at end of file diff --git a/django-docker/web/demoapp/__init__.py b/django-docker/web/demoapp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django-docker/web/demoapp/admin.py b/django-docker/web/demoapp/admin.py new file mode 100644 index 0000000..ea5d68b --- /dev/null +++ b/django-docker/web/demoapp/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/django-docker/web/demoapp/apps.py b/django-docker/web/demoapp/apps.py new file mode 100644 index 0000000..16a78e5 --- /dev/null +++ b/django-docker/web/demoapp/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class DemoappConfig(AppConfig): + name = 'demoapp' diff --git a/django-docker/web/demoapp/migrations/__init__.py b/django-docker/web/demoapp/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django-docker/web/demoapp/models.py b/django-docker/web/demoapp/models.py new file mode 100644 index 0000000..fd18c6e --- /dev/null +++ b/django-docker/web/demoapp/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/django-docker/web/demoapp/tasks.py b/django-docker/web/demoapp/tasks.py new file mode 100644 index 0000000..9d31ad4 --- /dev/null +++ b/django-docker/web/demoapp/tasks.py @@ -0,0 +1,17 @@ +# Create your tasks here +from celery import shared_task + + +@shared_task +def add(x, y): + return x + y + + +@shared_task +def mul(x, y): + return x * y + + +@shared_task +def xsum(numbers): + return sum(numbers) diff --git a/django-docker/web/demoapp/templates/demoapp/celery_detail.html b/django-docker/web/demoapp/templates/demoapp/celery_detail.html new file mode 100644 index 0000000..9425274 --- /dev/null +++ b/django-docker/web/demoapp/templates/demoapp/celery_detail.html @@ -0,0 +1,2 @@ +

    function {{ function_detail }} is executed by celery,

    +

    run "docker-compose logs celery" for detail.

    \ No newline at end of file diff --git a/django-docker/web/demoapp/templates/demoapp/celery_index.html b/django-docker/web/demoapp/templates/demoapp/celery_index.html new file mode 100644 index 0000000..26d3aaf --- /dev/null +++ b/django-docker/web/demoapp/templates/demoapp/celery_index.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/django-docker/web/demoapp/templates/demoapp/index.html b/django-docker/web/demoapp/templates/demoapp/index.html new file mode 100644 index 0000000..85dcbb8 --- /dev/null +++ b/django-docker/web/demoapp/templates/demoapp/index.html @@ -0,0 +1,5 @@ +

    Django-Docker By huchenw

    + \ No newline at end of file diff --git a/django-docker/web/demoapp/tests.py b/django-docker/web/demoapp/tests.py new file mode 100644 index 0000000..de8bdc0 --- /dev/null +++ b/django-docker/web/demoapp/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/django-docker/web/demoapp/urls.py b/django-docker/web/demoapp/urls.py new file mode 100644 index 0000000..5a8e6c2 --- /dev/null +++ b/django-docker/web/demoapp/urls.py @@ -0,0 +1,12 @@ +from django.urls import path +from . import views + +app_name = 'demoapp' + +urlpatterns = [ + path('', views.index, name='index'), + path('celery/', views.celery_index, name='celery_index'), + path('celery/random_add/', views.random_add, name='celery_random_add'), + path('celery/random_mul/', views.random_mul, name='celery_random_mul'), + path('celery/random_xsum/', views.random_xsum, name='celery_random_xsum'), +] diff --git a/django-docker/web/demoapp/views.py b/django-docker/web/demoapp/views.py new file mode 100644 index 0000000..36ce62e --- /dev/null +++ b/django-docker/web/demoapp/views.py @@ -0,0 +1,34 @@ +import random +from django.shortcuts import render +from . import tasks + + +def index(request): + context = {} + return render(request, 'demoapp/index.html', context) + + +def celery_index(request): + context = {} + return render(request, 'demoapp/celery_index.html', context) + + +def random_add(request): + a, b = random.choices(range(100), k=2) + tasks.add.delay(a, b) + context = {'function_detail': 'add({}, {})'.format(a, b)} + return render(request, 'demoapp/celery_detail.html', context) + + +def random_mul(request): + a, b = random.choices(range(100), k=2) + tasks.mul.delay(a, b) + context = {'function_detail': 'mul({}, {})'.format(a, b)} + return render(request, 'demoapp/celery_detail.html', context) + + +def random_xsum(request): + array = random.choices(range(100), k=random.randint(1, 10)) + tasks.xsum.delay(array) + context = {'function_detail': 'xsum({})'.format(array)} + return render(request, 'demoapp/celery_detail.html', context) diff --git a/django-docker/web/manage.py b/django-docker/web/manage.py new file mode 100644 index 0000000..47e3357 --- /dev/null +++ b/django-docker/web/manage.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) diff --git a/django-docker/web/uwsgi.ini b/django-docker/web/uwsgi.ini new file mode 100644 index 0000000..3209244 --- /dev/null +++ b/django-docker/web/uwsgi.ini @@ -0,0 +1,9 @@ +[uwsgi] +socket=:8000 +chdir=/code/web +module=web.wsgi:application +pidfile=/tmp/web-master.pid +master=True +vacuum=True +processes=1 +max-requests=5000 \ No newline at end of file diff --git a/django-docker/web/web/__init__.py b/django-docker/web/web/__init__.py new file mode 100644 index 0000000..8e6415a --- /dev/null +++ b/django-docker/web/web/__init__.py @@ -0,0 +1,5 @@ +# This will make sure the app is always imported when +# Django starts so that shared_task will use this app. +from .celery import app as celery_app + +__all__ = ['celery_app'] diff --git a/django-docker/web/web/celery.py b/django-docker/web/web/celery.py new file mode 100644 index 0000000..b38b896 --- /dev/null +++ b/django-docker/web/web/celery.py @@ -0,0 +1,21 @@ +import os +from celery import Celery + +# set the default Django settings module for the 'celery' program. +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'web.settings') + +app = Celery('web') + +# Using a string here means the worker doesn't have to serialize +# the configuration object to child processes. +# - namespace='CELERY' means all celery-related configuration keys +# should have a `CELERY_` prefix. +app.config_from_object('django.conf:settings', namespace='CELERY') + +# Load task modules from all registered Django app configs. +app.autodiscover_tasks() + + +@app.task(bind=True) +def debug_task(self): + print('Request: {0!r}'.format(self.request)) diff --git a/django-docker/web/web/settings.py b/django-docker/web/web/settings.py new file mode 100644 index 0000000..62d8efc --- /dev/null +++ b/django-docker/web/web/settings.py @@ -0,0 +1,133 @@ +""" +Django settings for web project. + +Generated by 'django-admin startproject' using Django 2.0. + +For more information on this file, see +https://docs.djangoproject.com/en/2.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'jc#@io@jh+-5^rpk3d%864b4k12(hs^l!ju523)*wm#45(sc==' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = ['*'] + +# Celery settings + +CELERY_BROKER_URL = 'redis://redis:6379/0' +# CELERY_RESULT_BACKEND = 'django-db' + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'demoapp' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'web.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'web.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.0/ref/settings/#databases + +DATABASES = { + 'default': { + # 'ENGINE': 'django.db.backends.sqlite3', + # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'djangodocker', + 'USER': 'django', + 'PASSWORD': 'django', + 'HOST': 'mysql', + 'PORT': '3306', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.0/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') diff --git a/django-docker/web/web/urls.py b/django-docker/web/web/urls.py new file mode 100644 index 0000000..7624b23 --- /dev/null +++ b/django-docker/web/web/urls.py @@ -0,0 +1,22 @@ +"""web URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('', include('demoapp.urls')), + path('admin/', admin.site.urls), +] diff --git a/django-docker/web/web/wsgi.py b/django-docker/web/web/wsgi.py new file mode 100644 index 0000000..0d5e8d7 --- /dev/null +++ b/django-docker/web/web/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for web project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") + +application = get_wsgi_application() diff --git a/django/README.md b/django/README.md new file mode 100644 index 0000000..2194a6c --- /dev/null +++ b/django/README.md @@ -0,0 +1,5 @@ +## 暂未更新 + +``` +docker run --name some-django-app -v "$PWD":/usr/src/app -w /usr/src/app -p 8000:8000 -d django bash -c "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000" +``` \ No newline at end of file diff --git a/dnote/README.md b/dnote/README.md new file mode 100644 index 0000000..4f017be --- /dev/null +++ b/dnote/README.md @@ -0,0 +1,3 @@ +### 说明 + +使用域名访问 diff --git a/dnote/docker-compose.yml b/dnote/docker-compose.yml new file mode 100644 index 0000000..c47d71f --- /dev/null +++ b/dnote/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3" + +services: + postgres: + image: postgres:11-alpine + environment: + POSTGRES_USER: dnote + POSTGRES_PASSWORD: dnote + POSTGRES_DB: dnote + volumes: + - ./dnote_data:/var/lib/postgresql/data + restart: always + + dnote: + image: dnote/dnote:latest + environment: + GO_ENV: PRODUCTION + DBSkipSSL: "true" + DBHost: postgres + DBPort: 5432 + DBName: dnote + DBUser: dnote + DBPassword: dnote + WebURL: localhost:3000 + OnPremise: "true" + SmtpHost: + SmtpPort: + SmtpUsername: + SmtpPassword: + DisableRegistration: "false" + ports: + - 3000:3000 + depends_on: + - postgres + restart: always diff --git a/dokuwiki/README.md b/dokuwiki/README.md new file mode 100644 index 0000000..69dd553 --- /dev/null +++ b/dokuwiki/README.md @@ -0,0 +1,2 @@ +### Application Setup +Upon first install go to http://$IP:$PORT/install.php once you have completed the setup, restart the container, login as admin and set "Use nice URLs" in the admin/Configuration Settings panel to .htaccess and tick Use slash as namespace separator in URLs to enable nice URLs you will find the webui at http://$IP:$PORT/, for more info see [Dokuwiki](https://www.dokuwiki.org/dokuwiki/) \ No newline at end of file diff --git a/dokuwiki/docker-compose.yml b/dokuwiki/docker-compose.yml new file mode 100644 index 0000000..aad59f0 --- /dev/null +++ b/dokuwiki/docker-compose.yml @@ -0,0 +1,15 @@ +version: "2.1" +services: + dokuwiki: + image: ghcr.io/linuxserver/dokuwiki + container_name: dokuwiki + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - /path/to/appdata/config:/config + ports: + - 80:80 + - 443:443 #optional + restart: unless-stopped \ No newline at end of file diff --git a/domoticz/README.md b/domoticz/README.md new file mode 100644 index 0000000..bfca8d7 --- /dev/null +++ b/domoticz/README.md @@ -0,0 +1,2 @@ +Application Setup +To configure Domoticz, go to the IP of your docker host on the port you configured (default 8080), and add your hardware in Setup > Hardware. The user manual is available at www.domoticz.com \ No newline at end of file diff --git a/domoticz/docker-compose.yml b/domoticz/docker-compose.yml new file mode 100644 index 0000000..0d4c382 --- /dev/null +++ b/domoticz/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.5" +services: + xbackbone: + image: linuxserver/xbackbone + container_name: xbackbone + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Oslo + volumes: + - ./app/config:/config + ports: + - 80:80 + - 443:443 + restart: unless-stopped \ No newline at end of file diff --git a/doublecommander/docker-compose.yml b/doublecommander/docker-compose.yml new file mode 100644 index 0000000..02e1a8e --- /dev/null +++ b/doublecommander/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.5" +services: + doublecommander: + image: linuxserver/doublecommander + container_name: doublecommander + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - ./app/config:/config + - ./app/data:/data + ports: + - 3000:3000 + restart: unless-stopped \ No newline at end of file diff --git a/draw.io/README.md b/draw.io/README.md new file mode 100644 index 0000000..5c4e635 --- /dev/null +++ b/draw.io/README.md @@ -0,0 +1,8 @@ +docker run -it +--rm +--name="draw" +--mount type=bind,source="$(pwd)"/PreConfig.js,target=/usr/local/tomcat/webapps/draw/js/PreConfig.js +--mount type=bind,source="$(pwd)"/PostConfig.js,target=/usr/local/tomcat/webapps/draw/js/PostConfig.js +-p 8080:8080 +-p 8443:8443 +fjudith/draw.io diff --git a/drupal/README.md b/drupal/README.md new file mode 100755 index 0000000..282500a --- /dev/null +++ b/drupal/README.md @@ -0,0 +1,19 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + +### 运行 + +下载代码 + +在代码目录下,运行`docker-compose up` \ No newline at end of file diff --git a/drupal/docker-compose.yml b/drupal/docker-compose.yml new file mode 100644 index 0000000..054b48e --- /dev/null +++ b/drupal/docker-compose.yml @@ -0,0 +1,35 @@ +# Drupal with PostgreSQL +# +# Access via "http://localhost:8080" +# (or "http://$(docker-machine ip):8080" if using docker-machine) +# +# During initial Drupal setup, +# Database type: PostgreSQL +# Database name: postgres +# Database username: postgres +# Database password: example +# ADVANCED OPTIONS; Database host: postgres + +version: '3.1' + +services: + + drupal: + image: drupal:8-apache + ports: + - 8080:80 + volumes: + - ./data/modules:/var/www/html/modules + - ./data/profiles:/var/www/html/profiles + - ./data/themes:/var/www/html/themes + # this takes advantage of the feature in Docker that a new anonymous + # volume (which is what we're creating here) will be initialized with the + # existing content of the image at the same location + - ./data/sites:/var/www/html/sites + restart: always + + postgres: + image: postgres:10 + environment: + POSTGRES_PASSWORD: example + restart: always \ No newline at end of file diff --git a/duplicati/README.md b/duplicati/README.md new file mode 100644 index 0000000..33ef05b --- /dev/null +++ b/duplicati/README.md @@ -0,0 +1,11 @@ +### Application Setup +The webui is at :8200 , create backup jobs etc via the webui, for local backups select /backups as the destination. For more information see Duplicati. + + +### Environment variables from files (Docker secrets) +You can set any environment variable from a file by using a special prepend FILE__. + +As an example: + +-e FILE__PASSWORD=/run/secrets/mysecretpassword +Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. \ No newline at end of file diff --git a/duplicati/docker-compose.yml b/duplicati/docker-compose.yml new file mode 100644 index 0000000..ef37809 --- /dev/null +++ b/duplicati/docker-compose.yml @@ -0,0 +1,17 @@ +version: "2.1" +services: + duplicati: + image: ghcr.io/linuxserver/duplicati + container_name: duplicati + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - CLI_ARGS= #optional + volumes: + - :/config + - :/backups + - :/source + ports: + - 8200:8200 + restart: unless-stopped \ No newline at end of file diff --git a/etherpad/README.md b/etherpad/README.md new file mode 100644 index 0000000..96cdf04 --- /dev/null +++ b/etherpad/README.md @@ -0,0 +1,33 @@ +### Examples +Use a Postgres database, no admin user enabled: + +``` +docker run -d \ + --name etherpad \ + -p 9001:9001 \ + -e 'DB_TYPE=postgres' \ + -e 'DB_HOST=db.local' \ + -e 'DB_PORT=4321' \ + -e 'DB_NAME=etherpad' \ + -e 'DB_USER=dbusername' \ + -e 'DB_PASS=mypassword' \ + etherpad/etherpad +``` +Run enabling the administrative user admin: + +``` +docker run -d \ + --name etherpad \ + -p 9001:9001 \ + -e 'ADMIN_PASSWORD=supersecret' \ + etherpad/etherpad +``` + +Run a test instance running DirtyDB on a persistent volume: + +``` +docker run -d \ + -v etherpad_data:/opt/etherpad-lite/var \ + -p 9001:9001 \ + etherpad/etherpad +``` \ No newline at end of file diff --git a/etherpad/docker-compose.yml b/etherpad/docker-compose.yml new file mode 100644 index 0000000..019f62c --- /dev/null +++ b/etherpad/docker-compose.yml @@ -0,0 +1,36 @@ +version: '3' + +services: + server: + image: etherpad/etherpad + container_name: etherpad + environment: + - USER_UID=1000 + - USER_GID=1000 + - DB_TYPE=postgres + - DB_HOST=etherpaddb + - DB_PORT=5432 + - DB_NAME=example + - DB_USER=user + - DB_PASS=example + - ADMIN_PASSWORD=supersecret + restart: always + privileged: true + volumes: + # - ./etherpad_data:/opt/etherpad-lite/var + - /etc/localtime:/etc/localtime + ports: + - "9001:9001" + depends_on: + - db + + db: + image: postgres + restart: always + container_name: etherpaddb + environment: + POSTGRES_PASSWORD: example + POSTGRES_USER: user + POSTGRES_DB: example + volumes: + - ./db:/var/lib/postgresql/data \ No newline at end of file diff --git a/filebrower/README.md b/filebrower/README.md new file mode 100644 index 0000000..874e81f --- /dev/null +++ b/filebrower/README.md @@ -0,0 +1,15 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + +## 文件管理应用 \ No newline at end of file diff --git a/filebrower/docker-compose.yml b/filebrower/docker-compose.yml new file mode 100644 index 0000000..4799c5a --- /dev/null +++ b/filebrower/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' + +services: + filebrower: + image: filebrowser/filebrowser + restart: always + volumes: + - ./filebrowser/sites/root:/srv + - ./filebrowserconfig.json:/etc/config.json + - ./filebrowser/database.db:/etc/database.db + ports: + - 9719:80 \ No newline at end of file diff --git a/filestash/README.md b/filestash/README.md new file mode 100644 index 0000000..874e81f --- /dev/null +++ b/filestash/README.md @@ -0,0 +1,15 @@ +*** +**TEST** + +本文档仅供测试和开发使用 + +**docker-compose项目** + +运行本文档代码需要安装[docker](https://www.runoob.com/docker/docker-tutorial.html)和[docker-compose](https://www.runoob.com/docker/docker-compose.html) + +下载该项目目录下的相应文件,执行`docker-compose up`运行项目,或通过`docker-compose up -d`后台运行项目。通过`docker-compose down`停止项目 + +*** + + +## 文件管理应用 \ No newline at end of file diff --git a/filestash/docker-compose.yml b/filestash/docker-compose.yml new file mode 100644 index 0000000..75273f9 --- /dev/null +++ b/filestash/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3' +services: + app: + container_name: filestash + image: machines/filestash + restart: always + environment: + - APPLICATION_URL= + - GDRIVE_CLIENT_ID= + - GDRIVE_CLIENT_SECRET= + - DROPBOX_CLIENT_ID= + - ONLYOFFICE_URL=http://onlyoffice + ports: + - "8334:8334" + + onlyoffice: + container_name: filestash_oods + image: onlyoffice/documentserver + restart: always diff --git a/filezilla/README.md b/filezilla/README.md new file mode 100644 index 0000000..22b8bd9 --- /dev/null +++ b/filezilla/README.md @@ -0,0 +1,7 @@ +应用程序设置 +可以在以下位置访问该应用程序: + +http://你的主机:3000/ +默认情况下,用户/密码为 abc/abc,如果您更改密码或出于任何原因想要手动登录 GUI 会话,请使用以下链接: + +http://yourhost:3000/?login=true \ No newline at end of file diff --git a/filezilla/docker-compose.yml b/filezilla/docker-compose.yml new file mode 100644 index 0000000..00b95b1 --- /dev/null +++ b/filezilla/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.5" +services: + filezilla: + image: linuxserver/filezilla + container_name: filezilla + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - ./config:/config + ports: + - 3000:3000 + restart: unless-stopped \ No newline at end of file diff --git a/firefox/README.md b/firefox/README.md new file mode 100644 index 0000000..c1bc481 --- /dev/null +++ b/firefox/README.md @@ -0,0 +1 @@ +**TEST** \ No newline at end of file diff --git a/firefox/config/.Xauthority b/firefox/config/.Xauthority new file mode 100644 index 0000000..d06cd90 Binary files /dev/null and b/firefox/config/.Xauthority differ diff --git a/firefox/config/.cache/fontconfig/17090aa38d5c6f09fb8c5c354938f1d7-le64.cache-7 b/firefox/config/.cache/fontconfig/17090aa38d5c6f09fb8c5c354938f1d7-le64.cache-7 new file mode 100644 index 0000000..5a21b91 Binary files /dev/null and b/firefox/config/.cache/fontconfig/17090aa38d5c6f09fb8c5c354938f1d7-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/2d31a572ce6667f6a0da9c8dc611898b-le64.cache-7 b/firefox/config/.cache/fontconfig/2d31a572ce6667f6a0da9c8dc611898b-le64.cache-7 new file mode 100644 index 0000000..fac68eb Binary files /dev/null and b/firefox/config/.cache/fontconfig/2d31a572ce6667f6a0da9c8dc611898b-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/5ca8086aeacc9c68e81a71e7ef846b3b-le64.cache-7 b/firefox/config/.cache/fontconfig/5ca8086aeacc9c68e81a71e7ef846b3b-le64.cache-7 new file mode 100644 index 0000000..d241e55 Binary files /dev/null and b/firefox/config/.cache/fontconfig/5ca8086aeacc9c68e81a71e7ef846b3b-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/9aecc724-89b8-4111-9080-abcb0b2f3bf4-le64.cache-7 b/firefox/config/.cache/fontconfig/9aecc724-89b8-4111-9080-abcb0b2f3bf4-le64.cache-7 new file mode 100644 index 0000000..13fe5a0 Binary files /dev/null and b/firefox/config/.cache/fontconfig/9aecc724-89b8-4111-9080-abcb0b2f3bf4-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/CACHEDIR.TAG b/firefox/config/.cache/fontconfig/CACHEDIR.TAG new file mode 100644 index 0000000..c6d9ccb --- /dev/null +++ b/firefox/config/.cache/fontconfig/CACHEDIR.TAG @@ -0,0 +1,4 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by fontconfig. +# For information about cache directory tags, see: +# http://www.brynosaurus.com/cachedir/ diff --git a/firefox/config/.cache/fontconfig/a41116dafaf8b233ac2c61cb73f2ea5f-le64.cache-7 b/firefox/config/.cache/fontconfig/a41116dafaf8b233ac2c61cb73f2ea5f-le64.cache-7 new file mode 100644 index 0000000..a3de568 Binary files /dev/null and b/firefox/config/.cache/fontconfig/a41116dafaf8b233ac2c61cb73f2ea5f-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/d4dff426-bab3-4334-8edc-04ce903b176d-le64.cache-7 b/firefox/config/.cache/fontconfig/d4dff426-bab3-4334-8edc-04ce903b176d-le64.cache-7 new file mode 100644 index 0000000..ee9f6f9 Binary files /dev/null and b/firefox/config/.cache/fontconfig/d4dff426-bab3-4334-8edc-04ce903b176d-le64.cache-7 differ diff --git a/firefox/config/.cache/fontconfig/df311e82a1a24c41a75c2c930223552e-le64.cache-7 b/firefox/config/.cache/fontconfig/df311e82a1a24c41a75c2c930223552e-le64.cache-7 new file mode 100644 index 0000000..d9b983e Binary files /dev/null and b/firefox/config/.cache/fontconfig/df311e82a1a24c41a75c2c930223552e-le64.cache-7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/00A5E8233A00709EBA6449F24F448F0A42E48F28 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/00A5E8233A00709EBA6449F24F448F0A42E48F28 new file mode 100644 index 0000000..85a82f5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/00A5E8233A00709EBA6449F24F448F0A42E48F28 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/011CC53E3DD863B76852BC3721B4DBB0DC1C4314 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/011CC53E3DD863B76852BC3721B4DBB0DC1C4314 new file mode 100644 index 0000000..4b2280f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/011CC53E3DD863B76852BC3721B4DBB0DC1C4314 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/01F5E600243D7F2CE0AAABAFC05FE41562312042 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/01F5E600243D7F2CE0AAABAFC05FE41562312042 new file mode 100644 index 0000000..48d9232 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/01F5E600243D7F2CE0AAABAFC05FE41562312042 @@ -0,0 +1,856 @@ +;(function ($) { + // 以下是前端所需要的所有变量 + // 公共变量 + { + var js_pop_login_panel = $('#js-pop-login-panel'), //顶部导航栏登录 + js_pop_register_panel = $('.js-pop-register-panel'), //顶部导航栏注册 + js_pop_area_user = $('#js-pop-area-user'), //用户弹窗区域 + js_pop_user = $('.js-pop-user'), //用户相关弹窗 + js_pop_close = $('.js-pop-close'), //关闭弹窗 + js_register_now = $('#js-register-now'), //立即注册 + js_return_login = $('#js-return-login'), //返回登录 + js_forgot_pwd = $('#js-forgot-pwd'), //忘记密码 + js_error_tip = $('.js-error-tip'), //错误提示 + js_input_txt = $('.js-input-txt'), //输入框集合 + local_ip_address = '' //本地ip地址 + } + // 登录相关变量 + { + var js_login_user_name = $('#js-login-user-name'), //登录用户名 + js_login_user_pwd = $('#js-login-user-pwd'), //登录密码 + js_btn_login = $('#js-btn-login'), //用户登录按钮 + js_login_input_txt = $('.js-login-input-txt'), //用户登录输入框集合 + js_login_error_tip = $('#js-login-error-tip') //登录错误提示 + } + //注册相关变量 + { + var js_register_user_name = $('#js-register-user-name'), //注册用户名 + js_register_user_phone = $('#js-register-user-phone'), //注册手机号码 + js_register_user_pwd = $('#js-register-user-pwd'), //注册密码 + bar = $('.pop-register .form-item-range .rangebox .bar'), // 滑块 + redbg = $('.pop-register .form-item-range .rangebox .redbg'), // 滑块红色背景 + js_register_sms_code = $('#js-register-sms-code'), //注册短信验证码输入框 + js_register_get_sms_code = $('#js-register-get-sms-code'), //获取短信验证码 + js_check_protocol = $('#js-check-protocol'), //是否同意注册协议 + js_btn_register = $('#js-btn-register'), //用户注册按钮 + js_register_input_txt = $('.js-register-input-txt'), //用户注册输入框集合 + js_register_error_tip = $('#js-register-error-tip') //注册错误提示 + } + //忘记密码相关变量 + { + var js_forgot_user_phone = $('#js-forgot-user-phone'), //忘记密码-手机号码 + js_forgot_user_pwd = $('#js-forgot-user-pwd'), //忘记密码-密码 + js_forgot_repeat_pwd = $('#js-forgot-repeat-pwd'), //忘记密码-确认密码 + js_forgot_img_code = $('#js-forgot-img-code'), //忘记密码-图片验证码输入框 + js_forgot_captcha_code = $('#js-forgot-captcha-code'), //忘记密码-图片验证码 + js_forgot_sms_code = $('#js-forgot-sms-code'), //忘记密码-短信验证码输入框 + js_forgot_get_sms_code = $('#js-forgot-get-sms-code'), //忘记密码-获取短信验证码 + js_btn_forgot = $('#js-btn-forgot'), //忘记密码-用户确认按钮 + js_forgot_input_txt = $('.js-forgot-input-txt'), //忘记密码-用户输入框集合 + js_forgot_error_tip = $('#js-forgot-error-tip'), //忘记密码-错误提示 + forgot_user_phone_is_exist = false, //忘记密码-手机号码是否存在 + forgot_user_phone_is_blur = false //忘记密码-手机号码输入框是否已经失去焦点 + } + // 常规操作 + { + /** + * + * 显示在某个元素集合内指定索引的元素,通常用于打开弹窗 + * 参数1:元素选择器,类型:String || Object + * 参数2:元素索引,类型:Number || String + */ + function openPopBox(ele, index) { + $(ele).addClass('hide').eq(index).removeClass('hide') + } + + // 隐藏某个元素集合,通常用于关闭所有弹窗 + function closePopBox(ele) { + $(ele).addClass('hide') + } + + // 点击弹出登录 + js_pop_login_panel.on({ + click: function () { + js_pop_area_user.removeClass('hide') + openPopBox(js_pop_user, 0) + } + }) + + // 点击弹出注册 + js_pop_register_panel.on({ + click: function () { + js_pop_area_user.removeClass('hide') + openPopBox(js_pop_user, 1) + } + }) + + // 点击立即注册 + js_register_now.on({ + click: function () { + openPopBox(js_pop_user, 1) + } + }) + + //点击返回登录 + js_return_login.on({ + click: function () { + openPopBox(js_pop_user, 0) + } + }) + + // 点击忘记密码 + js_forgot_pwd.on({ + click: function () { + openPopBox(js_pop_user, 2) + } + }) + + // 关闭弹窗 + js_pop_close.on({ + click: function () { + var pop_area = $(this).closest('.js-pop-area') + closePopBox(pop_area) + } + }) + } + + /** + * 与表单校验相关操作 + */ + { + // 添加指定元素的class + function addAppointClass(ele, className, index) { + ele.removeClass(className).eq(index).addClass(className) + } + + // 用户名合法性校验 + function checkUserNameLegal(str) { + var re = /^[a-zA-Z\d]{6,20}$/ + return re.test(str) + } + + // 密码合法性校验 + function checkUserPwdLegal(str) { + var re = /^[^]{6,20}$/ + return re.test(str) + } + + // 去除字符串首尾两端空格 + function trim(str) { + var reg = /^\s+|\s+$/g + return str.replace(reg, '') + } + + // 手机号码校验 + function checkPhoneNum(phoneNum) { + var reg = /^1\d{10}$/ + return reg.test(phoneNum) + } + + // 校验是否为纯数字字符串 + function checkPureDigits(str) { + var reg = /\D/ + return reg.test(str) + } + + // 获取本地ip地址 + function getLocalIPAddress() { + $.ajax({ + url: 'https://api.ipify.org/?format=json', + dataType: 'json', + type: 'get', + success: function (data) { + local_ip_address = data.ip + } + }) + } + + getLocalIPAddress() + } + /** + * 与登录相关的操作 + */ + { + // 清除登录错误提示 + function clearLoginErrorTip() { + js_login_error_tip.addClass('vh') + } + + // 显示登录错误提示信息 + function showLoginErrorMsg(msg) { + js_login_error_tip.html(msg).removeClass('vh') + } + + // 用户登录校验 + function checkUserLogin() { + var val1 = js_login_user_name.val(), + val2 = js_login_user_pwd.val(), + isValid = true + val1 = trim(val1) + val2 = trim(val2) + js_login_user_name.val(val1) + js_login_user_pwd.val(val2) + if (val1.length === 0) { + showLoginErrorMsg('请输入用户名') + isValid = false + } else if (!checkUserNameLegal(val1)) { + showLoginErrorMsg('用户名不合法') + isValid = false + } else if (val2.length === 0) { + showLoginErrorMsg('请输入密码') + isValid = false + } else if (!checkUserPwdLegal(val2)) { + showLoginErrorMsg('密码不合法') + isValid = false + } + return isValid + } + + // 登录时在每个校验表单元素上监听事件 + js_login_input_txt.on({ + keyup: function (e) { + if (e.keyCode === 13) { + js_btn_login.trigger('click') + } + }, + blur: function () { + $(this).closest('.form-item').removeClass('focus') + //clearLoginErrorTip(); + }, + focus: function () { + $(this).closest('.form-item').addClass('focus') + } + }) + + // 点击立即登录 + js_btn_login.on({ + click: function (e) { + e.stopPropagation() + if (checkUserLogin() && !this.canCommit) { + var that = this + this.canCommit = true + // ajax提交表单 + $.ajax({ + type: 'post', + url: '/api/login', + data: { + name: js_login_user_name.val(), + password: js_login_user_pwd.val() + }, + success: function (data) { + that.canCommit = false + if (data.status == 200) { + window.location.reload() + } else { + showLoginErrorMsg(data.msg) + } + } + }) + } + } + }) + } + + /** + * 与注册相关的操作 + */ + { + const max = 329 + const $body = $('body') + const bartextsvg = bar.find('svg>use') + // 滑块事件 + let barmove = null + let barIsOk = false // 滑块是否完成 + let msgIsOk = false // 短信验证码是否成功发送 + bar.on('mousedown', e => { + const { left: parX } = bar.parent().offset() + const x1 = e.offsetX + parX + if (!barIsOk) { + bar.css('transition', 'none') + redbg.css('transition', 'none') + $body.on( + 'mousemove', + (barmove = e => { + let x = e.pageX - x1 + if (x < 0) x = 0 + if (x >= max) { + x = max + barIsOk = true + bartextsvg.attr('xlink:href', '#icon-dagou') + bar.css({ + 'background-color': 'green', + color: 'white' + }) + bar.siblings('p').text('滑块验证已完成') + } + bar.css('left', x) + redbg.width(x) + }) + ) + } + }) + $body.mouseup(() => { + $body.off('mousemove', barmove) + if (!barIsOk) { + bar.css({ + left: 0, + transition: 'all 0.3s' + }) + redbg.css({ + transition: 'all 0.3s', + width: 0 + }) + } + }) + + // 密码框切换显示 + let isopen = false + js_register_user_pwd + .siblings('svg:last') + .click(function () { + isopen = !isopen + let text = '#icon-biyan' + let type = 'password' + if (isopen) { + text = '#icon-icon-eye-open' + type = 'text' + } + $(this).find('use').attr('xlink:href', text) + js_register_user_pwd.attr('type', type) + }) + + // 清除注册错误提示 + function clearRegisterErrorTip() { + js_register_error_tip.addClass('vh') + } + + + // 显示注册错误提示信息 + function showRegisterErrorMsg(msg) { + js_register_error_tip.html(msg).removeClass('vh') + } + + // 用户注册校验 + function checkUserRegister() { + var val1 = js_register_user_name.val(), + val2 = js_register_user_phone.val(), + val3 = js_register_user_pwd.val(), + val6 = js_register_sms_code.val(), + isValid = true, + errtxt = '' + val1 = trim(val1) + val2 = trim(val2) + val3 = trim(val3) + val6 = trim(val6) + js_register_user_name.val(val1) + js_register_user_phone.val(val2) + js_register_user_pwd.val(val3) + js_register_sms_code.val(val6) + if (val1.length === 0) { + isValid = false + errtxt = '请输入用户名' + } else if (!checkUserNameLegal(val1)) { + isValid = false + errtxt = '用户名不合法' + } else if (val2.length === 0) { + isValid = false + errtxt = '请输入手机号码' + } else if (!checkPhoneNum(val2)) { + isValid = false + errtxt = '手机号码不合法' + } else if (val3.length === 0) { + isValid = false + errtxt = '请输入密码' + } else if (!checkUserPwdLegal(val3)) { + isValid = false + errtxt = '密码不合法' + } else if (!barIsOk) { + isValid = false + errtxt = '未完成滑块验证' + } else if (val6.length === 0) { + isValid = false + errtxt = '请输入短信验证码' + } else if (checkPureDigits(val6)) { + isValid = false + errtxt = '短信验证码不合法' + } else if(!msgIsOk){ + isValid = false + errtxt = '您还未获取短信验证码' + } + return { isValid, errtxt } + } + + // 校验用户名是否已存在 + function checkUserNameIsExist() { + return new Promise(r => + $.ajax({ + type: 'post', + url: '/user/exists', + data: { + username: js_register_user_name.val() + }, + success: function (data) { + if (data.status == 200) { + r({ status: false, msg: '该用户名已存在' }) + } else { + r({ status: true, msg: '当前账号未被注册' }) + } + } + }) + ) + } + + // 校验手机号是否已注册 + function checkUserPhoneHasRegistered() { + return new Promise(r => + $.ajax({ + type: 'post', + url: '/api/mobilecheck', + data: { + mobile: js_register_user_phone.val() + }, + success: function (data) { + if (data.status == 200) { + r({ status: false, msg: '该手机号已被注册' }) + } else { + r({ status: true, msg: '当前手机号未被注册' }) + } + } + }) + ) + } + + // 在每个校验表单元素上监听事件 + js_register_input_txt.on({ + keyup: function (e) { + if (e.keyCode === 13) { + js_btn_register.trigger('click') + } + }, + blur: function () { + clearRegisterErrorTip() + } + }) + + // 获取验证码倒计时 + function countRegisterDown(time) { + js_register_get_sms_code.html(time + 's后重新获取') + time-- + if (time >= 0) { + setTimeout(function () { + countRegisterDown(time) + }, 1000) + } else { + js_register_get_sms_code.html('获取验证码') + js_register_get_sms_code.removeClass('disabled') + } + } + + // 获取短信验证码 + function getRegisterSmsCode() { + // ajax提交表单 + $.ajax({ + type: 'post', + url: '/api/sendvalsms', + data: { + mobile: js_register_user_phone.val(), + valtype: 1, + registerip: local_ip_address + }, + success: function (data) { + if (data.status == 200) { + countRegisterDown(60) + msgIsOk = true + } else { + showRegisterErrorMsg(data.msg) + js_register_get_sms_code.removeClass('disabled') + + } + }, + error: function () {} + }) + } + + + + // 点击获取短信验证码 + js_register_get_sms_code.on({ + click: async function () { + if (!$(this).hasClass('disabled')) { + const { errtxt } = checkUserRegister() + const arr = [ + '请输入用户名', + '用户名不合法', + '请输入手机号码', + '手机号码不合法', + '请输入密码', + '密码不合法', + '未完成滑块验证' + ] + const res = arr.find(item => item === errtxt) + if (!res) { + const { + status, + msg + } = await checkUserPhoneHasRegistered() + if (status) { + $(this).addClass('disabled') + getRegisterSmsCode() + } else { + showRegisterErrorMsg(msg) + + } + } else { + showRegisterErrorMsg(res) + } + } + } + }) + + // 点击切换是否同意用户注册协议 + js_check_protocol.on({ + click: function () { + if ($(this).hasClass('active')) { + $(this).removeClass('active') + js_btn_register.addClass('disabled') + } else { + $(this).addClass('active') + js_btn_register.removeClass('disabled') + } + } + }) + + // 点击注册 + js_btn_register.on({ + click: async function (e) { + e.stopPropagation() + if (!$(this).hasClass('disabled')) { + const { isValid, errtxt } = checkUserRegister() + if (isValid) { + const { status, msg } = await checkUserNameIsExist() + if (status) { + $.ajax({ + type: 'post', + url: '/api/register', + data: { + name: js_register_user_name.val(), + mobile: js_register_user_phone.val(), + password: js_register_user_pwd.val(), + smscode: js_register_sms_code.val() + }, + success: function (data) { + // that.canCommit = false + if (data.status == 200) { + alert('注册成功') + $.ajax({ + type: 'post', + url: '/api/login', + data: { + name: js_register_user_name.val(), + password: js_register_user_pwd.val() + }, + success(res) { + if (res.status == 200) { + alert('自动登录成功') + window.location.reload() + } else { + alert(res.msg) + } + } + }) + } else { + showRegisterErrorMsg(data.msg) + } + } + // , + // error: function () { + // that.canCommit = false + // } + }) + } else { + showRegisterErrorMsg(msg) + } + } else { + showRegisterErrorMsg(errtxt) + } + } + } + }) + } + + + + + + + + + + + + + + + + + + + + + /** + * 与忘记密码相关的操作 + */ + + // 清除忘记密码错误提示 + function clearForgotErrorTip() { + js_forgot_error_tip.addClass('vh') + } + + //刷新图片验证码 + function refreshForgotCaptchaCode() { + var src = '/img/captcha.jpg?width=86&height=44&t=' + +new Date() + js_forgot_captcha_code.attr('src', src) + } + + //点击刷新图片验证码 + js_forgot_captcha_code.on({ + click: refreshForgotCaptchaCode + }) + + // 显示忘记密码错误提示信息 + function showForgotErrorMsg(msg) { + js_forgot_error_tip.html(msg).removeClass('vh') + } + + // 用户忘记密码校验 + function checkUserForgot() { + var val1 = js_forgot_user_phone.val(), + val2 = js_forgot_img_code.val(), + val3 = js_forgot_sms_code.val(), + val4 = js_forgot_user_pwd.val(), + val5 = js_forgot_repeat_pwd.val(), + isValid = true + val1 = trim(val1) + val2 = trim(val2) + val3 = trim(val3) + val4 = trim(val4) + val5 = trim(val5) + js_forgot_user_phone.val(val1) + js_forgot_img_code.val(val2) + js_forgot_sms_code.val(val3) + js_forgot_user_pwd.val(val4) + js_forgot_repeat_pwd.val(val5) + if (val1.length === 0) { + showForgotErrorMsg('请输入手机号码') + isValid = false + } else if (!checkPhoneNum(val1)) { + showForgotErrorMsg('手机号码不合法') + isValid = false + } else if (val2.length === 0) { + showForgotErrorMsg('请输入图片验证码') + isValid = false + } else if (val3.length === 0) { + showForgotErrorMsg('请输入短信验证码') + isValid = false + } else if (checkPureDigits(val3)) { + showForgotErrorMsg('短信验证码不合法') + isValid = false + } else if (val4.length === 0) { + showForgotErrorMsg('请输入密码') + isValid = false + } else if (!checkUserPwdLegal(val4)) { + showForgotErrorMsg('密码不合法') + isValid = false + } else if (val5.length === 0) { + showForgotErrorMsg('请确认密码') + isValid = false + } else if (val4 !== val5) { + showForgotErrorMsg('两次输入的密码不一致') + isValid = false + } + if (!isValid) { + refreshForgotCaptchaCode() + } + return isValid + } + + // 校验手机号是否已注册 + function checkUserPhoneHasForgot(phoneNum) { + if (checkPhoneNum(phoneNum)) { + $.ajax({ + type: 'post', + url: '/api/mobilecheck', + data: { + mobile: js_forgot_user_phone.val() + }, + success: function (data) { + if (data.status !== 200) { + showForgotErrorMsg('该手机号不存在') + forgot_user_phone_is_exist = false + } else { + clearForgotErrorTip() + forgot_user_phone_is_exist = true + } + } + }) + } + } + + // 在每个校验表单元素上监听事件 + js_forgot_input_txt.on({ + keyup: function (e) { + if (e.keyCode === 13) { + js_btn_forgot.trigger('click') + } + }, + blur: function () { + clearForgotErrorTip() + } + }) + + // 除了手机号码输入框以外的输入框绑定事件 + js_forgot_input_txt.not(js_forgot_user_phone).on({ + focus: function () { + if (forgot_user_phone_is_blur) { + var phoneNum = js_forgot_user_phone.val() + forgot_user_phone_is_blur = false + checkUserPhoneHasForgot(phoneNum) + } + } + }) + + // 失去焦点时校验手机号码是否已注册 + js_forgot_user_phone.on({ + blur: function () { + forgot_user_phone_is_blur = true + } + }) + + // 获取验证码倒计时 + function countForgotDown(time) { + js_forgot_get_sms_code.html(time + 's后重新获取') + time-- + if (time >= 0) { + setTimeout(function () { + countForgotDown(time) + }, 1000) + } else { + js_forgot_get_sms_code.html('获取验证码') + js_forgot_get_sms_code.removeClass('disabled') + } + } + + // 忘记密码-获取短信验证码 + function getForgotSmsCode() { + // ajax提交表单 + $.ajax({ + type: 'post', + url: '/api/sendvalsms', + data: { + mobile: js_forgot_user_phone.val(), + ticket: js_forgot_img_code.val(), + valtype: 1 + }, + success: function (data) { + if (data.status == 200) { + countForgotDown(60) + } else { + refreshForgotCaptchaCode() + showForgotErrorMsg(data.msg) + js_forgot_get_sms_code.removeClass('disabled') + } + }, + error: function () {} + }) + } + + // 忘记密码-是否可以发送短信验证码 + function canSendForgotSmsCode() { + var val1 = js_forgot_user_phone.val(), + val2 = js_forgot_img_code.val(), + isValid = true + val1 = trim(val1) + val2 = trim(val2) + js_forgot_user_phone.val(val1) + js_forgot_img_code.val(val2) + if (val1.length === 0) { + showForgotErrorMsg('请输入手机号码') + isValid = false + } else if (!checkPhoneNum(val1)) { + showForgotErrorMsg('手机号码不合法') + isValid = false + } else if (val2.length === 0) { + showForgotErrorMsg('请输入图片验证码') + isValid = false + } + if (!isValid) { + refreshForgotCaptchaCode() + } + return isValid + } + + // 忘记密码-点击获取短信验证码 + js_forgot_get_sms_code.on({ + click: function () { + if (!$(this).hasClass('disabled') && canSendForgotSmsCode()) { + if (forgot_user_phone_is_exist) { + $(this).addClass('disabled') + clearForgotErrorTip() + getForgotSmsCode() + } else { + showForgotErrorMsg('该手机号不存在') + refreshForgotCaptchaCode() + } + } + } + }) + + // 点击忘记密码 + js_btn_forgot.on({ + click: function (e) { + e.stopPropagation() + if (checkUserForgot() && !this.canCommit) { + var that = this + this.canCommit = true + // ajax提交表单 + $.ajax({ + type: 'post', + url: '/api/resetpwd', + data: { + mobile: js_forgot_user_phone.val(), + password: js_forgot_user_pwd.val(), + mobilecode: js_forgot_sms_code.val() + }, + success: function (data) { + that.canCommit = false + if (data.status == 200) { + alert('重置密码成功,请重新登录') + openPopBox(js_pop_user, 0) + } else { + refreshForgotCaptchaCode() + showForgotErrorMsg(data.msg) + } + }, + error: function () { + that.canCommit = false + } + }) + } + } + }) +})(jQuery) +K4"`)`)Cm:`da7:https://www.ip12345.net/user/js/pop_user.js?v=20200831necko:classified1strongly-framed1security-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request-methodGETresponse-headHTTP/1.1 200 OK +Server: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 30294 +Accept-Ranges: bytes +Last-Modified: Fri, 16 Oct 2020 07:17:58 GMT +original-response-headersServer: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 30294 +Connection: keep-alive +Accept-Ranges: bytes +Last-Modified: Fri, 16 Oct 2020 07:17:58 GMT +ctid2uncompressed-len0net-response-time-onstart140net-response-time-onstop141vV \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02424A9454465C7FB85AADCBC18ECE5D32CA83BD b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02424A9454465C7FB85AADCBC18ECE5D32CA83BD new file mode 100644 index 0000000..d8dc31e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02424A9454465C7FB85AADCBC18ECE5D32CA83BD differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02BCB09DA3FA1C0319C5DAD377F33DA6517D69FE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02BCB09DA3FA1C0319C5DAD377F33DA6517D69FE new file mode 100644 index 0000000..2eb99c0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/02BCB09DA3FA1C0319C5DAD377F33DA6517D69FE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0318830328E6C5A25F4128E85A844818A3EF4040 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0318830328E6C5A25F4128E85A844818A3EF4040 new file mode 100644 index 0000000..979e52d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0318830328E6C5A25F4128E85A844818A3EF4040 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/04546FA87F43D0BA16F002AB8C146BD5EC6C9548 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/04546FA87F43D0BA16F002AB8C146BD5EC6C9548 new file mode 100644 index 0000000..b316b77 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/04546FA87F43D0BA16F002AB8C146BD5EC6C9548 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0642ACAE3E899BC84179682B9D44D74D2BBDD858 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0642ACAE3E899BC84179682B9D44D74D2BBDD858 new file mode 100644 index 0000000..088ef23 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0642ACAE3E899BC84179682B9D44D74D2BBDD858 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/068BDF26C6EDA806C8888452C6A865BD9C3B92CB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/068BDF26C6EDA806C8888452C6A865BD9C3B92CB new file mode 100644 index 0000000..9889c3f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/068BDF26C6EDA806C8888452C6A865BD9C3B92CB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0692E03837F7F5FFD236527574493D608BF66880 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0692E03837F7F5FFD236527574493D608BF66880 new file mode 100644 index 0000000..194f5af Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0692E03837F7F5FFD236527574493D608BF66880 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/072DFCDC9F0D471BE51F03AF92B62CFD5C52C97E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/072DFCDC9F0D471BE51F03AF92B62CFD5C52C97E new file mode 100644 index 0000000..8cd4d81 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/072DFCDC9F0D471BE51F03AF92B62CFD5C52C97E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07C180094BDD347E761265950C54F71417215E8A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07C180094BDD347E761265950C54F71417215E8A new file mode 100644 index 0000000..c0e3385 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07C180094BDD347E761265950C54F71417215E8A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07E6F549D44250913E3DEE67658E4DD90196EBAC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07E6F549D44250913E3DEE67658E4DD90196EBAC new file mode 100644 index 0000000..90a39b0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07E6F549D44250913E3DEE67658E4DD90196EBAC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07FC412435B6664D77024C05AC7A5651D4090214 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07FC412435B6664D77024C05AC7A5651D4090214 new file mode 100644 index 0000000..eef70e4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/07FC412435B6664D77024C05AC7A5651D4090214 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09221E7FC53480B6A351BD609B3BE54E761D31A8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09221E7FC53480B6A351BD609B3BE54E761D31A8 new file mode 100644 index 0000000..ba1cb1c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09221E7FC53480B6A351BD609B3BE54E761D31A8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09A465A2C495A00DA224627AEB414744E79DEDA4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09A465A2C495A00DA224627AEB414744E79DEDA4 new file mode 100644 index 0000000..9a42ec0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/09A465A2C495A00DA224627AEB414744E79DEDA4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A630FD7CDFC3E1EE16968E23D0B9039AC79E51C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A630FD7CDFC3E1EE16968E23D0B9039AC79E51C new file mode 100644 index 0000000..7293ad8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A630FD7CDFC3E1EE16968E23D0B9039AC79E51C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A8CA1D9AE253582B71CBC72E0898904F38070A0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A8CA1D9AE253582B71CBC72E0898904F38070A0 new file mode 100644 index 0000000..3707a39 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0A8CA1D9AE253582B71CBC72E0898904F38070A0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0D209824B6D8C919EC1498B5453B340527CE94C5 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0D209824B6D8C919EC1498B5453B340527CE94C5 new file mode 100644 index 0000000..da96fbf Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0D209824B6D8C919EC1498B5453B340527CE94C5 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0DDE7EBD8F3AD9D564DBF6AD91C37AB55D56D0AF b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0DDE7EBD8F3AD9D564DBF6AD91C37AB55D56D0AF new file mode 100644 index 0000000..345cc7e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0DDE7EBD8F3AD9D564DBF6AD91C37AB55D56D0AF differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0E3E3B227421C7C5FFB4AF158FC43F3628A2B015 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0E3E3B227421C7C5FFB4AF158FC43F3628A2B015 new file mode 100644 index 0000000..d629d0d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0E3E3B227421C7C5FFB4AF158FC43F3628A2B015 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0EDDF8C091E2FED62E44BEDDDC1723F5BF38FE4F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0EDDF8C091E2FED62E44BEDDDC1723F5BF38FE4F new file mode 100644 index 0000000..d915f4e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0EDDF8C091E2FED62E44BEDDDC1723F5BF38FE4F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0FA56CB40AA40F9AD387DB9987E13C88AB0894A3 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0FA56CB40AA40F9AD387DB9987E13C88AB0894A3 new file mode 100644 index 0000000..bd10c69 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/0FA56CB40AA40F9AD387DB9987E13C88AB0894A3 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/10466D83B515A621BA4D4C02F0E66CF3C168E057 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/10466D83B515A621BA4D4C02F0E66CF3C168E057 new file mode 100644 index 0000000..1759e7e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/10466D83B515A621BA4D4C02F0E66CF3C168E057 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14774F1A1FFA74FF1E5E558E55252CDC5D99FA60 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14774F1A1FFA74FF1E5E558E55252CDC5D99FA60 new file mode 100644 index 0000000..2df3800 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14774F1A1FFA74FF1E5E558E55252CDC5D99FA60 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14846D07E023981A4C7D8378737E6CB4D37ED16E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14846D07E023981A4C7D8378737E6CB4D37ED16E new file mode 100644 index 0000000..7bd396e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14846D07E023981A4C7D8378737E6CB4D37ED16E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14FF43A29AF7EE1AFEB609333FA77D4EFEAF1C7F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14FF43A29AF7EE1AFEB609333FA77D4EFEAF1C7F new file mode 100644 index 0000000..c16a98c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/14FF43A29AF7EE1AFEB609333FA77D4EFEAF1C7F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/153F2F01BD5BED3FB62BCBDF81D56CA68FA531D0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/153F2F01BD5BED3FB62BCBDF81D56CA68FA531D0 new file mode 100644 index 0000000..7ef6e75 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/153F2F01BD5BED3FB62BCBDF81D56CA68FA531D0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1549FC6DE6AA059EE38E1A05D87E4D4C6F6D7A45 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1549FC6DE6AA059EE38E1A05D87E4D4C6F6D7A45 new file mode 100644 index 0000000..3fbbb2e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1549FC6DE6AA059EE38E1A05D87E4D4C6F6D7A45 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/15F197C51B4800B297C6E01CB3C5D66C10CAADE5 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/15F197C51B4800B297C6E01CB3C5D66C10CAADE5 new file mode 100644 index 0000000..23e2363 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/15F197C51B4800B297C6E01CB3C5D66C10CAADE5 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1608DAD77600D66C357D17C1A4B2CF91F738E187 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1608DAD77600D66C357D17C1A4B2CF91F738E187 new file mode 100644 index 0000000..80d7c4b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1608DAD77600D66C357D17C1A4B2CF91F738E187 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/175DD23A15092BDD6A2CECC00172EBF1FD2701D7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/175DD23A15092BDD6A2CECC00172EBF1FD2701D7 new file mode 100644 index 0000000..d8f3a36 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/175DD23A15092BDD6A2CECC00172EBF1FD2701D7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/17826EAEBE30E069955EA3EBDD7738228E18D4B2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/17826EAEBE30E069955EA3EBDD7738228E18D4B2 new file mode 100644 index 0000000..ba66b67 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/17826EAEBE30E069955EA3EBDD7738228E18D4B2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/179977EC1B5CF43A769203F2E63E4D2CCB00C0BE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/179977EC1B5CF43A769203F2E63E4D2CCB00C0BE new file mode 100644 index 0000000..08da12d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/179977EC1B5CF43A769203F2E63E4D2CCB00C0BE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1C0BB7F4FB39A300D927196CFC622E137E24D24F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1C0BB7F4FB39A300D927196CFC622E137E24D24F new file mode 100644 index 0000000..92f5a1a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1C0BB7F4FB39A300D927196CFC622E137E24D24F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1CB378C21B73E978D1A9EFB3BD2073B9E424E298 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1CB378C21B73E978D1A9EFB3BD2073B9E424E298 new file mode 100644 index 0000000..3e71ca0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1CB378C21B73E978D1A9EFB3BD2073B9E424E298 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E8BE7FD6E84434211C07EFEF1DF982EB8D9B85C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E8BE7FD6E84434211C07EFEF1DF982EB8D9B85C new file mode 100644 index 0000000..9ab7f24 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E8BE7FD6E84434211C07EFEF1DF982EB8D9B85C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E9CC80EC759C83EDBFF889887B117B52161F2D1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E9CC80EC759C83EDBFF889887B117B52161F2D1 new file mode 100644 index 0000000..7f15e62 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1E9CC80EC759C83EDBFF889887B117B52161F2D1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1F598FFB2F4380C0F286A8D06BC0883B4B02507A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1F598FFB2F4380C0F286A8D06BC0883B4B02507A new file mode 100644 index 0000000..71bb4f7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1F598FFB2F4380C0F286A8D06BC0883B4B02507A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1FD040830AC103D0BC9F2645EB02720ED0B838EC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1FD040830AC103D0BC9F2645EB02720ED0B838EC new file mode 100644 index 0000000..788b677 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/1FD040830AC103D0BC9F2645EB02720ED0B838EC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2232C94C5835D2A37B996243CA6EE0BFF21BB687 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2232C94C5835D2A37B996243CA6EE0BFF21BB687 new file mode 100644 index 0000000..1472852 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2232C94C5835D2A37B996243CA6EE0BFF21BB687 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/22F7B6D6B58340095A085E274027F4F2118682D8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/22F7B6D6B58340095A085E274027F4F2118682D8 new file mode 100644 index 0000000..b7d7be2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/22F7B6D6B58340095A085E274027F4F2118682D8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2376FA5A27CB8A08CC7EA1D2DE906B47FB210B86 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2376FA5A27CB8A08CC7EA1D2DE906B47FB210B86 new file mode 100644 index 0000000..6d5867c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2376FA5A27CB8A08CC7EA1D2DE906B47FB210B86 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23DDDC5C58E47BA4DA394BC302FB7DA54AA50DC7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23DDDC5C58E47BA4DA394BC302FB7DA54AA50DC7 new file mode 100644 index 0000000..5654a87 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23DDDC5C58E47BA4DA394BC302FB7DA54AA50DC7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23EB21218E4FD3B9A67AA5790C0A0EF9D78AC35F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23EB21218E4FD3B9A67AA5790C0A0EF9D78AC35F new file mode 100644 index 0000000..1546968 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/23EB21218E4FD3B9A67AA5790C0A0EF9D78AC35F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/24048CCCF1F14CC26B62D962458605C1803342EA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/24048CCCF1F14CC26B62D962458605C1803342EA new file mode 100644 index 0000000..f6a144a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/24048CCCF1F14CC26B62D962458605C1803342EA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/254256B27E0C48CF9B80B695F0B3B8CA84610495 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/254256B27E0C48CF9B80B695F0B3B8CA84610495 new file mode 100644 index 0000000..6770296 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/254256B27E0C48CF9B80B695F0B3B8CA84610495 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2618108527BE61B7E12E41D3CA2B2B6E6FAE7D0D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2618108527BE61B7E12E41D3CA2B2B6E6FAE7D0D new file mode 100644 index 0000000..f091a96 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2618108527BE61B7E12E41D3CA2B2B6E6FAE7D0D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/268A5F90A01BB8FF23E340B3C650671357C08E7E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/268A5F90A01BB8FF23E340B3C650671357C08E7E new file mode 100644 index 0000000..9591c42 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/268A5F90A01BB8FF23E340B3C650671357C08E7E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/26FF25282DAB6684F927E9857A37C085FDD1D947 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/26FF25282DAB6684F927E9857A37C085FDD1D947 new file mode 100644 index 0000000..59b9ac7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/26FF25282DAB6684F927E9857A37C085FDD1D947 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/272F145D0986FF57DDBE5E095B4B4B4293F0AD49 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/272F145D0986FF57DDBE5E095B4B4B4293F0AD49 new file mode 100644 index 0000000..db4e871 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/272F145D0986FF57DDBE5E095B4B4B4293F0AD49 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/27ECFB6645CCF5E74A01F2195A96F3E44CB7E308 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/27ECFB6645CCF5E74A01F2195A96F3E44CB7E308 new file mode 100644 index 0000000..ec67b1e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/27ECFB6645CCF5E74A01F2195A96F3E44CB7E308 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/283F10BC8634E8BDDE1689B69B059B76C1DD341D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/283F10BC8634E8BDDE1689B69B059B76C1DD341D new file mode 100644 index 0000000..2937601 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/283F10BC8634E8BDDE1689B69B059B76C1DD341D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28C20ACDCABA4B6C6C4C06896B55CCADDCD0145C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28C20ACDCABA4B6C6C4C06896B55CCADDCD0145C new file mode 100644 index 0000000..5b1c88f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28C20ACDCABA4B6C6C4C06896B55CCADDCD0145C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28FF5AB241789E4ECBD15A46E1CB7CC11C55B12B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28FF5AB241789E4ECBD15A46E1CB7CC11C55B12B new file mode 100644 index 0000000..cb314ca Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/28FF5AB241789E4ECBD15A46E1CB7CC11C55B12B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2AFF432AAF3E9FCD659962E8410C4CF2C52D65D0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2AFF432AAF3E9FCD659962E8410C4CF2C52D65D0 new file mode 100644 index 0000000..6806369 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2AFF432AAF3E9FCD659962E8410C4CF2C52D65D0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2B32EF9B58454906D8807706C4A1AEDD4C44B1F2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2B32EF9B58454906D8807706C4A1AEDD4C44B1F2 new file mode 100644 index 0000000..dbd775f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2B32EF9B58454906D8807706C4A1AEDD4C44B1F2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CAF62B3A28A7374FA18D1B995B6F3D31B65AFBE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CAF62B3A28A7374FA18D1B995B6F3D31B65AFBE new file mode 100644 index 0000000..f0ec7a8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CAF62B3A28A7374FA18D1B995B6F3D31B65AFBE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CFE16A938F40EFABF6D3BAB97691B0FF4E34738 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CFE16A938F40EFABF6D3BAB97691B0FF4E34738 new file mode 100644 index 0000000..2be02aa Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2CFE16A938F40EFABF6D3BAB97691B0FF4E34738 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2D832089D67F5A19A2F9D6B58E5B0FA93105B05D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2D832089D67F5A19A2F9D6B58E5B0FA93105B05D new file mode 100644 index 0000000..be1a279 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2D832089D67F5A19A2F9D6B58E5B0FA93105B05D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DD42DEAC4AEB50D6FEC537955E09099335F28B0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DD42DEAC4AEB50D6FEC537955E09099335F28B0 new file mode 100644 index 0000000..4786242 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DD42DEAC4AEB50D6FEC537955E09099335F28B0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DE9B75F840D18DD017D3F8E61A31CF7213C9A51 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DE9B75F840D18DD017D3F8E61A31CF7213C9A51 new file mode 100644 index 0000000..f5b2563 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2DE9B75F840D18DD017D3F8E61A31CF7213C9A51 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2EBE108F94DA5B94DD3B8B15468746D6A5B61927 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2EBE108F94DA5B94DD3B8B15468746D6A5B61927 new file mode 100644 index 0000000..e073561 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/2EBE108F94DA5B94DD3B8B15468746D6A5B61927 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30987CE43BB91D8C38242AEAED9BAB5420575120 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30987CE43BB91D8C38242AEAED9BAB5420575120 new file mode 100644 index 0000000..4a565b1 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30987CE43BB91D8C38242AEAED9BAB5420575120 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30D5A8469F6E4CEBFFA704F66E8262A8AA51B425 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30D5A8469F6E4CEBFFA704F66E8262A8AA51B425 new file mode 100644 index 0000000..9de31f5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/30D5A8469F6E4CEBFFA704F66E8262A8AA51B425 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/313340647B07D22E5AD2477A269C5469C7528CA2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/313340647B07D22E5AD2477A269C5469C7528CA2 new file mode 100644 index 0000000..99a5fcc Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/313340647B07D22E5AD2477A269C5469C7528CA2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/315BE03F9EFEE7A2D022F1F9156B6B121F0A3FE7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/315BE03F9EFEE7A2D022F1F9156B6B121F0A3FE7 new file mode 100644 index 0000000..2382761 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/315BE03F9EFEE7A2D022F1F9156B6B121F0A3FE7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3211ABD4499534ABC9DCF7480F6004ECDA97B001 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3211ABD4499534ABC9DCF7480F6004ECDA97B001 new file mode 100644 index 0000000..8dd5dfc Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3211ABD4499534ABC9DCF7480F6004ECDA97B001 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/33C1ADC6704E84F231F3CD757DF23A17A0E8BED0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/33C1ADC6704E84F231F3CD757DF23A17A0E8BED0 new file mode 100644 index 0000000..2f51d4a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/33C1ADC6704E84F231F3CD757DF23A17A0E8BED0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/340A10D652987DF5E54312E31F5C22F6E8DBA574 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/340A10D652987DF5E54312E31F5C22F6E8DBA574 new file mode 100644 index 0000000..868c00d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/340A10D652987DF5E54312E31F5C22F6E8DBA574 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341788597F150A0A106B15E7673183A2F4484C68 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341788597F150A0A106B15E7673183A2F4484C68 new file mode 100644 index 0000000..8fd51eb Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341788597F150A0A106B15E7673183A2F4484C68 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341F6710F749CC26A9AACDA62C1D00AB8FD88F3E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341F6710F749CC26A9AACDA62C1D00AB8FD88F3E new file mode 100644 index 0000000..d0c7c84 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/341F6710F749CC26A9AACDA62C1D00AB8FD88F3E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/363653F636B2A86FE19ED5C280F080B35F659DEC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/363653F636B2A86FE19ED5C280F080B35F659DEC new file mode 100644 index 0000000..9568c98 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/363653F636B2A86FE19ED5C280F080B35F659DEC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3665274950E460A02612A0E8FD4CAB9CBDC64CBD b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3665274950E460A02612A0E8FD4CAB9CBDC64CBD new file mode 100644 index 0000000..9b45be4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3665274950E460A02612A0E8FD4CAB9CBDC64CBD differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/366F70DAEFBF9ED334C3133463339352CC36C598 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/366F70DAEFBF9ED334C3133463339352CC36C598 new file mode 100644 index 0000000..0c5dcfa Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/366F70DAEFBF9ED334C3133463339352CC36C598 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/37BD8A8DF2971863AEA16793FAC766267A1C4523 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/37BD8A8DF2971863AEA16793FAC766267A1C4523 new file mode 100644 index 0000000..f7eff4e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/37BD8A8DF2971863AEA16793FAC766267A1C4523 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/381B5F851C99A6A885835FF1A3AB6B0ABF1D74A0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/381B5F851C99A6A885835FF1A3AB6B0ABF1D74A0 new file mode 100644 index 0000000..7771cb7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/381B5F851C99A6A885835FF1A3AB6B0ABF1D74A0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/388BCC2871F373CD2723AEF32468F86F7D97B0B1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/388BCC2871F373CD2723AEF32468F86F7D97B0B1 new file mode 100644 index 0000000..cb2c81c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/388BCC2871F373CD2723AEF32468F86F7D97B0B1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38E4D18C0D00BC107BC1FCA861CAA48B799FFB3D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38E4D18C0D00BC107BC1FCA861CAA48B799FFB3D new file mode 100644 index 0000000..8c44e33 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38E4D18C0D00BC107BC1FCA861CAA48B799FFB3D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38FFBAAD827A9DC942184AFB60BEA640E2BFAEA4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38FFBAAD827A9DC942184AFB60BEA640E2BFAEA4 new file mode 100644 index 0000000..4c04e88 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/38FFBAAD827A9DC942184AFB60BEA640E2BFAEA4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3A05C55301F9AEF957C8668FC73487DD4DE7BB0A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3A05C55301F9AEF957C8668FC73487DD4DE7BB0A new file mode 100644 index 0000000..8ee1a88 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3A05C55301F9AEF957C8668FC73487DD4DE7BB0A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ACA58C3C7DE8681FA96ADDAC85C0D5D0A69CE24 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ACA58C3C7DE8681FA96ADDAC85C0D5D0A69CE24 new file mode 100644 index 0000000..b18f80c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ACA58C3C7DE8681FA96ADDAC85C0D5D0A69CE24 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B7E351DABF5FF5013E1CCBDF373761186FF4F12 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B7E351DABF5FF5013E1CCBDF373761186FF4F12 new file mode 100644 index 0000000..2e86195 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B7E351DABF5FF5013E1CCBDF373761186FF4F12 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B87A4D4B2764AC7E9A8F2B566711A55815029BA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B87A4D4B2764AC7E9A8F2B566711A55815029BA new file mode 100644 index 0000000..9444ff2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3B87A4D4B2764AC7E9A8F2B566711A55815029BA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3C9B58BE7A0A2DB10B08E1082982D59A03B949DC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3C9B58BE7A0A2DB10B08E1082982D59A03B949DC new file mode 100644 index 0000000..ef5e03e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3C9B58BE7A0A2DB10B08E1082982D59A03B949DC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3D925D9B27A15D3E0D9C9655C8C2D18211391E71 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3D925D9B27A15D3E0D9C9655C8C2D18211391E71 new file mode 100644 index 0000000..45db630 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3D925D9B27A15D3E0D9C9655C8C2D18211391E71 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ECE900169BB5D5C0532EC59E4D656CA8AE3C718 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ECE900169BB5D5C0532EC59E4D656CA8AE3C718 new file mode 100644 index 0000000..a513839 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3ECE900169BB5D5C0532EC59E4D656CA8AE3C718 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F2C705EAB3A2D181E6011C73C2A926A1CB38D84 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F2C705EAB3A2D181E6011C73C2A926A1CB38D84 new file mode 100644 index 0000000..9ec1df2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F2C705EAB3A2D181E6011C73C2A926A1CB38D84 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F3A733834B06C5C888E60E43FD264502113A894 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F3A733834B06C5C888E60E43FD264502113A894 new file mode 100644 index 0000000..efe6b13 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F3A733834B06C5C888E60E43FD264502113A894 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F7471A5839AF5BF5CD12A09B8993D9B0053CB57 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F7471A5839AF5BF5CD12A09B8993D9B0053CB57 new file mode 100644 index 0000000..2e214b7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F7471A5839AF5BF5CD12A09B8993D9B0053CB57 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F904B72A4AA10D2B8636FBF1216C80667B389A3 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F904B72A4AA10D2B8636FBF1216C80667B389A3 new file mode 100644 index 0000000..3eecc8b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/3F904B72A4AA10D2B8636FBF1216C80667B389A3 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/406612B3B55A47E3B9D1D7468CBEEB16EA527A4D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/406612B3B55A47E3B9D1D7468CBEEB16EA527A4D new file mode 100644 index 0000000..c0f01c2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/406612B3B55A47E3B9D1D7468CBEEB16EA527A4D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/40B39A18BA49ACCC7DB3B57C0F073EFE6A8BD3B4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/40B39A18BA49ACCC7DB3B57C0F073EFE6A8BD3B4 new file mode 100644 index 0000000..6c8c5d4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/40B39A18BA49ACCC7DB3B57C0F073EFE6A8BD3B4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/433AECD1E5B037419AAC009EEEDDE351C5544561 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/433AECD1E5B037419AAC009EEEDDE351C5544561 new file mode 100644 index 0000000..4f8fd10 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/433AECD1E5B037419AAC009EEEDDE351C5544561 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/443062BBA8A75388A7BC6027C9801A456ED9A26B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/443062BBA8A75388A7BC6027C9801A456ED9A26B new file mode 100644 index 0000000..a982167 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/443062BBA8A75388A7BC6027C9801A456ED9A26B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4495B7AAAC38AD6E6EE585667A98121795722ABF b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4495B7AAAC38AD6E6EE585667A98121795722ABF new file mode 100644 index 0000000..5d39d3e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4495B7AAAC38AD6E6EE585667A98121795722ABF differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/44BA9A5AAB74A795209F8B1E91F45308B9E2D97C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/44BA9A5AAB74A795209F8B1E91F45308B9E2D97C new file mode 100644 index 0000000..111fe89 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/44BA9A5AAB74A795209F8B1E91F45308B9E2D97C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45ADC325C69DF0F93576F08DF3BFC1C2A51AEA3D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45ADC325C69DF0F93576F08DF3BFC1C2A51AEA3D new file mode 100644 index 0000000..37f322e --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45ADC325C69DF0F93576F08DF3BFC1C2A51AEA3D @@ -0,0 +1,23 @@ +!function(){"use strict";var t={"msg":"站点不存在","status":202};"string"==typeof t&&(t=JSON.parse(t));var e=t,n=function(t,e){var n="jsonp_"+Date.now()+"_"+Math.ceil(1e5*Math.random()),i=document.getElementsByTagName("head")[0],a=document.createElement("script"),o=t.data||{},r=t.url,d=[];o.callback=n;for(var s in o)d.push(s+"="+o[s]);r+=/\?/.test(r)?"&":"?",r+=d.join("&"),a.id=n,a.src=r,window[n]=function(t){e(t);var a=document.getElementById(n);i.removeChild(a)},a.type="text/javascript",i.appendChild(a)},i=function(t){if("string"!=typeof t)return"";var e=document.createElement("a");return e.href=t,e.hostname},a=function(){return/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)?2:1},o=function(t){var e=new RegExp("(^| )"+t+"=([^;]*)(;|$)"),n=e.exec(document.cookie);return n?decodeURIComponent(n[2]):null},r="https://aifanfan.baidu.com/aiinvite/wiseQuery",d="https://aifanfan.baidu.com/static/images/defaultBg.png",s="https://aifanfan.baidu.com/i.gif",c=function(){return(new Date).getTime()+(1e7*Math.random()).toString(16).substr(0,4)+"_"+(new Date).getTime()+"_"+Math.random().toString().substr(2,5)}(),m=function(t){if(0==+e.status&&e.data&&e.data.base){var i={t:(new Date).getTime(),dtype:a(),ua:navigator.userAgent,ucid:e.data.base.ucId||-1,bid:c,siteId:e.data.base.siteId||-1,likeCrm:e.data.base.chatToolType||-1};for(var o in t)t.hasOwnProperty(o)&&(i[o]=t[o]);n({url:s,data:i},function(t){})}else{var r=+e.status,d=6;if(201===r)return;101===r?d=61:202===r?d=62:203===r?d=63:204===r?d=64:301===r?d=65:999===r&&(d=66);var m={url:s,data:{id:"m3",stopIntelWel:d,t:(new Date).getTime(),dtype:a(),ua:navigator.userAgent,ucid:-1,bid:c,siteId:-1,likeCrm:-1}};n(m,function(t){})}},l=null,p=null,g=[],v=0,u=1,h="smartInviteOuter",f=-1,b=0,x={show:function(t){var n=t||6e3,i=g.length;v=Math.floor(Math.random()*i),i>0&&(document.getElementById("smartInviteWelcome").innerHTML=g[v]),clearTimeout(p),p=setTimeout(function(){document.getElementById(h).style.display="block",1==+e.data.base.chatToolType&&g[v]&&window.acceptSmartInvite&&window.acceptSmartInvite(g[v]),1==+e.data.inviteSetting.smartBaseSetting.autoHide&&x.autoHide(),m({id:"m2",text:document.getElementById("smartInviteWelcome").innerText,query:f,nthShowInvite:u}),u++},1e3*n)},hide:function(){clearTimeout(l),document.getElementById(h).style.display="none",1==+e.data.inviteSetting.smartBaseSetting.reInvite&&x.show(e.data.inviteSetting.smartBaseSetting.inviteInterval)},autoHide:function(t){clearTimeout(l),l=setTimeout(function(){x.hide(t)},1e3*e.data.inviteSetting.smartBaseSetting.closeTime)},bindEvent:function(){var t=1===a()?"click":"touchend";document.getElementById("smartInviteClose").addEventListener(t,function(t){x.hide(),t.stopPropagation()}),1==+e.data.inviteSetting.smartBaseSetting.buttonType?(1===a()&&document.getElementById("smartInviteCancel").addEventListener(t,function(){x.hide(),m({id:"m1",type:"reject",query:f}),x.hide()}),document.getElementById("smartInviteAccept").addEventListener(t,function(){x.hide(),m({id:"m1",query:f,type:"accept"}),1==+e.data.base.chatToolType?window.acceptSmartInvite&&window.acceptSmartInvite(g[v],1):2==+e.data.base.chatToolType&&(location.href=e.data.base.customParam.chatUrl)})):document.getElementById("smartInviteOuter").addEventListener(t,function(t){m({id:"m1",type:"accept",query:f,device:a()}),t.stopPropagation(),x.hide(),1==+e.data.base.chatToolType?window.acceptSmartInvite&&window.acceptSmartInvite(g[v],1):2==+e.data.base.chatToolType&&(location.href=e.data.base.customParam.chatUrl)})}},y={pcInit:function(t){var n=e.data.inviteSetting.smartCustomerStyle,i="",a=n.welcome,o=a.replace(/<[^<>]+>/g,""),r=a.match(/style=[\'\"]?([^\'\"]*)[\'\"]?/i)?a.match(/style=[\'\"]?([^\'\"]*)[\'\"]?/i)[1]:"",s="",c=e.data.inviteSetting.smartImgMapping.length;if(1==+e.data.inviteSetting.isHaveEduPack)if(e.data.inviteSetting.isOpenSmartStyle)if(c>0){i=n.smartBackImg||d,n.smartBackImg&&(b=1);for(var m=0;m0?t.data.smartText:[o],t.data&&t.data.commonContent&&n.isShowComContent&&(g=[o]),t.data&&t.data.startObj&&t.data.startObj.query&&(f=t.data.startObj.query),1===n.isInviteFixed){var l=-e.data.inviteSetting.smartBaseSetting.inviteTypeData[b].width/2+"px",p=-e.data.inviteSetting.smartBaseSetting.inviteTypeData[b].height/2+"px";switch(e.data.inviteSetting.smartBaseSetting.position){case"middle":s="left: 50%; top: 50%; margin-left: "+l+"; margin-top: "+p+";";break;case"left-bottom":s=1===e.data.inviteSetting.smartBaseSetting.acceptFontPosition?"left: 0px; bottom: 0px;":"left: 0px; bottom: 36px;";break;case"right-bottom":s=1===e.data.inviteSetting.smartBaseSetting.acceptFontPosition?"right: 0px; bottom: 0px;":"right: 0px; bottom: 36px;";break;default:s="left: 50%; top: 50%; margin-left: "+l+"; margin-top: "+p+";"}}else{var v=window.innerWidth-e.data.inviteSetting.smartBaseSetting.inviteTypeData[b].width,u=window.innerHeight-e.data.inviteSetting.smartBaseSetting.inviteTypeData[b].height;n.inviteLeft<0&&(n.inviteLeft=0),n.inviteTop<0&&(n.inviteTop=0),1===e.data.inviteSetting.smartBaseSetting.acceptFontPosition?(n.inviteLeft>v&&(n.inviteLeft=v),n.inviteTop>u&&(n.inviteTop=u)):(n.inviteLeft>v&&(n.inviteLeft=v-36),n.inviteTop>u&&(n.inviteTop=u-36)),s="left: "+n.inviteLeft+"px; top: "+n.inviteTop+"px;"}var y='\n
    \n
    \n +\n
    \n '+(1===e.data.inviteSetting.smartBaseSetting.acceptFontPosition?'
    \n '+o+"\n
    ":"")+"\n "+(1===e.data.inviteSetting.smartBaseSetting.buttonType?'\n
    \n '+e.data.base.cancelTextPc+'\n
    \n
    \n '+e.data.base.acceptTextPc+"\n
    \n
    ":"")+"\n "+(2===e.data.inviteSetting.smartBaseSetting.acceptFontPosition?'
    \n
    \n '+o+"\n
    \n
    ":"")+"\n
    ",w=document.createElement("div");w.innerHTML=y,document.body.appendChild(w),x.show(e.data.inviteSetting.smartBaseSetting.stayTime),x.bindEvent()},pcShow:function(){x.show(e.data.inviteSetting.smartBaseSetting.stayTime)},mobileInit:function(t){var n=e.data.inviteSetting.smartCustomerStyle,i=n.welcome,a=i.replace(/<[^<>]+>/g,""),o=i.match(/style=[\'\"]?([^\'\"]*)[\'\"]?/i)?i.match(/style=[\'\"]?([^\'\"]*)[\'\"]?/i)[1]:"";g=t&&t.data&&t.data.smartText&&t.data.smartText.length>0?t.data.smartText:[a],t.data&&t.data.commonContent&&n.isShowComContent&&(g=[a]),t.data&&t.data.startObj&&t.data.startObj.query&&(f=t.data.startObj.query);var r='\n
    \n
    \n
    \n +\n
    \n '+(n.mobileIconImg?' \n
    \n '+a+"\n
    ":'
    \n '+a+"\n
    ")+'\n
    \n '+e.data.base.acceptTextMobile+"\n
    \n
    \n
    ",d=document.createElement("div");d.innerHTML=r,document.body.appendChild(d),x.show(e.data.inviteSetting.smartBaseSetting.stayTime),x.bindEvent()},mobileShow:function(){x.show(e.data.inviteSetting.smartBaseSetting.stayTime)}},w={pc:function(t){document.getElementById("smartInvite")?y.pcShow(t):y.pcInit(t)},mobile:function(t){document.getElementById("smartInvite")?y.mobileShow(t):y.mobileInit(t)}},I=function(){};I.prototype.data={referrer:document.referrer},I.prototype.init=function(){var t=this;if(0===e.status)if(t.data.referrer&&e&&e.data&&e.data.base&&e.data.base.isOpenIntel)if(0==+e.data.inviteSetting.smartBaseSetting.startPage){var n=i(t.data.referrer);n===location.hostname?(m({id:"m3",stopIntelWel:3}),t.showCustomizeInvite()):t.getQuery(r,t.showSmartInvite)}else t.getQuery(r,t.showSmartInvite);else m({id:"m3",stopIntelWel:1}),t.showCustomizeInvite();else m({id:"m3",stopIntelWel:2}),t.showCustomizeInvite()},I.prototype.showCustomizeInvite=function(){this.client(function(){window.showOrdinaryInvite&&window.showOrdinaryInvite()},function(){})},I.prototype.getQuery=function(t,i){var r=this,d={url:t,data:{ucId:e.data.base.ucId,tradeId:e.data.base.tradeId,funType:1,siteId:e.data.base.siteId,baiduId:o("BAIDUID"),refer:encodeURIComponent(this.data.referrer),device:a(),extent:""}};n(d,function(t){0==+t.code?1===e.data.base.chatToolType?t.data&&Object.keys(d).length>0?i&&i(t):(m({id:"m3",stopIntelWel:4}),r.showCustomizeInvite()):i&&i(t):(m({id:"m3",stopIntelWel:5}),r.showCustomizeInvite())})},I.prototype.showSmartInvite=function(t){1===a()?w.pc(t):w.mobile(t)},I.prototype.client=function(t,n){e&&e.data&&e.data.base&&e.data.base.chatToolType?1===e.data.base.chatToolType?t&&t():2===e.data.base.chatToolType&&n&&n():window.showOrdinaryInvite&&window.showOrdinaryInvite()},(new I).init()}();ow`)`)Cm<M:https://aifanfan.baidu.com/invite.js?appId=1&siteId=13124644&userId=27355820necko:classified1strongly-framed1security-infoFnhllAKWRHGAlo+ESXykKAAAAAAAAAAAwAAAAAAAAEaphjojH6pBabDSgSnsfLHeAAAAAgAAAAAAAAAAAAAAAAAAAAEANQFmCjImkVxP+7sgiYWmMt8FvcOXmlQiTNWFiWlrbpbqgwAAAAAAAAoyMIIKLjCCCRagAwIBAgIMclh4Nm6fVugdQYhIMA0GCSqGSIb3DQEBCwUAMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwHhcNMjAwNDAyMDcwNDU4WhcNMjEwNzI2MDUzMTAyWjCBpzELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB2JlaWppbmcxEDAOBgNVBAcTB2JlaWppbmcxJTAjBgNVBAsTHHNlcnZpY2Ugb3BlcmF0aW9uIGRlcGFydG1lbnQxOTA3BgNVBAoTMEJlaWppbmcgQmFpZHUgTmV0Y29tIFNjaWVuY2UgVGVjaG5vbG9neSBDby4sIEx0ZDESMBAGA1UEAxMJYmFpZHUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwamwrkca0lfrHRUfblyy5PgLINvqAN8p/6RriSZLnyMv7FewirhGQCp+vNxaRZdPrUEOvCCGSwxdVSFH4jE8V6fsmUfrRw1y18gWVHXv00URD0vOYHpGXCh0ro4bvthwZnuok0ko0qN2lFXefCfyD/eYDK2G2sau/Z/w2YEympfjIe4EkpbkeBHlxBAOEDF6Speg68ebxNqJN6nDN9dWsX9Sx9kmCtavOBaxbftzebFoeQOQ64h7jEiRmFGlB5SGpXhGeY9Ym+k1Wafxe1cxCpDPJM4NJOeSsmrp5pY3Crh8hy900lzoSwpfZhinQYbPJqYIjqVJF5JTs5Glz1OwMQIDAQABo4IGmDCCBpQwDgYDVR0PAQH/BAQDAgWgMIGgBggrBgEFBQcBAQSBkzCBkDBNBggrBgEFBQcwAoZBaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Nvcmdhbml6YXRpb252YWxzaGEyZzJyMS5jcnQwPwYIKwYBBQUHMAGGM2h0dHA6Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9nc29yZ2FuaXphdGlvbnZhbHNoYTJnMjBWBgNVHSAETzBNMEEGCSsGAQQBoDIBFDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgIwCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzL2dzb3JnYW5pemF0aW9udmFsc2hhMmcyLmNybDCCA04GA1UdEQSCA0UwggNBggliYWlkdS5jb22CDGJhaWZ1YmFvLmNvbYIMd3d3LmJhaWR1LmNughB3d3cuYmFpZHUuY29tLmNugg9tY3QueS5udW9taS5jb22CC2Fwb2xsby5hdXRvggZkd3ouY26CCyouYmFpZHUuY29tgg4qLmJhaWZ1YmFvLmNvbYIRKi5iYWlkdXN0YXRpYy5jb22CDiouYmRzdGF0aWMuY29tggsqLmJkaW1nLmNvbYIMKi5oYW8xMjMuY29tggsqLm51b21pLmNvbYINKi5jaHVhbmtlLmNvbYINKi50cnVzdGdvLmNvbYIPKi5iY2UuYmFpZHUuY29tghAqLmV5dW4uYmFpZHUuY29tgg8qLm1hcC5iYWlkdS5jb22CDyoubWJkLmJhaWR1LmNvbYIRKi5mYW55aS5iYWlkdS5jb22CDiouYmFpZHViY2UuY29tggwqLm1pcGNkbi5jb22CECoubmV3cy5iYWlkdS5jb22CDiouYmFpZHVwY3MuY29tggwqLmFpcGFnZS5jb22CCyouYWlwYWdlLmNugg0qLmJjZWhvc3QuY29tghAqLnNhZmUuYmFpZHUuY29tgg4qLmltLmJhaWR1LmNvbYISKi5iYWlkdWNvbnRlbnQuY29tggsqLmRsbmVsLmNvbYILKi5kbG5lbC5vcmeCEiouZHVlcm9zLmJhaWR1LmNvbYIOKi5zdS5iYWlkdS5jb22CCCouOTEuY29tghIqLmhhbzEyMy5iYWlkdS5jb22CDSouYXBvbGxvLmF1dG+CEioueHVlc2h1LmJhaWR1LmNvbYIRKi5iai5iYWlkdWJjZS5jb22CESouZ3ouYmFpZHViY2UuY29tgg4qLnNtYXJ0YXBwcy5jboINKi5iZHRq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b2JhbHNpZ24uY29tL2dzb3JnYW5pemF0aW9udmFsc2hhMmcyMFYGA1UdIARPME0wQQYJKwYBBAGgMgEUMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAgGBmeBDAECAjAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3MvZ3Nvcmdhbml6YXRpb252YWxzaGEyZzIuY3JsMIIDTgYDVR0RBIIDRTCCA0GCCWJhaWR1LmNvbYIMYmFpZnViYW8uY29tggx3d3cuYmFpZHUuY26CEHd3dy5iYWlkdS5jb20uY26CD21jdC55Lm51b21pLmNvbYILYXBvbGxvLmF1dG+CBmR3ei5jboILKi5iYWlkdS5jb22CDiouYmFpZnViYW8uY29tghEqLmJhaWR1c3RhdGljLmNvbYIOKi5iZHN0YXRpYy5jb22CCyouYmRpbWcuY29tggwqLmhhbzEyMy5jb22CCyoubnVvbWkuY29tgg0qLmNodWFua2UuY29tgg0qLnRydXN0Z28uY29tgg8qLmJjZS5iYWlkdS5jb22CECouZXl1bi5iYWlkdS5jb22CDyoubWFwLmJhaWR1LmNvbYIPKi5tYmQuYmFpZHUuY29tghEqLmZhbnlpLmJhaWR1LmNvbYIOKi5iYWlkdWJjZS5jb22CDCoubWlwY2RuLmNvbYIQKi5uZXdzLmJhaWR1LmNvbYIOKi5iYWlkdXBjcy5jb22CDCouYWlwYWdlLmNvbYILKi5haXBhZ2UuY26CDSouYmNlaG9zdC5jb22CECouc2FmZS5iYWlkdS5jb22CDiouaW0uYmFpZHUuY29tghIqLmJhaWR1Y29udGVudC5jb22CCyouZGxuZWwuY29tggsqLmRsbmVsLm9yZ4ISKi5kdWVyb3MuYmFpZHUuY29tgg4qLnN1LmJhaWR1LmNvbYIIKi45MS5jb22CEiouaGFvMTIzLmJhaWR1LmNvbYINKi5hcG9sbG8uYXV0b4ISKi54dWVzaHUuYmFpZHUuY29tghEqLmJqLmJhaWR1YmNlLmNvbYIRKi5nei5iYWlkdWJjZS5jb22CDiouc21hcnRhcHBzLmNugg0qLmJkdGpyY3YuY29t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request-methodGETresponse-headHTTP/1.1 200 OK +Cache-Control: no-cache +Content-Length: 13469 +Content-Type: text/javascript; charset=utf-8 +Date: Mon, 24 May 2021 04:21:57 GMT +Pragma: no-cache +Server: aff/1.0 +X-Envoy-Upstream-Service-Time: 14 +X-Product-Id: 1.0 +X-Protected-By: OpenRASP +X-Request-Id: bfc4eac467164808bd7a7f619f1ac1bf +original-response-headersCache-Control: no-cache +Connection: keep-alive +Content-Length: 13469 +Content-Type: text/javascript; charset=utf-8 +Date: Mon, 24 May 2021 04:21:57 GMT +Pragma: no-cache +Server: aff/1.0 +X-Envoy-Upstream-Service-Time: 14 +X-Product-Id: 1.0 +X-Protected-By: OpenRASP +X-Request-Id: bfc4eac467164808bd7a7f619f1ac1bf +ctid2uncompressed-len0net-response-time-onstart339net-response-time-onstop3434 \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45BBCB2962C27FD1738EFDE7FC403EB15A3AAD77 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45BBCB2962C27FD1738EFDE7FC403EB15A3AAD77 new file mode 100644 index 0000000..087fd32 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/45BBCB2962C27FD1738EFDE7FC403EB15A3AAD77 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4642916F8949DB23224EF8AF58C54D1EEC4EEC77 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4642916F8949DB23224EF8AF58C54D1EEC4EEC77 new file mode 100644 index 0000000..7adfd1f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4642916F8949DB23224EF8AF58C54D1EEC4EEC77 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/471722334655FC00C166A296A47A21B2A3870BB9 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/471722334655FC00C166A296A47A21B2A3870BB9 new file mode 100644 index 0000000..e0ec097 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/471722334655FC00C166A296A47A21B2A3870BB9 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4746237D8CC47F448F8EB01D4D5A8BC49F51818B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4746237D8CC47F448F8EB01D4D5A8BC49F51818B new file mode 100644 index 0000000..42d405b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4746237D8CC47F448F8EB01D4D5A8BC49F51818B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4903E7ABE348ED39D98D1C844FB81A906D5ECA16 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4903E7ABE348ED39D98D1C844FB81A906D5ECA16 new file mode 100644 index 0000000..f671600 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4903E7ABE348ED39D98D1C844FB81A906D5ECA16 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4974720208C2A09F1D6D2045E62ED6394D5E0DCC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4974720208C2A09F1D6D2045E62ED6394D5E0DCC new file mode 100644 index 0000000..1a70cc6 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4974720208C2A09F1D6D2045E62ED6394D5E0DCC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A04ECAC1C7F2ED35E3CB05D6208D77876E5D6E1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A04ECAC1C7F2ED35E3CB05D6208D77876E5D6E1 new file mode 100644 index 0000000..a12bd59 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A04ECAC1C7F2ED35E3CB05D6208D77876E5D6E1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A1855A9E0AB523DA88FE27DCE63C5F40BB2322D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A1855A9E0AB523DA88FE27DCE63C5F40BB2322D new file mode 100644 index 0000000..bb15485 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A1855A9E0AB523DA88FE27DCE63C5F40BB2322D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A95A0DD5DD79AC02CDDCD9E2B01201AB1A88FAF b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A95A0DD5DD79AC02CDDCD9E2B01201AB1A88FAF new file mode 100644 index 0000000..94ab457 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4A95A0DD5DD79AC02CDDCD9E2B01201AB1A88FAF differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4B30C1F95884526EA90DEB3F40705D3BDDC84F8E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4B30C1F95884526EA90DEB3F40705D3BDDC84F8E new file mode 100644 index 0000000..b6ff4c3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4B30C1F95884526EA90DEB3F40705D3BDDC84F8E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4C96E1A1EB0A4DB0C53569F224446A708502F6BE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4C96E1A1EB0A4DB0C53569F224446A708502F6BE new file mode 100644 index 0000000..2e1333d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4C96E1A1EB0A4DB0C53569F224446A708502F6BE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CA59029B5C591356DC6057485C359CFD3775220 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CA59029B5C591356DC6057485C359CFD3775220 new file mode 100644 index 0000000..8937b93 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CA59029B5C591356DC6057485C359CFD3775220 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CAB6B40CAD82F145D60E6D28D791275321E801D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CAB6B40CAD82F145D60E6D28D791275321E801D new file mode 100644 index 0000000..57abdb5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CAB6B40CAD82F145D60E6D28D791275321E801D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CD31D3832F0C29D9B3885723049829329FE40D4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CD31D3832F0C29D9B3885723049829329FE40D4 new file mode 100644 index 0000000..b73f880 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4CD31D3832F0C29D9B3885723049829329FE40D4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4D53227F41A8F0B3AE21D474625A8C56ED400823 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4D53227F41A8F0B3AE21D474625A8C56ED400823 new file mode 100644 index 0000000..e6c10fa Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4D53227F41A8F0B3AE21D474625A8C56ED400823 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E44E0D67F53D9009B9425967D292D665567C342 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E44E0D67F53D9009B9425967D292D665567C342 new file mode 100644 index 0000000..be6252b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E44E0D67F53D9009B9425967D292D665567C342 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E452AFC810029A498CE93E1625BB9304ADA5C01 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E452AFC810029A498CE93E1625BB9304ADA5C01 new file mode 100644 index 0000000..1b27ed5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/4E452AFC810029A498CE93E1625BB9304ADA5C01 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50CC648CF5DEED5F42621DEF97D199B4A9D3008E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50CC648CF5DEED5F42621DEF97D199B4A9D3008E new file mode 100644 index 0000000..61cd553 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50CC648CF5DEED5F42621DEF97D199B4A9D3008E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50D4F2E77F974542EAB1D300324529E50D732F0C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50D4F2E77F974542EAB1D300324529E50D732F0C new file mode 100644 index 0000000..bab276f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/50D4F2E77F974542EAB1D300324529E50D732F0C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5313B97A669A53D94DBB557F2BAA379B57120BBD b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5313B97A669A53D94DBB557F2BAA379B57120BBD new file mode 100644 index 0000000..59e66a7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5313B97A669A53D94DBB557F2BAA379B57120BBD differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53787BD5379E7F7697944D6BEB8D482270FED89E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53787BD5379E7F7697944D6BEB8D482270FED89E new file mode 100644 index 0000000..a0dabaa Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53787BD5379E7F7697944D6BEB8D482270FED89E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53FD51FC3C98142303B932A031E27BF634795771 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53FD51FC3C98142303B932A031E27BF634795771 new file mode 100644 index 0000000..c64d3cc Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/53FD51FC3C98142303B932A031E27BF634795771 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/547A1C4805997989B724E9E622D43F2577C9E9D8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/547A1C4805997989B724E9E622D43F2577C9E9D8 new file mode 100644 index 0000000..cb7f7fa Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/547A1C4805997989B724E9E622D43F2577C9E9D8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/54D8C2FD3D07A7073C552A3E2083E346A82B7F3C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/54D8C2FD3D07A7073C552A3E2083E346A82B7F3C new file mode 100644 index 0000000..c241732 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/54D8C2FD3D07A7073C552A3E2083E346A82B7F3C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/55C6F8C256EA1FD88C42020ADA7214AC6B9F1732 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/55C6F8C256EA1FD88C42020ADA7214AC6B9F1732 new file mode 100644 index 0000000..e57636d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/55C6F8C256EA1FD88C42020ADA7214AC6B9F1732 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/564512E2A2AEE34ACB47A702A1DA92603CDC0D4C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/564512E2A2AEE34ACB47A702A1DA92603CDC0D4C new file mode 100644 index 0000000..69d5a64 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/564512E2A2AEE34ACB47A702A1DA92603CDC0D4C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/56792542700928598D1385FA99D60F5CA9D0D78B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/56792542700928598D1385FA99D60F5CA9D0D78B new file mode 100644 index 0000000..8049033 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/56792542700928598D1385FA99D60F5CA9D0D78B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/567A180953A5C2B34D0A38D8979E08349FF8750A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/567A180953A5C2B34D0A38D8979E08349FF8750A new file mode 100644 index 0000000..e2797a9 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/567A180953A5C2B34D0A38D8979E08349FF8750A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5700D00C1597B64C4F10453F28D52C74CA9D1549 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5700D00C1597B64C4F10453F28D52C74CA9D1549 new file mode 100644 index 0000000..cbccce3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5700D00C1597B64C4F10453F28D52C74CA9D1549 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/57F0C5CB102C0C7823E761B6DFF38791143B4539 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/57F0C5CB102C0C7823E761B6DFF38791143B4539 new file mode 100644 index 0000000..5b130cd Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/57F0C5CB102C0C7823E761B6DFF38791143B4539 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/583D97BD4A89E794322FA2633DADF0208D4207D1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/583D97BD4A89E794322FA2633DADF0208D4207D1 new file mode 100644 index 0000000..4a3da5f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/583D97BD4A89E794322FA2633DADF0208D4207D1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/59417452DACC7CB1C151A88E3D9763BAFD25E040 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/59417452DACC7CB1C151A88E3D9763BAFD25E040 new file mode 100644 index 0000000..1ead86e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/59417452DACC7CB1C151A88E3D9763BAFD25E040 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5AE9C13B88B6D679AB1FDFAD3A6281C1C6B3AFAB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5AE9C13B88B6D679AB1FDFAD3A6281C1C6B3AFAB new file mode 100644 index 0000000..ce50477 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5AE9C13B88B6D679AB1FDFAD3A6281C1C6B3AFAB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5B0D6074DB6C35E7143BA47021EE675A1DB82C27 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5B0D6074DB6C35E7143BA47021EE675A1DB82C27 new file mode 100644 index 0000000..69d16d9 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5B0D6074DB6C35E7143BA47021EE675A1DB82C27 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5BED5F3E256FA2C7742CE071122C831CF3A48034 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5BED5F3E256FA2C7742CE071122C831CF3A48034 new file mode 100644 index 0000000..631f5ae Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5BED5F3E256FA2C7742CE071122C831CF3A48034 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5E1BFA8C6600A089122ADBF29C44A0ED8E3348C1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5E1BFA8C6600A089122ADBF29C44A0ED8E3348C1 new file mode 100644 index 0000000..006d3c4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5E1BFA8C6600A089122ADBF29C44A0ED8E3348C1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5FFD0E118F8CED24B9DBB360717241C55676BC09 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5FFD0E118F8CED24B9DBB360717241C55676BC09 new file mode 100644 index 0000000..b3d621c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/5FFD0E118F8CED24B9DBB360717241C55676BC09 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/610FA33A4BEF0CD3BA57AC4C5376BDC384DCAAC1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/610FA33A4BEF0CD3BA57AC4C5376BDC384DCAAC1 new file mode 100644 index 0000000..6a68db7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/610FA33A4BEF0CD3BA57AC4C5376BDC384DCAAC1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6317950E15BE3FB45A514764D917D553A54E4052 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6317950E15BE3FB45A514764D917D553A54E4052 new file mode 100644 index 0000000..37d43f3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6317950E15BE3FB45A514764D917D553A54E4052 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/633BA9F8615C0D2554E3B33CA6DFA01C8686AB2E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/633BA9F8615C0D2554E3B33CA6DFA01C8686AB2E new file mode 100644 index 0000000..3fe999d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/633BA9F8615C0D2554E3B33CA6DFA01C8686AB2E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6556B11C76CBF89CA77338B3D8AD9E48783E675A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6556B11C76CBF89CA77338B3D8AD9E48783E675A new file mode 100644 index 0000000..8772a55 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6556B11C76CBF89CA77338B3D8AD9E48783E675A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/656B2CEE0171946DA82FE24B9747C3563967229D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/656B2CEE0171946DA82FE24B9747C3563967229D new file mode 100644 index 0000000..b886545 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/656B2CEE0171946DA82FE24B9747C3563967229D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/657828FFBFABBC53D129E26C41A00F39E2D2CD17 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/657828FFBFABBC53D129E26C41A00F39E2D2CD17 new file mode 100644 index 0000000..c4a6a2c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/657828FFBFABBC53D129E26C41A00F39E2D2CD17 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/659463F99C797CC3AB7AC69997CE135E455B2DF8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/659463F99C797CC3AB7AC69997CE135E455B2DF8 new file mode 100644 index 0000000..2a8d921 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/659463F99C797CC3AB7AC69997CE135E455B2DF8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/65949B6E26013B15978DC7AF53457C44119AA2E9 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/65949B6E26013B15978DC7AF53457C44119AA2E9 new file mode 100644 index 0000000..d1c4104 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/65949B6E26013B15978DC7AF53457C44119AA2E9 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/66F684AF9CC570C6247262B47C769C601C2A338B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/66F684AF9CC570C6247262B47C769C601C2A338B new file mode 100644 index 0000000..90e6510 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/66F684AF9CC570C6247262B47C769C601C2A338B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6791F9A1EE6D8A1BE3C0C75504A9F85830BE2837 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6791F9A1EE6D8A1BE3C0C75504A9F85830BE2837 new file mode 100644 index 0000000..24c8b07 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6791F9A1EE6D8A1BE3C0C75504A9F85830BE2837 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/68FAA503DA5BDFCB7A2045619CA5895C0B8F52BC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/68FAA503DA5BDFCB7A2045619CA5895C0B8F52BC new file mode 100644 index 0000000..11dffca Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/68FAA503DA5BDFCB7A2045619CA5895C0B8F52BC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6AD09F146C46F987EA222514D309460F65FA6FB2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6AD09F146C46F987EA222514D309460F65FA6FB2 new file mode 100644 index 0000000..4524fe7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6AD09F146C46F987EA222514D309460F65FA6FB2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B10F375A07E74E78A53737CED6497476C2F3A83 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B10F375A07E74E78A53737CED6497476C2F3A83 new file mode 100644 index 0000000..f3844b3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B10F375A07E74E78A53737CED6497476C2F3A83 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B67190C23DC6C119FC6D2B1F705B947E5CE750A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B67190C23DC6C119FC6D2B1F705B947E5CE750A new file mode 100644 index 0000000..001daa8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6B67190C23DC6C119FC6D2B1F705B947E5CE750A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6CF1C32D9F66F337DEFFE03F49C2708FBC63D312 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6CF1C32D9F66F337DEFFE03F49C2708FBC63D312 new file mode 100644 index 0000000..9fb2c8e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6CF1C32D9F66F337DEFFE03F49C2708FBC63D312 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D03F907E1927A28D14B2CA3C12056E19FECA9E2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D03F907E1927A28D14B2CA3C12056E19FECA9E2 new file mode 100644 index 0000000..23f345d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D03F907E1927A28D14B2CA3C12056E19FECA9E2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D8D669ED12FBE2645CBF69B6EA0071F2B73F5F0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D8D669ED12FBE2645CBF69B6EA0071F2B73F5F0 new file mode 100644 index 0000000..36e45db Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6D8D669ED12FBE2645CBF69B6EA0071F2B73F5F0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6EC17E3A186F01AFBC31F833C301781D51C12493 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6EC17E3A186F01AFBC31F833C301781D51C12493 new file mode 100644 index 0000000..e421eda Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6EC17E3A186F01AFBC31F833C301781D51C12493 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6F448605EBA4EBD7C78D5238DA4440D219312419 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6F448605EBA4EBD7C78D5238DA4440D219312419 new file mode 100644 index 0000000..1f575ca Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6F448605EBA4EBD7C78D5238DA4440D219312419 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6FD1943D542E69FBCAD52D01009F05AC915B4BCE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6FD1943D542E69FBCAD52D01009F05AC915B4BCE new file mode 100644 index 0000000..7cfc700 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/6FD1943D542E69FBCAD52D01009F05AC915B4BCE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/704148892DD84D67264736FC9B81E82F90308988 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/704148892DD84D67264736FC9B81E82F90308988 new file mode 100644 index 0000000..1e91b15 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/704148892DD84D67264736FC9B81E82F90308988 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/705CE69EF92B788AEA3CE287FCA99F735A4EF4FB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/705CE69EF92B788AEA3CE287FCA99F735A4EF4FB new file mode 100644 index 0000000..40f49bf Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/705CE69EF92B788AEA3CE287FCA99F735A4EF4FB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/707E15709AA1CE94E5883075BAF67687E3E8C384 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/707E15709AA1CE94E5883075BAF67687E3E8C384 new file mode 100644 index 0000000..3ff14b0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/707E15709AA1CE94E5883075BAF67687E3E8C384 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72A4C1D2180743DC908D970B2422499DCD24FE21 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72A4C1D2180743DC908D970B2422499DCD24FE21 new file mode 100644 index 0000000..ec69123 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72A4C1D2180743DC908D970B2422499DCD24FE21 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72DC8E96A18B44EA16D7A85BDE9612F74226CE5A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72DC8E96A18B44EA16D7A85BDE9612F74226CE5A new file mode 100644 index 0000000..9006538 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72DC8E96A18B44EA16D7A85BDE9612F74226CE5A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72EDDFD5F6161AC0B084609099C92858DE3BE255 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72EDDFD5F6161AC0B084609099C92858DE3BE255 new file mode 100644 index 0000000..eee964a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/72EDDFD5F6161AC0B084609099C92858DE3BE255 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7342B1A5CB4F60E48396E52A467A3E71BB8E870A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7342B1A5CB4F60E48396E52A467A3E71BB8E870A new file mode 100644 index 0000000..5327442 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7342B1A5CB4F60E48396E52A467A3E71BB8E870A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7433626E29E58ABC8C5C0F2364BF1B872D157A2F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7433626E29E58ABC8C5C0F2364BF1B872D157A2F new file mode 100644 index 0000000..313f2f2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7433626E29E58ABC8C5C0F2364BF1B872D157A2F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74738B9E6B3E8CC7B50A5FA362E36A837660691F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74738B9E6B3E8CC7B50A5FA362E36A837660691F new file mode 100644 index 0000000..04d1565 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74738B9E6B3E8CC7B50A5FA362E36A837660691F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74D082BAFBAA26D0568A690323B63CF8EDBC3BF2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74D082BAFBAA26D0568A690323B63CF8EDBC3BF2 new file mode 100644 index 0000000..4ea0811 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/74D082BAFBAA26D0568A690323B63CF8EDBC3BF2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/75EF726719BE4C0983497075C90707EE7B417F25 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/75EF726719BE4C0983497075C90707EE7B417F25 new file mode 100644 index 0000000..d0b080f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/75EF726719BE4C0983497075C90707EE7B417F25 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/76C24B0C6A660978541FA686C4F6AB7CFF39912A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/76C24B0C6A660978541FA686C4F6AB7CFF39912A new file mode 100644 index 0000000..4de06b1 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/76C24B0C6A660978541FA686C4F6AB7CFF39912A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7832D1E926231D41A906C83DF558BBD284F308CE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7832D1E926231D41A906C83DF558BBD284F308CE new file mode 100644 index 0000000..5d9f9cd Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7832D1E926231D41A906C83DF558BBD284F308CE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78AA35BC04189A119A42570AB1587CC50EF4488F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78AA35BC04189A119A42570AB1587CC50EF4488F new file mode 100644 index 0000000..c26326f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78AA35BC04189A119A42570AB1587CC50EF4488F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78B8C792354F270B22761F91C517BE9737996EA6 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78B8C792354F270B22761F91C517BE9737996EA6 new file mode 100644 index 0000000..3cef5ba Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/78B8C792354F270B22761F91C517BE9737996EA6 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7A1E1837F1E96A48A76B7AB9EFAA9748D902FFDD b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7A1E1837F1E96A48A76B7AB9EFAA9748D902FFDD new file mode 100644 index 0000000..f00d364 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7A1E1837F1E96A48A76B7AB9EFAA9748D902FFDD differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7B426BD479C8C3BF11DBD52D6F80F3D8A3898826 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7B426BD479C8C3BF11DBD52D6F80F3D8A3898826 new file mode 100644 index 0000000..fcec22d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7B426BD479C8C3BF11DBD52D6F80F3D8A3898826 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7BD24E82B3CF5D784DB1962C64FA1B561BE5374F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7BD24E82B3CF5D784DB1962C64FA1B561BE5374F new file mode 100644 index 0000000..e5a04a4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7BD24E82B3CF5D784DB1962C64FA1B561BE5374F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7C7BC8A90871D796ED809A5CE9AACB687CFF9CFB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7C7BC8A90871D796ED809A5CE9AACB687CFF9CFB new file mode 100644 index 0000000..a9c8e9b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7C7BC8A90871D796ED809A5CE9AACB687CFF9CFB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7CE749E9D9862F7077BB21627E7C4B0D49D19E68 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7CE749E9D9862F7077BB21627E7C4B0D49D19E68 new file mode 100644 index 0000000..c2e35ad Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7CE749E9D9862F7077BB21627E7C4B0D49D19E68 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0A139767A2F272AB45A08FFA35FA816D937E2D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0A139767A2F272AB45A08FFA35FA816D937E2D new file mode 100644 index 0000000..19e8fd4 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0A139767A2F272AB45A08FFA35FA816D937E2D @@ -0,0 +1,170 @@ +!(function (c) { + var a, + t, + h, + o, + e, + l, + i, + n = + ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `, + s = (a = document.getElementsByTagName('script'))[ + a.length - 1 + ].getAttribute('data-injectcss') + if (s && !c.__iconfont__svg__cssinject__) { + c.__iconfont__svg__cssinject__ = !0 + try { + document.write( + '' + ) + } catch (c) { + console && console.log(c) + } + } + function d() { + l || ((l = !0), o()) + } + ;(t = function () { + var c, + a, + t, + h, + o, + e = document.createElement('div') + ;(e.innerHTML = n), + (n = null), + (c = e.getElementsByTagName('svg')[0]) && + (c.setAttribute('aria-hidden', 'true'), + (c.style.position = 'absolute'), + (c.style.width = 0), + (c.style.height = 0), + (c.style.overflow = 'hidden'), + (a = c), + (t = document.body).firstChild + ? ((h = a), + (o = t.firstChild).parentNode.insertBefore(h, o)) + : t.appendChild(a)) + }), + document.addEventListener + ? ~['complete', 'loaded', 'interactive'].indexOf( + document.readyState + ) + ? setTimeout(t, 0) + : ((h = function () { + document.removeEventListener('DOMContentLoaded', h, !1), + t() + }), + document.addEventListener('DOMContentLoaded', h, !1)) + : document.attachEvent && + ((o = t), + (e = c.document), + (l = !1), + (i = function () { + try { + e.documentElement.doScroll('left') + } catch (c) { + return void setTimeout(i, 50) + } + d() + })(), + (e.onreadystatechange = function () { + 'complete' == e.readyState && + ((e.onreadystatechange = null), d()) + })) +})(window) +A`)`)Cm:`da7:https://www.ip12345.net/user/js/iconfont.js?v=20201016necko:classified1strongly-framed1security-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-methodGETresponse-headHTTP/1.1 200 OK +Server: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 37388 +Accept-Ranges: bytes +Last-Modified: Fri, 16 Oct 2020 07:17:58 GMT +original-response-headersServer: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 37388 +Connection: keep-alive +Accept-Ranges: bytes +Last-Modified: Fri, 16 Oct 2020 07:17:58 GMT +ctid2uncompressed-len0net-response-time-onstart50net-response-time-onstop51 \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0AEA83EC7447D02D679A7D00DAC0E15AC32165 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0AEA83EC7447D02D679A7D00DAC0E15AC32165 new file mode 100644 index 0000000..b33f9b5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D0AEA83EC7447D02D679A7D00DAC0E15AC32165 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3310FB6A3AF7785CC572DD26E10953C510BC27 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3310FB6A3AF7785CC572DD26E10953C510BC27 new file mode 100644 index 0000000..2f5aa98 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3310FB6A3AF7785CC572DD26E10953C510BC27 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3D8A829677CA3326A8F17F556737E4B785E48B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3D8A829677CA3326A8F17F556737E4B785E48B new file mode 100644 index 0000000..fcc621c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7D3D8A829677CA3326A8F17F556737E4B785E48B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F4D8E66437165D6109BDA4AF227315B6D1CE8CE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F4D8E66437165D6109BDA4AF227315B6D1CE8CE new file mode 100644 index 0000000..f5b8a89 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F4D8E66437165D6109BDA4AF227315B6D1CE8CE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F8F0A9E8CE7421AA3A0CBD7C2A7ADC129758D29 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F8F0A9E8CE7421AA3A0CBD7C2A7ADC129758D29 new file mode 100644 index 0000000..9dd071f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7F8F0A9E8CE7421AA3A0CBD7C2A7ADC129758D29 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7FF69781CEEFB1E73F66949DBC46C22D0D8EAB0B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7FF69781CEEFB1E73F66949DBC46C22D0D8EAB0B new file mode 100644 index 0000000..887b315 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/7FF69781CEEFB1E73F66949DBC46C22D0D8EAB0B @@ -0,0 +1,27 @@ +{"metadata":{"sort":"-last_modified","signature":{"ref":"kpb8txbpoeys12trcx64bas4b","x5u":"https://content-signature-2.cdn.mozilla.net/chains/remote-settings.content-signature.mozilla.org-2021-07-01-15-05-56.chain","mode":"p384ecdsa","type":"contentsignaturepki","signature":"E1tp-mXMpaVHWxS-21qIfumvcRoEadMaOJ9SSLYFKWESkCixGsitfMgU7T8W8u-KTrjiapvoP5Wd4-_u0oscECytII0gRhQM3bc2doIQy8zCGoh2f9xm001YLmXTil-h","signer_id":"remote-settings","public_key":"MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE08HfrbfScSGwlh3hDbcnuQlnOA6X7x9s8Zia1dXyu2evbijUZc0vmOx92vrulbLwaDdwMWBJsgZT5fzx1NOTHa+T3fnd/R0Ij72ytreK54nBEHE2CeOxy4BlC8U2qWJa"},"attachment":{"enabled":false,"required":false},"displayFields":["Name","Domain","BreachDate","PwnCount"],"id":"fxmonitor-breaches","last_modified":1621269405049},"timestamp":1616596312175,"changes":[{"Name":"CardingMafia","Domain":"cardmafia.cc","schema":1616517402831,"PwnCount":297744,"AddedDate":"2021-03-23T05:00:29Z","BreachDate":"2021-03-18","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"77d75d51-3fd7-4ca2-bd03-e746d49f9577","last_modified":1616596312175},{"Name":"Liker","Domain":"liker.com","schema":1615479187057,"PwnCount":465141,"AddedDate":"2021-03-13T04:15:16Z","BreachDate":"2021-03-08","DataClasses":["Auth tokens","Dates of birth","Education levels","Email addresses","Geographic locations","IP addresses","Names","Passwords","Phone numbers","Private messages","Security questions and answers","Social media profiles","Usernames"],"id":"04310377-8830-4e4a-8472-3582434275af","last_modified":1615896955616},{"Name":"WeLeakInfo","Domain":"weleakinfo.com","schema":1615840164350,"PwnCount":11788,"AddedDate":"2021-03-15T22:48:25Z","BreachDate":"2021-03-08","DataClasses":["Browser user agent details","Email addresses","Employers","IP addresses","Names","Partial credit card data","Physical addresses","Purchases"],"id":"83ff5cfd-f95a-49e4-a4f6-436304fa8ff8","last_modified":1615896955608},{"Name":"TravelOK","Domain":"travelok.com","schema":1615319051431,"PwnCount":637279,"AddedDate":"2021-03-10T22:48:23Z","BreachDate":"2020-12-17","DataClasses":["Age groups","Dates of birth","Email addresses","Genders","Names","Physical addresses"],"id":"3a31d53b-20bb-4170-be5b-decda47abb5a","last_modified":1615479186940},{"Name":"Gab","Domain":"gab.com","schema":1614777807832,"PwnCount":66521,"AddedDate":"2021-03-03T23:03:30Z","BreachDate":"2021-02-26","DataClasses":["Avatars","Email addresses","Names","Passwords","Private messages","Usernames"],"id":"4b7a3307-7adb-46a0-8ffd-b0da1677f691","last_modified":1615319051304},{"Name":"Ticketcounter","Domain":"ticketcounter.nl","schema":1614350691306,"PwnCount":1921722,"AddedDate":"2021-03-01T22:37:54Z","BreachDate":"2021-02-22","DataClasses":["Bank account numbers","Dates of birth","Email addresses","Genders","IP addresses","Names","Payment histories","Phone numbers","Physical addresses"],"id":"7d681535-b6fa-40a9-95f1-df651a13703c","last_modified":1614777807716},{"Name":"Oxfam","Domain":"oxfam.org.au","schema":1614643268079,"PwnCount":1834006,"AddedDate":"2021-03-02T07:07:00Z","BreachDate":"2021-01-20","DataClasses":["Bank account numbers","Dates of birth","Email addresses","Genders","Names","Partial credit card data","Payment histories","Phone numbers","Physical addresses"],"id":"3da97c6c-1858-4d9c-baa1-fdcab20b59b2","last_modified":1614777807708},{"Name":"StoryBird","Domain":"storybird.com","schema":1612303475775,"PwnCount":1047200,"AddedDate":"2021-02-02T00:39:58Z","BreachDate":"2015-08-07","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"2d66d6e6-147a-445b-9a5c-8ad3c359dd05","last_modified":1614184843105},{"Name":"Gett","Domain":"ge.tt","schema":1613511444205,"PwnCount":2481121,"AddedDate":"2021-02-16T06:22:20Z","BreachDate":"2017-05-04","DataClasses":["Email addresses","Names","Passwords","Social media profiles"],"id":"4c7a5b28-8a91-4c66-b436-bb126dd897ee","last_modified":1614184843097},{"Name":"CityBee","Domain":"citybee.lt","schema":1613590905241,"PwnCount":110156,"AddedDate":"2021-02-17T00:52:52Z","BreachDate":"2021-02-05","DataClasses":["Email addresses","Government issued IDs","Names","Passwords"],"id":"942d9cd2-fc1d-4e87-ad4c-1003f2df850e","last_modified":1614184843089},{"Name":"FilmaiIn","Domain":"filmai.in","schema":1614109307395,"PwnCount":645786,"AddedDate":"2021-02-23T08:52:26Z","BreachDate":"2020-01-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"437f2884-e74a-4b3a-bcea-8deb82796b93","last_modified":1614184843082},{"Name":"NetGalley","Domain":"netgalley.com","schema":1614124877920,"PwnCount":1436435,"AddedDate":"2021-02-23T01:38:21Z","BreachDate":"2020-12-21","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"08c89d29-aeca-43c6-9f92-09d5be0d117b","last_modified":1614184843074},{"Name":"NurseryCam","Domain":"nurserycam.co.uk","schema":1614124878785,"PwnCount":10585,"AddedDate":"2021-02-23T07:58:02Z","BreachDate":"2021-02-12","DataClasses":["Email addresses"],"id":"a5e64831-5e67-441c-a722-fae32dfb1df2","last_modified":1614184843065},{"Name":"PeoplesEnergy","Domain":"peoplesenergy.co.uk","schema":1614124879524,"PwnCount":358822,"AddedDate":"2021-02-23T03:25:44Z","BreachDate":"2020-12-16","DataClasses":["Dates of birth","Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"19657fea-cc2d-4f6a-9703-40af7e6c45f0","last_modified":1614184843057},{"Name":"Bonobos","Domain":"bonobos.com","schema":1612116456486,"PwnCount":2811929,"AddedDate":"2021-01-31T00:09:25Z","BreachDate":"2020-08-14","DataClasses":["Email addresses","Historical passwords","IP addresses","Names","Partial credit card data","Passwords","Phone numbers","Physical addresses","Purchases"],"id":"fcaa3f6e-f924-4466-9f4f-24be81652632","last_modified":1612303475647},{"Name":"MeetMindful","Domain":"meetmindful.com","schema":1612137674122,"PwnCount":1422717,"AddedDate":"2021-01-31T02:59:06Z","BreachDate":"2020-01-26","DataClasses":["Dates of birth","Drinking habits","Drug habits","Email addresses","Genders","Geographic locations","IP addresses","Marital statuses","Names","Passwords","Physical attributes","Religions","Sexual orientations","Smoking habits","Social media profiles","Usernames"],"id":"30061037-f3f4-4237-b2b7-3ced905b54b2","last_modified":1612303475641},{"Name":"Pixlr","Domain":"pixlr.com","schema":1612208502766,"PwnCount":1906808,"AddedDate":"2021-02-01T03:40:29Z","BreachDate":"2020-10-07","DataClasses":["Email addresses","Geographic locations","Names","Passwords","Social media profiles"],"id":"fd64e3d7-67de-43a4-bbc5-2158ba7214ba","last_modified":1612303475634},{"Name":"Nitro","Domain":"gonitro.com","schema":1611070506389,"PwnCount":77159696,"AddedDate":"2021-01-19T10:45:32Z","BreachDate":"2020-09-28","DataClasses":["Email addresses","Names","Passwords"],"id":"3018ff02-90e8-4d82-a929-f672bbfe2d70","last_modified":1611345247596},{"Name":"Ledger","Domain":"ledger.com","schema":1608406905606,"PwnCount":1075241,"AddedDate":"2020-12-20T21:14:56Z","BreachDate":"2020-06-25","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"7b2419ff-2dcf-4892-9db1-67d35d033515","last_modified":1611070506281},{"Name":"GeniusU","Domain":"geniusu.com","schema":1610307708727,"PwnCount":1301460,"AddedDate":"2021-01-08T21:49:21Z","BreachDate":"2020-10-02","DataClasses":["Email addresses","Genders","IP addresses","Names","Passwords","Social media profiles"],"id":"ad350957-562a-4cd0-9374-f2150f0f9803","last_modified":1611070506275},{"Name":"Glofox","Domain":"glofox.com","schema":1610323260524,"PwnCount":2330735,"AddedDate":"2021-01-10T01:30:48Z","BreachDate":"2020-03-27","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers"],"id":"8a902389-2a25-4939-a176-3254626f38df","last_modified":1611070506268},{"Name":"JobAndTalent","Domain":"jobandtalent.com","schema":1610826107643,"PwnCount":10981207,"AddedDate":"2021-01-17T22:31:00Z","BreachDate":"2018-02-01","DataClasses":["Email addresses","IP addresses","Names","Passwords"],"id":"fd2e41c9-89e4-439a-a6d5-883c2fba1730","last_modified":1611070506261},{"Name":"Romwe","Domain":"romwe.com","schema":1610998907889,"PwnCount":19531820,"AddedDate":"2021-01-18T09:15:42Z","BreachDate":"2018-06-01","DataClasses":["Geographic locations","IP addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"c3317024-e726-4939-9950-7cf064335132","last_modified":1611070506254},{"Name":"PlutoTV","Domain":"pluto.tv","schema":1607197296008,"PwnCount":3225080,"AddedDate":"2020-12-05T22:27:36Z","BreachDate":"2018-10-12","DataClasses":["Dates of birth","Device information","Email addresses","Genders","IP addresses","Names","Passwords","Social media profiles","Usernames"],"id":"fef28e23-681e-4009-ad61-c2ba3db7b5e8","last_modified":1607379052602},{"Name":"Peatix","Domain":"peatix.com","schema":1607212874898,"PwnCount":4227907,"AddedDate":"2020-12-06T22:53:53Z","BreachDate":"2019-01-20","DataClasses":["Email addresses","Names","Passwords"],"id":"aaa6eb51-0034-4237-acf1-866cf81fa679","last_modified":1607379052595},{"Name":"Lazada","Domain":"redmart.lazada.sg","schema":1605030408115,"PwnCount":1107789,"AddedDate":"2020-11-10T00:58:49Z","BreachDate":"2020-07-30","DataClasses":["Email addresses","Names","Partial credit card data","Passwords","Phone numbers","Physical addresses"],"id":"c8e7dca2-16f0-4b4c-91e5-961e2b413ee6","last_modified":1606931046527},{"Name":"Mashable","Domain":"mashable.com","schema":1605052880810,"PwnCount":1414677,"AddedDate":"2020-11-10T04:33:56Z","BreachDate":"2020-06-01","DataClasses":["Auth tokens","Email addresses","Genders","Geographic locations","IP addresses","Names","Partial dates of birth","Social media profiles"],"id":"919769e9-f4b8-4b61-9ea8-08766ed50c74","last_modified":1606931046521},{"Name":"AnimalJam","Domain":"animaljam.com","schema":1605123699029,"PwnCount":7104998,"AddedDate":"2020-11-12T01:18:50Z","BreachDate":"2020-10-12","DataClasses":["Dates of birth","Email addresses","Genders","IP addresses","Names","Passwords","Physical addresses","Usernames"],"id":"3391a5c8-098e-4b2a-bd45-b8bab82e2892","last_modified":1606931046515},{"Name":"HomeChef","Domain":"homechef.com","schema":1605296499038,"PwnCount":8815692,"AddedDate":"2020-11-13T03:41:24Z","BreachDate":"2020-02-10","DataClasses":["Email addresses","Geographic locations","IP addresses","Names","Partial credit card data","Passwords","Phone numbers"],"id":"9e952cce-eebd-4e6b-822e-c18ee2b20f1a","last_modified":1606931046509},{"Name":"123RF","Domain":"123rf.com","schema":1605469298781,"PwnCount":8661578,"AddedDate":"2020-11-15T00:59:50Z","BreachDate":"2020-03-22","DataClasses":["Email addresses","IP addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"a1297f46-b3eb-40b5-bda5-b018b13c88a6","last_modified":1606931046502},{"Name":"db8151dd","Domain":"covve.com","schema":1598625907488,"PwnCount":22802117,"AddedDate":"2020-05-15T08:06:11Z","BreachDate":"2020-02-20","DataClasses":["Email addresses","Job titles","Names","Phone numbers","Physical addresses","Social media profiles"],"id":"752aab61-92cd-45e4-ae51-8a686484af3b","last_modified":1605030407993},{"Name":"WiziShop","Domain":"wizishop.fr","schema":1601840509894,"PwnCount":2856769,"AddedDate":"2020-10-05T03:42:29Z","BreachDate":"2020-07-14","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"f4e37c25-bf9f-4bd8-a38f-778b94fc2246","last_modified":1605030407985},{"Name":"Chowbus","Domain":"chowbus.com","schema":1602013310592,"PwnCount":444224,"AddedDate":"2020-10-06T06:07:45Z","BreachDate":"2020-10-05","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"6541627a-e75e-40ee-a228-835054660f8c","last_modified":1605030407976},{"Name":"Reincubate","Domain":"reincubate.com","schema":1604011374758,"PwnCount":616146,"AddedDate":"2020-10-29T06:01:21Z","BreachDate":"2017-05-11","DataClasses":["Email addresses","Names","Passwords"],"id":"dfdd6855-20e7-46c5-ae12-4d8d798ef7ee","last_modified":1605030407968},{"Name":"StarTribune","Domain":"startribune.com","schema":1604016075958,"PwnCount":2192857,"AddedDate":"2020-10-30T23:30:39Z","BreachDate":"2019-10-10","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Physical addresses","Usernames"],"id":"25416891-2465-48e3-a972-b8ea46aa96a2","last_modified":1605030407960},{"Name":"Promofarma","Domain":"promofarma.com","schema":1604163560858,"PwnCount":1277761,"AddedDate":"2020-11-01T07:11:46Z","BreachDate":"2019-08-03","DataClasses":["Email addresses","Names"],"id":"fbf24dac-833f-476b-8866-2711a745fcd2","last_modified":1605030407951},{"Name":"Minted","Domain":"minted.com","schema":1604275274262,"PwnCount":4418182,"AddedDate":"2020-11-03T06:21:01Z","BreachDate":"2020-05-06","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"726316dd-5774-4b52-a452-32fc0b1bdf2a","last_modified":1605030407943},{"Name":"Wongnai","Domain":"wongnai.com","schema":1604524694870,"PwnCount":3924454,"AddedDate":"2020-11-04T21:14:50Z","BreachDate":"2020-01-01","DataClasses":["Dates of birth","Email addresses","Geographic locations","IP addresses","Names","Passwords","Phone numbers","Social media profiles"],"id":"9f05787e-8305-4b08-a6dd-83ca803d4775","last_modified":1605030407935},{"Name":"James","Domain":"jamesdelivery.com.br","schema":1604605320579,"PwnCount":1541284,"AddedDate":"2020-11-05T04:34:51Z","BreachDate":"2020-03-25","DataClasses":["Email addresses","Geographic locations","Passwords"],"id":"aee5095b-56ae-4ead-93e0-03e44c08828a","last_modified":1605030407926},{"Name":"Catho","Domain":"catho.com.br","schema":1597769394524,"PwnCount":1173012,"AddedDate":"2020-08-18T22:52:39Z","BreachDate":"2020-03-01","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"525c4bf6-3d55-4234-80e2-7be5d0d34546","last_modified":1598625907365},{"Name":"Sonicbids","Domain":"sonicbids.com","schema":1597795274400,"PwnCount":751700,"AddedDate":"2020-08-18T07:39:37Z","BreachDate":"2019-12-30","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"623b714d-16fe-4994-8e7b-79345f94f412","last_modified":1598625907356},{"Name":"UnicoCampania","Domain":"unicocampania.it","schema":1597866101917,"PwnCount":166031,"AddedDate":"2020-08-19T23:29:21Z","BreachDate":"2020-08-19","DataClasses":["Email addresses","Passwords"],"id":"b482f41c-6f27-4bd0-a5f2-796f86b7751a","last_modified":1598625907348},{"Name":"UtahGunExchange","Domain":"utahgunexchange.com","schema":1597881679858,"PwnCount":235233,"AddedDate":"2020-08-19T07:56:09Z","BreachDate":"2020-07-17","DataClasses":["Email addresses","Genders","IP addresses","Passwords","Usernames"],"id":"bc9343c5-9600-42c2-a014-a600a1c7adbd","last_modified":1598625907339},{"Name":"LiveAuctioneers","Domain":"liveauctioneers.com","schema":1598041407879,"PwnCount":3385862,"AddedDate":"2020-08-22T04:38:40Z","BreachDate":"2020-06-19","DataClasses":["Email addresses","IP addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"b3ead132-3da6-4e1a-82d2-d62847fee98e","last_modified":1598625907331},{"Name":"Swvl","Domain":"swvl.com","schema":1596240079703,"PwnCount":4195918,"AddedDate":"2020-07-31T06:24:42Z","BreachDate":"2020-06-23","DataClasses":["Email addresses","Names","Partial credit card data","Passwords","Phone numbers","Profile photos"],"id":"b8fea915-20d2-4d5a-a3a0-f6100666dad4","last_modified":1597183042172},{"Name":"Havenly","Domain":"havenly.com","schema":1596310894618,"PwnCount":1369180,"AddedDate":"2020-08-01T01:53:40Z","BreachDate":"2020-06-25","DataClasses":["Email addresses","Geographic locations","Names","Passwords","Phone numbers"],"id":"6fe5587e-69f9-40dd-9639-d85a961b1825","last_modified":1597183042166},{"Name":"Vakinha","Domain":"vakinha.com.br","schema":1596326486632,"PwnCount":4775203,"AddedDate":"2020-08-01T05:56:06Z","BreachDate":"2020-06-22","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Phone numbers"],"id":"3282f463-2d79-492e-9351-5560879faba5","last_modified":1597183042161},{"Name":"TrueFire","Domain":"truefire.com","schema":1596326487103,"PwnCount":599667,"AddedDate":"2020-08-02T20:46:26Z","BreachDate":"2020-02-21","DataClasses":["Account balances","Dates of birth","Email addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"6c108f47-324e-47c4-9934-94abadf52829","last_modified":1597183042154},{"Name":"DecoratingTheHouse","Domain":"ggumim.co.kr","schema":1596412872805,"PwnCount":1298651,"AddedDate":"2020-08-02T05:34:42Z","BreachDate":"2020-03-27","DataClasses":["Email addresses","Names","Phone numbers","Usernames"],"id":"e9171885-d553-40ad-ae1a-db2253b209eb","last_modified":1597183042146},{"Name":"ProctorU","Domain":"proctoru.com","schema":1596656495640,"PwnCount":444453,"AddedDate":"2020-08-06T09:37:17Z","BreachDate":"2020-06-26","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"79c5c44d-ded8-4319-a9bc-12eb32de61f5","last_modified":1597183042141},{"Name":"Kreditplus","Domain":"kreditplus.com","schema":1596829294794,"PwnCount":768890,"AddedDate":"2020-08-03T03:52:51Z","BreachDate":"2020-06-23","DataClasses":["Dates of birth","Email addresses","Employers","Family structure","Genders","Income levels","Living costs","Marital statuses","Mothers maiden names","Names","Phone numbers","Physical addresses","Places of birth","Religions","Spouses names"],"id":"ecb5cc95-70a5-4cf8-abcb-eec4bf41758d","last_modified":1597183042135},{"Name":"Zoosk2020","Domain":"zoosk.com","schema":1596844883766,"PwnCount":23927853,"AddedDate":"2020-08-07T03:46:38Z","BreachDate":"2020-01-12","DataClasses":["Dates of birth","Drinking habits","Education levels","Email addresses","Ethnicities","Family structure","Genders","Geographic locations","Income levels","Names","Nicknames","Physical attributes","Political views","Relationship statuses","Religions","Sexual orientations","Smoking habits"],"id":"c8274b1e-ed73-4e33-966f-81b1a6c994a9","last_modified":1597183042125},{"Name":"Drizly","Domain":"drizly.com","schema":1595980879343,"PwnCount":2479044,"AddedDate":"2020-07-28T21:45:05Z","BreachDate":"2020-07-02","DataClasses":["Dates of birth","Device information","Email addresses","IP addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"86591957-2cb5-4564-97c4-016bbe371ce0","last_modified":1596198939912},{"Name":"Chatbooks","Domain":"chatbooks.com","schema":1596047716766,"PwnCount":2520441,"AddedDate":"2020-07-29T21:21:46Z","BreachDate":"2020-03-26","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Social media profiles"],"id":"90210a43-d679-440b-beea-00e641f7a91a","last_modified":1596198939907},{"Name":"Dunzo","Domain":"dunzo.com","schema":1596067279372,"PwnCount":3465259,"AddedDate":"2020-07-29T04:38:23Z","BreachDate":"2020-06-19","DataClasses":["Device information","Email addresses","Geographic locations","IP addresses","Names","Phone numbers"],"id":"0fb266a4-f360-45e6-93d2-94ff41609761","last_modified":1596198939902},{"Name":"Appen","Domain":"appen.com","schema":1596138091859,"PwnCount":5888405,"AddedDate":"2020-07-30T07:00:21Z","BreachDate":"2020-06-22","DataClasses":["Email addresses","Employers","IP addresses","Names","Passwords","Phone numbers"],"id":"03418f38-d9e5-4e18-876d-831e4a35cf5d","last_modified":1596198939896},{"Name":"Scentbird","Domain":"scentbird.com","schema":1596153675586,"PwnCount":5814988,"AddedDate":"2020-07-30T00:11:15Z","BreachDate":"2020-06-22","DataClasses":["Dates of birth","Email addresses","Genders","Names","Password strengths","Passwords"],"id":"0cf90349-80a5-463b-8f94-e41017c95421","last_modified":1596198939891},{"Name":"Dave","Domain":"dave.com","schema":1595894477501,"PwnCount":2964182,"AddedDate":"2020-07-27T02:38:41Z","BreachDate":"2020-06-28","DataClasses":["Dates of birth","Email addresses","Names","Passwords","Phone numbers","Physical addresses","Social security numbers"],"id":"1ffc4819-75d5-4ada-b08e-9441b9df244f","last_modified":1595935666445},{"Name":"Hurb","Domain":"hurb.com","schema":1595894477660,"PwnCount":20727771,"AddedDate":"2020-07-27T21:46:20Z","BreachDate":"2019-03-14","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Phone numbers","Social media profiles"],"id":"61f9e53c-8b72-4c02-93a6-bd13625a01d4","last_modified":1595935666440},{"Name":"Promo","Domain":"promo.com","schema":1595792493748,"PwnCount":14610585,"AddedDate":"2020-07-26T02:44:11Z","BreachDate":"2020-06-22","DataClasses":["Email addresses","Genders","IP addresses","Names","Passwords"],"id":"cc2f4ad2-ea5b-475b-8225-c4cb9c7d000e","last_modified":1595859938080},{"Name":"Wishbone2020","Domain":"wishbone.io","schema":1590624068883,"PwnCount":9705172,"AddedDate":"2020-05-28T03:54:44Z","BreachDate":"2020-01-27","DataClasses":["Auth tokens","Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords","Phone numbers","Profile photos","Social media profiles","Usernames"],"id":"ba8e5fd2-c651-4454-aa60-17fa1386a7ec","last_modified":1595454629636},{"Name":"Zoomcar","Domain":"zoomcar.com","schema":1591384212628,"PwnCount":3589795,"AddedDate":"2020-06-05T02:57:26Z","BreachDate":"2018-07-01","DataClasses":["Email addresses","IP addresses","Names","Passwords","Phone numbers"],"id":"5090eae4-bd75-40d9-9982-6539991df079","last_modified":1595454629631},{"Name":"Mathway","Domain":"mathway.com","schema":1591472497810,"PwnCount":25692862,"AddedDate":"2020-06-05T23:59:45Z","BreachDate":"2020-01-13","DataClasses":["Device information","Email addresses","Names","Passwords","Social media profiles"],"id":"0763be6c-cce7-4c21-b06a-93e7ee33fa00","last_modified":1595454629625},{"Name":"Foodora","Domain":"foodora.com","schema":1592336502468,"PwnCount":582578,"AddedDate":"2020-06-16T02:09:33Z","BreachDate":"2016-04-22","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"46ed32dd-47a1-45f4-b5c9-8cc295c7dbc7","last_modified":1595454629620},{"Name":"Quidd","Domain":"quidd.co","schema":1593027701485,"PwnCount":3805863,"AddedDate":"2020-06-24T11:05:34Z","BreachDate":"2019-07-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"348a1c2b-5d51-4dd5-9308-df6635b2dca4","last_modified":1595454629615},{"Name":"Wattpad","Domain":"wattpad.com","schema":1595101305615,"PwnCount":268765495,"AddedDate":"2020-07-19T22:49:19Z","BreachDate":"2020-06-29","DataClasses":["Bios","Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords","Social media profiles","User website URLs","Usernames"],"id":"42871ca7-8847-4976-9051-3234fdbbf76d","last_modified":1595454629609},{"Name":"LiveJournal","Domain":"livejournal.com","schema":1590537676406,"PwnCount":26372781,"AddedDate":"2020-05-26T22:05:10Z","BreachDate":"2017-01-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"b749ca20-74c8-40c7-ace2-9cc9af67b0a0","last_modified":1590605614663},{"Name":"PetFlow","Domain":"petflow.com","schema":1590537676622,"PwnCount":990919,"AddedDate":"2020-05-26T02:48:24Z","BreachDate":"2017-12-09","DataClasses":["Email addresses","Passwords"],"id":"65b84656-dbb3-45fc-94f5-8d29ec8910cb","last_modified":1590605614656},{"Name":"Covve","Domain":"covve.com","schema":1590019268615,"PwnCount":22802117,"AddedDate":"2020-05-15T08:06:11Z","BreachDate":"2020-02-20","DataClasses":["Email addresses","Job titles","Names","Phone numbers","Physical addresses","Social media profiles"],"id":"9a7f5c21-e05a-4a49-8ca3-22fc33ef9714","last_modified":1590504735403},{"Name":"NulledCH","Domain":"nulled.ch","schema":1590262896721,"PwnCount":43491,"AddedDate":"2020-05-24T07:05:43Z","BreachDate":"2020-05-20","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"8bc04a47-ff6e-4820-9834-87bff7e4f9b1","last_modified":1590504735381},{"Name":"Artsy","Domain":"artsy.net","schema":1590435696257,"PwnCount":1079970,"AddedDate":"2020-05-25T20:59:10Z","BreachDate":"2018-04-01","DataClasses":["Email addresses","IP addresses","Names","Passwords"],"id":"6c3717a7-8de0-4d8c-a633-7cd4aafadeb8","last_modified":1590504735374},{"Name":"Lifebear","Domain":"lifebear.com","schema":1590451271336,"PwnCount":3670561,"AddedDate":"2020-05-25T04:02:18Z","BreachDate":"2019-02-28","DataClasses":["Email addresses","Passwords","Usernames"],"id":"85ea13ae-d04b-49e7-95ad-c7f4a7b5a600","last_modified":1590504735365},{"Name":"Ulmon","Domain":"ulmon.com","schema":1588880494457,"PwnCount":777769,"AddedDate":"2020-05-08T02:10:50Z","BreachDate":"2020-01-26","DataClasses":["Bios","Email addresses","Names","Passwords","Phone numbers","Social media profiles"],"id":"8ace65f6-3476-4057-8193-8628dd94ff5c","last_modified":1589197788888},{"Name":"TaiLieu","Domain":"tailieu.vn","schema":1588534890323,"PwnCount":7327477,"AddedDate":"2020-05-03T23:48:08Z","BreachDate":"2019-11-24","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Names","Passwords","Phone numbers","Usernames"],"id":"10a8e5d7-f44c-44af-9f51-a5a0205ceae1","last_modified":1588681718275},{"Name":"Elanic","Domain":"elanic.in","schema":1588550476157,"PwnCount":2325283,"AddedDate":"2020-05-04T23:25:28Z","BreachDate":"2018-01-01","DataClasses":["Email addresses","Geographic locations","Usernames"],"id":"dc823fb6-5574-46f2-a2b5-b8d584fab67c","last_modified":1588681718270},{"Name":"Vianet","Domain":"vianet.com.np","schema":1587498094206,"PwnCount":94353,"AddedDate":"2020-04-22T03:00:17Z","BreachDate":"2020-04-08","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"54a6f72c-75d4-432f-a4f1-2d3a9495ad58","last_modified":1588520751761},{"Name":"Tokopedia","Domain":"tokopedia.com","schema":1588362095486,"PwnCount":12115583,"AddedDate":"2020-05-02T23:45:21Z","BreachDate":"2020-04-17","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords"],"id":"d4de5486-6d3d-4e29-8842-9948afc4c6fc","last_modified":1588520751757},{"Name":"Aptoide","Domain":"aptoide.com","schema":1587325295436,"PwnCount":20012235,"AddedDate":"2020-04-19T03:07:42Z","BreachDate":"2020-04-13","DataClasses":["Browser user agent details","Email addresses","IP addresses","Names","Passwords"],"id":"b13fb1b6-3cd3-4a96-98d2-ecce601e47ab","last_modified":1587384710394},{"Name":"HTCMania","Domain":"htcmania.com","schema":1586181480022,"PwnCount":1488089,"AddedDate":"2020-04-06T04:16:53Z","BreachDate":"2020-01-04","DataClasses":["Dates of birth","Email addresses","Historical passwords","IP addresses","Passwords","Usernames"],"id":"ea54e775-c4d4-4926-ab28-a7dbc008dacc","last_modified":1586291800444},{"Name":"OGUsers2020","Domain":"ogusers.com","schema":1585942893992,"PwnCount":263189,"AddedDate":"2020-04-04T08:27:13Z","BreachDate":"2020-04-02","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"41cd7c4a-bfdf-4945-914d-67bf4fe3a0ff","last_modified":1586181479886},{"Name":"PropTiger","Domain":"proptiger.com","schema":1585078893198,"PwnCount":2156921,"AddedDate":"2020-03-24T07:21:44Z","BreachDate":"2018-01-30","DataClasses":["Dates of birth","Device information","Email addresses","Genders","IP addresses","Names","Passwords"],"id":"6b422bac-8efd-4d67-87f9-9c8b3d53a17f","last_modified":1585667784092},{"Name":"Tamodo","Domain":"tamodo.com","schema":1585094478658,"PwnCount":494945,"AddedDate":"2020-03-24T23:47:43Z","BreachDate":"2020-02-28","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords"],"id":"41419cbd-7af0-4d63-b3a1-fe1d90ad3f74","last_modified":1585667784089},{"Name":"DuelingNetwork","Domain":"duelingnetwork.com","schema":1585597292987,"PwnCount":5473883,"AddedDate":"2020-03-30T00:44:49Z","BreachDate":"2017-03-29","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"03c35dcd-42b1-4731-bc03-a8890971bf74","last_modified":1585667784085},{"Name":"HalloweenSpot","Domain":"thehalloweenspot.com","schema":1584387692386,"PwnCount":10653,"AddedDate":"2020-03-16T05:20:32Z","BreachDate":"2019-09-27","DataClasses":["Email addresses","IP addresses","Names","Phone numbers","Physical addresses","Purchases"],"id":"b16c1b9f-8992-4dff-a479-de708bfbe1bd","last_modified":1584720910677},{"Name":"AnimeGame","Domain":"animegame.me","schema":1583766887623,"PwnCount":1431378,"AddedDate":"2020-03-09T05:52:08Z","BreachDate":"2020-02-27","DataClasses":["Email addresses","Passwords","Usernames"],"id":"0e97a496-7802-40ba-b3f7-2e7b4c29b68e","last_modified":1584117009753},{"Name":"Slickwraps","Domain":"slickwraps.com","schema":1582320498529,"PwnCount":857611,"AddedDate":"2020-02-22T19:20:00Z","BreachDate":"2020-02-16","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses","Purchases"],"id":"1dcb9ccf-d198-4892-bd4a-d321c3b931d4","last_modified":1583433033786},{"Name":"Straffic","Domain":"straffic.io","schema":1582832495931,"PwnCount":48580249,"AddedDate":"2020-02-27T19:28:29Z","BreachDate":"2020-02-14","DataClasses":["Email addresses","Genders","Names","Phone numbers","Physical addresses"],"id":"a9d9da17-1762-4e31-9816-8e4d4b794416","last_modified":1583433033782},{"Name":"AdultFriendFinder2016","Domain":"adultfriendfinder.com","schema":1581104493615,"PwnCount":169746810,"AddedDate":"2020-02-06T23:53:53Z","BreachDate":"2016-10-16","DataClasses":["Email addresses","Passwords","Spoken languages","Usernames"],"id":"43a0959e-7177-45dc-aa7a-7a8380c2836c","last_modified":1582320498428},{"Name":"MGM","Domain":"mgmresorts.com","schema":1582223350697,"PwnCount":3081321,"AddedDate":"2020-02-20T00:52:55Z","BreachDate":"2019-07-25","DataClasses":["Dates of birth","Email addresses","Names","Phone numbers","Physical addresses"],"id":"8d296415-736d-4df8-8f3b-1e7b114570fc","last_modified":1582320498425},{"Name":"Tout","Domain":"tout.com","schema":1579894893037,"PwnCount":652683,"AddedDate":"2020-01-25T06:12:28Z","BreachDate":"2014-09-11","DataClasses":["Bios","Email addresses","Geographic locations","IP addresses","Names","Passwords","Usernames"],"id":"9133ee2a-754d-4ea3-9b4a-fff2d1c6bd04","last_modified":1580917139621},{"Name":"DailyObjects","Domain":"dailyobjects.com","schema":1580240493295,"PwnCount":464260,"AddedDate":"2020-01-28T10:50:00Z","BreachDate":"2018-01-01","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"344a3f7f-b760-4501-9a46-eef75b4e5e8c","last_modified":1580917139617},{"Name":"EuropaJobs","Domain":"europa.jobs","schema":1579030894191,"PwnCount":226095,"AddedDate":"2020-01-15T08:51:05Z","BreachDate":"2019-08-11","DataClasses":["Dates of birth","Email addresses","Geographic locations","Job applications","Names","Passwords","Phone numbers","Spoken languages"],"id":"0b4aee65-af92-4216-af60-c48e5f078ba6","last_modified":1579730110578},{"Name":"IndianRailways","Domain":"indianrails.in","schema":1578685294802,"PwnCount":583377,"AddedDate":"2020-01-10T19:13:39Z","BreachDate":"2019-10-28","DataClasses":["Email addresses","Passwords","Usernames"],"id":"9733b836-2b38-4c62-84b7-038d46d76ff7","last_modified":1578952391530},{"Name":"BtoBet","Domain":"btobet.com","schema":1578700877733,"PwnCount":444241,"AddedDate":"2020-01-11T20:16:42Z","BreachDate":"2019-12-26","DataClasses":["Dates of birth","Email addresses","Financial transactions","Geographic locations","IP addresses","Names","Usernames"],"id":"86dd53b7-3866-4722-9e28-5456fe005d8c","last_modified":1578952391527},{"Name":"GoGames","Domain":"gogames.me","schema":1578787274942,"PwnCount":3430083,"AddedDate":"2020-01-11T00:06:33Z","BreachDate":"2015-10-24","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"937e7dab-7246-43cc-aaec-094f24261892","last_modified":1578952391524},{"Name":"PlanetCalypso","Domain":"planetcalypsoforum.com","schema":1578858095264,"PwnCount":62261,"AddedDate":"2020-01-12T09:48:57Z","BreachDate":"2019-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"82f84ff4-d03a-4f81-af9f-6f989072e545","last_modified":1578952391521},{"Name":"Universarium","Domain":"universarium.org","schema":1577994096375,"PwnCount":564962,"AddedDate":"2020-01-03T09:40:01Z","BreachDate":"2019-11-01","DataClasses":["Email addresses","Passwords"],"id":"bb7bb467-2480-4314-84d4-f6a46bff3d70","last_modified":1578325494340},{"Name":"Zynga","Domain":"zynga.com","schema":1576784493594,"PwnCount":172869660,"AddedDate":"2019-12-19T04:54:45Z","BreachDate":"2019-09-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"ce4765da-2e8a-4acd-bccf-b04e244529f0","last_modified":1576802972600},{"Name":"AgusiQTorrents","Domain":"agusiq-torrents.pl","schema":1575496891288,"PwnCount":90478,"AddedDate":"2019-12-04T21:54:50Z","BreachDate":"2019-09-24","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"9c2dac14-f45c-4f41-99af-4dd83bcba84b","last_modified":1576252202036},{"Name":"GateHub","Domain":"gatehub.net","schema":1574288713703,"PwnCount":1408078,"AddedDate":"2019-11-20T00:29:29Z","BreachDate":"2019-06-04","DataClasses":["Cryptocurrency wallet hashes","Email addresses","Mnemonic phrases","Passwords"],"id":"2c068e7c-9923-4166-9115-a97dd7b15992","last_modified":1574356142457},{"Name":"GPSUnderground","Domain":"gpsunderground.com","schema":1574208088182,"PwnCount":669584,"AddedDate":"2019-11-19T06:13:42Z","BreachDate":"2016-07-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"43af3c8a-e61b-433e-aaca-7708879a0ac8","last_modified":1574288713559},{"Name":"EpicBot","Domain":"epicbot.com","schema":1574192493979,"PwnCount":816662,"AddedDate":"2019-11-19T23:29:42Z","BreachDate":"2019-09-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"ec74185c-19c1-47c3-974a-866684c0a440","last_modified":1574288713553},{"Name":"ToonDoo","Domain":"toondoo.com","schema":1573501297918,"PwnCount":6002694,"AddedDate":"2019-11-11T06:19:53Z","BreachDate":"2019-08-21","DataClasses":["Email addresses","Genders","Geographic locations","IP addresses","Passwords","Usernames"],"id":"a5cd3fc2-8f3b-4765-aa55-229aa56b1d5e","last_modified":1573516879510},{"Name":"Vedantu","Domain":"vedantu.com","schema":1572637306390,"PwnCount":686899,"AddedDate":"2019-11-01T05:13:40Z","BreachDate":"2019-07-08","DataClasses":["Browser user agent details","Email addresses","Genders","IP addresses","Names","Passwords","Phone numbers","Spoken languages","Time zones","Website activity"],"id":"409b969e-b918-4c37-9f59-f6ca68c15897","last_modified":1572652874823},{"Name":"HookersNL","Domain":"hookers.nl","schema":1571774744436,"PwnCount":290955,"AddedDate":"2019-10-23T09:51:59Z","BreachDate":"2019-10-10","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"5bd2cb0d-07b3-498d-a74f-b978223caff4","last_modified":1571875272994},{"Name":"Zooville","Domain":"zooville.org","schema":1571427707029,"PwnCount":71407,"AddedDate":"2019-10-19T21:22:44Z","BreachDate":"2019-09-27","DataClasses":["Email addresses","Usernames"],"id":"ef2bbd9d-1b38-448e-99ef-8131b4a1080a","last_modified":1571529674307},{"Name":"StreetEasy","Domain":"streeteasy.com","schema":1570406474625,"PwnCount":988230,"AddedDate":"2019-10-06T18:18:50Z","BreachDate":"2018-06-19","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"13338833-9c79-429e-9609-2e4d79ca39e4","last_modified":1570406474760},{"Name":"Sephora","Domain":"sephora.com.au","schema":1570394087251,"PwnCount":780073,"AddedDate":"2019-10-06T15:14:12Z","BreachDate":"2017-01-09","DataClasses":["Dates of birth","Email addresses","Ethnicities","Genders","Names","Physical attributes"],"id":"9828d893-e8d0-4fd5-9fdc-602fd9dc6459","last_modified":1570406474617},{"Name":"Wanelo","Domain":"wanelo.com","schema":1569872494587,"PwnCount":23165793,"AddedDate":"2019-09-30T17:15:11Z","BreachDate":"2018-12-13","DataClasses":["Email addresses","Passwords"],"id":"d4b9c118-00f0-47fb-8382-d92fd7a70581","last_modified":1569888076191},{"Name":"LuminPDF","Domain":"luminpdf.com","schema":1568885058595,"PwnCount":15453048,"AddedDate":"2019-09-18T05:00:15Z","BreachDate":"2019-04-01","DataClasses":["Auth tokens","Email addresses","Genders","Names","Passwords","Spoken languages","Usernames"],"id":"34da82ce-7ca4-4e7d-8fd2-6373d3111590","last_modified":1568932441627},{"Name":"Minehut","Domain":"minehut.com","schema":1568764869508,"PwnCount":396533,"AddedDate":"2019-09-17T08:27:31Z","BreachDate":"2019-05-17","DataClasses":["Email addresses"],"id":"6b53ae4d-5904-4085-bb86-21c72689cbb2","last_modified":1568764869629},{"Name":"KiwiFarms","Domain":"kiwifarms.net","schema":1568662898394,"PwnCount":4606,"AddedDate":"2019-09-17T09:48:25Z","BreachDate":"2019-09-10","DataClasses":["Avatars","Dates of birth","Email addresses","IP addresses","Website activity"],"id":"d7091d4d-4111-4b06-ae1e-247f66501929","last_modified":1568764869500},{"Name":"VoidTO","Domain":"void.to","schema":1568154082772,"PwnCount":95431,"AddedDate":"2019-09-11T06:47:08Z","BreachDate":"2019-06-13","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"9a975a43-0cb4-4947-a767-57a48530364b","last_modified":1568246477177},{"Name":"Poshmark","Domain":"poshmark.com","schema":1567457112228,"PwnCount":36395491,"AddedDate":"2019-09-02T03:36:05Z","BreachDate":"2018-05-16","DataClasses":["Email addresses","Genders","Geographic locations","Names","Passwords","Usernames"],"id":"5da203a0-42bc-4d7c-9192-f90a8abf962e","last_modified":1567468877808},{"Name":"XKCD","Domain":"xkcd.com","schema":1567382480902,"PwnCount":561991,"AddedDate":"2019-09-01T08:58:32Z","BreachDate":"2019-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"fa2af320-c3cf-4ffe-8103-39b400fd3b79","last_modified":1567382481073},{"Name":"MastercardPricelessSpecials","Domain":"specials.mastercard.de","schema":1567280497687,"PwnCount":89388,"AddedDate":"2019-09-01T20:37:49Z","BreachDate":"2019-08-20","DataClasses":["Email addresses","IP addresses","Names","Partial credit card data","Phone numbers","Salutations"],"id":"31977599-505a-4adf-9fd2-f8c0b3a509f7","last_modified":1567382480889},{"Name":"Coinmama","Domain":"coinmama.com","schema":1567175321337,"PwnCount":478824,"AddedDate":"2019-08-30T20:53:29Z","BreachDate":"2017-08-03","DataClasses":["Email addresses","Passwords","Usernames"],"id":"fc987512-af5b-40ed-ac34-5fed292a9620","last_modified":1567209668012},{"Name":"Chegg","Domain":"chegg.com","schema":1565898089131,"PwnCount":39721127,"AddedDate":"2019-08-16T07:24:58Z","BreachDate":"2018-04-28","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"24c14ee2-3909-4f87-9d5e-432ef0dfd990","last_modified":1566000082377},{"Name":"CrackedTO","Domain":"cracked.to","schema":1565643464389,"PwnCount":749161,"AddedDate":"2019-08-12T11:18:56Z","BreachDate":"2019-07-21","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"ad6320e2-1893-4b0e-8fdd-3226eed79fc6","last_modified":1565654482633},{"Name":"StockX","Domain":"stockx.com","schema":1565407686625,"PwnCount":6840339,"AddedDate":"2019-08-10T15:34:08Z","BreachDate":"2019-07-26","DataClasses":["Email addresses","Names","Passwords","Physical addresses","Purchases","Usernames"],"id":"15cdc57c-5742-4cec-85a8-d40eb0d11992","last_modified":1565481679319},{"Name":"Canva","Domain":"canva.com","schema":1565379702306,"PwnCount":137272116,"AddedDate":"2019-08-09T14:24:01Z","BreachDate":"2019-05-24","DataClasses":["Email addresses","Geographic locations","Names","Passwords","Usernames"],"id":"be4e9387-871a-4ee1-bb14-cb9b5077b048","last_modified":1565395285947},{"Name":"SprashivaiRu","Domain":"sprashivai.ru","schema":1565049729826,"PwnCount":3474763,"AddedDate":"2015-05-12T23:50:08Z","BreachDate":"2015-05-11","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Passwords","Spoken languages"],"id":"2d6b7419-91db-4318-8ea4-8266973b53b6","last_modified":1565049729971},{"Name":"Parapa","Domain":"parapa.mail.ru","schema":1565049729674,"PwnCount":4946850,"AddedDate":"2016-12-28T07:03:17Z","BreachDate":"2016-08-08","DataClasses":["Email addresses","Passwords","Usernames"],"id":"256769a3-eca6-4065-a106-663f21395d40","last_modified":1565049729813},{"Name":"Zomato","Domain":"zomato.com","schema":1565049729518,"PwnCount":16472873,"AddedDate":"2017-09-04T21:06:46Z","BreachDate":"2017-05-17","DataClasses":["Email addresses","Passwords","Usernames"],"id":"bc522f86-8be4-4ea2-a18f-a9c7dea7121b","last_modified":1565049729661},{"Name":"YouPorn","Domain":"youporn.com","schema":1565049729352,"PwnCount":1327567,"AddedDate":"2015-07-30T05:32:00Z","BreachDate":"2012-02-21","DataClasses":["Email addresses","Passwords"],"id":"eb9eef36-7eb8-4f9b-867f-34353c510c7c","last_modified":1565049729505},{"Name":"YouNow","Domain":"younow.com","schema":1565049729197,"PwnCount":18241518,"AddedDate":"2019-07-18T08:59:45Z","BreachDate":"2019-02-15","DataClasses":["Email addresses","IP addresses","Names","Social media profiles","Usernames"],"id":"a9c202ac-50a1-4a7a-8cd8-edd8e6a01f78","last_modified":1565049729339},{"Name":"Youku","Domain":"youku.com","schema":1565049729037,"PwnCount":91890110,"AddedDate":"2017-04-15T11:02:35Z","BreachDate":"2016-12-01","DataClasses":["Email addresses","Passwords"],"id":"bb878d84-220b-44a0-bd81-0ab664f980dd","last_modified":1565049729184},{"Name":"Yatra","Domain":"yatra.com","schema":1565049728866,"PwnCount":5033997,"AddedDate":"2018-07-04T23:15:57Z","BreachDate":"2013-09-01","DataClasses":["Dates of birth","Email addresses","Names","Passwords","Phone numbers","Physical addresses","PINs"],"id":"51107d8b-07d7-4dc4-9642-e4b6fc2e8591","last_modified":1565049729024},{"Name":"Yandex","Domain":"forum.btcsec.com","schema":1565049728712,"PwnCount":1186564,"AddedDate":"2014-09-12T04:50:32Z","BreachDate":"2014-09-07","DataClasses":["Email addresses","Passwords"],"id":"b4c31938-953e-44ef-bfb7-956e29c4a229","last_modified":1565049728852},{"Name":"Yahoo","Domain":"yahoo.com","schema":1565049728555,"PwnCount":453427,"AddedDate":"2013-12-04T00:00:00Z","BreachDate":"2012-07-11","DataClasses":["Email addresses","Passwords"],"id":"ba400247-ce92-41e1-bc5e-8ce0edb3f34d","last_modified":1565049728699},{"Name":"XSplit","Domain":"xsplit.com","schema":1565049728276,"PwnCount":2983472,"AddedDate":"2015-08-08T04:28:48Z","BreachDate":"2013-11-07","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"893604ea-fb2a-460d-bb10-b8707b0e6a20","last_modified":1565049728542},{"Name":"XPGameSaves","Domain":"xpgamesaves.com","schema":1565049728122,"PwnCount":890341,"AddedDate":"2017-07-01T15:28:17Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"7c4bdbec-8337-4aa5-b3a5-3c746fde4314","last_modified":1565049728263},{"Name":"xHamster","Domain":"xhamster.com","schema":1565049727967,"PwnCount":377377,"AddedDate":"2018-03-08T02:09:26Z","BreachDate":"2016-11-28","DataClasses":["Email addresses","Passwords","Usernames"],"id":"39004e49-3e60-4c2f-a9d1-941a3087105f","last_modified":1565049728108},{"Name":"Xbox-Scene","Domain":"xboxscene.com","schema":1565049727811,"PwnCount":432552,"AddedDate":"2016-02-07T20:26:56Z","BreachDate":"2015-02-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"bcf9c278-ef38-4c4c-afbd-a5167b4125ad","last_modified":1565049727950},{"Name":"Xbox360ISO","Domain":"xbox360iso.com","schema":1565049727659,"PwnCount":1296959,"AddedDate":"2017-01-29T07:20:52Z","BreachDate":"2015-09-25","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"31939607-de65-4de8-b9e0-1811c2ef5c95","last_modified":1565049727798},{"Name":"xat","Domain":"xat.com","schema":1565049727507,"PwnCount":5968783,"AddedDate":"2016-08-05T06:53:35Z","BreachDate":"2015-11-04","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"265cae90-a325-4734-a246-f761056f2a95","last_modified":1565049727646},{"Name":"WPT","Domain":"wptapl.com","schema":1565049727243,"PwnCount":148366,"AddedDate":"2014-02-01T02:57:21Z","BreachDate":"2014-01-04","DataClasses":["Email addresses","Passwords"],"id":"62b130d6-8b78-42fa-82cd-4596734229c7","last_modified":1565049727494},{"Name":"WPSandbox","Domain":"wpsandbox.io","schema":1565049727085,"PwnCount":858,"AddedDate":"2018-11-06T07:26:07Z","BreachDate":"2018-11-04","DataClasses":["Email addresses","Passwords"],"id":"5429d48a-05d8-45ac-8535-548c3e418d4b","last_modified":1565049727230},{"Name":"Wishbone","Domain":"wishbone.io","schema":1565049726932,"PwnCount":2247314,"AddedDate":"2017-03-15T19:29:52Z","BreachDate":"2016-08-07","DataClasses":["Auth tokens","Dates of birth","Email addresses","Genders","Names","Phone numbers","Usernames"],"id":"ff55ca0b-0a37-4156-92ec-aed3ac95eb6d","last_modified":1565049727072},{"Name":"Win7Vista","Domain":"win7vista.com","schema":1565049726774,"PwnCount":202683,"AddedDate":"2014-06-01T10:01:32Z","BreachDate":"2013-09-03","DataClasses":["Email addresses","Instant messenger identities","IP addresses","Names","Passwords","Private messages","Usernames","Website activity"],"id":"539a2622-8c72-47ff-b300-510a1cd33b24","last_modified":1565049726919},{"Name":"WildStar","Domain":"wildstar-online.com","schema":1565049726612,"PwnCount":738556,"AddedDate":"2016-03-06T21:41:16Z","BreachDate":"2015-07-11","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"c83e77d3-4646-4177-8bed-039023a4da01","last_modified":1565049726760},{"Name":"WIIUISO","Domain":"wiiuiso.com","schema":1565049726455,"PwnCount":458155,"AddedDate":"2016-09-06T05:51:12Z","BreachDate":"2015-09-25","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"66e1aab3-df8d-4d53-b90a-a0b2adb2aa32","last_modified":1565049726599},{"Name":"WifeLovers","Domain":"wifelovers.com","schema":1565049726297,"PwnCount":1274051,"AddedDate":"2018-10-20T20:26:13Z","BreachDate":"2018-10-07","DataClasses":["Email addresses","IP addresses","Names","Passwords","Usernames"],"id":"8e83db75-ae38-490e-9fe7-17eb9da1df9d","last_modified":1565049726443},{"Name":"WHMCS","Domain":"whmcs.com","schema":1565049726138,"PwnCount":134047,"AddedDate":"2016-06-28T23:47:07Z","BreachDate":"2012-05-21","DataClasses":["Email addresses","Email messages","Employers","IP addresses","Names","Partial credit card data","Passwords","Payment histories","Physical addresses","Website activity"],"id":"40371e28-2cb5-4131-a5d1-e9e2f9afeb2d","last_modified":1565049726284},{"Name":"Whitepages","Domain":"whitepages.com","schema":1565049725983,"PwnCount":11657763,"AddedDate":"2019-03-27T01:50:45Z","BreachDate":"2016-06-27","DataClasses":["Email addresses","Names","Passwords"],"id":"20bf8286-4b09-4cf7-8b88-3e57c24e4525","last_modified":1565049726125},{"Name":"WeHeartIt","Domain":"weheartit.com","schema":1565049725832,"PwnCount":8600635,"AddedDate":"2017-10-14T20:14:58Z","BreachDate":"2013-11-03","DataClasses":["Email addresses","Passwords","Usernames"],"id":"010b69ab-1588-47be-b118-4a8e778a3da6","last_modified":1565049725970},{"Name":"Warmane","Domain":"warmane.com","schema":1565049725681,"PwnCount":1116256,"AddedDate":"2018-09-08T07:54:18Z","BreachDate":"2016-12-01","DataClasses":["Dates of birth","Email addresses","Passwords","Usernames"],"id":"41d38107-a05e-4016-84e5-4226e7b66e60","last_modified":1565049725819},{"Name":"Warframe","Domain":"warframe.com","schema":1565049725525,"PwnCount":819478,"AddedDate":"2016-07-21T02:25:49Z","BreachDate":"2014-11-24","DataClasses":["Email addresses","Usernames","Website activity"],"id":"06ced06e-1169-4d05-b266-9592a66793c3","last_modified":1565049725668},{"Name":"WarInc","Domain":"thewarinc.com","schema":1565049725365,"PwnCount":1020136,"AddedDate":"2016-11-07T11:07:25Z","BreachDate":"2012-07-04","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"61b4aca2-4e12-4e8b-9293-127cf969a6b6","last_modified":1565049725511},{"Name":"Vodafone","Domain":"vodafone.is","schema":1565049725209,"PwnCount":56021,"AddedDate":"2013-11-30T00:00:00Z","BreachDate":"2013-11-30","DataClasses":["Credit cards","Email addresses","Government issued IDs","IP addresses","Names","Passwords","Phone numbers","Physical addresses","Purchases","SMS messages","Usernames"],"id":"eaff313a-c26d-45ad-81d6-5b9743f74135","last_modified":1565049725351},{"Name":"VNG","Domain":"zing.vn","schema":1565049725020,"PwnCount":24853850,"AddedDate":"2018-04-28T07:49:02Z","BreachDate":"2015-05-19","DataClasses":["Dates of birth","Email addresses","Genders","IP addresses","Marital statuses","Names","Occupations","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"d418b7f1-e5ea-4b7e-8834-9a5907e2d7db","last_modified":1565049725195},{"Name":"VK","Domain":"vk.com","schema":1565049724857,"PwnCount":93338602,"AddedDate":"2016-06-09T09:16:36Z","BreachDate":"2012-01-01","DataClasses":["Email addresses","Names","Passwords","Phone numbers"],"id":"c656c5de-9b85-4d83-834b-391454d40098","last_modified":1565049725004},{"Name":"ViewFines","Domain":"viewfines.co.za","schema":1565049724701,"PwnCount":777649,"AddedDate":"2018-05-24T09:11:55Z","BreachDate":"2018-05-07","DataClasses":["Email addresses","Government issued IDs","Names","Passwords","Phone numbers"],"id":"93c3af6a-9dc7-48f6-a2d8-890759c1063f","last_modified":1565049724844},{"Name":"VictoryPhones","Domain":"victoryphones.com","schema":1565049724547,"PwnCount":166046,"AddedDate":"2017-10-11T21:01:33Z","BreachDate":"2017-01-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Phone numbers","Physical addresses"],"id":"793b115c-f6ef-4ef6-a228-c34ea0293a45","last_modified":1565049724688},{"Name":"Verified","Domain":"verified.cm","schema":1565049724388,"PwnCount":16919,"AddedDate":"2014-07-06T04:16:37Z","BreachDate":"2014-01-10","DataClasses":["Email addresses","Historical passwords","IP addresses","Passwords","Private messages","Usernames","Website activity"],"id":"f97368fe-9d73-46fc-972f-9183c6a41930","last_modified":1565049724534},{"Name":"VerificationsIO","Domain":"verifications.io","schema":1565049722894,"PwnCount":763117241,"AddedDate":"2019-03-09T19:29:54Z","BreachDate":"2019-02-25","DataClasses":["Dates of birth","Email addresses","Employers","Genders","Geographic locations","IP addresses","Job titles","Names","Phone numbers","Physical addresses"],"id":"88e7a0db-d6fe-45c3-9345-69da8a231c6f","last_modified":1565049724375},{"Name":"VBulletin","Domain":"vbulletin.com","schema":1565049722029,"PwnCount":518966,"AddedDate":"2016-01-24T13:15:11Z","BreachDate":"2015-11-03","DataClasses":["Dates of birth","Email addresses","Homepage URLs","Instant messenger identities","IP addresses","Passwords","Security questions and answers","Spoken languages","Website activity"],"id":"c3d18843-c0db-462b-86ce-78e32c2df1f5","last_modified":1565049722881},{"Name":"uTorrent","Domain":"utorrent.com","schema":1565049721830,"PwnCount":395044,"AddedDate":"2016-11-05T22:32:39Z","BreachDate":"2016-01-14","DataClasses":["Email addresses","Passwords","Usernames"],"id":"a2c13605-a5d6-4b8c-ad32-352e4d04d168","last_modified":1565049722016},{"Name":"UnrealEngine","Domain":"unrealengine.com","schema":1565049721670,"PwnCount":530147,"AddedDate":"2016-11-07T09:04:54Z","BreachDate":"2016-08-11","DataClasses":["Email addresses","Passwords","Usernames"],"id":"6dceb80d-0fcf-4ee1-9656-6204b4903758","last_modified":1565049721817},{"Name":"UnderworldEmpire","Domain":"underworldempireforums.com","schema":1565049721511,"PwnCount":428779,"AddedDate":"2018-02-19T10:28:11Z","BreachDate":"2017-04-25","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"104d778c-b182-4dea-9012-df0a5d832a24","last_modified":1565049721657},{"Name":"IGF","Domain":"intgovforum.org","schema":1565049721355,"PwnCount":3200,"AddedDate":"2014-02-23T04:32:08Z","BreachDate":"2014-02-20","DataClasses":["Email addresses","Names","Passwords","Usernames"],"id":"b872226e-b845-43b8-90b7-6085714e2009","last_modified":1565049721497},{"Name":"Uiggy","Domain":"uiggy.com","schema":1565049721200,"PwnCount":2682650,"AddedDate":"2016-06-27T08:07:18Z","BreachDate":"2016-06-01","DataClasses":["Email addresses","Genders","Names","Social connections","Website activity"],"id":"cc4b48d1-13ba-4f4b-a896-c6a6cc3f1fb7","last_modified":1565049721342},{"Name":"Tumblr","Domain":"tumblr.com","schema":1565049721047,"PwnCount":65469298,"AddedDate":"2016-05-29T22:59:04Z","BreachDate":"2013-02-28","DataClasses":["Email addresses","Passwords"],"id":"cb1fdb42-1d79-4c5a-a4e6-0210f4d6e004","last_modified":1565049721187},{"Name":"TruckersMP","Domain":"truckersmp.com","schema":1565049720894,"PwnCount":83957,"AddedDate":"2016-04-24T21:27:05Z","BreachDate":"2016-02-25","DataClasses":["Email addresses","Passwords","Usernames"],"id":"9e6fcbce-df34-4641-bfab-4544d630fac6","last_modified":1565049721034},{"Name":"Trillian","Domain":"trillian.im","schema":1565049720734,"PwnCount":3827238,"AddedDate":"2016-07-15T11:14:44Z","BreachDate":"2015-12-27","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Usernames"],"id":"1336168c-cd39-4741-a3dc-971d5fda3bde","last_modified":1565049720880},{"Name":"TorrentInvites","Domain":"torrent-invites.com","schema":1565049720565,"PwnCount":352120,"AddedDate":"2017-03-22T01:14:11Z","BreachDate":"2013-12-12","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"97cafded-3bd3-44f7-b0ca-10b6e19deee7","last_modified":1565049720712},{"Name":"Ticketfly","Domain":"ticketfly.com","schema":1565049720411,"PwnCount":26151608,"AddedDate":"2018-06-03T06:14:14Z","BreachDate":"2018-05-31","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"d0cc2e2b-1234-48a5-9550-97877ac824b9","last_modified":1565049720551},{"Name":"Tianya","Domain":"tianya.cn","schema":1565049720254,"PwnCount":29020808,"AddedDate":"2016-06-30T03:39:05Z","BreachDate":"2011-12-26","DataClasses":["Email addresses","Names","Usernames"],"id":"ec7217e9-1436-42ff-b4e4-fd75d6da087d","last_modified":1565049720398},{"Name":"ThisHabboForum","Domain":"thishabboforum.com","schema":1565049720087,"PwnCount":612414,"AddedDate":"2015-03-28T05:35:28Z","BreachDate":"2014-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"85332c5f-6455-4e67-98c6-8cb20ac75ac2","last_modified":1565049720241},{"Name":"TheTVDB","Domain":"thetvdb.com","schema":1565049719921,"PwnCount":181871,"AddedDate":"2018-01-29T07:50:12Z","BreachDate":"2017-11-21","DataClasses":["Email addresses","Passwords","Usernames"],"id":"c2f77b30-8eec-4575-a055-b0297eae015b","last_modified":1565049720073},{"Name":"TheFlyOnTheWall","Domain":"theflyonthewall.com","schema":1565049719770,"PwnCount":84011,"AddedDate":"2018-01-15T06:42:31Z","BreachDate":"2017-12-31","DataClasses":["Age groups","Credit cards","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses","Purchases","Usernames"],"id":"bf31c787-5db9-4cf9-9102-ceedeb1ff9d0","last_modified":1565049719908},{"Name":"TheFappening","Domain":"thefappening.so","schema":1565049719616,"PwnCount":179030,"AddedDate":"2016-04-13T01:08:20Z","BreachDate":"2015-12-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"14755928-1802-4bfe-9261-b429b7147500","last_modified":1565049719757},{"Name":"TheCandidBoard","Domain":"thecandidboard.com","schema":1565049719461,"PwnCount":178201,"AddedDate":"2017-01-22T08:33:43Z","BreachDate":"2015-09-03","DataClasses":["Dates of birth","Email addresses","Geographic locations","IP addresses","Passwords","Usernames","Website activity"],"id":"cccc11bb-4ec2-4174-b266-c28b162fe219","last_modified":1565049719603},{"Name":"Tesco","Domain":"tesco.com","schema":1565049719307,"PwnCount":2239,"AddedDate":"2014-02-13T21:19:24Z","BreachDate":"2014-02-12","DataClasses":["Email addresses","Passwords","Reward program balances"],"id":"d5496ee0-0e27-4f00-9cc7-23dd14952dc7","last_modified":1565049719448},{"Name":"Teracod","Domain":"teracod.org","schema":1565049719145,"PwnCount":97151,"AddedDate":"2016-08-22T11:21:27Z","BreachDate":"2016-05-28","DataClasses":["Avatars","Email addresses","IP addresses","Passwords","Payment histories","Private messages","Usernames","Website activity"],"id":"75d8fac5-f06a-410c-8483-ca56041614eb","last_modified":1565049719294},{"Name":"TRAI","Domain":"trai.gov.in","schema":1565049718987,"PwnCount":107776,"AddedDate":"2015-04-27T11:21:59Z","BreachDate":"2015-04-27","DataClasses":["Email addresses","Email messages"],"id":"19377f47-d8f0-4292-a35c-e205264766d9","last_modified":1565049719132},{"Name":"Technic","Domain":"technicpack.net","schema":1565049718832,"PwnCount":265410,"AddedDate":"2018-12-04T02:32:35Z","BreachDate":"2018-11-30","DataClasses":["Chat logs","Email addresses","IP addresses","Passwords","Private messages","Time zones"],"id":"8f7f35d7-e816-4333-b612-711af5fbe72c","last_modified":1565049718974},{"Name":"Solomid","Domain":"solomid.net","schema":1565049718666,"PwnCount":442166,"AddedDate":"2016-03-09T13:04:08Z","BreachDate":"2014-12-22","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"8fe9cf15-6770-4952-ae8e-a97ec4969358","last_modified":1565049718819},{"Name":"Taringa","Domain":"taringa.net","schema":1565049718493,"PwnCount":27971100,"AddedDate":"2018-04-19T10:11:37Z","BreachDate":"2017-08-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"c9f00097-3319-4ba6-a548-a3ae2c4c39e1","last_modified":1565049718653},{"Name":"SweClockers","Domain":"sweclockers.com","schema":1565049718334,"PwnCount":254867,"AddedDate":"2017-03-22T02:01:20Z","BreachDate":"2015-04-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"bd2e91e7-8b2d-4817-87a2-0d675cc87980","last_modified":1565049718480},{"Name":"SvenskaMagic","Domain":"svenskamagic.com","schema":1565049718173,"PwnCount":30327,"AddedDate":"2018-08-30T05:05:04Z","BreachDate":"2015-07-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"4ba877bf-5964-4b99-ac43-21a77de126d5","last_modified":1565049718321},{"Name":"SumoTorrent","Domain":"sumotorrent.sx","schema":1565049718019,"PwnCount":285191,"AddedDate":"2016-03-09T01:23:23Z","BreachDate":"2014-06-21","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"a04cac48-80f5-4ae3-ac50-34f486f9091e","last_modified":1565049718160},{"Name":"StrongholdKingdoms","Domain":"strongholdkingdoms.com","schema":1565049717831,"PwnCount":5187305,"AddedDate":"2019-07-21T15:36:01Z","BreachDate":"2018-07-04","DataClasses":["Email addresses","Passwords","Usernames"],"id":"ca53b61a-eaa5-438e-94eb-2160b07ef544","last_modified":1565049718006},{"Name":"Stratfor","Domain":"stratfor.com","schema":1565049717678,"PwnCount":859777,"AddedDate":"2013-12-04T00:00:00Z","BreachDate":"2011-12-24","DataClasses":["Credit cards","Email addresses","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"f32dcdf6-6743-436e-8dc9-11bad432abb3","last_modified":1565049717818},{"Name":"SterKinekor","Domain":"sterkinekor.co.za","schema":1565049717525,"PwnCount":1619544,"AddedDate":"2017-03-13T10:13:16Z","BreachDate":"2017-03-09","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses","Spoken languages"],"id":"417d5112-fd77-4ab7-b763-bd5081e7813c","last_modified":1565049717665},{"Name":"StarNet","Domain":"starnet.md","schema":1565049717370,"PwnCount":139395,"AddedDate":"2015-04-11T06:35:46Z","BreachDate":"2015-02-26","DataClasses":["Customer interactions","Dates of birth","Email addresses","Genders","IP addresses","MAC addresses","Names","Passport numbers","Passwords","Phone numbers"],"id":"d1e6103b-d56f-406f-8ee9-75ef9c46ef4d","last_modified":1565049717512},{"Name":"Staminus","Domain":"staminus.net","schema":1565049717217,"PwnCount":26815,"AddedDate":"2017-10-05T03:58:50Z","BreachDate":"2016-03-11","DataClasses":["Credit cards","Email addresses","IP addresses","Passwords","Support tickets","Usernames"],"id":"65678eea-239f-4d20-b84c-0e1d43e4ee66","last_modified":1565049717357},{"Name":"SpyFone","Domain":"spyfone.com","schema":1565049717065,"PwnCount":44109,"AddedDate":"2018-08-24T04:36:24Z","BreachDate":"2018-08-16","DataClasses":["Audio recordings","Browsing histories","Device information","Email addresses","Geographic locations","IMEI numbers","IP addresses","Names","Passwords","Photos","SMS messages"],"id":"21bcc87a-b19e-4f1e-be90-c9c389392d86","last_modified":1565049717204},{"Name":"Spirol","Domain":"spirol.com","schema":1565049716910,"PwnCount":55622,"AddedDate":"2014-02-22T20:47:56Z","BreachDate":"2014-02-22","DataClasses":["Email addresses","Employers","Job titles","Names","Phone numbers","Physical addresses"],"id":"76e45d12-88b5-4ba1-a237-473838508a05","last_modified":1565049717050},{"Name":"Soundwave","Domain":"soundwave.com","schema":1565049716756,"PwnCount":130705,"AddedDate":"2017-03-17T22:36:34Z","BreachDate":"2015-07-16","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Names","Passwords","Social connections"],"id":"856ac9e3-8d28-4dd3-9a8d-2d67e6e44427","last_modified":1565049716896},{"Name":"Sony","Domain":"sony.com","schema":1565049716605,"PwnCount":37103,"AddedDate":"2013-12-04T00:00:00Z","BreachDate":"2011-06-02","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"22f789d7-d804-499f-9079-fb17426b4f28","last_modified":1565049716743},{"Name":"SIAE","Domain":"siae.it","schema":1565049716449,"PwnCount":14609,"AddedDate":"2018-11-07T04:31:14Z","BreachDate":"2018-11-03","DataClasses":["Email addresses","IP addresses","Names","Passwords","Phone numbers"],"id":"57397e2b-2c0d-48c6-810c-a9a34f5d7e59","last_modified":1565049716592},{"Name":"SocialEngineered","Domain":"socialengineered.net","schema":1565049716285,"PwnCount":89392,"AddedDate":"2019-06-23T20:46:39Z","BreachDate":"2019-06-13","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"38624d1b-9635-4b71-8e48-9b309dd551c7","last_modified":1565049716436},{"Name":"Snapchat","Domain":"snapchat.com","schema":1565049716136,"PwnCount":4609615,"AddedDate":"2014-01-02T00:00:00Z","BreachDate":"2014-01-01","DataClasses":["Geographic locations","Phone numbers","Usernames"],"id":"54d7bfed-8d62-4c10-906e-4f2b4b92431c","last_modified":1565049716272},{"Name":"Snail","Domain":"snail.com","schema":1565049715987,"PwnCount":1410899,"AddedDate":"2019-07-27T16:24:09Z","BreachDate":"2015-03-14","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"cf7ff447-3563-4174-8168-13f3c5dc4aa3","last_modified":1565049716123},{"Name":"Smogon","Domain":"smogon.com","schema":1565049715832,"PwnCount":386489,"AddedDate":"2018-04-11T00:12:09Z","BreachDate":"2017-09-10","DataClasses":["Email addresses","Genders","Geographic locations","Passwords","Usernames","Website activity"],"id":"a9f047c1-9a2a-4144-b1e2-df3ba038fd7a","last_modified":1565049715974},{"Name":"SkTorrent","Domain":"sktorrent.eu","schema":1565049715684,"PwnCount":117070,"AddedDate":"2016-02-23T03:30:49Z","BreachDate":"2016-02-19","DataClasses":["Email addresses","Passwords","Usernames"],"id":"08101f05-d967-4ed9-88fb-795c094fa87c","last_modified":1565049715819},{"Name":"Shotbow","Domain":"shotbow.net","schema":1565049715532,"PwnCount":1052753,"AddedDate":"2017-10-29T23:53:20Z","BreachDate":"2016-05-09","DataClasses":["Email addresses","Passwords","Usernames"],"id":"87897ab3-8b30-4d72-a4cf-2ebd720dd9b5","last_modified":1565049715671},{"Name":"SHEIN","Domain":"shein.com","schema":1565049715375,"PwnCount":39086762,"AddedDate":"2019-07-17T13:59:41Z","BreachDate":"2018-06-01","DataClasses":["Email addresses","Passwords"],"id":"7ece108c-ffff-46b8-a70a-20ef1fd2c5b5","last_modified":1565049715519},{"Name":"ShareThis","Domain":"sharethis.com","schema":1565049715221,"PwnCount":40960499,"AddedDate":"2019-03-03T06:31:39Z","BreachDate":"2018-07-09","DataClasses":["Dates of birth","Email addresses","Names","Passwords"],"id":"ce327135-e31c-4eb7-9303-b101e4039ce6","last_modified":1565049715359},{"Name":"ServerPact","Domain":"serverpact.com","schema":1565049715064,"PwnCount":73587,"AddedDate":"2016-09-06T04:21:06Z","BreachDate":"2016-01-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"e340be7d-8ff6-435c-bf49-cdce0eba5341","last_modified":1565049715207},{"Name":"Seedpeer","Domain":"seedpeer.eu","schema":1565049714892,"PwnCount":281924,"AddedDate":"2016-03-09T02:49:28Z","BreachDate":"2015-07-12","DataClasses":["Email addresses","Passwords","Usernames"],"id":"6cc3bda7-f00f-4cb3-bd8f-074f0eaa1e45","last_modified":1565049715043},{"Name":"RussianAmerica","Domain":"russianamerica.com","schema":1565049714729,"PwnCount":182717,"AddedDate":"2018-09-13T04:48:08Z","BreachDate":"2017-01-01","DataClasses":["Email addresses","Names","Passwords","Phone numbers"],"id":"2e86e58d-8442-4246-b416-9eb743cc49d9","last_modified":1565049714878},{"Name":"RosebuttBoard","Domain":"rosebuttboard.com","schema":1565049714577,"PwnCount":107303,"AddedDate":"2016-05-10T07:37:46Z","BreachDate":"2016-05-09","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"c3ac307f-94b2-4402-9ea8-2e11dfb4af79","last_modified":1565049714717},{"Name":"Roll20","Domain":"roll20.net","schema":1565049714420,"PwnCount":3994436,"AddedDate":"2019-07-19T14:26:05Z","BreachDate":"2018-12-26","DataClasses":["Email addresses","IP addresses","Names","Partial credit card data","Passwords"],"id":"f54f42eb-4ca3-428e-870f-d7b2d41197b7","last_modified":1565049714565},{"Name":"Reverb-Nation","Domain":"reverbnation.com","schema":1565049714266,"PwnCount":7040725,"AddedDate":"2017-10-05T06:56:23Z","BreachDate":"2014-01-01","DataClasses":["Email addresses","Passwords"],"id":"12218087-5e3f-492e-9ca9-2c62c8dc7da3","last_modified":1565049714407},{"Name":"RetinaX","Domain":"retinax.com","schema":1565049714110,"PwnCount":71153,"AddedDate":"2017-04-30T01:51:55Z","BreachDate":"2017-02-23","DataClasses":["Email addresses","Passwords"],"id":"ccf61b1a-04ae-4ce1-81d3-30b906a63cc1","last_modified":1565049714252},{"Name":"BlueSnapRegpack","Domain":"bluesnap.com","schema":1565049713956,"PwnCount":104977,"AddedDate":"2016-09-13T04:35:05Z","BreachDate":"2016-05-20","DataClasses":["Browser user agent details","Credit card CVV","Email addresses","IP addresses","Names","Partial credit card data","Phone numbers","Physical addresses","Purchases"],"id":"3b997e39-024a-45ac-a3be-e7da23331085","last_modified":1565049714097},{"Name":"RealEstateMogul","Domain":"realestatemogul.com","schema":1565049713803,"PwnCount":307768,"AddedDate":"2018-09-24T05:08:57Z","BreachDate":"2016-09-06","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"0b966d08-b540-4fe7-9d48-2436a9551b5a","last_modified":1565049713942},{"Name":"RbxRocks","Domain":"rbx.rocks","schema":1565049713648,"PwnCount":149958,"AddedDate":"2018-11-07T13:26:42Z","BreachDate":"2018-08-06","DataClasses":["Email addresses","Names","Passwords"],"id":"82e9fa98-527b-4405-9ca7-fadc9c90b424","last_modified":1565049713790},{"Name":"Rambler","Domain":"rambler.ru","schema":1565049713489,"PwnCount":91436280,"AddedDate":"2016-11-01T09:33:34Z","BreachDate":"2014-03-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"8b55a672-b6e4-427b-b397-7e70d93fb662","last_modified":1565049713635},{"Name":"R2Games","Domain":"r2games.com","schema":1565049713335,"PwnCount":22281337,"AddedDate":"2016-02-09T12:20:35Z","BreachDate":"2015-11-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"06781637-83cc-43b6-a04e-0ee21f905399","last_modified":1565049713476},{"Name":"R2-2017","Domain":"r2games.com","schema":1565049713180,"PwnCount":1023466,"AddedDate":"2017-04-25T11:04:29Z","BreachDate":"2017-01-01","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"82041ac1-4ac9-449e-8f4c-b09d231ab61d","last_modified":1565049713322},{"Name":"QuinStreet","Domain":"quinstreet.com","schema":1565049713022,"PwnCount":4907802,"AddedDate":"2016-12-17T07:44:31Z","BreachDate":"2015-12-14","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"f6955b46-9238-4f32-9198-921e75db2475","last_modified":1565049713167},{"Name":"QuantumBooter","Domain":"quantumbooter.net","schema":1565049712841,"PwnCount":48592,"AddedDate":"2015-04-04T06:40:05Z","BreachDate":"2014-03-18","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames","Website activity"],"id":"6b981c13-3d39-401e-b6be-93a75ab34b94","last_modified":1565049713009},{"Name":"QIP","Domain":"qip.ru","schema":1565049712691,"PwnCount":26183992,"AddedDate":"2017-01-08T22:23:19Z","BreachDate":"2011-06-01","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"4a99912c-db49-4367-979e-abc69ab941b2","last_modified":1565049712828},{"Name":"QatarNationalBank","Domain":"qnb.com","schema":1565049712534,"PwnCount":88678,"AddedDate":"2016-05-01T01:06:35Z","BreachDate":"2015-07-01","DataClasses":["Bank account numbers","Customer feedback","Dates of birth","Financial transactions","Genders","Geographic locations","Government issued IDs","IP addresses","Marital statuses","Names","Passwords","Phone numbers","Physical addresses","PINs","Security questions and answers","Spoken languages"],"id":"78c9b8e7-de31-4c3f-b09b-781ad6ced931","last_modified":1565049712678},{"Name":"PSX-Scene","Domain":"psx-scene.com","schema":1565049712380,"PwnCount":341118,"AddedDate":"2016-02-07T03:46:46Z","BreachDate":"2015-02-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"3f5e0e52-dd46-4ced-acbd-ece64da02e75","last_modified":1565049712522},{"Name":"PSPISO","Domain":"pspiso.com","schema":1565049712228,"PwnCount":1274070,"AddedDate":"2017-01-29T07:28:23Z","BreachDate":"2015-09-25","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"0b2035e2-94ec-4532-80e3-aae8e0360ec2","last_modified":1565049712368},{"Name":"PS3Hax","Domain":"ps3hax.net","schema":1565049712075,"PwnCount":447410,"AddedDate":"2016-02-07T04:44:49Z","BreachDate":"2015-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"9c1620a6-3fed-4988-b406-f1366c904933","last_modified":1565049712215},{"Name":"ProgrammingForums","Domain":"programmingforums.org","schema":1565049711926,"PwnCount":707432,"AddedDate":"2017-07-01T16:42:46Z","BreachDate":"2015-12-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"d1775897-5992-409e-b040-dff91f288962","last_modified":1565049712063},{"Name":"Powerbot","Domain":"powerbot.org","schema":1565049711766,"PwnCount":503501,"AddedDate":"2017-07-01T16:12:37Z","BreachDate":"2014-09-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"a3a0f52b-304c-47e5-bd8f-e7ff43a91b33","last_modified":1565049711913},{"Name":"PoliceOne","Domain":"policeone.com","schema":1565049711612,"PwnCount":709926,"AddedDate":"2017-11-15T07:57:11Z","BreachDate":"2014-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"87758585-a516-4484-b59c-04e25cb17eda","last_modified":1565049711752},{"Name":"PokemonNegro","Domain":"pokemonnegro.com","schema":1565049711452,"PwnCount":830155,"AddedDate":"2017-01-03T20:45:24Z","BreachDate":"2016-10-01","DataClasses":["Email addresses","IP addresses","Passwords"],"id":"f693190e-8cd1-4a8c-8464-33bf39f5e48a","last_modified":1565049711598},{"Name":"PokemonCreed","Domain":"pokemoncreed.net","schema":1565049711301,"PwnCount":116465,"AddedDate":"2014-08-10T00:03:59Z","BreachDate":"2014-08-08","DataClasses":["Email addresses","Genders","IP addresses","Passwords","Usernames","Website activity"],"id":"380bd0a9-c404-495b-a6a1-173fe6768d83","last_modified":1565049711439},{"Name":"Pokebip","Domain":"pokebip.com","schema":1565049711137,"PwnCount":657001,"AddedDate":"2016-09-09T04:43:00Z","BreachDate":"2015-07-28","DataClasses":["Email addresses","IP addresses","Passwords","Time zones","Usernames","Website activity"],"id":"9b035182-cfae-40fc-ad7a-4eb522629ba2","last_modified":1565049711287},{"Name":"Plex","Domain":"plex.tv","schema":1565049710975,"PwnCount":327314,"AddedDate":"2016-02-08T01:35:48Z","BreachDate":"2015-07-02","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"5d7a4946-79fc-4d05-81f4-33607ce8a956","last_modified":1565049711124},{"Name":"piZap","Domain":"pizap.com","schema":1565049710814,"PwnCount":41817893,"AddedDate":"2019-07-16T05:43:27Z","BreachDate":"2017-12-07","DataClasses":["Email addresses","Genders","Geographic locations","Names","Passwords","Social media profiles","Usernames","Website activity"],"id":"80e99d50-0574-4f6a-8ec2-5c4e30445167","last_modified":1565049710962},{"Name":"PixelFederation","Domain":"pixelfederation.com","schema":1565049710654,"PwnCount":38108,"AddedDate":"2013-12-06T00:00:00Z","BreachDate":"2013-12-04","DataClasses":["Email addresses","Passwords"],"id":"be5e2da6-3bff-4841-854d-f14fc5814dbd","last_modified":1565049710801},{"Name":"PHPFreaks","Domain":"phpfreaks.com","schema":1565049710501,"PwnCount":173891,"AddedDate":"2015-10-30T14:19:52Z","BreachDate":"2015-10-27","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"6fe1cd46-d10f-4176-a547-50531e69cb80","last_modified":1565049710641},{"Name":"PayAsUGym","Domain":"payasugym.com","schema":1565049710345,"PwnCount":400260,"AddedDate":"2016-12-17T06:45:44Z","BreachDate":"2016-12-15","DataClasses":["Browser user agent details","Email addresses","IP addresses","Names","Partial credit card data","Passwords","Phone numbers","Website activity"],"id":"a6c373e0-be6c-493d-8a71-f72f9fedf4c4","last_modified":1565049710489},{"Name":"Patreon","Domain":"patreon.com","schema":1565049710189,"PwnCount":2330382,"AddedDate":"2015-10-02T02:29:20Z","BreachDate":"2015-10-01","DataClasses":["Email addresses","Payment histories","Physical addresses","Private messages","Website activity"],"id":"546b1e9b-84ba-454c-93f8-bf64ad71a735","last_modified":1565049710330},{"Name":"PaddyPower","Domain":"paddypower.com","schema":1565049710030,"PwnCount":590954,"AddedDate":"2015-10-11T01:26:05Z","BreachDate":"2010-10-25","DataClasses":["Account balances","Dates of birth","Email addresses","IP addresses","Names","Phone numbers","Physical addresses","Security questions and answers","Usernames","Website activity"],"id":"adb7b8ab-f6a2-4780-8652-a34a19786f74","last_modified":1565049710176},{"Name":"OwnedCore","Domain":"OwnedCore.com","schema":1565049709870,"PwnCount":880331,"AddedDate":"2016-02-06T02:53:13Z","BreachDate":"2013-08-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"a08f8196-3199-4718-990f-d9d62a418ea8","last_modified":1565049710016},{"Name":"OVH","Domain":"ovh.com","schema":1565049709708,"PwnCount":452899,"AddedDate":"2016-12-27T07:49:12Z","BreachDate":"2015-05-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"99eff88a-5456-4ef3-aef5-63493be2692c","last_modified":1565049709856},{"Name":"OrdineAvvocatiDiRoma","Domain":"ordineavvocatiroma.it","schema":1565049709554,"PwnCount":41960,"AddedDate":"2019-05-26T23:24:11Z","BreachDate":"2019-05-07","DataClasses":["Email addresses","Email messages","Geographic locations","Passwords","Phone numbers"],"id":"f7dfa0d9-b8d9-441e-80a1-6eb8a7c627a0","last_modified":1565049709694},{"Name":"OpenCSGO","Domain":"opencsgo.com","schema":1565049709400,"PwnCount":512311,"AddedDate":"2018-01-15T06:14:55Z","BreachDate":"2017-11-28","DataClasses":["Avatars","Email addresses","IP addresses","Phone numbers","Physical addresses","Purchases","Social media profiles","Usernames"],"id":"e5b08636-5709-4ade-9a23-487d8d28eedf","last_modified":1565049709541},{"Name":"Onverse","Domain":"onverse.com","schema":1565049709246,"PwnCount":800157,"AddedDate":"2016-09-06T06:28:30Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"6a418e1c-d98f-40e4-8afc-a02e4a808e62","last_modified":1565049709386},{"Name":"OGUsers","Domain":"ogusers.com","schema":1565049709052,"PwnCount":161143,"AddedDate":"2019-05-19T22:45:45Z","BreachDate":"2018-12-26","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames"],"id":"b3ba2a2b-f45e-4eb5-a03f-bb082703757a","last_modified":1565049709233},{"Name":"Nulled","Domain":"nulled.cr","schema":1565049708900,"PwnCount":599080,"AddedDate":"2016-05-09T11:28:01Z","BreachDate":"2016-05-06","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Private messages","Usernames","Website activity"],"id":"ea9537a6-cc9d-4360-9479-7acc3e65dc7e","last_modified":1565049709039},{"Name":"NonNudeGirls","Domain":"nonnudegirls.org","schema":1565049708741,"PwnCount":75383,"AddedDate":"2017-01-25T06:38:36Z","BreachDate":"2013-05-21","DataClasses":["Email addresses","IP addresses","Names","Passwords","Usernames","Website activity"],"id":"e1e00c82-a7ea-4927-b96a-993205d964a0","last_modified":1565049708886},{"Name":"Nival","Domain":"nival.com","schema":1565049708582,"PwnCount":1535473,"AddedDate":"2016-03-03T00:32:49Z","BreachDate":"2016-02-29","DataClasses":["Avatars","Dates of birth","Email addresses","Genders","Names","Spoken languages","Usernames","Website activity"],"id":"259820ff-15af-4889-a4e4-a2ccbe568f65","last_modified":1565049708728},{"Name":"Nihonomaru","Domain":"nihonomaru.net","schema":1565049708431,"PwnCount":1697282,"AddedDate":"2016-08-30T09:54:55Z","BreachDate":"2015-12-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"4627f2cf-9a6b-4f70-82b1-324c335a02ad","last_modified":1565049708569},{"Name":"NexusMods","Domain":"nexusmods.com","schema":1565049708278,"PwnCount":5915013,"AddedDate":"2016-01-17T17:18:47Z","BreachDate":"2013-07-22","DataClasses":["Email addresses","Passwords","Usernames"],"id":"4cb162a7-e53e-46f0-b6a0-0c593874bc69","last_modified":1565049708418},{"Name":"NextGenUpdate","Domain":"nextgenupdate.com","schema":1565049708125,"PwnCount":1194597,"AddedDate":"2015-06-05T04:12:29Z","BreachDate":"2014-04-22","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"4d4ab5ac-ae46-42a7-afb7-85c0689ba4f6","last_modified":1565049708265},{"Name":"Netshoes","Domain":"netshoes.com.br","schema":1565049707968,"PwnCount":499836,"AddedDate":"2017-12-10T04:01:03Z","BreachDate":"2017-12-07","DataClasses":["Dates of birth","Email addresses","Names","Purchases"],"id":"9df8166f-d086-4f96-b3cd-97a9ba026627","last_modified":1565049708112},{"Name":"Netlog","Domain":"netlog.com","schema":1565049707812,"PwnCount":49038354,"AddedDate":"2019-07-15T10:25:07Z","BreachDate":"2012-11-01","DataClasses":["Email addresses","Passwords"],"id":"e3ff7d0e-c6ce-4114-aaaf-3a223cf9d398","last_modified":1565049707954},{"Name":"Neteller","Domain":"neteller.com","schema":1565049707656,"PwnCount":3619948,"AddedDate":"2015-11-30T10:26:47Z","BreachDate":"2010-05-17","DataClasses":["Account balances","Dates of birth","Email addresses","Genders","IP addresses","Names","Phone numbers","Physical addresses","Security questions and answers","Website activity"],"id":"984de8e1-49ad-48d0-8594-a6ec84cf00b9","last_modified":1565049707799},{"Name":"Neopets","Domain":"neopets.com","schema":1565049707503,"PwnCount":26892897,"AddedDate":"2016-07-07T23:00:10Z","BreachDate":"2013-05-05","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords","Usernames"],"id":"5f28a73d-63d1-44cd-bed3-22f3bf21b13c","last_modified":1565049707643},{"Name":"NemoWeb","Domain":"nemoweb.net","schema":1565049707346,"PwnCount":3472916,"AddedDate":"2018-09-19T03:53:20Z","BreachDate":"2016-09-04","DataClasses":["Email addresses","Names"],"id":"6c33a6b5-3996-44bc-90f9-89ce4210f8a0","last_modified":1565049707490},{"Name":"NaughtyAmerica","Domain":"naughtyamerica.com","schema":1565049707192,"PwnCount":1398630,"AddedDate":"2016-04-24T06:14:42Z","BreachDate":"2016-03-14","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"9deee5ec-8555-43c2-8fc4-808e943035c5","last_modified":1565049707333},{"Name":"NapsGear","Domain":"napsgear.org","schema":1565049707041,"PwnCount":287071,"AddedDate":"2018-09-10T11:07:00Z","BreachDate":"2015-10-21","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses","Purchases"],"id":"a3ba3092-8437-4903-a0ec-e72757a901e0","last_modified":1565049707180},{"Name":"MyVidster","Domain":"myvidster.com","schema":1565049706886,"PwnCount":19863,"AddedDate":"2015-10-10T07:06:17Z","BreachDate":"2015-08-15","DataClasses":["Email addresses","Passwords","Usernames"],"id":"0e7a6343-90aa-463d-96ce-31897cab76f1","last_modified":1565049707027},{"Name":"MySpace","Domain":"myspace.com","schema":1565049706731,"PwnCount":359420698,"AddedDate":"2016-05-31T00:12:29Z","BreachDate":"2008-07-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"18fcc456-b490-44d2-93ab-18feb00e989e","last_modified":1565049706873},{"Name":"myRepoSpace","Domain":"myrepospace.com","schema":1565049706572,"PwnCount":252751,"AddedDate":"2015-07-08T08:44:51Z","BreachDate":"2015-07-06","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"730ad5e3-25b9-4e30-bcd9-f18d9424577a","last_modified":1565049706719},{"Name":"MyHeritage","Domain":"myheritage.com","schema":1565049706424,"PwnCount":91991358,"AddedDate":"2019-02-20T21:04:04Z","BreachDate":"2017-10-26","DataClasses":["Email addresses","Passwords"],"id":"cde918b4-3768-4c87-935c-f3d2f0093d8e","last_modified":1565049706560},{"Name":"MyFitnessPal","Domain":"myfitnesspal.com","schema":1565049706261,"PwnCount":143606147,"AddedDate":"2019-02-21T19:28:46Z","BreachDate":"2018-02-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"56083ce0-c98c-41da-b436-8d2473bbf266","last_modified":1565049706409},{"Name":"MyFHA","Domain":"myfha.net","schema":1565049706105,"PwnCount":972629,"AddedDate":"2018-08-09T20:26:35Z","BreachDate":"2015-02-18","DataClasses":["Credit status information","Email addresses","Home loan information","Income levels","IP addresses","Names","Passwords","Personal descriptions","Physical addresses"],"id":"217367f6-e6d6-4398-8c5b-1a24b8286c19","last_modified":1565049706248},{"Name":"MuslimMatch","Domain":"muslimmatch.com","schema":1565049705953,"PwnCount":149830,"AddedDate":"2016-06-29T19:08:15Z","BreachDate":"2016-06-24","DataClasses":["Chat logs","Email addresses","Geographic locations","IP addresses","Passwords","Private messages","User statuses","Usernames"],"id":"7bb19796-385a-4c22-884a-dc1f3ff8cd55","last_modified":1565049706092},{"Name":"MuslimDirectory","Domain":"muslimdirectory.co.uk","schema":1565049705802,"PwnCount":37784,"AddedDate":"2014-02-23T03:09:38Z","BreachDate":"2014-02-17","DataClasses":["Age groups","Email addresses","Employers","Names","Passwords","Phone numbers","Physical addresses","Website activity"],"id":"0907aa5f-2a2a-49f3-a506-8f6deb445ba2","last_modified":1565049705940},{"Name":"mSpy","Domain":"mspy.com","schema":1565049705651,"PwnCount":699793,"AddedDate":"2015-05-28T18:09:16Z","BreachDate":"2015-05-14","DataClasses":["Device usage tracking data"],"id":"5fe3972f-68e4-4e27-ae04-e6288354b933","last_modified":1565049705787},{"Name":"MrExcel","Domain":"mrexcel.com","schema":1565049705498,"PwnCount":366140,"AddedDate":"2017-01-22T07:39:17Z","BreachDate":"2016-12-05","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Social connections","Usernames","Website activity"],"id":"ce1d4f35-b913-47f3-9baf-0af1c479fa73","last_modified":1565049705638},{"Name":"MPGH","Domain":"mpgh.net","schema":1565049705350,"PwnCount":3122898,"AddedDate":"2015-10-26T03:20:20Z","BreachDate":"2015-10-22","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"28785a14-0514-4da8-b3b9-3e05c010d382","last_modified":1565049705485},{"Name":"MortalOnline","Domain":"mortalonline.com","schema":1565049705200,"PwnCount":606637,"AddedDate":"2018-08-31T05:38:46Z","BreachDate":"2018-06-17","DataClasses":["Email addresses","Names","Passwords","Physical addresses","Usernames"],"id":"b2224aee-ec9d-4945-b2c7-2ec0099dd190","last_modified":1565049705337},{"Name":"MoreleNet","Domain":"morele.net","schema":1565049705038,"PwnCount":2467304,"AddedDate":"2019-04-20T22:57:28Z","BreachDate":"2018-10-10","DataClasses":["Email addresses","Names","Passwords","Phone numbers"],"id":"126da7bf-7c2a-4476-a391-98a86ec4af14","last_modified":1565049705187},{"Name":"MoneyBookers","Domain":"moneybookers.com","schema":1565049704878,"PwnCount":4483605,"AddedDate":"2015-11-30T09:21:55Z","BreachDate":"2009-01-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Phone numbers","Physical addresses"],"id":"1180daa6-c808-40ec-a9e2-14cea58e7fe0","last_modified":1565049705019},{"Name":"ModernBusinessSolutions","Domain":"modbsolutions.com","schema":1565049704724,"PwnCount":58843488,"AddedDate":"2016-10-12T09:09:11Z","BreachDate":"2016-10-08","DataClasses":["Dates of birth","Email addresses","Genders","IP addresses","Job titles","Names","Phone numbers","Physical addresses"],"id":"52c4c6a2-8440-44f8-8577-1f5821ce3bc4","last_modified":1565049704866},{"Name":"MoDaCo","Domain":"modaco.com","schema":1565049704568,"PwnCount":879703,"AddedDate":"2016-09-20T07:32:50Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"2f224f33-1c73-49f2-ac69-07e470828047","last_modified":1565049704711},{"Name":"Minefield","Domain":"minefield.fr","schema":1565049704415,"PwnCount":188343,"AddedDate":"2016-03-09T08:18:43Z","BreachDate":"2015-06-28","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"425b89be-9c6e-4406-8277-4c9e56918468","last_modified":1565049704555},{"Name":"MinecraftWorldMap","Domain":"minecraftworldmap.com","schema":1565049704266,"PwnCount":71081,"AddedDate":"2016-08-29T01:07:38Z","BreachDate":"2016-01-15","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"6d28ae01-b92c-4e53-87d5-6fef50080616","last_modified":1565049704402},{"Name":"MinecraftPocketEditionForum","Domain":"minecraftpeforum.net","schema":1565049704103,"PwnCount":16034,"AddedDate":"2015-06-30T09:19:43Z","BreachDate":"2015-05-24","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"e6da5d4e-ef4e-4937-a5ae-a3c8a90d70db","last_modified":1565049704252},{"Name":"MindJolt","Domain":"mindjolt.com","schema":1565049703950,"PwnCount":28364826,"AddedDate":"2019-07-13T19:21:12Z","BreachDate":"2019-03-18","DataClasses":["Dates of birth","Email addresses","Names"],"id":"4b3d17ae-c1f5-48f2-9c84-92ac3009b2c0","last_modified":1565049704090},{"Name":"MDPI","Domain":"mdpi.com","schema":1565049703792,"PwnCount":845012,"AddedDate":"2018-03-25T22:50:36Z","BreachDate":"2016-08-30","DataClasses":["Email addresses","Email messages","IP addresses","Names"],"id":"322f3d78-05d1-437b-991f-9aaaefd7a59c","last_modified":1565049703937},{"Name":"MCBans","Domain":"mcbans.com","schema":1565049703640,"PwnCount":119948,"AddedDate":"2017-07-23T05:34:55Z","BreachDate":"2016-10-27","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"9443b359-18c4-4ecc-9052-cecbd2b12ef3","last_modified":1565049703779},{"Name":"Mate1","Domain":"mate1.com","schema":1565049703483,"PwnCount":27393015,"AddedDate":"2016-04-14T23:37:15Z","BreachDate":"2016-02-29","DataClasses":["Astrological signs","Dates of birth","Drinking habits","Drug habits","Education levels","Email addresses","Ethnicities","Fitness levels","Genders","Geographic locations","Income levels","Job titles","Names","Parenting plans","Passwords","Personal descriptions","Physical attributes","Political views","Relationship statuses","Religions","Sexual fetishes","Travel habits","Usernames","Website activity","Work habits"],"id":"90247c74-8877-46e3-b7b9-0ae5c2d94475","last_modified":1565049703627},{"Name":"Mappery","Domain":"mappery.com","schema":1565049703322,"PwnCount":205242,"AddedDate":"2018-12-18T16:19:50Z","BreachDate":"2018-12-11","DataClasses":["Email addresses","Geographic locations","Passwords","Usernames"],"id":"5e7a6818-e29a-4b98-8f2e-507918abd376","last_modified":1565049703467},{"Name":"MangaFox","Domain":"mangafox.me","schema":1565049703171,"PwnCount":1311610,"AddedDate":"2018-03-17T01:43:24Z","BreachDate":"2016-06-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"018c58fa-6d00-478c-8435-9d493b4a3577","last_modified":1565049703309},{"Name":"MangaTraders","Domain":"mangatraders.com","schema":1565049703019,"PwnCount":855249,"AddedDate":"2014-06-10T03:49:45Z","BreachDate":"2014-06-09","DataClasses":["Email addresses","Passwords"],"id":"065083ba-af84-47c7-bfdd-fbeb28473449","last_modified":1565049703158},{"Name":"Malwarebytes","Domain":"malwarebytes.org","schema":1565049702873,"PwnCount":111623,"AddedDate":"2016-03-09T11:15:43Z","BreachDate":"2014-11-15","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"73f9e019-5145-4250-984d-a1513389400c","last_modified":1565049703007},{"Name":"MallCZ","Domain":"mall.cz","schema":1565049702720,"PwnCount":735405,"AddedDate":"2017-09-04T12:46:39Z","BreachDate":"2017-07-27","DataClasses":["Email addresses","Names","Passwords","Phone numbers"],"id":"b8a96299-4a1c-4ed3-9b6f-64a24b6a7c74","last_modified":1565049702861},{"Name":"MajorGeeks","Domain":"majorgeeks.com","schema":1565049702568,"PwnCount":269548,"AddedDate":"2016-03-03T02:45:09Z","BreachDate":"2015-11-15","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"9292cf8d-6618-422c-995b-f1e7bf7b5afb","last_modified":1565049702707},{"Name":"Mac-Torrents","Domain":"mac-torrents.com","schema":1565049702416,"PwnCount":93992,"AddedDate":"2015-10-31T23:54:26Z","BreachDate":"2015-10-31","DataClasses":["Email addresses","Passwords","Usernames"],"id":"47e33542-2634-4e32-a320-0f17bf2ec89e","last_modified":1565049702555},{"Name":"MacForums","Domain":"mac-forums.com","schema":1565049702266,"PwnCount":326714,"AddedDate":"2018-10-29T23:47:44Z","BreachDate":"2016-07-03","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"16f20a0c-91e6-43a4-9cc5-f8b4d4185d36","last_modified":1565049702404},{"Name":"LyricsMania","Domain":"lyricsmania.com","schema":1565049702109,"PwnCount":109202,"AddedDate":"2018-01-15T06:32:46Z","BreachDate":"2017-12-21","DataClasses":["Email addresses","Passwords","Usernames"],"id":"ae489baa-07d3-493b-a2e7-f281eab0ee0f","last_modified":1565049702252},{"Name":"LoungeBoard","Domain":"loungeboard.net","schema":1565049701957,"PwnCount":45018,"AddedDate":"2014-07-06T10:22:01Z","BreachDate":"2013-08-01","DataClasses":["Email addresses","IP addresses","Names","Passwords","Private messages","Usernames","Website activity"],"id":"48ba084f-dcb3-4ae6-a149-220dfd8dda60","last_modified":1565049702096},{"Name":"LOTR","Domain":"lotro.com","schema":1565049701803,"PwnCount":1141278,"AddedDate":"2016-03-12T12:46:03Z","BreachDate":"2013-08-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"c0d19001-c8d0-4f6e-802b-ac48ab40bfe4","last_modified":1565049701944},{"Name":"Lookbook","Domain":"lookbook.nu","schema":1565049701651,"PwnCount":1074948,"AddedDate":"2016-11-08T09:03:44Z","BreachDate":"2012-08-24","DataClasses":["Dates of birth","Email addresses","IP addresses","Names","Passwords","Usernames","Website activity"],"id":"336c23e0-10f2-4f78-938d-ed38674851a8","last_modified":1565049701790},{"Name":"LizardSquad","Domain":"lizardstresser.su","schema":1565049701497,"PwnCount":13451,"AddedDate":"2015-01-18T01:24:24Z","BreachDate":"2015-01-16","DataClasses":["Email addresses","Passwords","Usernames"],"id":"894d0c60-7d37-4fb9-86ce-5ad68fae445d","last_modified":1565049701638},{"Name":"LittleMonsters","Domain":"littlemonsters.com","schema":1565049701341,"PwnCount":995698,"AddedDate":"2017-03-07T20:39:08Z","BreachDate":"2017-01-01","DataClasses":["Dates of birth","Email addresses","Passwords","Usernames"],"id":"b4b7ab40-2cb9-465e-9178-86f03574e13b","last_modified":1565049701483},{"Name":"LinuxMint","Domain":"linuxmint.com","schema":1565049701190,"PwnCount":144989,"AddedDate":"2016-02-22T01:28:08Z","BreachDate":"2016-02-21","DataClasses":["Avatars","Dates of birth","Email addresses","Geographic locations","IP addresses","Passwords","Time zones","Website activity"],"id":"5264c34c-929d-49b4-b8ad-cfde2b0ca92a","last_modified":1565049701327},{"Name":"LinuxForums","Domain":"linuxforums.org","schema":1565049701036,"PwnCount":275785,"AddedDate":"2018-06-07T12:55:25Z","BreachDate":"2018-05-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"db542191-cdb9-4135-bff0-cb21f62e5576","last_modified":1565049701177},{"Name":"LinkedIn","Domain":"linkedin.com","schema":1565049700880,"PwnCount":164611595,"AddedDate":"2016-05-21T21:35:40Z","BreachDate":"2012-05-05","DataClasses":["Email addresses","Passwords"],"id":"82940a45-241d-4b7d-b8c9-0e698ae1d9b1","last_modified":1565049701024},{"Name":"LightsHope","Domain":"lightshope.org","schema":1565049700729,"PwnCount":30484,"AddedDate":"2018-07-04T13:32:01Z","BreachDate":"2018-06-25","DataClasses":["Dates of birth","Email addresses","Geographic locations","IP addresses","Passwords","Private messages","Usernames"],"id":"a383b87a-aa1f-478e-a2e2-9547bafdb21c","last_modified":1565049700868},{"Name":"Lifeboat","Domain":"lbsg.net","schema":1565049700579,"PwnCount":7089395,"AddedDate":"2016-04-25T21:51:50Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"efb09c2e-bdac-4e90-b2b0-7e9e1c9f5ca4","last_modified":1565049700716},{"Name":"Leet","Domain":"leet.cc","schema":1565049700406,"PwnCount":5081689,"AddedDate":"2016-09-30T22:00:48Z","BreachDate":"2016-09-10","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"f5f2c8ea-efe9-448e-8219-9c914e1f9cb5","last_modified":1565049700566},{"Name":"LeagueOfLegends","Domain":"leagueoflegends.com","schema":1565049700246,"PwnCount":339487,"AddedDate":"2018-07-28T21:52:12Z","BreachDate":"2012-06-11","DataClasses":["Email addresses","Passwords","Usernames"],"id":"93d65742-2811-4474-85b7-df09539be57f","last_modified":1565049700393},{"Name":"Lastfm","Domain":"last.fm","schema":1565049700088,"PwnCount":37217682,"AddedDate":"2016-09-20T20:00:49Z","BreachDate":"2012-03-22","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"dbfeda1a-7667-400f-a8c4-b3e1dff552d2","last_modified":1565049700233},{"Name":"Lanwar","Domain":"lanwar.com","schema":1565049699940,"PwnCount":45120,"AddedDate":"2018-08-08T02:57:06Z","BreachDate":"2018-07-28","DataClasses":["Email addresses","Names","Passwords","Physical addresses","Usernames"],"id":"02f26c43-d6e5-44d1-b836-8bb49ad74151","last_modified":1565049700075},{"Name":"Knuddels","Domain":"knuddels.de","schema":1565049699794,"PwnCount":808330,"AddedDate":"2019-04-08T21:11:56Z","BreachDate":"2018-09-05","DataClasses":["Email addresses","Geographic locations","Names","Passwords","Usernames"],"id":"25e05897-3982-4ba2-90b7-65ff6fd18565","last_modified":1565049699928},{"Name":"KnownCircle","Domain":"knowncircle.com","schema":1565049699648,"PwnCount":1957600,"AddedDate":"2018-11-17T02:33:54Z","BreachDate":"2016-04-12","DataClasses":["Email addresses","Email messages","Genders","Names","Passwords","Phone numbers","Physical addresses"],"id":"8d146838-ca55-4313-adbc-7014b92b0e2b","last_modified":1565049699781},{"Name":"KMRU","Domain":"km.ru","schema":1565049699496,"PwnCount":1476783,"AddedDate":"2016-03-03T06:12:04Z","BreachDate":"2016-02-29","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Recovery email addresses","Security questions and answers","Usernames"],"id":"51016cad-0c48-46e0-8b1f-236972a4b15a","last_modified":1565049699635},{"Name":"Kimsufi","Domain":"kimsufi.com","schema":1565049699335,"PwnCount":504565,"AddedDate":"2016-12-27T07:05:43Z","BreachDate":"2015-05-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"e5b2802c-24e9-4331-89a5-973483f376bc","last_modified":1565049699483},{"Name":"Kickstarter","Domain":"kickstarter.com","schema":1565049699180,"PwnCount":5176463,"AddedDate":"2017-10-06T07:29:07Z","BreachDate":"2014-02-16","DataClasses":["Email addresses","Passwords"],"id":"083b306e-f612-40b1-8d67-28abebb7d0f9","last_modified":1565049699322},{"Name":"JoomlArt","Domain":"joomlart.com","schema":1565049699032,"PwnCount":22477,"AddedDate":"2018-11-01T03:27:26Z","BreachDate":"2018-01-30","DataClasses":["Email addresses","Names","Passwords","Payment histories","Usernames"],"id":"e78f5a89-dc1f-4193-bde5-5f6cc2b976fd","last_modified":1565049699167},{"Name":"JobStreet","Domain":"jobstreet.com","schema":1565049698881,"PwnCount":3883455,"AddedDate":"2017-10-30T01:12:14Z","BreachDate":"2012-03-07","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Government issued IDs","Marital statuses","Names","Nationalities","Passwords","Phone numbers","Physical addresses","Usernames"],"id":"6d17e437-0a42-499d-92e6-cb1bfc48905e","last_modified":1565049699020},{"Name":"ixigo","Domain":"ixigo.com","schema":1565049698725,"PwnCount":17204697,"AddedDate":"2019-03-17T13:27:11Z","BreachDate":"2019-01-03","DataClasses":["Auth tokens","Device information","Email addresses","Genders","Names","Passwords","Phone numbers","Salutations","Social media profiles","Usernames"],"id":"4827b033-cf32-4fa8-a30f-87154325e5aa","last_modified":1565049698868},{"Name":"iPmart","Domain":"ipmart-forum.com","schema":1565049698570,"PwnCount":2460787,"AddedDate":"2016-02-23T10:13:22Z","BreachDate":"2015-07-01","DataClasses":["Dates of birth","Email addresses","Passwords","Usernames"],"id":"fb85f3a9-91f1-4bb0-86fa-06b206dffb12","last_modified":1565049698711},{"Name":"Interpals","Domain":"interpals.net","schema":1565049698416,"PwnCount":3439414,"AddedDate":"2016-08-30T11:22:42Z","BreachDate":"2015-11-04","DataClasses":["Dates of birth","Email addresses","Geographic locations","Names","Passwords","Usernames"],"id":"2abd3c2c-d607-45f6-bec6-7a05756d2361","last_modified":1565049698557},{"Name":"Insanelyi","Domain":"insanelyi.com","schema":1565049698262,"PwnCount":104097,"AddedDate":"2014-07-22T22:56:15Z","BreachDate":"2014-07-22","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"f84c8c3f-2ab5-482c-b892-db8f53e276d3","last_modified":1565049698403},{"Name":"imgur","Domain":"imgur.com","schema":1565049698103,"PwnCount":1749806,"AddedDate":"2017-11-25T00:00:33Z","BreachDate":"2013-09-01","DataClasses":["Email addresses","Passwords"],"id":"779fd9f9-92fd-4b28-88e8-ef751c3cfe9b","last_modified":1565049698250},{"Name":"iMesh","Domain":"imesh.com","schema":1565049697950,"PwnCount":49467477,"AddedDate":"2016-07-02T05:42:13Z","BreachDate":"2013-09-22","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"46ceb460-8249-4df7-86d2-c0d78184ac8d","last_modified":1565049698090},{"Name":"ILikeCheats","Domain":"ilikecheats.net","schema":1565049697798,"PwnCount":188847,"AddedDate":"2018-04-22T08:18:28Z","BreachDate":"2014-10-18","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"ecfefc2d-a7a1-42e5-89d4-5e359ae689c0","last_modified":1565049697936},{"Name":"iDressup","Domain":"i-dressup.com","schema":1565049697651,"PwnCount":2191565,"AddedDate":"2016-09-26T20:14:51Z","BreachDate":"2016-07-15","DataClasses":["Email addresses","Passwords"],"id":"1858323b-a2f5-4c81-9299-22255b2a095a","last_modified":1565049697785},{"Name":"Hub4Tech","Domain":"hub4tech.com","schema":1565049697502,"PwnCount":36916,"AddedDate":"2018-12-09T22:40:51Z","BreachDate":"2017-01-01","DataClasses":["Email addresses","Passwords"],"id":"8ddc0f5f-696d-46f7-ade3-1d67136701e1","last_modified":1565049697638},{"Name":"HTHStudios","Domain":"hthstudios.com","schema":1565049697346,"PwnCount":411755,"AddedDate":"2018-11-20T21:22:09Z","BreachDate":"2018-08-24","DataClasses":["Browser user agent details","Dates of birth","Email addresses","IP addresses","Names","Phone numbers","Physical addresses","Purchases","Usernames"],"id":"c658b0ad-e78c-4e63-abe3-9a97afe13ffa","last_modified":1565049697487},{"Name":"Houzz","Domain":"houzz.com","schema":1565049697192,"PwnCount":48881308,"AddedDate":"2019-03-12T20:57:35Z","BreachDate":"2018-05-23","DataClasses":["Email addresses","Geographic locations","IP addresses","Names","Passwords","Social media profiles","Usernames"],"id":"6651f869-a982-4276-a0e6-10191f74aefe","last_modified":1565049697333},{"Name":"HoundDawgs","Domain":"hounddawgs.org","schema":1565049697038,"PwnCount":45701,"AddedDate":"2018-01-03T12:48:10Z","BreachDate":"2017-12-30","DataClasses":["Email addresses","IP addresses","Passwords","Website activity"],"id":"d40ca20e-229f-4bf2-a713-14d0db4fa21b","last_modified":1565049697179},{"Name":"HongFire","Domain":"hongfire.com","schema":1565049696872,"PwnCount":999991,"AddedDate":"2017-02-05T20:36:21Z","BreachDate":"2015-03-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"015b4010-0e1d-466e-8745-6d207830f805","last_modified":1565049697024},{"Name":"HLTV","Domain":"hltv.org","schema":1565049696718,"PwnCount":611070,"AddedDate":"2017-03-22T08:58:10Z","BreachDate":"2016-06-19","DataClasses":["Email addresses","Names","Passwords","Usernames","Website activity"],"id":"88ed95dd-63fa-4066-a4bd-57f5397e79e7","last_modified":1565049696859},{"Name":"HeroesOfNewerth","Domain":"heroesofnewerth.com","schema":1565049696569,"PwnCount":8089103,"AddedDate":"2016-01-24T16:27:23Z","BreachDate":"2012-12-17","DataClasses":["Email addresses","Passwords","Usernames"],"id":"49c11bfe-0ae6-425c-a30d-e9edfff788e4","last_modified":1565049696705},{"Name":"HeroesOfGaia","Domain":"heroesofgaia.com","schema":1565049696420,"PwnCount":179967,"AddedDate":"2016-11-07T08:11:03Z","BreachDate":"2013-01-04","DataClasses":["Browser user agent details","Email addresses","IP addresses","Usernames","Website activity"],"id":"c624b6df-3ec3-407d-8f2a-80c5cfe5d8c8","last_modified":1565049696556},{"Name":"Hemmelig","Domain":"hemmelig.com","schema":1565049696268,"PwnCount":28641,"AddedDate":"2014-03-25T07:23:52Z","BreachDate":"2011-12-21","DataClasses":["Email addresses","Genders","Nicknames","Passwords","Usernames","Years of birth"],"id":"b29866fe-554d-40fc-a052-38eae7e7e6a0","last_modified":1565049696406},{"Name":"Hemmakvall","Domain":"hemmakvall.se","schema":1565049696106,"PwnCount":47297,"AddedDate":"2015-07-09T09:23:52Z","BreachDate":"2015-07-08","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"d2ed9c0f-359b-4f29-a791-8f6b3a3835ba","last_modified":1565049696256},{"Name":"HealthNowNetworks","Domain":"healthnow.co","schema":1565049695961,"PwnCount":321920,"AddedDate":"2017-04-07T18:37:15Z","BreachDate":"2017-03-25","DataClasses":["Dates of birth","Email addresses","Genders","Health insurance information","IP addresses","Names","Personal health data","Phone numbers","Physical addresses","Security questions and answers","Social connections"],"id":"537632c9-a846-4bc8-8fbd-20f85e55c27e","last_modified":1565049696094},{"Name":"HauteLook","Domain":"hautelook.com","schema":1565049695805,"PwnCount":28510459,"AddedDate":"2019-03-21T21:57:32Z","BreachDate":"2018-08-07","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Names","Passwords"],"id":"f34135f4-44d2-4b32-ab41-3013aea5e910","last_modified":1565049695949},{"Name":"HackingTeam","Domain":"hackingteam.com","schema":1565049695656,"PwnCount":32310,"AddedDate":"2015-07-12T23:52:27Z","BreachDate":"2015-07-06","DataClasses":["Email addresses","Email messages"],"id":"1a9034f8-5c5a-4b30-bf64-219ea7f7b04f","last_modified":1565049695792},{"Name":"HackForums","Domain":"hackforums.net","schema":1565049695500,"PwnCount":191540,"AddedDate":"2014-05-11T10:30:43Z","BreachDate":"2011-06-25","DataClasses":["Dates of birth","Email addresses","Instant messenger identities","IP addresses","Passwords","Social connections","Spoken languages","Time zones","User website URLs","Usernames","Website activity"],"id":"b26f26eb-131e-4045-b512-f577208b9bd4","last_modified":1565049695643},{"Name":"Playgar","Domain":"play-gar.com","schema":1565049695344,"PwnCount":143569,"AddedDate":"2018-02-14T22:32:25Z","BreachDate":"2016-04-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"38471094-7117-4de7-9d23-0c0eb586927b","last_modified":1565049695487},{"Name":"GTAGaming","Domain":"gtagaming.com","schema":1565049695195,"PwnCount":197184,"AddedDate":"2016-08-23T20:41:17Z","BreachDate":"2016-08-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"e63b3bb6-e0c0-4afe-8d1e-7ca6982a4bc7","last_modified":1565049695331},{"Name":"gPotato","Domain":"gpotato.com","schema":1565049695048,"PwnCount":2136520,"AddedDate":"2016-09-24T21:37:43Z","BreachDate":"2007-07-12","DataClasses":["Dates of birth","Email addresses","Genders","IP addresses","Names","Passwords","Physical addresses","Security questions and answers","Usernames","Website activity"],"id":"e2bb1b9c-974e-49b1-969a-aa172263afc2","last_modified":1565049695183},{"Name":"GoldSilver","Domain":"goldsilver.com","schema":1565049694894,"PwnCount":242715,"AddedDate":"2018-12-27T08:49:18Z","BreachDate":"2018-10-21","DataClasses":["Bank account numbers","Email addresses","IP addresses","Names","Partial credit card data","Passport numbers","Phone numbers","Physical addresses","Purchases","Security questions and answers","Social security numbers"],"id":"52ec0048-32ef-4e45-bf41-e9ff75b025ac","last_modified":1565049695034},{"Name":"GeekedIn","Domain":"geekedin.net","schema":1565049694739,"PwnCount":1073164,"AddedDate":"2016-11-17T19:44:24Z","BreachDate":"2016-08-15","DataClasses":["Email addresses","Geographic locations","Names","Professional skills","Usernames","Years of professional experience"],"id":"82b28232-2452-446c-b706-c807052e669a","last_modified":1565049694881},{"Name":"Gawker","Domain":"gawker.com","schema":1565049694578,"PwnCount":1247574,"AddedDate":"2013-12-04T00:00:00Z","BreachDate":"2010-12-11","DataClasses":["Email addresses","Passwords","Usernames"],"id":"b721401f-efcd-4f22-af2b-98866dc62e12","last_modified":1565049694726},{"Name":"Gamigo","Domain":"gamigo.com","schema":1565049694429,"PwnCount":8243604,"AddedDate":"2016-01-18T16:26:24Z","BreachDate":"2012-03-01","DataClasses":["Email addresses","Passwords"],"id":"60fdaac8-7341-42bb-be80-49cb302342f8","last_modified":1565049694565},{"Name":"GameTuts","Domain":"game-tuts.com","schema":1565049694277,"PwnCount":2064274,"AddedDate":"2016-09-23T23:59:38Z","BreachDate":"2015-03-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"282e00a6-1cc0-4a1e-acd5-8300b81bff4f","last_modified":1565049694414},{"Name":"GameSalad","Domain":"gamesalad.com","schema":1565049694126,"PwnCount":1506242,"AddedDate":"2019-07-21T14:18:46Z","BreachDate":"2019-02-24","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"697e073d-91e1-4962-ae58-eb1d8c0fc53a","last_modified":1565049694264},{"Name":"GamerzPlanet","Domain":"gamerzplanet.net","schema":1565049693968,"PwnCount":1217166,"AddedDate":"2016-02-05T20:12:26Z","BreachDate":"2015-10-23","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"18271a42-d41e-4aea-a299-a6770f4bb990","last_modified":1565049694114},{"Name":"Gaadi","Domain":"gaadi.com","schema":1565049693817,"PwnCount":4261179,"AddedDate":"2018-07-01T07:17:02Z","BreachDate":"2015-05-14","DataClasses":["Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords","Phone numbers","Usernames"],"id":"4fc9f111-7d20-47a4-b359-c5ac25ae8b31","last_modified":1565049693955},{"Name":"FurAffinity","Domain":"furaffinity.net","schema":1565049693663,"PwnCount":1270564,"AddedDate":"2016-05-27T09:36:18Z","BreachDate":"2016-05-17","DataClasses":["Email addresses","Passwords","Usernames"],"id":"4065dc3b-52bc-4384-9aec-58a27af61976","last_modified":1565049693805},{"Name":"FunnyGames","Domain":"funny-games.biz","schema":1565049693497,"PwnCount":764357,"AddedDate":"2018-07-24T03:01:35Z","BreachDate":"2018-04-28","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"185bd21c-9965-4dd0-895f-c1befbdbd3f3","last_modified":1565049693650},{"Name":"Funimation","Domain":"funimation.com","schema":1565049693341,"PwnCount":2491103,"AddedDate":"2017-02-20T00:43:26Z","BreachDate":"2016-07-01","DataClasses":["Dates of birth","Email addresses","Passwords","Usernames"],"id":"ac1abc23-d8c5-4cab-823b-f36efb56840a","last_modified":1565049693483},{"Name":"Fridae","Domain":"fridae.asia","schema":1565049693181,"PwnCount":35368,"AddedDate":"2014-05-06T02:48:35Z","BreachDate":"2014-05-02","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"d73cf0da-0715-4992-b3d9-0f461b76785b","last_modified":1565049693327},{"Name":"FreshMenu","Domain":"freshmenu.com","schema":1565049693025,"PwnCount":110355,"AddedDate":"2018-09-10T12:27:19Z","BreachDate":"2016-07-01","DataClasses":["Device information","Email addresses","Names","Phone numbers","Physical addresses","Purchases"],"id":"e4c664b6-8294-4131-8461-09df60ec5145","last_modified":1565049693166},{"Name":"FreedomHostingII","Domain":"fhostingesps6bly.onion","schema":1565049692856,"PwnCount":380830,"AddedDate":"2017-02-05T10:06:58Z","BreachDate":"2017-01-31","DataClasses":["Email addresses","Passwords","Usernames"],"id":"fc96c846-ba1b-4abf-a8da-c63c3b65badb","last_modified":1565049693012},{"Name":"FoxyBingo","Domain":"foxybingo.com","schema":1565049692700,"PwnCount":252216,"AddedDate":"2015-11-22T01:05:05Z","BreachDate":"2008-04-04","DataClasses":["Account balances","Browser user agent details","Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses","Usernames","Website activity"],"id":"085000f7-e1b7-412a-8060-4c60713b614e","last_modified":1565049692843},{"Name":"ForumCommunity","Domain":"forumcommunity.net","schema":1565049692544,"PwnCount":776648,"AddedDate":"2018-12-05T05:04:45Z","BreachDate":"2016-06-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"35acecd4-f250-4e9c-a22f-d50ee51b82d0","last_modified":1565049692687},{"Name":"Forbes","Domain":"forbes.com","schema":1565049692390,"PwnCount":1057819,"AddedDate":"2014-02-15T11:24:42Z","BreachDate":"2014-02-15","DataClasses":["Email addresses","Passwords","User website URLs","Usernames"],"id":"43f8d4a5-5a25-4b88-85b4-77dac1248ee2","last_modified":1565049692531},{"Name":"FLVS","Domain":"flvs.net","schema":1565049692240,"PwnCount":542902,"AddedDate":"2018-03-18T01:40:31Z","BreachDate":"2018-02-12","DataClasses":["Dates of birth","Email addresses","Names","Passwords","School grades (class levels)","Usernames"],"id":"94119f77-02bc-456e-b74a-1e762acfb0e6","last_modified":1565049692377},{"Name":"Fling","Domain":"fling.com","schema":1565049692085,"PwnCount":40767652,"AddedDate":"2016-05-28T23:08:07Z","BreachDate":"2011-03-10","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Passwords","Phone numbers","Sexual fetishes","Sexual orientations","Usernames","Website activity"],"id":"60e1de36-d68c-416e-9187-1ef537f43551","last_modified":1565049692227},{"Name":"Flashback","Domain":"flashback.se","schema":1565049691932,"PwnCount":40256,"AddedDate":"2015-02-12T05:42:12Z","BreachDate":"2015-02-11","DataClasses":["Email addresses","Government issued IDs","Physical addresses"],"id":"09058d04-5452-4fa5-ab06-9e8ce2a0bd00","last_modified":1565049692072},{"Name":"FlashFlashRevolution2019","Domain":"flashflashrevolution.com","schema":1565049691782,"PwnCount":1858124,"AddedDate":"2019-07-21T20:31:54Z","BreachDate":"2019-07-16","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"b9c44093-f08d-475f-af9b-8c159a764542","last_modified":1565049691919},{"Name":"FlashFlashRevolution","Domain":"flashflashrevolution.com","schema":1565049691625,"PwnCount":1771845,"AddedDate":"2016-09-06T08:08:29Z","BreachDate":"2016-02-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"35846544-20f5-41bf-b475-fe65f44db9e8","last_modified":1565049691769},{"Name":"FFShrine","Domain":"ffshrine.org","schema":1565049691470,"PwnCount":620677,"AddedDate":"2015-10-31T12:43:58Z","BreachDate":"2015-09-18","DataClasses":["Email addresses","Passwords","Usernames","Website activity"],"id":"367f681a-2d16-45df-ad80-5e6b06abdf32","last_modified":1565049691612},{"Name":"FashionFantasyGame","Domain":"fashionfantasygame.com","schema":1565049691316,"PwnCount":2357872,"AddedDate":"2017-04-20T10:33:38Z","BreachDate":"2016-12-01","DataClasses":["Email addresses","Passwords"],"id":"9f268503-6196-4aa8-acfa-f6752838b229","last_modified":1565049691457},{"Name":"WhiteRoom","Domain":"fashionnexus.co.uk","schema":1565049691162,"PwnCount":1279263,"AddedDate":"2018-07-31T08:20:54Z","BreachDate":"2018-07-09","DataClasses":["Browser user agent details","Dates of birth","Email addresses","Genders","IP addresses","Names","Passwords","Phone numbers","Physical addresses","Purchases"],"id":"bd546491-2f19-47cf-ad71-c071d5863a88","last_modified":1565049691303},{"Name":"FaceUP","Domain":"faceup.dk","schema":1565049691012,"PwnCount":87633,"AddedDate":"2019-01-13T09:50:41Z","BreachDate":"2013-01-01","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Usernames"],"id":"0413c8ab-2f7b-49c2-87d3-cab7377078e0","last_modified":1565049691149},{"Name":"Facepunch","Domain":"facepunch.com","schema":1565049690864,"PwnCount":342913,"AddedDate":"2018-10-17T13:15:39Z","BreachDate":"2016-06-03","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"b5291a7d-39f1-47d0-93d3-89dc494bbaba","last_modified":1565049691000},{"Name":"EyeEm","Domain":"eyeem.com","schema":1565049690708,"PwnCount":19611022,"AddedDate":"2019-02-16T07:17:45Z","BreachDate":"2018-02-28","DataClasses":["Bios","Email addresses","Names","Passwords","Usernames"],"id":"99702bf1-b87d-452f-bae6-02ff3486c6e4","last_modified":1565049690850},{"Name":"Exactis","Domain":"exactis.com","schema":1565049690558,"PwnCount":131577763,"AddedDate":"2018-07-25T20:00:44Z","BreachDate":"2018-06-01","DataClasses":["Credit status information","Dates of birth","Education levels","Email addresses","Ethnicities","Family structure","Financial investments","Genders","Home ownership statuses","Income levels","IP addresses","Marital statuses","Names","Net worths","Occupations","Personal interests","Phone numbers","Physical addresses","Religions","Spoken languages"],"id":"608a5657-555c-4ff4-8289-879a2e517064","last_modified":1565049690695},{"Name":"Evony","Domain":"evony.com","schema":1565049690405,"PwnCount":29396116,"AddedDate":"2017-03-25T23:43:45Z","BreachDate":"2016-06-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"9ea2edb3-a126-4c7e-b2d6-d5275fc52927","last_modified":1565049690545},{"Name":"Evite","Domain":"evite.com","schema":1565049690235,"PwnCount":100985047,"AddedDate":"2019-07-14T14:51:51Z","BreachDate":"2013-08-11","DataClasses":["Dates of birth","Email addresses","Genders","Names","Passwords","Phone numbers","Physical addresses"],"id":"c1380d1f-ca13-476b-8d23-4a732f014d57","last_modified":1565049690392},{"Name":"EverybodyEdits","Domain":"everybodyedits.com","schema":1565049690082,"PwnCount":871190,"AddedDate":"2019-04-03T10:50:16Z","BreachDate":"2019-03-23","DataClasses":["Email addresses","IP addresses","Usernames"],"id":"6814e6ca-ce0a-447d-9a3a-ec4702879179","last_modified":1565049690222},{"Name":"Evermotion","Domain":"evermotion.org","schema":1565049689910,"PwnCount":435510,"AddedDate":"2017-07-02T13:49:09Z","BreachDate":"2015-05-07","DataClasses":["Dates of birth","Email addresses","Passwords","Usernames"],"id":"c8b483c6-3d17-4bca-8727-3f65ad0f3a65","last_modified":1565049690068},{"Name":"Ethereum","Domain":"ethereum.org","schema":1565049689754,"PwnCount":16431,"AddedDate":"2016-12-20T23:56:26Z","BreachDate":"2016-12-16","DataClasses":["Email addresses","IP addresses","Passwords","Private messages","Usernames","Website activity"],"id":"cc171014-edc4-4ddb-a949-0041790609b3","last_modified":1565049689895},{"Name":"eThekwiniMunicipality","Domain":"eservices.durban.gov.za","schema":1565049689601,"PwnCount":81830,"AddedDate":"2016-09-15T00:01:47Z","BreachDate":"2016-09-07","DataClasses":["Dates of birth","Deceased date","Email addresses","Genders","Government issued IDs","Names","Passport numbers","Passwords","Phone numbers","Physical addresses","Utility bills"],"id":"7538110a-4b13-4870-a806-6379e1408eb6","last_modified":1565049689741},{"Name":"EpicNPC","Domain":"epicnpc.com","schema":1565049689449,"PwnCount":408795,"AddedDate":"2019-07-27T23:11:30Z","BreachDate":"2016-01-02","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"90f2e331-c494-45bf-83a7-40b24a30d87e","last_modified":1565049689588},{"Name":"EpicGames","Domain":"epicgames.com","schema":1565049689295,"PwnCount":251661,"AddedDate":"2016-11-07T10:19:34Z","BreachDate":"2016-08-11","DataClasses":["Email addresses","Passwords","Usernames"],"id":"16afddae-986e-4131-9594-753834310dfb","last_modified":1565049689435},{"Name":"Emuparadise","Domain":"emuparadise.me","schema":1565049689133,"PwnCount":1131229,"AddedDate":"2019-06-09T06:23:35Z","BreachDate":"2018-04-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"378d58af-bc18-4286-9921-ae03aaed9e82","last_modified":1565049689283},{"Name":"Elance","Domain":"elance.com","schema":1565049688980,"PwnCount":1291178,"AddedDate":"2017-02-18T02:54:48Z","BreachDate":"2009-01-01","DataClasses":["Email addresses","Employers","Geographic locations","Passwords","Phone numbers","Usernames"],"id":"4aac01bf-5f2f-4b33-ad42-d220df5ff63c","last_modified":1565049689120},{"Name":"Edmodo","Domain":"edmodo.com","schema":1565049688831,"PwnCount":43423561,"AddedDate":"2017-06-01T05:59:24Z","BreachDate":"2017-05-11","DataClasses":["Email addresses","Passwords","Usernames"],"id":"0de1002f-1db1-4412-adef-332baedbfae3","last_modified":1565049688967},{"Name":"EatStreet","Domain":"eatstreet.com","schema":1565049688681,"PwnCount":6353564,"AddedDate":"2019-07-19T11:29:35Z","BreachDate":"2019-05-03","DataClasses":["Dates of birth","Email addresses","Genders","Names","Partial credit card data","Passwords","Phone numbers","Physical addresses","Social media profiles"],"id":"4cfce295-7fc0-41e7-8d75-56b0cbdde919","last_modified":1565049688818},{"Name":"DVDShopCH","Domain":"dvd-shop.ch","schema":1565049688523,"PwnCount":67973,"AddedDate":"2017-12-10T04:58:09Z","BreachDate":"2017-12-05","DataClasses":["Email addresses","Passwords"],"id":"97da93ec-0742-4a0b-8da3-64d1bc6bb717","last_modified":1565049688668},{"Name":"DDO","Domain":"ddo.com","schema":1565049688363,"PwnCount":1580933,"AddedDate":"2016-03-12T10:59:56Z","BreachDate":"2013-04-02","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"0ac90bbb-6bf1-4abb-88f6-ee9d16d8c79a","last_modified":1565049688510},{"Name":"Dubsmash","Domain":"dubsmash.com","schema":1565049688206,"PwnCount":161749950,"AddedDate":"2019-02-25T08:35:58Z","BreachDate":"2018-12-01","DataClasses":["Email addresses","Geographic locations","Names","Passwords","Phone numbers","Spoken languages","Usernames"],"id":"056c5262-e005-427d-b620-5f38e8a77d6c","last_modified":1565049688349},{"Name":"Dropbox","Domain":"dropbox.com","schema":1565049688049,"PwnCount":68648009,"AddedDate":"2016-08-31T00:19:19Z","BreachDate":"2012-07-01","DataClasses":["Email addresses","Passwords"],"id":"902f742c-19ac-4923-9216-63dd48bfdfab","last_modified":1565049688193},{"Name":"Dominos","Domain":"pizza.dominos.be","schema":1565049687895,"PwnCount":648231,"AddedDate":"2015-01-04T03:03:34Z","BreachDate":"2014-06-13","DataClasses":["Email addresses","Names","Passwords","Phone numbers","Physical addresses"],"id":"ea553107-c550-4425-a681-a61864ebdd0f","last_modified":1565049688036},{"Name":"DLH","Domain":"dlh.net","schema":1565049687744,"PwnCount":3264710,"AddedDate":"2016-09-07T13:29:25Z","BreachDate":"2016-07-31","DataClasses":["Dates of birth","Email addresses","Names","Passwords","Usernames","Website activity"],"id":"86513dd5-90ea-4ab2-beb9-4e1e83ebe3ad","last_modified":1565049687882},{"Name":"Disqus","Domain":"disqus.com","schema":1565049687553,"PwnCount":17551044,"AddedDate":"2017-10-06T23:03:51Z","BreachDate":"2012-07-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"ee2f8510-2e4f-4afc-bada-97442e0dfbed","last_modified":1565049687731},{"Name":"DietCom","Domain":"diet.com","schema":1565049687398,"PwnCount":1383759,"AddedDate":"2017-10-13T21:37:10Z","BreachDate":"2014-08-10","DataClasses":["Dates of birth","Eating habits","Email addresses","IP addresses","Names","Passwords","Physical attributes","Usernames"],"id":"f5182dec-15a0-46db-a1cd-040528a8651c","last_modified":1565049687539},{"Name":"devkitPro","Domain":"devkitpro.org","schema":1565049687247,"PwnCount":1508,"AddedDate":"2019-02-11T07:21:44Z","BreachDate":"2019-02-03","DataClasses":["Email addresses","Passwords","Private messages"],"id":"86dc75a4-9658-459a-b53e-50ab6dbbf9cd","last_modified":1565049687385},{"Name":"DemonForums","Domain":"demonforums.net","schema":1565049687086,"PwnCount":52623,"AddedDate":"2019-04-04T07:14:34Z","BreachDate":"2019-02-20","DataClasses":["Email addresses","Passwords","Usernames"],"id":"7ca55aaa-57a3-4eed-a30e-c838061e9d17","last_modified":1565049687235},{"Name":"DataCamp","Domain":"datacamp.com","schema":1565049686936,"PwnCount":760561,"AddedDate":"2019-04-09T04:29:55Z","BreachDate":"2017-01-30","DataClasses":["Email addresses","Geographic locations","IP addresses","Names","Passwords"],"id":"0da6d9b5-fe18-4d7f-89e2-62f025d18090","last_modified":1565049687074},{"Name":"DataAndLeads","Domain":"datanleads.com","schema":1565049686780,"PwnCount":44320330,"AddedDate":"2018-11-28T19:32:19Z","BreachDate":"2018-11-14","DataClasses":["Email addresses","Employers","IP addresses","Job titles","Names","Phone numbers","Physical addresses"],"id":"a4dd0a47-0592-4226-9551-c3bb11ffc009","last_modified":1565049686923},{"Name":"DaniWeb","Domain":"daniweb.com","schema":1565049686627,"PwnCount":1131636,"AddedDate":"2016-12-28T23:12:16Z","BreachDate":"2015-12-01","DataClasses":["Email addresses","IP addresses","Passwords"],"id":"49cfea1d-9ae6-4691-b8d7-d21fe1b7bc5f","last_modified":1565049686767},{"Name":"Dangdang","Domain":"dangdang.com","schema":1565049686476,"PwnCount":4848734,"AddedDate":"2019-01-10T11:15:51Z","BreachDate":"2011-06-01","DataClasses":["Email addresses"],"id":"d004b3d0-9279-4c03-9a36-f745619de2e9","last_modified":1565049686614},{"Name":"Dailymotion","Domain":"dailymotion.com","schema":1565049686324,"PwnCount":85176234,"AddedDate":"2017-08-07T02:51:12Z","BreachDate":"2016-10-20","DataClasses":["Email addresses","Passwords","Usernames"],"id":"d8eaa701-2ff6-469f-9a0b-c7546c27a5a2","last_modified":1565049686463},{"Name":"DaFont","Domain":"dafont.com","schema":1565049686171,"PwnCount":637340,"AddedDate":"2017-05-18T20:05:28Z","BreachDate":"2017-05-16","DataClasses":["Email addresses","Passwords","Usernames"],"id":"c7979086-b051-4efa-95d5-5bf5fad1854f","last_modified":1565049686311},{"Name":"D3scene","Domain":"d3scene.com","schema":1565049686021,"PwnCount":568827,"AddedDate":"2019-06-15T15:19:11Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"341b4ed9-647d-485b-9a70-0a85a79f950b","last_modified":1565049686157},{"Name":"CrossFire","Domain":"cfire.mail.ru","schema":1565049685858,"PwnCount":12865609,"AddedDate":"2016-12-28T00:29:28Z","BreachDate":"2016-08-08","DataClasses":["Email addresses","Passwords","Usernames"],"id":"5f67cb2f-f3cd-4eb6-9dee-ef204c50a13c","last_modified":1565049686008},{"Name":"Creative","Domain":"creative.com","schema":1565049685701,"PwnCount":483015,"AddedDate":"2018-06-07T21:00:31Z","BreachDate":"2018-05-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"75bf09b6-1684-4fd6-a340-c170769cb333","last_modified":1565049685844},{"Name":"CrackingForum","Domain":"crackingforum.com","schema":1565049685541,"PwnCount":660305,"AddedDate":"2017-12-10T20:08:30Z","BreachDate":"2016-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"d0c54b37-b6b5-491f-92ab-bab6085f7902","last_modified":1565049685688},{"Name":"CrackCommunity","Domain":"crackcommunity.com","schema":1565049685382,"PwnCount":19210,"AddedDate":"2015-02-03T06:30:05Z","BreachDate":"2013-09-09","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"534fa48c-7211-4e2e-a1e3-c5a9bb50cfe0","last_modified":1565049685527},{"Name":"COMELEC","Domain":"comelec.gov.ph","schema":1565049685228,"PwnCount":228605,"AddedDate":"2016-04-14T02:24:32Z","BreachDate":"2016-03-27","DataClasses":["Biometric data","Dates of birth","Email addresses","Family members' names","Genders","Job titles","Marital statuses","Names","Passport numbers","Phone numbers","Physical addresses","Physical attributes"],"id":"04a359af-f730-4ed3-9684-09bff41a318b","last_modified":1565049685367},{"Name":"Comcast","Domain":"comcast.net","schema":1565049685072,"PwnCount":616882,"AddedDate":"2016-02-08T21:41:43Z","BreachDate":"2015-11-08","DataClasses":["Email addresses","Passwords","Physical addresses"],"id":"df011b98-6d1e-41e9-be99-5bd098605a97","last_modified":1565049685215},{"Name":"Coachella","Domain":"coachella.com","schema":1565049684917,"PwnCount":599802,"AddedDate":"2017-06-27T10:57:03Z","BreachDate":"2017-02-22","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"020a24c2-4f72-4023-859b-ee1bf661db7c","last_modified":1565049685059},{"Name":"ClubPenguinRewrittenJul2019","Domain":"cprewritten.net","schema":1565049684765,"PwnCount":4007909,"AddedDate":"2019-07-30T14:05:10Z","BreachDate":"2019-07-27","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"ba8080d2-7c12-438c-b163-82dce891d1df","last_modified":1565049684904},{"Name":"ClubPenguinRewritten","Domain":"cprewritten.net","schema":1565049684610,"PwnCount":1688176,"AddedDate":"2019-04-23T05:05:16Z","BreachDate":"2018-01-21","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"66134c42-b30f-4d7f-91a0-d917723d5a88","last_modified":1565049684751},{"Name":"CloudPets","Domain":"cloudpets.com","schema":1565049684446,"PwnCount":583503,"AddedDate":"2017-02-27T20:57:29Z","BreachDate":"2017-01-01","DataClasses":["Email addresses","Family members' names","Passwords"],"id":"638ebacb-2fca-43f3-baf5-b6a182936930","last_modified":1565049684595},{"Name":"ClixSense","Domain":"clixsense.com","schema":1565049684279,"PwnCount":2424784,"AddedDate":"2016-09-11T06:37:25Z","BreachDate":"2016-09-04","DataClasses":["Account balances","Dates of birth","Email addresses","Genders","IP addresses","Names","Passwords","Payment histories","Payment methods","Physical addresses","Usernames","Website activity"],"id":"5d2b5969-297e-4454-bf56-e29c43b12e80","last_modified":1565049684433},{"Name":"ClashOfKings","Domain":"f.elex.com","schema":1565049684107,"PwnCount":1604957,"AddedDate":"2019-07-27T22:03:03Z","BreachDate":"2016-07-14","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"0ca8008d-735e-4613-8fa4-02ca6112f401","last_modified":1565049684262},{"Name":"CheapAssGamer","Domain":"cheapassgamer.com","schema":1565049683954,"PwnCount":444767,"AddedDate":"2016-11-08T01:58:39Z","BreachDate":"2015-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"75de59d1-f494-4a80-946e-723cc16e1519","last_modified":1565049684095},{"Name":"CDProjektRed","Domain":"cdprojektred.com","schema":1565049683805,"PwnCount":1871373,"AddedDate":"2017-01-31T06:40:09Z","BreachDate":"2016-03-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"a4cb0ff8-ac07-4a55-8f88-4b7070519741","last_modified":1565049683941},{"Name":"CashCrate","Domain":"cashcrate.com","schema":1565049683651,"PwnCount":6844490,"AddedDate":"2018-04-20T21:40:38Z","BreachDate":"2016-11-17","DataClasses":["Email addresses","Names","Passwords","Physical addresses"],"id":"718f81e8-5861-48f7-95d5-d6ee57d8fc79","last_modified":1565049683793},{"Name":"CannabisForum","Domain":"cannabis.com","schema":1565049683496,"PwnCount":227746,"AddedDate":"2014-06-01T07:55:24Z","BreachDate":"2014-02-05","DataClasses":["Dates of birth","Email addresses","Geographic locations","Historical passwords","Instant messenger identities","IP addresses","Passwords","Private messages","Usernames","Website activity"],"id":"ff06c5b0-1978-4723-ab3d-92b339739db2","last_modified":1565049683638},{"Name":"CafePress","Domain":"cafepress.com","schema":1565049683337,"PwnCount":23205290,"AddedDate":"2019-08-05T01:18:43Z","BreachDate":"2019-02-20","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses"],"id":"f940dc7d-605d-4609-9c6c-9523ca0ccf1f","last_modified":1565049683483},{"Name":"CafeMom","Domain":"cafemom.com","schema":1565049683185,"PwnCount":2628148,"AddedDate":"2017-11-09T19:54:20Z","BreachDate":"2014-04-10","DataClasses":["Email addresses","Passwords"],"id":"0dc312ab-f3ab-4384-b851-6765f391318d","last_modified":1565049683324},{"Name":"BusinessAcumen","Domain":"businessacumen.biz","schema":1565049683025,"PwnCount":26596,"AddedDate":"2014-05-11T04:25:48Z","BreachDate":"2014-04-25","DataClasses":["Email addresses","Names","Passwords","Usernames","Website activity"],"id":"d0bfd4df-5837-418f-844c-c2947e086817","last_modified":1565049683172},{"Name":"BulgarianNationalRevenueAgency","Domain":"nap.bg","schema":1565049682846,"PwnCount":471167,"AddedDate":"2019-07-18T18:38:49Z","BreachDate":"2019-07-15","DataClasses":["Email addresses","Names","Phone numbers","Physical addresses","Taxation records"],"id":"139e46fd-770d-4a65-baba-acbb9c7f7db3","last_modified":1565049683012},{"Name":"Bukalapak","Domain":"bukalapak.com","schema":1565049682690,"PwnCount":13369666,"AddedDate":"2019-04-18T01:57:35Z","BreachDate":"2017-10-23","DataClasses":["Email addresses","IP addresses","Names","Passwords","Usernames"],"id":"8f72da22-5275-4c61-a4de-642be41382b2","last_modified":1565049682832},{"Name":"BTCE","Domain":"btc-e.com","schema":1565049682539,"PwnCount":568340,"AddedDate":"2017-03-12T03:21:52Z","BreachDate":"2014-10-01","DataClasses":["Account balances","Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"d40067d2-67c1-477c-a179-8a3ceb43661e","last_modified":1565049682677},{"Name":"Brazzers","Domain":"brazzers.com","schema":1565049682385,"PwnCount":790724,"AddedDate":"2016-09-05T10:02:23Z","BreachDate":"2013-04-01","DataClasses":["Email addresses","Passwords","Usernames"],"id":"47391665-de0c-4de6-847b-dff8eb750f33","last_modified":1565049682527},{"Name":"Boxee","Domain":"forums.boxee.com","schema":1565049682221,"PwnCount":158093,"AddedDate":"2014-03-30T13:07:16Z","BreachDate":"2014-03-29","DataClasses":["Dates of birth","Email addresses","Geographic locations","Historical passwords","Instant messenger identities","IP addresses","Passwords","Private messages","User website URLs","Usernames"],"id":"bb4d04ad-ef95-4cf4-b1de-69b4a5fd5758","last_modified":1565049682371},{"Name":"BotOfLegends","Domain":"botoflegends.com","schema":1565049682070,"PwnCount":238373,"AddedDate":"2016-12-27T08:24:52Z","BreachDate":"2014-11-13","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"a4f56306-9c89-4d45-8ed7-0cb8af4636fe","last_modified":1565049682209},{"Name":"Bookmate","Domain":"bookmate.com","schema":1565049681920,"PwnCount":3830916,"AddedDate":"2019-03-22T16:25:58Z","BreachDate":"2018-07-08","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Names","Passwords","Usernames"],"id":"b4ac2fd8-b846-45d9-a50a-3cf6c580361c","last_modified":1565049682057},{"Name":"BombujEu","Domain":"bombuj.eu","schema":1565049681759,"PwnCount":575437,"AddedDate":"2018-12-10T14:04:47Z","BreachDate":"2018-12-07","DataClasses":["Email addresses","Passwords"],"id":"50aa593c-27e7-45b3-9d0a-5d90007a7182","last_modified":1565049681907},{"Name":"Bolt","Domain":"bolt.cd","schema":1565049681601,"PwnCount":995274,"AddedDate":"2017-11-24T08:15:24Z","BreachDate":"2017-03-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"bf3d3a82-619d-4597-81ae-4ffcb7ede2ed","last_modified":1565049681746},{"Name":"BlankMediaGames","Domain":"blankmediagames.com","schema":1565049681443,"PwnCount":7633234,"AddedDate":"2019-01-02T05:52:56Z","BreachDate":"2018-12-28","DataClasses":["Browser user agent details","Email addresses","IP addresses","Passwords","Purchases","Usernames","Website activity"],"id":"09f43f65-a8db-468e-a63a-426db78a85a2","last_modified":1565049681588},{"Name":"BlackSpigotMC","Domain":"blackspigot.com","schema":1565049681288,"PwnCount":140029,"AddedDate":"2019-07-17T18:44:17Z","BreachDate":"2019-07-14","DataClasses":["Device information","Email addresses","Genders","Geographic locations","IP addresses","Passwords","Usernames"],"id":"3331b830-2c6c-44bb-b58e-74f926fb16e1","last_modified":1565049681429},{"Name":"BlackHatWorld","Domain":"blackhatworld.com","schema":1565049681135,"PwnCount":777387,"AddedDate":"2015-11-03T22:20:17Z","BreachDate":"2014-06-23","DataClasses":["Dates of birth","Email addresses","Instant messenger identities","IP addresses","Passwords","Usernames","Website activity"],"id":"4504eae7-79e1-42b5-9da3-51a794e5fd6b","last_modified":1565049681275},{"Name":"BitTorrent","Domain":"bittorrent.com","schema":1565049680982,"PwnCount":34235,"AddedDate":"2016-06-08T10:49:24Z","BreachDate":"2016-01-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"e37bfbf3-8470-4fc6-8bae-e597431c384c","last_modified":1565049681122},{"Name":"Bitly","Domain":"bitly.com","schema":1565049680829,"PwnCount":9313136,"AddedDate":"2017-10-06T06:31:50Z","BreachDate":"2014-05-08","DataClasses":["Email addresses","Passwords","Usernames"],"id":"d21ff3a9-bbc9-4ef9-a40e-7cdb6730b079","last_modified":1565049680969},{"Name":"BitcoinTalk","Domain":"bitcointalk.org","schema":1565049680678,"PwnCount":501407,"AddedDate":"2017-03-27T23:45:41Z","BreachDate":"2015-05-22","DataClasses":["Dates of birth","Email addresses","Genders","IP addresses","Passwords","Security questions and answers","Usernames","Website activity"],"id":"ec3d1f81-f66d-4b43-92bb-19a7be06452c","last_modified":1565049680816},{"Name":"BTSec","Domain":"forum.btcsec.com","schema":1565049680521,"PwnCount":4789599,"AddedDate":"2014-09-10T20:30:11Z","BreachDate":"2014-01-09","DataClasses":["Email addresses","Passwords"],"id":"f79db7b2-ecb6-4439-813a-8c4f5df3e791","last_modified":1565049680664},{"Name":"BiohackMe","Domain":"biohack.me","schema":1565049680372,"PwnCount":3402,"AddedDate":"2017-08-23T20:47:39Z","BreachDate":"2016-12-02","DataClasses":["Email addresses","Passwords","Private messages","Usernames"],"id":"3894ae14-a437-4127-bd96-9c1c44b83ad0","last_modified":1565049680507},{"Name":"BinWeevils","Domain":"binweevils.com","schema":1565049680218,"PwnCount":1287073,"AddedDate":"2017-08-18T07:10:57Z","BreachDate":"2014-09-01","DataClasses":["Ages","Email addresses","Genders","IP addresses","Passwords","Usernames"],"id":"001b9b20-5f13-47c8-8b63-862661d51ce1","last_modified":1565049680359},{"Name":"BigMoneyJobs","Domain":"bigmoneyjobs.com","schema":1565049680051,"PwnCount":36789,"AddedDate":"2014-04-08T05:44:10Z","BreachDate":"2014-04-03","DataClasses":["Career levels","Education levels","Email addresses","Names","Passwords","Phone numbers","Physical addresses","Salutations","User website URLs","Website activity"],"id":"b1f643d8-d2c3-40e3-b51a-dc9be6fb889f","last_modified":1565049680205},{"Name":"Bestialitysextaboo","Domain":"bestialitysextaboo.com","schema":1565049679889,"PwnCount":3204,"AddedDate":"2018-03-29T06:10:06Z","BreachDate":"2018-03-19","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Passwords","Private messages","Usernames"],"id":"8d8676da-457a-4473-a224-65094d3a58e3","last_modified":1565049680036},{"Name":"Bell2017","Domain":"bell.ca","schema":1565049679736,"PwnCount":2231256,"AddedDate":"2017-05-16T01:49:31Z","BreachDate":"2017-05-15","DataClasses":["Email addresses","Geographic locations","IP addresses","Job titles","Names","Passwords","Phone numbers","Spoken languages","Survey results","Usernames"],"id":"f6f64df3-c5a9-44a9-a3a3-c574332850f5","last_modified":1565049679875},{"Name":"Bell","Domain":"bell.ca","schema":1565049679584,"PwnCount":20902,"AddedDate":"2014-02-01T23:57:10Z","BreachDate":"2014-02-01","DataClasses":["Credit cards","Genders","Passwords","Usernames"],"id":"beb8670c-8409-47e3-b1b4-43cc07ed9610","last_modified":1565049679723},{"Name":"BeautifulPeople","Domain":"beautifulpeople.com","schema":1565049679426,"PwnCount":1100089,"AddedDate":"2016-04-25T10:05:34Z","BreachDate":"2015-11-11","DataClasses":["Beauty ratings","Car ownership statuses","Dates of birth","Drinking habits","Education levels","Email addresses","Genders","Geographic locations","Home ownership statuses","Income levels","IP addresses","Job titles","Names","Passwords","Personal descriptions","Personal interests","Physical attributes","Sexual orientations","Smoking habits","Website activity"],"id":"18397412-db0e-4475-b093-760b49477019","last_modified":1565049679572},{"Name":"BattlefieldHeroes","Domain":"battlefieldheroes.com","schema":1565049679274,"PwnCount":530270,"AddedDate":"2014-01-23T13:10:29Z","BreachDate":"2011-06-26","DataClasses":["Passwords","Usernames"],"id":"d331c5e1-23c6-452f-a114-ab7fd366ab74","last_modified":1565049679413},{"Name":"BannerBit","Domain":"bannerbit.com","schema":1565049679116,"PwnCount":213415,"AddedDate":"2019-01-08T10:56:34Z","BreachDate":"2018-12-29","DataClasses":["Email addresses","Passwords"],"id":"157138b1-a3e1-4f12-928f-ac6c95dd5659","last_modified":1565049679261},{"Name":"BabyNames","Domain":"babynames.com","schema":1565049678965,"PwnCount":846742,"AddedDate":"2018-10-24T06:27:03Z","BreachDate":"2008-10-24","DataClasses":["Email addresses","Passwords"],"id":"c3fd52f3-9da2-47ed-bf15-3c0eca5514ff","last_modified":1565049679102},{"Name":"Avast","Domain":"avast.com","schema":1565049678813,"PwnCount":422959,"AddedDate":"2016-03-12T22:08:58Z","BreachDate":"2014-05-26","DataClasses":["Email addresses","Passwords","Usernames"],"id":"a0802215-2a55-423c-97fd-a00aa56e611c","last_modified":1565049678952},{"Name":"Autocentrum","Domain":"autocentrum.pl","schema":1565049678663,"PwnCount":143717,"AddedDate":"2018-02-09T00:55:26Z","BreachDate":"2018-02-04","DataClasses":["Email addresses","Passwords"],"id":"555d6059-b39f-4238-996e-51082dd0d209","last_modified":1565049678801},{"Name":"AtlasQuantum","Domain":"atlasquantum.com","schema":1565049678514,"PwnCount":261463,"AddedDate":"2018-08-27T01:42:34Z","BreachDate":"2018-08-25","DataClasses":["Account balances","Email addresses","Names","Phone numbers"],"id":"b4a7abf3-5abf-4796-a368-7a55d8ecea6a","last_modified":1565049678650},{"Name":"Aternos","Domain":"aternos.org","schema":1565049678359,"PwnCount":1436486,"AddedDate":"2016-10-01T23:42:56Z","BreachDate":"2015-12-06","DataClasses":["Email addresses","IP addresses","Passwords","Usernames","Website activity"],"id":"ae5f1613-fe55-4fff-935e-a81dbebe7184","last_modified":1565049678501},{"Name":"AstroPID","Domain":"astropid.com","schema":1565049678198,"PwnCount":5788,"AddedDate":"2014-07-06T03:49:45Z","BreachDate":"2013-12-19","DataClasses":["Email addresses","Instant messenger identities","IP addresses","Names","Passwords","Private messages","Usernames","Website activity"],"id":"f65af38a-856f-4372-81b7-3b83387260f2","last_modified":1565049678346},{"Name":"AshleyMadison","Domain":"ashleymadison.com","schema":1565049678038,"PwnCount":30811934,"AddedDate":"2015-08-18T20:55:05Z","BreachDate":"2015-07-19","DataClasses":["Dates of birth","Email addresses","Ethnicities","Genders","Names","Passwords","Payment histories","Phone numbers","Physical addresses","Security questions and answers","Sexual orientations","Usernames","Website activity"],"id":"d6c3a549-a487-4a03-a0ec-878a1a79dc1e","last_modified":1565049678183},{"Name":"Artvalue","Domain":"artvalue.com","schema":1565049677885,"PwnCount":157692,"AddedDate":"2019-07-19T13:16:52Z","BreachDate":"2019-06-19","DataClasses":["Email addresses","Names","Passwords","Salutations","Usernames"],"id":"0d330a2f-3e27-4f38-858f-32346252726b","last_modified":1565049678024},{"Name":"ArmyForceOnline","Domain":"armyforceonline.com","schema":1565049677733,"PwnCount":1531235,"AddedDate":"2016-11-10T03:24:38Z","BreachDate":"2016-05-18","DataClasses":["Avatars","Email addresses","Geographic locations","IP addresses","Names","Passwords","Usernames","Website activity"],"id":"12e90d5f-5b1e-4475-9783-0ab4e27f4366","last_modified":1565049677873},{"Name":"ArmorGames","Domain":"armorgames.com","schema":1565049677562,"PwnCount":10604307,"AddedDate":"2019-07-20T06:03:31Z","BreachDate":"2019-01-01","DataClasses":["Bios","Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Passwords","Usernames"],"id":"a9377cb9-57fe-4e1f-af33-474a62146fa0","last_modified":1565049677720},{"Name":"Appartoo","Domain":"appartoo.com","schema":1565049677404,"PwnCount":49681,"AddedDate":"2019-05-02T07:07:24Z","BreachDate":"2017-03-25","DataClasses":["Ages","Auth tokens","Email addresses","Employment statuses","Genders","IP addresses","Marital statuses","Names","Passwords","Physical addresses","Private messages","Social media profiles"],"id":"df71a909-a5ff-4efc-9f56-8c134688203b","last_modified":1565049677549},{"Name":"Apollo","Domain":"apollo.io","schema":1565049677251,"PwnCount":125929660,"AddedDate":"2018-10-05T19:14:11Z","BreachDate":"2018-07-23","DataClasses":["Email addresses","Employers","Geographic locations","Job titles","Names","Phone numbers","Salutations","Social media profiles"],"id":"92e62db7-17a7-4f46-9455-19a99a4521ed","last_modified":1565049677391},{"Name":"Animoto","Domain":"animoto.com","schema":1565049677094,"PwnCount":22437749,"AddedDate":"2019-07-18T05:04:08Z","BreachDate":"2018-07-10","DataClasses":["Dates of birth","Email addresses","Geographic locations","Names","Passwords"],"id":"84779d3e-ca01-45c2-b0ec-ab971f4f0d77","last_modified":1565049677238},{"Name":"AnimePlanet","Domain":"anime-planet.com","schema":1565049676943,"PwnCount":368507,"AddedDate":"2019-07-28T00:35:07Z","BreachDate":"2016-01-01","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"24e1f047-8885-453c-9f69-2ba79dad2949","last_modified":1565049677081},{"Name":"AndroidForums","Domain":"androidforums.com","schema":1565049676784,"PwnCount":745355,"AddedDate":"2015-12-20T06:47:19Z","BreachDate":"2011-10-30","DataClasses":["Dates of birth","Email addresses","Homepage URLs","Instant messenger identities","IP addresses","Passwords"],"id":"f574fd09-98d2-4c53-b376-82564576733d","last_modified":1565049676930},{"Name":"Ancestry","Domain":"ancestry.com","schema":1565049676621,"PwnCount":297806,"AddedDate":"2017-12-24T04:28:45Z","BreachDate":"2015-11-07","DataClasses":["Email addresses","Passwords"],"id":"2afb364b-16b4-4d4d-87ea-d416f0555388","last_modified":1565049676771},{"Name":"AKP","Domain":"akparti.org.tr","schema":1565049676454,"PwnCount":917461,"AddedDate":"2017-10-01T03:52:37Z","BreachDate":"2016-07-19","DataClasses":["Email addresses","Email messages"],"id":"d2109213-1876-45f1-9f4a-a487e03f20f4","last_modified":1565049676605},{"Name":"AIType","Domain":"aitype.com","schema":1565049676301,"PwnCount":20580060,"AddedDate":"2017-12-08T21:31:25Z","BreachDate":"2017-12-05","DataClasses":["Address book contacts","Apps installed on devices","Cellular network names","Dates of birth","Device information","Email addresses","Genders","Geographic locations","IMEI numbers","IMSI numbers","IP addresses","Names","Phone numbers","Profile photos","Social media profiles"],"id":"0eee60a5-887e-4c56-9d85-57ce4e957794","last_modified":1565049676441},{"Name":"AhaShare","Domain":"ahashare.com","schema":1565049676140,"PwnCount":180468,"AddedDate":"2014-11-06T21:47:52Z","BreachDate":"2013-05-30","DataClasses":["Email addresses","Genders","Geographic locations","IP addresses","Passwords","Usernames","Website activity","Years of birth"],"id":"7e3d0307-0045-43ee-aa15-55f4d106617b","last_modified":1565049676287},{"Name":"AerServ","Domain":"aerserv.com","schema":1565049675987,"PwnCount":66308,"AddedDate":"2018-12-06T02:58:12Z","BreachDate":"2018-04-01","DataClasses":["Email addresses","Employers","Job titles","Names","Passwords","Phone numbers","Physical addresses"],"id":"e6bc5b8a-4286-4a09-8af8-62752f4cba1d","last_modified":1565049676126},{"Name":"AdultFanFiction","Domain":"adult-fanfiction.org","schema":1565049675837,"PwnCount":186082,"AddedDate":"2018-08-06T08:56:03Z","BreachDate":"2018-05-30","DataClasses":["Dates of birth","Email addresses","Names","Passwords"],"id":"20decb17-3ac0-4aa3-a41a-9b0a7d73abfc","last_modified":1565049675975},{"Name":"AdultFriendFinder","Domain":"adultfriendfinder.com","schema":1565049675675,"PwnCount":3867997,"AddedDate":"2015-05-22T06:03:44Z","BreachDate":"2015-05-21","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","IP addresses","Races","Relationship statuses","Sexual orientations","Spoken languages","Usernames"],"id":"e1020cbc-609c-4623-b6bd-f73d56a69fd0","last_modified":1565049675821},{"Name":"Adobe","Domain":"adobe.com","schema":1565049675523,"PwnCount":152445165,"AddedDate":"2013-12-04T00:00:00Z","BreachDate":"2013-10-04","DataClasses":["Email addresses","Password hints","Passwords","Usernames"],"id":"68131295-7265-481f-a79a-29467a80142c","last_modified":1565049675662},{"Name":"Adapt","Domain":"adapt.io","schema":1565049675352,"PwnCount":9363740,"AddedDate":"2018-11-22T19:43:06Z","BreachDate":"2018-11-05","DataClasses":["Email addresses","Employers","Job titles","Names","Phone numbers","Physical addresses","Social media profiles"],"id":"8bdded63-0fa1-40f4-9e6e-0d25dcbadfac","last_modified":1565049675511},{"Name":"AcneOrg","Domain":"acne.org","schema":1565049675198,"PwnCount":432943,"AddedDate":"2016-03-06T11:07:41Z","BreachDate":"2014-11-25","DataClasses":["Dates of birth","Email addresses","IP addresses","Passwords","Usernames"],"id":"a478405d-5bd5-4caf-9bd8-fb144968f9a8","last_modified":1565049675340},{"Name":"AbuseWithUs","Domain":"abusewith.us","schema":1565049675047,"PwnCount":1372550,"AddedDate":"2017-10-09T11:08:45Z","BreachDate":"2016-07-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"704ec260-5b5d-44d1-a5e0-e5ac88eab3c6","last_modified":1565049675182},{"Name":"Abandonia","Domain":"abandonia.com","schema":1565049674882,"PwnCount":776125,"AddedDate":"2017-06-05T05:56:47Z","BreachDate":"2015-11-01","DataClasses":["Email addresses","IP addresses","Passwords","Usernames"],"id":"0e72e3f0-c0ff-4513-a18f-0be9bd9c2ae9","last_modified":1565049675033},{"Name":"8tracks","Domain":"8tracks.com","schema":1565049674730,"PwnCount":7990619,"AddedDate":"2018-02-16T07:09:30Z","BreachDate":"2017-06-27","DataClasses":["Email addresses","Passwords"],"id":"1fd757ff-9580-4b09-b053-4e248047400c","last_modified":1565049674869},{"Name":"8fit","Domain":"8fit.com","schema":1565049674577,"PwnCount":15025407,"AddedDate":"2019-03-21T18:50:00Z","BreachDate":"2018-07-01","DataClasses":["Email addresses","Genders","Geographic locations","IP addresses","Names","Passwords"],"id":"47452814-32f2-4feb-b3ff-db0b2ed938d2","last_modified":1565049674716},{"Name":"500px","Domain":"500px.com","schema":1565049674419,"PwnCount":14867999,"AddedDate":"2019-03-25T08:01:09Z","BreachDate":"2018-07-05","DataClasses":["Dates of birth","Email addresses","Genders","Geographic locations","Names","Passwords","Usernames"],"id":"3cf6c245-8a97-484c-a6cd-14a261e7738b","last_modified":1565049674564},{"Name":"2fast4u","Domain":"2fast4u.be","schema":1565049674267,"PwnCount":17706,"AddedDate":"2018-01-07T08:19:39Z","BreachDate":"2017-12-20","DataClasses":["Email addresses","Passwords","Usernames"],"id":"2d39658a-a45b-400d-b9dd-47c3c5fb6295","last_modified":1565049674405},{"Name":"17Media","Domain":"17app.co","schema":1565049674103,"PwnCount":4009640,"AddedDate":"2016-07-08T01:55:03Z","BreachDate":"2016-04-19","DataClasses":["Device information","Email addresses","IP addresses","Passwords","Usernames"],"id":"6cc0d194-934c-4736-ac74-5f99cce11a96","last_modified":1565049674254},{"Name":"000webhost","Domain":"000webhost.com","schema":1565036387559,"PwnCount":14936670,"AddedDate":"2015-10-26T23:35:45Z","BreachDate":"2015-03-01","DataClasses":["Email addresses","IP addresses","Names","Passwords"],"id":"e45a9fb6-6514-4311-9ed8-79ea119733fd","last_modified":1565049674090}]} ݺh`)`)Cm`):https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/fxmonitor-breaches/changeset?_expected=1616596312175strongly-framed1security-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request-methodGETresponse-headHTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 149781 +Access-Control-Expose-Headers: Backoff, Content-Length, Content-Type, Retry-After, Alert +Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none'; +Date: Mon, 24 May 2021 04:06:22 GMT +Strict-Transport-Security: max-age=31536000 +X-Content-Type-Options: nosniff +X-Cache: Hit from cloudfront +Via: 1.1 4d1d94485bad1bf3835c40164ae90b1f.cloudfront.net (CloudFront) +X-Amz-Cf-Pop: NRT20-C3 +X-Amz-Cf-Id: EjZHPMnAT-6uV_lZtHvUx1HQNmTigjNYBXPpa85vDzibrv2PrWBGow== +Age: 868 +original-response-headersContent-Type: application/json +Content-Length: 149781 +Connection: keep-alive +Access-Control-Expose-Headers: Backoff, Content-Length, Content-Type, Retry-After, Alert +Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none'; +Date: Mon, 24 May 2021 04:06:22 GMT +Strict-Transport-Security: max-age=31536000 +X-Content-Type-Options: nosniff +X-Cache: Hit from cloudfront +Via: 1.1 4d1d94485bad1bf3835c40164ae90b1f.cloudfront.net (CloudFront) +X-Amz-Cf-Pop: NRT20-C3 +X-Amz-Cf-Id: EjZHPMnAT-6uV_lZtHvUx1HQNmTigjNYBXPpa85vDzibrv2PrWBGow== +Age: 868 +ctid1net-response-time-onstart110net-response-time-onstop607I \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80230BD138D1B651D985A8262D1D000419019BFC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80230BD138D1B651D985A8262D1D000419019BFC new file mode 100644 index 0000000..608a967 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80230BD138D1B651D985A8262D1D000419019BFC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80730B6C5AB612FD25A6C4196A3EFAEE38DF9346 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80730B6C5AB612FD25A6C4196A3EFAEE38DF9346 new file mode 100644 index 0000000..7445651 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80730B6C5AB612FD25A6C4196A3EFAEE38DF9346 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8084586EFBBF27D189B4A82AEA1C1B78CE772B82 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8084586EFBBF27D189B4A82AEA1C1B78CE772B82 new file mode 100644 index 0000000..2006a07 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8084586EFBBF27D189B4A82AEA1C1B78CE772B82 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80B6F6604D7B19A5C748BA132C42683E8E31FDA9 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80B6F6604D7B19A5C748BA132C42683E8E31FDA9 new file mode 100644 index 0000000..3165f0d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/80B6F6604D7B19A5C748BA132C42683E8E31FDA9 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/836069F1D160A10713A3CDEF14A3698AB84E5310 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/836069F1D160A10713A3CDEF14A3698AB84E5310 new file mode 100644 index 0000000..e10d95d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/836069F1D160A10713A3CDEF14A3698AB84E5310 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83950DC5B9404ADA5CEAA591E82218992A6EFB4A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83950DC5B9404ADA5CEAA591E82218992A6EFB4A new file mode 100644 index 0000000..210c08f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83950DC5B9404ADA5CEAA591E82218992A6EFB4A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83ADE40216D6A370A78A28ECA2EB0805FBD73379 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83ADE40216D6A370A78A28ECA2EB0805FBD73379 new file mode 100644 index 0000000..1686388 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83ADE40216D6A370A78A28ECA2EB0805FBD73379 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83B426C1FF8B2DC256E24F0612D0A8014F9993CF b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83B426C1FF8B2DC256E24F0612D0A8014F9993CF new file mode 100644 index 0000000..b0d5ce8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/83B426C1FF8B2DC256E24F0612D0A8014F9993CF differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8442EAA12BB30AA7C4BFD153C6AC94CBA80AD2EA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8442EAA12BB30AA7C4BFD153C6AC94CBA80AD2EA new file mode 100644 index 0000000..3e10624 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8442EAA12BB30AA7C4BFD153C6AC94CBA80AD2EA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/84A6639456DDEF3BD0E55FCC5A13DA40E297A313 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/84A6639456DDEF3BD0E55FCC5A13DA40E297A313 new file mode 100644 index 0000000..91e679b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/84A6639456DDEF3BD0E55FCC5A13DA40E297A313 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/854ACE47988D33FFCD6D69793D7DA5942AD81F03 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/854ACE47988D33FFCD6D69793D7DA5942AD81F03 new file mode 100644 index 0000000..2428fee Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/854ACE47988D33FFCD6D69793D7DA5942AD81F03 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85709EA191343164BB734F525CCC56ACF9B83DCA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85709EA191343164BB734F525CCC56ACF9B83DCA new file mode 100644 index 0000000..2d49c36 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85709EA191343164BB734F525CCC56ACF9B83DCA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85722CB80BD6DEA15C1B50355E093E28A66AE46D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85722CB80BD6DEA15C1B50355E093E28A66AE46D new file mode 100644 index 0000000..3c72e3c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85722CB80BD6DEA15C1B50355E093E28A66AE46D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B4BA76DDD8F78007B6B83D08E1DD6CA0303445 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B4BA76DDD8F78007B6B83D08E1DD6CA0303445 new file mode 100644 index 0000000..e3287ff Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B4BA76DDD8F78007B6B83D08E1DD6CA0303445 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B5EAD6F5318E41E0F7D196F03EC79322F9178A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B5EAD6F5318E41E0F7D196F03EC79322F9178A new file mode 100644 index 0000000..2429b6b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85B5EAD6F5318E41E0F7D196F03EC79322F9178A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85DF38A097978A6180DCCFB966943F91D3C6B208 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85DF38A097978A6180DCCFB966943F91D3C6B208 new file mode 100644 index 0000000..36e9a22 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/85DF38A097978A6180DCCFB966943F91D3C6B208 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/86134531009B6536F11466CA086C29720EFB6E52 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/86134531009B6536F11466CA086C29720EFB6E52 new file mode 100644 index 0000000..ea28dd9 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/86134531009B6536F11466CA086C29720EFB6E52 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8817032C67A60624BCA75EE257E8D9E91A158708 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8817032C67A60624BCA75EE257E8D9E91A158708 new file mode 100644 index 0000000..7b5cc43 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8817032C67A60624BCA75EE257E8D9E91A158708 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/88644577C96DFF6E1CF321A42F4C4153546ACB40 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/88644577C96DFF6E1CF321A42F4C4153546ACB40 new file mode 100644 index 0000000..6d5899a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/88644577C96DFF6E1CF321A42F4C4153546ACB40 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/893ED495BF548C39A30F4E3EF4408F2FBB8B45C2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/893ED495BF548C39A30F4E3EF4408F2FBB8B45C2 new file mode 100644 index 0000000..7ac09c4 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/893ED495BF548C39A30F4E3EF4408F2FBB8B45C2 @@ -0,0 +1,285 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +## These messages are used as headings in the recommendation doorhanger + +cfr-doorhanger-extension-heading = Recommended Extension +cfr-doorhanger-feature-heading = Recommended Feature +cfr-doorhanger-pintab-heading = Try This: Pin Tab + +## + +cfr-doorhanger-extension-sumo-link = + .tooltiptext = Why am I seeing this + +cfr-doorhanger-extension-cancel-button = Not Now + .accesskey = N + +cfr-doorhanger-extension-ok-button = Add Now + .accesskey = A +cfr-doorhanger-pintab-ok-button = Pin This Tab + .accesskey = P + +cfr-doorhanger-extension-manage-settings-button = Manage Recommendation Settings + .accesskey = M + +cfr-doorhanger-extension-never-show-recommendation = Don’t Show Me This Recommendation + .accesskey = S + +cfr-doorhanger-extension-learn-more-link = Learn more + +# This string is used on a new line below the add-on name +# Variables: +# $name (String) - Add-on author name +cfr-doorhanger-extension-author = by { $name } + +# This is a notification displayed in the address bar. +# When clicked it opens a panel with a message for the user. +cfr-doorhanger-extension-notification = Recommendation +cfr-doorhanger-extension-notification2 = Recommendation + .tooltiptext = Extension recommendation + .a11y-announcement = Extension recommendation available + +# This is a notification displayed in the address bar. +# When clicked it opens a panel with a message for the user. +cfr-doorhanger-feature-notification = Recommendation + .tooltiptext = Feature recommendation + .a11y-announcement = Feature recommendation available + +## Add-on statistics +## These strings are used to display the total number of +## users and rating for an add-on. They are shown next to each other. + +# Variables: +# $total (Number) - The rating of the add-on from 1 to 5 +cfr-doorhanger-extension-rating = + .tooltiptext = + { $total -> + [one] { $total } star + *[other] { $total } stars + } +# Variables: +# $total (Number) - The total number of users using the add-on +cfr-doorhanger-extension-total-users = + { $total -> + [one] { $total } user + *[other] { $total } users + } + +cfr-doorhanger-pintab-description = Get easy access to your most-used sites. Keep sites open in a tab (even when you restart). + +## These messages are steps on how to use the feature and are shown together. + +cfr-doorhanger-pintab-step1 = Right-click on the tab you want to pin. +cfr-doorhanger-pintab-step2 = Select Pin Tab from the menu. +cfr-doorhanger-pintab-step3 = If the site has an update you’ll see a blue dot on your pinned tab. + +cfr-doorhanger-pintab-animation-pause = Pause +cfr-doorhanger-pintab-animation-resume = Resume + +## Firefox Accounts Message + +cfr-doorhanger-bookmark-fxa-header = Sync your bookmarks everywhere. +cfr-doorhanger-bookmark-fxa-body = Great find! Now don’t be left without this bookmark on your mobile devices. Get Started with a { -fxaccount-brand-name }. +cfr-doorhanger-bookmark-fxa-link-text = Sync bookmarks now… +cfr-doorhanger-bookmark-fxa-close-btn-tooltip = + .aria-label = Close button + .title = Close + +## Protections panel + +cfr-protections-panel-header = Browse without being followed +cfr-protections-panel-body = Keep your data to yourself. { -brand-short-name } protects you from many of the most common trackers that follow what you do online. +cfr-protections-panel-link-text = Learn more + +## What's New toolbar button and panel + +# This string is used by screen readers to offer a text based alternative for +# the notification icon +cfr-badge-reader-label-newfeature = New feature: + +cfr-whatsnew-button = + .label = What’s New + .tooltiptext = What’s New + +cfr-whatsnew-release-notes-link-text = Read the release notes + +# This string is displayed before a large numeral that indicates the total +# number of tracking elements blocked. Don’t add $blockedCount to your +# localization, because it would result in the number showing twice. +cfr-whatsnew-tracking-blocked-title = + { $blockedCount -> + [one] Tracker blocked + *[other] Trackers blocked + } +cfr-whatsnew-tracking-blocked-subtitle = + Since { DATETIME($earliestDate, month: "long", year: "numeric") } +cfr-whatsnew-tracking-blocked-link-text = View Report + +cfr-whatsnew-lockwise-backup-title = Back up your passwords +cfr-whatsnew-lockwise-backup-body = + Now generate secure passwords you can access anywhere you sign in. +cfr-whatsnew-lockwise-backup-link-text = Turn on backups + +cfr-whatsnew-lockwise-take-title = Take your passwords with you +cfr-whatsnew-lockwise-take-body = + The { -lockwise-brand-short-name } mobile app lets you securely access your + backed up passwords from anywhere. +cfr-whatsnew-lockwise-take-link-text = Get the app + +## Search bar + +cfr-whatsnew-searchbar-icon-alt-text = Magnifying glass icon + +## Picture-in-Picture + +cfr-whatsnew-pip-header = Watch videos while you browse +cfr-whatsnew-pip-body = Picture-in-picture pops video into a floating window so you can watch while working in other tabs. +cfr-whatsnew-pip-cta = Learn more + +## Fingerprinter Counter + +# This string is displayed before a large numeral that indicates the total +# number of tracking elements blocked. Don’t add $fingerprinterCount to your +# localization, because it would result in the number showing twice. +cfr-whatsnew-fingerprinter-counter-header = + { $fingerprinterCount -> + [one] Fingerprinter blocked + *[other] Fingerprinters blocked + } +cfr-whatsnew-fingerprinter-counter-body = { -brand-shorter-name } blocks many fingerprinters that secretly gather information about your device and actions to create an advertising profile of you. + +# Message variation when fingerprinters count is less than 10 +cfr-whatsnew-fingerprinter-counter-header-alt = Fingerprinters +cfr-whatsnew-fingerprinter-counter-body-alt = { -brand-shorter-name } can block fingerprinters that secretly gather information about your device and actions to create an advertising profile of you. + +## Bookmark Sync + +cfr-doorhanger-sync-bookmarks-header = Get this bookmark on your phone +cfr-doorhanger-sync-bookmarks-body = Take your bookmarks, passwords, history and more everywhere you’re signed into { -brand-product-name }. +cfr-doorhanger-sync-bookmarks-ok-button = Turn on { -sync-brand-short-name } + .accesskey = T + +## Login Sync + +cfr-doorhanger-sync-logins-header = Never Lose a Password Again +cfr-doorhanger-sync-logins-body = Securely store and sync your passwords to all your devices. +cfr-doorhanger-sync-logins-ok-button = Turn on { -sync-brand-short-name } + .accesskey = T + +## Social Tracking Protection + +cfr-doorhanger-socialtracking-ok-button = See Protections + .accesskey = P +cfr-doorhanger-socialtracking-close-button = Close + .accesskey = C +cfr-doorhanger-socialtracking-dont-show-again = Don’t show me messages like this again + .accesskey = D +cfr-doorhanger-socialtracking-heading = { -brand-short-name } stopped a social network from tracking you here +cfr-doorhanger-socialtracking-description = Your privacy matters. { -brand-short-name } now blocks common social media trackers, limiting how much data they can collect about what you do online. +cfr-doorhanger-fingerprinters-heading = { -brand-short-name } blocked a fingerprinter on this page +cfr-doorhanger-fingerprinters-description = Your privacy matters. { -brand-short-name } now blocks fingerprinters, which collect pieces of uniquely identifiable information about your device to track you. +cfr-doorhanger-cryptominers-heading = { -brand-short-name } blocked a cryptominer on this page +cfr-doorhanger-cryptominers-description = Your privacy matters. { -brand-short-name } now blocks cryptominers, which use your system’s computing power to mine digital money. + +## Enhanced Tracking Protection Milestones + +# Variables: +# $blockedCount (Number) - The total count of blocked trackers. This number will always be greater than 1. +# $date (Datetime) - The date we began recording the count of blocked trackers +cfr-doorhanger-milestone-heading2 = + { $blockedCount -> + *[other] { -brand-short-name } blocked over { $blockedCount } trackers since { DATETIME($date, month: "long", year: "numeric") }! + } +cfr-doorhanger-milestone-ok-button = See All + .accesskey = S +cfr-doorhanger-milestone-close-button = Close + .accesskey = C + +## What’s New Panel Content for Firefox 76 +## Protections Dashboard message + +cfr-whatsnew-protections-header = Protections at a glance +cfr-whatsnew-protections-body = The Protections Dashboard includes summary reports about data breaches and password management. You can now track how many breaches you’ve resolved, and see if any of your saved passwords may have been exposed in a data breach. +cfr-whatsnew-protections-cta-link = View Protections Dashboard +cfr-whatsnew-protections-icon-alt = Shield icon + +## DOH Message + +cfr-doorhanger-doh-body = Your privacy matters. { -brand-short-name } now securely routes your DNS requests whenever possible to a partner service to protect you while you browse. +cfr-doorhanger-doh-header = More secure, encrypted DNS lookups +cfr-doorhanger-doh-primary-button = OK, Got it + .accesskey = O +cfr-doorhanger-doh-secondary-button = Disable + .accesskey = D + +## Fission Experiment Message + +cfr-doorhanger-fission-body-approved = Your privacy matters. { -brand-short-name } now isolates, or sandboxes, websites from each other, which makes it harder for hackers to steal passwords, credit card numbers, and other sensitive information. +cfr-doorhanger-fission-header = Site Isolation +cfr-doorhanger-fission-primary-button = OK, Got it + .accesskey = O +cfr-doorhanger-fission-secondary-button = Learn more + .accesskey = L + +## What's new: Cookies message + +cfr-whatsnew-clear-cookies-header = Automatic protection from sneaky tracking tactics +cfr-whatsnew-clear-cookies-body = Some trackers redirect you to other websites that secretly set cookies. { -brand-short-name } now automatically clears those cookies so you can’t be followed. +cfr-whatsnew-clear-cookies-image-alt = Cookie blocked illustration + +## What's new: Media controls message + +cfr-whatsnew-media-keys-header = More media controls +cfr-whatsnew-media-keys-body = Play and pause audio or video right from your keyboard or headset, making it easy to control media from another tab, program, or even when your computer is locked. You can also move between tracks using the forward and back keys. +cfr-whatsnew-media-keys-button = Learn how + +## What's new: Search shortcuts + +cfr-whatsnew-search-shortcuts-header = Search shortcuts in the address bar +cfr-whatsnew-search-shortcuts-body = Now, when you type a search engine or specific site into the address bar, a blue shortcut will appear in the search suggestions beneath. Select that shortcut to complete your search directly from the address bar. + +## What's new: Cookies protection + +cfr-whatsnew-supercookies-header = Protection from malicious supercookies +cfr-whatsnew-supercookies-body = Websites can secretly attach a “supercookie” to your browser that can follow you around the web, even after you clear your cookies. { -brand-short-name } now provides strong protection against supercookies so they can’t be used to track your online activities from one site to the next. + +## What's new: Better bookmarking + +cfr-whatsnew-bookmarking-header = Better bookmarking +cfr-whatsnew-bookmarking-body = It’s easier to keep track of your favorite sites. { -brand-short-name } now remembers your preferred location for saved bookmarks, shows the bookmarks toolbar by default on new tabs, and gives you easy access to the rest of your bookmarks via a toolbar folder. + +## What's new: Cross-site cookie tracking + +cfr-whatsnew-cross-site-tracking-header = Comprehensive protection from cross-site cookie tracking +cfr-whatsnew-cross-site-tracking-body = You can now opt in to better protection from cookie tracking. { -brand-short-name} can isolate your activities and data to the site you’re currently on so information stored in the browser isn’t shared between websites. +c@x`)`)Cm`n:https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-language-packs/e6e33bb3-2687-4472-9c8e-704cfe811eed.ftlstrongly-framed1security-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request-methodGETresponse-headHTTP/1.1 200 OK +Content-Type: application/octet-stream +Content-Length: 12130 +Last-Modified: Mon, 22 Feb 2021 14:33:54 GMT +x-amz-version-id: kaU66J.5yMwQto7gps5CmQ8EXl.bgjIK +Accept-Ranges: bytes +Server: AmazonS3 +Date: Mon, 24 May 2021 03:18:17 GMT +ETag: "d47f11227a82f9d4669565c96f5a8c26" +X-Cache: Hit from cloudfront +Via: 1.1 71c0bff02d86d03bc100194555d98854.cloudfront.net (CloudFront) +X-Amz-Cf-Pop: NRT51-C2 +X-Amz-Cf-Id: _H29wKEBoM12ZVeoYpn4bSeFhTsqGBtza8xHzqXi7ND75LICaIzd8g== +Age: 62871 +original-response-headersContent-Type: application/octet-stream +Content-Length: 12130 +Connection: keep-alive +Last-Modified: Mon, 22 Feb 2021 14:33:54 GMT +x-amz-version-id: kaU66J.5yMwQto7gps5CmQ8EXl.bgjIK +Accept-Ranges: bytes +Server: AmazonS3 +Date: Mon, 24 May 2021 03:18:17 GMT +ETag: "d47f11227a82f9d4669565c96f5a8c26" +X-Cache: Hit from cloudfront +Via: 1.1 71c0bff02d86d03bc100194555d98854.cloudfront.net (CloudFront) +X-Amz-Cf-Pop: NRT51-C2 +X-Amz-Cf-Id: _H29wKEBoM12ZVeoYpn4bSeFhTsqGBtza8xHzqXi7ND75LICaIzd8g== +Age: 62871 +ctid1net-response-time-onstart535net-response-time-onstop535/b \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8A6C5D8CDDADBBEF89D9E0D3399641F5A99CB890 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8A6C5D8CDDADBBEF89D9E0D3399641F5A99CB890 new file mode 100644 index 0000000..bb0635d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8A6C5D8CDDADBBEF89D9E0D3399641F5A99CB890 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8C36600CA55344BB8B2BB63F5DF6A46C92167239 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8C36600CA55344BB8B2BB63F5DF6A46C92167239 new file mode 100644 index 0000000..e4d4f6d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8C36600CA55344BB8B2BB63F5DF6A46C92167239 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8CC228A8EFA0B3041D3564CB0A3A4FC9BC23D0AE b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8CC228A8EFA0B3041D3564CB0A3A4FC9BC23D0AE new file mode 100644 index 0000000..9f1237a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8CC228A8EFA0B3041D3564CB0A3A4FC9BC23D0AE differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8D11474DE7BED2B2EA5B39A47F72A9A585742973 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8D11474DE7BED2B2EA5B39A47F72A9A585742973 new file mode 100644 index 0000000..0e0c24f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8D11474DE7BED2B2EA5B39A47F72A9A585742973 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8E6A48C835FD7CE87CFB345E589DB57C9C507DF0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8E6A48C835FD7CE87CFB345E589DB57C9C507DF0 new file mode 100644 index 0000000..1812276 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/8E6A48C835FD7CE87CFB345E589DB57C9C507DF0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9016CA0537B76442E32CA34DEC0EFCB970C4C4F5 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9016CA0537B76442E32CA34DEC0EFCB970C4C4F5 new file mode 100644 index 0000000..51d84b7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9016CA0537B76442E32CA34DEC0EFCB970C4C4F5 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9017BE9523D488E6A348D2E455521F64BFAF2A96 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9017BE9523D488E6A348D2E455521F64BFAF2A96 new file mode 100644 index 0000000..859446d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9017BE9523D488E6A348D2E455521F64BFAF2A96 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90E55E693F18BA1425DF380B092D8E07CEADDA36 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90E55E693F18BA1425DF380B092D8E07CEADDA36 new file mode 100644 index 0000000..58937a3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90E55E693F18BA1425DF380B092D8E07CEADDA36 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90FB0F6C55A5CB810DC469748126235132197079 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90FB0F6C55A5CB810DC469748126235132197079 new file mode 100644 index 0000000..37920c2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/90FB0F6C55A5CB810DC469748126235132197079 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/94AF7FD18275EAC637840D55916716AC23C7D4C7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/94AF7FD18275EAC637840D55916716AC23C7D4C7 new file mode 100644 index 0000000..97d27a7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/94AF7FD18275EAC637840D55916716AC23C7D4C7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/951F562FA34FA71254C3B4A4C184FAC718BFEE5E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/951F562FA34FA71254C3B4A4C184FAC718BFEE5E new file mode 100644 index 0000000..f75e820 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/951F562FA34FA71254C3B4A4C184FAC718BFEE5E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9528CFD27613AA42129C547C3AE0D5EBA56EAACA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9528CFD27613AA42129C547C3AE0D5EBA56EAACA new file mode 100644 index 0000000..f1c00d8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9528CFD27613AA42129C547C3AE0D5EBA56EAACA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9534A514DEA444DBD26CA8377A54B351383A1892 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9534A514DEA444DBD26CA8377A54B351383A1892 new file mode 100644 index 0000000..c74a5ce Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9534A514DEA444DBD26CA8377A54B351383A1892 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/95A9B53DF1A54F3A50A66A1D04A0C55522F53F24 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/95A9B53DF1A54F3A50A66A1D04A0C55522F53F24 new file mode 100644 index 0000000..04824c7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/95A9B53DF1A54F3A50A66A1D04A0C55522F53F24 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96195C0A93742EB9196332FA4189DF1BA4EAFB8C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96195C0A93742EB9196332FA4189DF1BA4EAFB8C new file mode 100644 index 0000000..0a38403 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96195C0A93742EB9196332FA4189DF1BA4EAFB8C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96F80FC87077D5BD81602B9845580028A32B440B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96F80FC87077D5BD81602B9845580028A32B440B new file mode 100644 index 0000000..554a777 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/96F80FC87077D5BD81602B9845580028A32B440B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/971D7F47C83DD7C1997802747016F42879671B85 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/971D7F47C83DD7C1997802747016F42879671B85 new file mode 100644 index 0000000..6b42628 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/971D7F47C83DD7C1997802747016F42879671B85 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9723AAAB1A5A0F74D29FD6BB0748BC0A25CCA7A1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9723AAAB1A5A0F74D29FD6BB0748BC0A25CCA7A1 new file mode 100644 index 0000000..40147c7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9723AAAB1A5A0F74D29FD6BB0748BC0A25CCA7A1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9770DB05350BC108AFED9D82C928FFF7D1E65F6D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9770DB05350BC108AFED9D82C928FFF7D1E65F6D new file mode 100644 index 0000000..1da2954 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9770DB05350BC108AFED9D82C928FFF7D1E65F6D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/97B742953D4B9AE71B93049A796D07FAFD2494E2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/97B742953D4B9AE71B93049A796D07FAFD2494E2 new file mode 100644 index 0000000..a93ee03 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/97B742953D4B9AE71B93049A796D07FAFD2494E2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98BD26FCA3A60A2556DDA90055CA6AA9EEC5082D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98BD26FCA3A60A2556DDA90055CA6AA9EEC5082D new file mode 100644 index 0000000..986730c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98BD26FCA3A60A2556DDA90055CA6AA9EEC5082D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98E7F8D76509844398CCF67AC5DFA26D4F5053E5 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98E7F8D76509844398CCF67AC5DFA26D4F5053E5 new file mode 100644 index 0000000..60eb9ed Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/98E7F8D76509844398CCF67AC5DFA26D4F5053E5 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/993E65F28CD39146CBFE904A586EC309B56C9743 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/993E65F28CD39146CBFE904A586EC309B56C9743 new file mode 100644 index 0000000..f085eac Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/993E65F28CD39146CBFE904A586EC309B56C9743 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9AFCEBAC26F32FC753602D4102759DE612D64132 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9AFCEBAC26F32FC753602D4102759DE612D64132 new file mode 100644 index 0000000..05dd8fc Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9AFCEBAC26F32FC753602D4102759DE612D64132 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B5E71E05AE88C290BEE23E2E92C4EA9B9BAC0C8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B5E71E05AE88C290BEE23E2E92C4EA9B9BAC0C8 new file mode 100644 index 0000000..20aad1f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B5E71E05AE88C290BEE23E2E92C4EA9B9BAC0C8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B7CC560961ED948DD60FE0A1222278D0C7974D0 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B7CC560961ED948DD60FE0A1222278D0C7974D0 new file mode 100644 index 0000000..5e3a910 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9B7CC560961ED948DD60FE0A1222278D0C7974D0 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9CD0430B2D14D7F188EA6204D3557E3B15EEADE8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9CD0430B2D14D7F188EA6204D3557E3B15EEADE8 new file mode 100644 index 0000000..06aa371 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9CD0430B2D14D7F188EA6204D3557E3B15EEADE8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9F05825B5A4C42CB0CD16BB7FC5A6F2520480776 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9F05825B5A4C42CB0CD16BB7FC5A6F2520480776 new file mode 100644 index 0000000..c49e9b3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/9F05825B5A4C42CB0CD16BB7FC5A6F2520480776 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A07A7799D3661EF17BD9512071A1ACFCAAE47A7B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A07A7799D3661EF17BD9512071A1ACFCAAE47A7B new file mode 100644 index 0000000..9eebe4b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A07A7799D3661EF17BD9512071A1ACFCAAE47A7B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0A09D9279810BB60C081C54A86DAF6A54A6D1F3 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0A09D9279810BB60C081C54A86DAF6A54A6D1F3 new file mode 100644 index 0000000..d35877d Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0A09D9279810BB60C081C54A86DAF6A54A6D1F3 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0F92723D2D58C4ADACD0BFD09E0232375DD826D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0F92723D2D58C4ADACD0BFD09E0232375DD826D new file mode 100644 index 0000000..2a8d8e8 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A0F92723D2D58C4ADACD0BFD09E0232375DD826D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A122A1E27336C5A4908D99D2E9ED0EF4A4E491BA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A122A1E27336C5A4908D99D2E9ED0EF4A4E491BA new file mode 100644 index 0000000..70d55ee Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A122A1E27336C5A4908D99D2E9ED0EF4A4E491BA differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A232043509717F5BB17C490A2D6E684A6D9C7C66 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A232043509717F5BB17C490A2D6E684A6D9C7C66 new file mode 100644 index 0000000..9eb0ef4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A232043509717F5BB17C490A2D6E684A6D9C7C66 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A25D2166A708A7ADCAEC00A2A6DAA72ABF3B7E25 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A25D2166A708A7ADCAEC00A2A6DAA72ABF3B7E25 new file mode 100644 index 0000000..ee14756 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A25D2166A708A7ADCAEC00A2A6DAA72ABF3B7E25 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A2E2C102A4718DC1AD2D6383FFA0AAFD172B64BC b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A2E2C102A4718DC1AD2D6383FFA0AAFD172B64BC new file mode 100644 index 0000000..6211f2e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A2E2C102A4718DC1AD2D6383FFA0AAFD172B64BC differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A37BEF033E1F7DE72C0D2A499C1DC4C99C7E4368 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A37BEF033E1F7DE72C0D2A499C1DC4C99C7E4368 new file mode 100644 index 0000000..dc7bc68 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A37BEF033E1F7DE72C0D2A499C1DC4C99C7E4368 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A5CDCED1260252E5B10D7CC6643D7D476EF02637 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A5CDCED1260252E5B10D7CC6643D7D476EF02637 new file mode 100644 index 0000000..9ec9030 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A5CDCED1260252E5B10D7CC6643D7D476EF02637 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A62FAD3B62E64602A3E44E074E563D66C75EEECB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A62FAD3B62E64602A3E44E074E563D66C75EEECB new file mode 100644 index 0000000..a16a06c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A62FAD3B62E64602A3E44E074E563D66C75EEECB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A63D27F690B5E7EBE7ABA57A337BC6DFF69D5F6D b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A63D27F690B5E7EBE7ABA57A337BC6DFF69D5F6D new file mode 100644 index 0000000..33c8df2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A63D27F690B5E7EBE7ABA57A337BC6DFF69D5F6D differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A661633D023288F90C00E1797432DD10A1F197D4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A661633D023288F90C00E1797432DD10A1F197D4 new file mode 100644 index 0000000..47ac5ca Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A661633D023288F90C00E1797432DD10A1F197D4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6BBCF71EAC1ED901116CE06FE1BBABB61678BE7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6BBCF71EAC1ED901116CE06FE1BBABB61678BE7 new file mode 100644 index 0000000..9cf405b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6BBCF71EAC1ED901116CE06FE1BBABB61678BE7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6D3EC0436E0C6FFE7B7B1A79743F546DCDCAC48 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6D3EC0436E0C6FFE7B7B1A79743F546DCDCAC48 new file mode 100644 index 0000000..9026a4f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A6D3EC0436E0C6FFE7B7B1A79743F546DCDCAC48 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A70AA0C807D62A797F00B85A5F60D498C073EEF8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A70AA0C807D62A797F00B85A5F60D498C073EEF8 new file mode 100644 index 0000000..4d2f6d6 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A70AA0C807D62A797F00B85A5F60D498C073EEF8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A795E5AF6B8F473D1DD0B6705FEFB054E38C3EEB b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A795E5AF6B8F473D1DD0B6705FEFB054E38C3EEB new file mode 100644 index 0000000..d666387 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A795E5AF6B8F473D1DD0B6705FEFB054E38C3EEB differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A812BAC18350BB290430831B07E41190D413CB2B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A812BAC18350BB290430831B07E41190D413CB2B new file mode 100644 index 0000000..3864aa4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A812BAC18350BB290430831B07E41190D413CB2B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A849A0A18CCB16C5466DE422E7092A2A3ED7D8C8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A849A0A18CCB16C5466DE422E7092A2A3ED7D8C8 new file mode 100644 index 0000000..7275bb5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A849A0A18CCB16C5466DE422E7092A2A3ED7D8C8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9257326515D34BCFCE3A6787B91BCADF8885485 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9257326515D34BCFCE3A6787B91BCADF8885485 new file mode 100644 index 0000000..289439f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9257326515D34BCFCE3A6787B91BCADF8885485 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A98CE7CB3B5F52794D60D3B9405B14A878081B65 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A98CE7CB3B5F52794D60D3B9405B14A878081B65 new file mode 100644 index 0000000..25b6096 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A98CE7CB3B5F52794D60D3B9405B14A878081B65 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FAF064FF952CEC465E58A8B7738237489000 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FAF064FF952CEC465E58A8B7738237489000 new file mode 100644 index 0000000..e9c3acd Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FAF064FF952CEC465E58A8B7738237489000 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FC0B56CE5B6E65B24DF10A9D424579EE44E6 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FC0B56CE5B6E65B24DF10A9D424579EE44E6 new file mode 100644 index 0000000..7c1d2ab Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/A9B7FC0B56CE5B6E65B24DF10A9D424579EE44E6 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AA9F798631E7F3CC2C5B9377DB5A6C469FF4A469 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AA9F798631E7F3CC2C5B9377DB5A6C469FF4A469 new file mode 100644 index 0000000..19dd2f3 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AA9F798631E7F3CC2C5B9377DB5A6C469FF4A469 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AB91593580F0DF07DA05854B6887C4E8DD87C1C2 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AB91593580F0DF07DA05854B6887C4E8DD87C1C2 new file mode 100644 index 0000000..3ce896f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AB91593580F0DF07DA05854B6887C4E8DD87C1C2 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ABFA90A790D6D2D59A849CF8C5075007EC32B688 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ABFA90A790D6D2D59A849CF8C5075007EC32B688 new file mode 100644 index 0000000..33ff7c0 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ABFA90A790D6D2D59A849CF8C5075007EC32B688 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AC77F802EF7DC01609EB50E171DFC210B597B0D1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AC77F802EF7DC01609EB50E171DFC210B597B0D1 new file mode 100644 index 0000000..139739a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AC77F802EF7DC01609EB50E171DFC210B597B0D1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE4139E495E1E0B5A955A129C659C83F8A47F622 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE4139E495E1E0B5A955A129C659C83F8A47F622 new file mode 100644 index 0000000..a63412b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE4139E495E1E0B5A955A129C659C83F8A47F622 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE79495740F156395069944AAD53ED8A973BCDA7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE79495740F156395069944AAD53ED8A973BCDA7 new file mode 100644 index 0000000..1880eb5 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AE79495740F156395069944AAD53ED8A973BCDA7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AFB778FF9E89E44A21C0A259F71DF3734684925C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AFB778FF9E89E44A21C0A259F71DF3734684925C new file mode 100644 index 0000000..335f5c4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/AFB778FF9E89E44A21C0A259F71DF3734684925C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B04B952EC2C605D6B6D386CD4D7F9EF7F3348233 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B04B952EC2C605D6B6D386CD4D7F9EF7F3348233 new file mode 100644 index 0000000..223f7fb Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B04B952EC2C605D6B6D386CD4D7F9EF7F3348233 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0866DCDCF2973982F2D2EB6FECE836BECEB2823 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0866DCDCF2973982F2D2EB6FECE836BECEB2823 new file mode 100644 index 0000000..1649f07 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0866DCDCF2973982F2D2EB6FECE836BECEB2823 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B08DB85AC19DAEE52F991F4AAA6A3DA4FDCE563E b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B08DB85AC19DAEE52F991F4AAA6A3DA4FDCE563E new file mode 100644 index 0000000..385d179 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B08DB85AC19DAEE52F991F4AAA6A3DA4FDCE563E differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0953C09DD61738F8438116B61A3C90B5BE690D1 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0953C09DD61738F8438116B61A3C90B5BE690D1 new file mode 100644 index 0000000..a7162b7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B0953C09DD61738F8438116B61A3C90B5BE690D1 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B12F26136C9355331F068C50AED2DC4B3DCE0C3A b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B12F26136C9355331F068C50AED2DC4B3DCE0C3A new file mode 100644 index 0000000..e565771 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B12F26136C9355331F068C50AED2DC4B3DCE0C3A differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1A37417646D397CB841B06694CBDC33263C4772 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1A37417646D397CB841B06694CBDC33263C4772 new file mode 100644 index 0000000..23419d4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1A37417646D397CB841B06694CBDC33263C4772 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1C52257BDD03B39635981BF1DA0574475290CD7 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1C52257BDD03B39635981BF1DA0574475290CD7 new file mode 100644 index 0000000..a7e8c47 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B1C52257BDD03B39635981BF1DA0574475290CD7 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B25C5683E9DC6C878F19CFC17AADAE3E02DC1B56 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B25C5683E9DC6C878F19CFC17AADAE3E02DC1B56 new file mode 100644 index 0000000..6a0f45c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B25C5683E9DC6C878F19CFC17AADAE3E02DC1B56 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2A12A28FDF48B6FB97F98ABD7AF182EDF583C72 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2A12A28FDF48B6FB97F98ABD7AF182EDF583C72 new file mode 100644 index 0000000..fab1d06 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2A12A28FDF48B6FB97F98ABD7AF182EDF583C72 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2B6E1B0B51E3221B278D1781138649A743CFEB5 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2B6E1B0B51E3221B278D1781138649A743CFEB5 new file mode 100644 index 0000000..525d45f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B2B6E1B0B51E3221B278D1781138649A743CFEB5 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B32A4B31563DBD5DF75B5D5F14DB2D9725A568E6 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B32A4B31563DBD5DF75B5D5F14DB2D9725A568E6 new file mode 100644 index 0000000..e98dad7 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B32A4B31563DBD5DF75B5D5F14DB2D9725A568E6 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B344DEF5B1D1CE238B0A130C8023FD03588BC104 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B344DEF5B1D1CE238B0A130C8023FD03588BC104 new file mode 100644 index 0000000..e2031dc Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B344DEF5B1D1CE238B0A130C8023FD03588BC104 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B4B5EA18CCABB53CFAA68D113121B3C4690349CA b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B4B5EA18CCABB53CFAA68D113121B3C4690349CA new file mode 100644 index 0000000..06a4ea3 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/B4B5EA18CCABB53CFAA68D113121B3C4690349CA @@ -0,0 +1,17 @@ +/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/ +!function(a,b){a(function(){"use strict";function a(a,b){return null!=a&&null!=b&&a.toLowerCase()===b.toLowerCase()}function c(a,b){var c,d,e=a.length;if(!e||!b)return!1;for(c=b.toLowerCase(),d=0;d=0&&(c=c.substring(0,j)+"([\\w._\\+]+)"+c.substring(j+5)),b[e]=new RegExp(c,"i");k.props[a]=b}d(k.oss),d(k.phones),d(k.tablets),d(k.uas),d(k.utils),k.oss0={WindowsPhoneOS:k.oss.WindowsPhoneOS,WindowsMobileOS:k.oss.WindowsMobileOS}}(),g.findMatch=function(a,b){for(var c in a)if(i.call(a,c)&&a[c].test(b))return c;return null},g.findMatches=function(a,b){var c=[];for(var d in a)i.call(a,d)&&a[d].test(b)&&c.push(d);return c},g.getVersionStr=function(a,b){var c,d,e,f,h=g.mobileDetectRules.props;if(i.call(h,a))for(c=h[a],e=c.length,d=0;d1&&(a=b[0]+".",b.shift(),a+=b.join("")),Number(a)},g.isMobileFallback=function(a){return g.detectMobileBrowsers.fullPattern.test(a)||g.detectMobileBrowsers.shortPattern.test(a.substr(0,4))},g.isTabletFallback=function(a){return g.detectMobileBrowsers.tabletPattern.test(a)},g.prepareDetectionCache=function(a,c,d){if(a.mobile===b){var e,h,i;return(h=g.findMatch(g.mobileDetectRules.tablets,c))?(a.mobile=a.tablet=h,void(a.phone=null)):(e=g.findMatch(g.mobileDetectRules.phones,c))?(a.mobile=a.phone=e,void(a.tablet=null)):void(g.isMobileFallback(c)?(i=f.isPhoneSized(d),i===b?(a.mobile=g.FALLBACK_MOBILE,a.tablet=a.phone=null):i?(a.mobile=a.phone=g.FALLBACK_PHONE,a.tablet=null):(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null)):g.isTabletFallback(c)?(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null):a.mobile=a.tablet=a.phone=null)}},g.mobileGrade=function(a){var b=null!==a.mobile();return a.os("iOS")&&a.version("iPad")>=4.3||a.os("iOS")&&a.version("iPhone")>=3.1||a.os("iOS")&&a.version("iPod")>=3.1||a.version("Android")>2.1&&a.is("Webkit")||a.version("Windows Phone OS")>=7||a.is("BlackBerry")&&a.version("BlackBerry")>=6||a.match("Playbook.*Tablet")||a.version("webOS")>=1.4&&a.match("Palm|Pre|Pixi")||a.match("hp.*TouchPad")||a.is("Firefox")&&a.version("Firefox")>=12||a.is("Chrome")&&a.is("AndroidOS")&&a.version("Android")>=4||a.is("Skyfire")&&a.version("Skyfire")>=4.1&&a.is("AndroidOS")&&a.version("Android")>=2.3||a.is("Opera")&&a.version("Opera Mobi")>11&&a.is("AndroidOS")||a.is("MeeGoOS")||a.is("Tizen")||a.is("Dolfin")&&a.version("Bada")>=2||(a.is("UC Browser")||a.is("Dolfin"))&&a.version("Android")>=2.3||a.match("Kindle Fire")||a.is("Kindle")&&a.version("Kindle")>=3||a.is("AndroidOS")&&a.is("NookTablet")||a.version("Chrome")>=11&&!b||a.version("Safari")>=5&&!b||a.version("Firefox")>=4&&!b||a.version("MSIE")>=7&&!b||a.version("Opera")>=10&&!b?"A":a.os("iOS")&&a.version("iPad")<4.3||a.os("iOS")&&a.version("iPhone")<3.1||a.os("iOS")&&a.version("iPod")<3.1||a.is("Blackberry")&&a.version("BlackBerry")>=5&&a.version("BlackBerry")<6||a.version("Opera Mini")>=5&&a.version("Opera Mini")<=6.5&&(a.version("Android")>=2.3||a.is("iOS"))||a.match("NokiaN8|NokiaC7|N97.*Series60|Symbian/3")||a.version("Opera Mobi")>=11&&a.is("SymbianOS")?"B":(a.version("BlackBerry")<5||a.match("MSIEMobile|Windows CE.*Mobile")||a.version("Windows Mobile")<=5.2,"C")},g.detectOS=function(a){return g.findMatch(g.mobileDetectRules.oss0,a)||g.findMatch(g.mobileDetectRules.oss,a)},g.getDeviceSmallerSide=function(){return window.screen.width + + + + + + + + + + + + + + + + 鲸鱼代理-动态IP代理-ip修改器-IP自动切换 + + + + + + + +
    +
    +
    +
    +
    全国200+地区,一键切换
    +
    + 费用低至2.0元/天 +
    +
    + 带宽4-10Mbps,新用户注册免费试用15分钟 +
    + + +
    + 鲸鱼IP首屏电脑 + +
    +
    + + + + + + +
    +
    + +
    +
    +
    + +
    +
    鲸鱼IP代理 一键畅游全国
    +
    + 全国支持200+城市覆盖,电信/联通运营商机房授权IP网络,100万+IP供您稳定畅游 +
    +
    + 鲸鱼代理4图 +
    +
    +
    +
    + 鲸鱼代理软件 +
    + 鲸鱼代理APP +
    +
    鲸鱼代理 更懂你
    + 领取免费时长 → + 鲸鱼代理DESC +
    +
    +
    +
    +
    +
    +
    + 应用场景丰富,满足多样化需求 +
    +
    + 强大专业的鲸鱼代理软件,以其全面的能力满足各类业务需求 +
    +
      +
    • +
      +
      网络技术服务
      +
      +

      网站采集

      +

      论坛发帖

      +

      游戏测试

      +

      营销优化

      +
      +
      +
    • +
    • +
      +
      推广优化服务
      +
      +

      电子商务

      +

      定制化推广营销

      +

      数据分析

      +
      +
      +
    • +
    • +
      +
      企业应用服务
      +
      +

      大数据

      +

      数据爬取

      +

      SEO优化

      +

      金融理财

      +
      +
      +
    • +
    +
    +
    +
    +
    +
    +
    高速 稳定 安全
    +
    +
      +
    • +

      自营优质节点

      +

      100+

      +
    • +
    • +

      每日使用量

      +

      834,355

      +
    • +
    • +

      可用IP量

      +

      1,100,223

      +
    • +
    +
    +
    + 已开通 +
    +
    +
    +
    +
    +
    +
    +

    聚焦鲸鱼代理,关注国内专业IP工具

    +

    + 聚焦行业资讯,帮助企业,个人掌握最新行业知识,提升领域竞争力 +

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

    鲸鱼代理

    +
    +
    +
    + + 关闭 +
    +
    + + +
    +
    + + +
    +
    + + + +
    + +
    +
    +

    请按住滑块,拖动到最右边

    +
    + +
    +
    +
    + +
    +
    + + + 获取验证码 +
    +
    +
    + 我已仔细阅读并接受《用户注册协议》 +
    +
    + 用户名不能为空 +
    +
    确定
    +
    +
    + +
    +
    + +
    + +

    鲸鱼代理

    +
    +
    +
    +
    +
    忘记密码
    + + 关闭 +
    +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    +
    + 手机号不能为空 +
    +
    确定
    +
    +
    +
    + + +
    +
    + 欢迎使用鲸鱼软件 + +
    +
    +
    +
    + +
    +

    立即注册,免费试用

    +

    工作时间:9:00-22:00

    +
    +
    + +
    +
    + + +
    + +
    +

    + +

    +

    合作客户

    +
    +
    + + + +
    +

    + +

    + 电话:0519-81887738 +
    +
    +
    +
    +
    +

    + +

    +

    工作室

    +
    +
    + + + +
    大客户经理
    + + +
    +
    +
    +
    +

    + +

    +

    大客户

    +
    +
    + + + +
    +

    + +

    + 电话:0519-81887738 +
    +
    +
    +
    +
    +

    + +

    +

    公众号

    +
    +
    + + + +
    + + 关注鲸鱼 +
    +
    +
    +
    + +

    + +

    +

    意见反馈

    +
    +
    +

    + +

    +

    回到顶部

    +
    + + + +
    + + + + + + + + + + + + + + + +l`)`)Cm9`):https://www.ip12345.net/necko:classified1strongly-framed1security-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-methodGETresponse-headHTTP/1.1 200 OK +Server: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/html; charset=utf-8 +original-response-headersServer: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/html; charset=utf-8 +Transfer-Encoding: chunked +Connection: keep-alive +Set-Cookie: userinfo=MTYyMTgzMDExM3xOd3dBTkVGWFUwMDNXRTlSTkVaSFQxbElORTlIVkZCTlJrTlBUa2xGVUVKUlZWRk1VMVpCUTBwTk1rcGFXa3hEUXpVM05WbEdSbEU9fMuojhFa2eXD347yCATJ6JALP2gwE46L2z5KFbVoNmZH; Path=/; Expires=Mon, 24 May 2021 04:51:53 GMT; Max-Age=1800 +ctid1uncompressed-len0predictor::resource-count60predictor::https://www.ip12345.net/user/js/iconfont.js?v=202010161,1,1621830112,4096predictor::https://www.ip12345.net/user/css/style.css?v=202010261,1,1621830112,4096predictor::https://www.ip12345.net/user/img/index/hot.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/common/download_app.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/pc_phone_2.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/buy/logo.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/common/tooltip_tray.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/common/tooltip_discount.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/logo_1.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/advantage.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/advantage_1.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/advantage_2.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/list.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/img-1.jpg1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/img-2.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/img-3.jpg1,1,1621830112,4097predictor::https://wp.qiye.qq.com/qidian/2852151084/3e43e768e4b409643bbec1d8eb2e04b71,1,1621830112,4096predictor::https://www.ip12345.net/user/img/index/wxgzh.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/popbox/logo.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/popbox/close.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/popbox/icon_back.png1,1,1621830112,4097net-response-time-onstart696net-response-time-onstop738predictor::https://www.ip12345.net/img/captcha.jpg?width=86&height=441,1,1621830112,4096predictor::https://www.ip12345.net/user/img/popbox/kefu_qq.png1,1,1621830112,4097predictor::https://www.ip12345.net/user/js/common/jquery-1.11.3.min.js1,1,1621830112,4097predictor::https://www.ip12345.net/user/js/index.js?v=202010231,1,1621830112,4096predictor::https://www.ip12345.net/user/js/pop_user.js?v=202008311,1,1621830112,4096predictor::https://www.ip12345.net/user/js/pop_service.js?v=202009251,1,1621830112,4096predictor::https://www.ip12345.net/user/js/zepto-1.2.0.min.js1,1,1621830112,4097predictor::https://www.ip12345.net/user/js/mobile-detect.js1,1,1621830112,4097predictor::https://www.ip12345.net/user/js/post.js1,1,1621830112,4097predictor::https://www.ip12345.net/user/js/common/hm.js1,1,1621830112,4097predictor::https://zz.bdstatic.com/linksubmit/push.js1,1,1621830112,4097predictor::https://www.ip12345.net/user/img/index/bg.jpg1,1,1621830112,4096predictor::https://www.ip12345.net/user/img/index/btn_windows.png1,1,1621830112,4096predictor::https://www.ip12345.net/user/img/index/btn_app.png1,1,1621830112,4096predictor::https://bqq.gtimg.com/qidian/src/wpa/dist/5.0.0/pk1.js1,1,1621830112,4097predictor::https://s9.cnzz.com/z_stat.php?id=12794026631,1,1621830112,4096predictor::https://c.cnzz.com/core.php?web_id=1279402663&t=z1,1,1621830112,4096predictor::https://bqq.gtimg.com/da_market/i.js1,1,1621830112,4096predictor::https://p.qpic.cn/qidian_pic/2852151084/202007100fca1634fd5a7f9597ce79fd3e2f4369/01,1,1621830112,4096predictor::https://t.gdt.qq.com/conv/web/cookies/jsonp?cb=jsonp_cb_0_1621830113905_138&callback=jsonp_cb_0_1621830113905_1381,1,1621830112,4096predictor::https://admin.qidian.qq.com/qbf/aBTest/getGrayLevel?kfuin=2852151084&callback=JSONP_CB_1_1621830113905_671&cb=JSONP_CB_1_1621830113905_6711,1,1621830112,4096predictor::https://bqq.gtimg.com/qidian/src/wpa/dist/5.0.0/images/im-bubble-pc-theme3.png1,1,1621830112,4096predictor::https://cnzz.mmstat.com/9.gif?abc=1&rnd=5717531861,1,1621830112,4096predictor::https://www.ip12345.net/user/img/popbox/kefu_close.png1,1,1621830112,4096predictor::https://hm.baidu.com/hm.js?1b1bdc29c57114d6ae151556afaf1b291,1,1621830112,4096predictor::https://goutong.baidu.com/site/493/1b1bdc29c57114d6ae151556afaf1b29/b.js?siteId=131246441,1,1621830112,4096predictor::https://sgoutong.baidu.com/embed/1621407734/asset/embed/pc_nb.js1,1,1621830112,4096predictor::https://sgoutong.baidu.com/embed/1621407734/asset/embed/css/pc/main.css1,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?uuid=uuid_8ee1bdbe-7ef2-4f29-8c89-469d12c25148&brgeyemid=m2008&t=1621830114676&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?cncttype=renderFinish&uuid=uuid_8ee1bdbe-7ef2-4f29-8c89-469d12c25148&brgeyemid=m2009&cost=342&icon=0&toolbar=0&t=1621830114685&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?cncttype=startSite&uuid=uuid_2af91d17-b164-4bb5-bb25-04519e6c63db&brgeyemid=m2010&isInviteOrCom=-1&t=1621830114687&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://sofire.bdstatic.com/js/dfxaf.js1,1,1621830112,4097predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?uuid=uuid_2ff71da1-e090-495b-9e96-35eb7f524240&brgeyemid=m2001&t=1621830114696&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?uuid=uuid_2ff71da1-e090-495b-9e96-35eb7f524240&brgeyemid=m2002&t=1621830114698&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://aifanfan.baidu.com/invite.js?appId=1&siteId=13124644&userId=273558201,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?cncttype=finishSite&uuid=uuid_2af91d17-b164-4bb5-bb25-04519e6c63db&brgeyemid=m2011&cost=2609&siteCost=2265&t=1621830116952&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://aifanfan.baidu.com/i.gif?id=m3&stopIntelWel=62&t=1621830117296&dtype=1&ua=Mozilla/5.0%20(X11;%20Linux%20x86_64;%20rv:78.0)%20Gecko/20100101%20Firefox/78.0&ucid=-1&bid=162183011729687b7_1621830117296_90671&siteId=-1&likeCrm=-1&callback=jsonp_1621830117296_747521,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?uuid=uuid_2af91d17-b164-4bb5-bb25-04519e6c63db&brgeyemid=m2012&totalMsgCount=0&failMsgCount=0&t=1621830119607&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096predictor::https://sgoutong.baidu.com/eye/log/js/stat.gif?uuid=uuid_595c35d6-e142-41fa-9f0f-310bdbedc6ee&brgeyemid=m2014&totalMsgCount=0&failMsgCount=0&t=1621830119609&ip=&dtype=1&ucid=27355820&uid=-1&siteid=13124644&tabid=tabid_1621830114675&bid=162183011467530845&sessionid=-100&originType=0&likeCrm=0&ideaType=-1&query=-11,1,1621830112,4096 \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E5A7E360B417DF2B6D75929A067FD4ABEF0AF3B8 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E5A7E360B417DF2B6D75929A067FD4ABEF0AF3B8 new file mode 100644 index 0000000..7476a69 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E5A7E360B417DF2B6D75929A067FD4ABEF0AF3B8 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E66679620C4A39E9D8DD59FC98BB309CF723EC8C b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E66679620C4A39E9D8DD59FC98BB309CF723EC8C new file mode 100644 index 0000000..fdb3c98 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E66679620C4A39E9D8DD59FC98BB309CF723EC8C differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E6EC54E672E38D6478C5632B34D7D8CDC9968C71 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E6EC54E672E38D6478C5632B34D7D8CDC9968C71 new file mode 100644 index 0000000..7856259 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E6EC54E672E38D6478C5632B34D7D8CDC9968C71 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7C090FDA5FB7D9880D1EFAD9A260F783FF4CE01 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7C090FDA5FB7D9880D1EFAD9A260F783FF4CE01 new file mode 100644 index 0000000..302c766 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7C090FDA5FB7D9880D1EFAD9A260F783FF4CE01 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7ECE4B353BCAB7FC4C1666429D12E3CF75B2B6F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7ECE4B353BCAB7FC4C1666429D12E3CF75B2B6F new file mode 100644 index 0000000..f406338 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E7ECE4B353BCAB7FC4C1666429D12E3CF75B2B6F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E906C5D29C313869348C5052B1B68468EE9B4A37 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E906C5D29C313869348C5052B1B68468EE9B4A37 new file mode 100644 index 0000000..33b1505 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E906C5D29C313869348C5052B1B68468EE9B4A37 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E910D1FCE8BF27F5536B88567A4DC32624377CC3 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E910D1FCE8BF27F5536B88567A4DC32624377CC3 new file mode 100644 index 0000000..35bfb55 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/E910D1FCE8BF27F5536B88567A4DC32624377CC3 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EAF955BE80EB159FFFF966F938DD904B26E50F4B b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EAF955BE80EB159FFFF966F938DD904B26E50F4B new file mode 100644 index 0000000..c4a5fe4 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EAF955BE80EB159FFFF966F938DD904B26E50F4B differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EB8389F5E755DC4F3403DB9E6542A5136B9E8C16 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EB8389F5E755DC4F3403DB9E6542A5136B9E8C16 new file mode 100644 index 0000000..b1b452c Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EB8389F5E755DC4F3403DB9E6542A5136B9E8C16 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EBA34A11DFB0AE8FCB98320646A551AE390F48C6 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EBA34A11DFB0AE8FCB98320646A551AE390F48C6 new file mode 100644 index 0000000..5f1cc0b Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EBA34A11DFB0AE8FCB98320646A551AE390F48C6 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ED28AFD43DE7EDFF837A96C3EEEA8F70317B6E6F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ED28AFD43DE7EDFF837A96C3EEEA8F70317B6E6F new file mode 100644 index 0000000..96440d4 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/ED28AFD43DE7EDFF837A96C3EEEA8F70317B6E6F @@ -0,0 +1,16 @@ +/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */ +!function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):e(t)}(this,function(t){var e=function(){function $(t){return null==t?String(t):S[C.call(t)]||"object"}function F(t){return"function"==$(t)}function k(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function R(t){return"object"==$(t)}function Z(t){return R(t)&&!k(t)&&Object.getPrototypeOf(t)==Object.prototype}function z(t){var e=!!t&&"length"in t&&t.length,n=r.type(t);return"function"!=n&&!k(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function q(t){return a.call(t,function(t){return null!=t})}function H(t){return t.length>0?r.fn.concat.apply([],t):t}function I(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function V(t){return t in l?l[t]:l[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function _(t,e){return"number"!=typeof e||h[I(t)]?e:e+"px"}function B(t){var e,n;return c[t]||(e=f.createElement(t),f.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),c[t]=n),c[t]}function U(t){return"children"in t?u.call(t.children):r.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function X(t,e){var n,r=t?t.length:0;for(n=0;r>n;n++)this[n]=t[n];this.length=r,this.selector=e||""}function J(t,r,i){for(n in r)i&&(Z(r[n])||L(r[n]))?(Z(r[n])&&!Z(t[n])&&(t[n]={}),L(r[n])&&!L(t[n])&&(t[n]=[]),J(t[n],r[n],i)):r[n]!==e&&(t[n]=r[n])}function W(t,e){return null==e?r(t):r(t).filter(e)}function Y(t,e,n,r){return F(e)?e.call(t,n,r):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function K(t,n){var r=t.className||"",i=r&&r.baseVal!==e;return n===e?i?r.baseVal:r:void(i?r.baseVal=n:t.className=n)}function Q(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?r.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,r=t.childNodes.length;r>n;n++)tt(t.childNodes[n],e)}var e,n,r,i,O,P,o=[],s=o.concat,a=o.filter,u=o.slice,f=t.document,c={},l={},h={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},p=/^\s*<(\w+|!)[^>]*>/,d=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,m=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,v=/([A-Z])/g,y=["val","css","html","text","data","width","height","offset"],x=["after","prepend","before","append"],b=f.createElement("table"),E=f.createElement("tr"),j={tr:f.createElement("tbody"),tbody:b,thead:b,tfoot:b,td:E,th:E,"*":f.createElement("div")},w=/complete|loaded|interactive/,T=/^[\w-]*$/,S={},C=S.toString,N={},A=f.createElement("div"),D={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},L=Array.isArray||function(t){return t instanceof Array};return N.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=A).appendChild(t),r=~N.qsa(i,e).indexOf(t),o&&A.removeChild(t),r},O=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},P=function(t){return a.call(t,function(e,n){return t.indexOf(e)==n})},N.fragment=function(t,n,i){var o,s,a;return d.test(t)&&(o=r(f.createElement(RegExp.$1))),o||(t.replace&&(t=t.replace(m,"<$1>")),n===e&&(n=p.test(t)&&RegExp.$1),n in j||(n="*"),a=j[n],a.innerHTML=""+t,o=r.each(u.call(a.childNodes),function(){a.removeChild(this)})),Z(i)&&(s=r(o),r.each(i,function(t,e){y.indexOf(t)>-1?s[t](e):s.attr(t,e)})),o},N.Z=function(t,e){return new X(t,e)},N.isZ=function(t){return t instanceof N.Z},N.init=function(t,n){var i;if(!t)return N.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&p.test(t))i=N.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}else{if(F(t))return r(f).ready(t);if(N.isZ(t))return t;if(L(t))i=q(t);else if(R(t))i=[t],t=null;else if(p.test(t))i=N.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}}return N.Z(i,t)},r=function(t,e){return N.init(t,e)},r.extend=function(t){var e,n=u.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){J(t,n,e)}),t},N.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=T.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},r.contains=f.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},r.type=$,r.isFunction=F,r.isWindow=k,r.isArray=L,r.isPlainObject=Z,r.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},r.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},r.inArray=function(t,e,n){return o.indexOf.call(e,t,n)},r.camelCase=O,r.trim=function(t){return null==t?"":String.prototype.trim.call(t)},r.uuid=0,r.support={},r.expr={},r.noop=function(){},r.map=function(t,e){var n,i,o,r=[];if(z(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return o.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return F(t)?this.not(this.not(t)):r(a.call(this,function(e){return N.matches(e,t)}))},add:function(t,e){return r(P(this.concat(r(t,e))))},is:function(t){return this.length>0&&N.matches(this[0],t)},not:function(t){var n=[];if(F(t)&&t.call!==e)this.each(function(e){t.call(this,e)||n.push(this)});else{var i="string"==typeof t?this.filter(t):z(t)&&F(t.item)?u.call(t):r(t);this.forEach(function(t){i.indexOf(t)<0&&n.push(t)})}return r(n)},has:function(t){return this.filter(function(){return R(t)?r.contains(this,t):r(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!R(t)?t:r(t)},last:function(){var t=this[this.length-1];return t&&!R(t)?t:r(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?r(t).filter(function(){var t=this;return o.some.call(n,function(e){return r.contains(e,t)})}):1==this.length?r(N.qsa(this[0],t)):this.map(function(){return N.qsa(this,t)}):r()},closest:function(t,e){var n=[],i="object"==typeof t&&r(t);return this.each(function(r,o){for(;o&&!(i?i.indexOf(o)>=0:N.matches(o,t));)o=o!==e&&!M(o)&&o.parentNode;o&&n.indexOf(o)<0&&n.push(o)}),r(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=r.map(n,function(t){return(t=t.parentNode)&&!M(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return W(e,t)},parent:function(t){return W(P(this.pluck("parentNode")),t)},children:function(t){return W(this.map(function(){return U(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return W(this.map(function(t,e){return a.call(U(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return r.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=B(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=F(t);if(this[0]&&!e)var n=r(t).get(0),i=n.parentNode||this.length>1;return this.each(function(o){r(this).wrapAll(e?t.call(this,o):i?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){r(this[0]).before(t=r(t));for(var e;(e=t.children()).length;)t=e.first();r(t).append(this)}return this},wrapInner:function(t){var e=F(t);return this.each(function(n){var i=r(this),o=i.contents(),s=e?t.call(this,n):t;o.length?o.wrapAll(s):i.append(s)})},unwrap:function(){return this.parent().each(function(){r(this).replaceWith(r(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var n=r(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()})},prev:function(t){return r(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return r(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;r(this).empty().append(Y(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=Y(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,r){var i;return"string"!=typeof t||1 in arguments?this.each(function(e){if(1===this.nodeType)if(R(t))for(n in t)G(this,n,t[n]);else G(this,t,Y(this,r,e,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(t))?i:e},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){G(this,t)},this)})},prop:function(t,e){return t=D[t]||t,1 in arguments?this.each(function(n){this[t]=Y(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=D[t]||t,this.each(function(){delete this[t]})},data:function(t,n){var r="data-"+t.replace(v,"-$1").toLowerCase(),i=1 in arguments?this.attr(r,n):this.attr(r);return null!==i?Q(i):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=Y(this,t,e,this.value)})):this[0]&&(this[0].multiple?r(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each(function(t){var n=r(this),i=Y(this,e,t,n.offset()),o=n.offsetParent().offset(),s={top:i.top-o.top,left:i.left-o.left};"static"==n.css("position")&&(s.position="relative"),n.css(s)});if(!this.length)return null;if(f.documentElement!==this[0]&&!r.contains(f.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var i=this[0];if("string"==typeof t){if(!i)return;return i.style[O(t)]||getComputedStyle(i,"").getPropertyValue(t)}if(L(t)){if(!i)return;var o={},s=getComputedStyle(i,"");return r.each(t,function(t,e){o[e]=i.style[O(e)]||s.getPropertyValue(e)}),o}}var a="";if("string"==$(t))e||0===e?a=I(t)+":"+_(t,e):this.each(function(){this.style.removeProperty(I(t))});else for(n in t)t[n]||0===t[n]?a+=I(n)+":"+_(n,t[n])+";":this.each(function(){this.style.removeProperty(I(n))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(r(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?o.some.call(this,function(t){return this.test(K(t))},V(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var n=K(this),o=Y(this,t,e,n);o.split(/\s+/g).forEach(function(t){r(this).hasClass(t)||i.push(t)},this),i.length&&K(this,n+(n?" ":"")+i.join(" "))}}):this},removeClass:function(t){return this.each(function(n){if("className"in this){if(t===e)return K(this,"");i=K(this),Y(this,t,n,i).split(/\s+/g).forEach(function(t){i=i.replace(V(t)," ")}),K(this,i.trim())}})},toggleClass:function(t,n){return t?this.each(function(i){var o=r(this),s=Y(this,t,i,K(this));s.split(/\s+/g).forEach(function(t){(n===e?!o.hasClass(t):n)?o.addClass(t):o.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),i=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(r(t).css("margin-top"))||0,n.left-=parseFloat(r(t).css("margin-left"))||0,i.top+=parseFloat(r(e[0]).css("border-top-width"))||0,i.left+=parseFloat(r(e[0]).css("border-left-width"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||f.body;t&&!g.test(t.nodeName)&&"static"==r(t).css("position");)t=t.offsetParent;return t})}},r.fn.detach=r.fn.remove,["width","height"].forEach(function(t){var n=t.replace(/./,function(t){return t[0].toUpperCase()});r.fn[t]=function(i){var o,s=this[0];return i===e?k(s)?s["inner"+n]:M(s)?s.documentElement["scroll"+n]:(o=this.offset())&&o[t]:this.each(function(e){s=r(this),s.css(t,Y(this,i,e,s[t]()))})}}),x.forEach(function(n,i){var o=i%2;r.fn[n]=function(){var n,a,s=r.map(arguments,function(t){var i=[];return n=$(t),"array"==n?(t.forEach(function(t){return t.nodeType!==e?i.push(t):r.zepto.isZ(t)?i=i.concat(t.get()):void(i=i.concat(N.fragment(t)))}),i):"object"==n||null==t?t:N.fragment(t)}),u=this.length>1;return s.length<1?this:this.each(function(e,n){a=o?n:n.parentNode,n=0==i?n.nextSibling:1==i?n.firstChild:2==i?n:null;var c=r.contains(f.documentElement,a);s.forEach(function(e){if(u)e=e.cloneNode(!0);else if(!a)return r(e).remove();a.insertBefore(e,n),c&&tt(e,function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}})})})},r.fn[o?n+"To":"insert"+(i?"Before":"After")]=function(t){return r(t)[n](this),this}}),N.Z.prototype=X.prototype=r.fn,N.uniq=P,N.deserializeValue=Q,r.zepto=N,r}();return t.Zepto=e,void 0===t.$&&(t.$=e),function(e){function h(t){return t._zid||(t._zid=n++)}function p(t,e,n,r){if(e=d(e),e.ns)var i=m(e.ns);return(a[h(t)]||[]).filter(function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||i.test(t.ns))&&(!n||h(t.fn)===h(n))&&(!r||t.sel==r)})}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function m(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function g(t,e){return t.del&&!f&&t.e in c||!!e}function v(t){return l[t]||f&&c[t]||t}function y(t,n,i,o,s,u,f){var c=h(t),p=a[c]||(a[c]=[]);n.split(/\s/).forEach(function(n){if("ready"==n)return e(document).ready(i);var a=d(n);a.fn=i,a.sel=s,a.e in l&&(i=function(t){var n=t.relatedTarget;return!n||n!==this&&!e.contains(this,n)?a.fn.apply(this,arguments):void 0}),a.del=u;var c=u||i;a.proxy=function(e){if(e=T(e),!e.isImmediatePropagationStopped()){e.data=o;var n=c.apply(t,e._args==r?[e]:[e].concat(e._args));return n===!1&&(e.preventDefault(),e.stopPropagation()),n}},a.i=p.length,p.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,g(a,f))})}function x(t,e,n,r,i){var o=h(t);(e||"").split(/\s/).forEach(function(e){p(t,e,n,r).forEach(function(e){delete a[o][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,g(e,i))})})}function T(t,n){return(n||!t.isDefaultPrevented)&&(n||(n=t),e.each(w,function(e,r){var i=n[e];t[e]=function(){return this[r]=b,i&&i.apply(n,arguments)},t[r]=E}),t.timeStamp||(t.timeStamp=Date.now()),(n.defaultPrevented!==r?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=b)),t}function S(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===r||(n[e]=t[e]);return T(n,t)}var r,n=1,i=Array.prototype.slice,o=e.isFunction,s=function(t){return"string"==typeof t},a={},u={},f="onfocusin"in t,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:x},e.proxy=function(t,n){var r=2 in arguments&&i.call(arguments,2);if(o(t)){var a=function(){return t.apply(n,r?r.concat(i.call(arguments)):arguments)};return a._zid=h(t),a}if(s(n))return r?(r.unshift(t[n],t),e.proxy.apply(null,r)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var b=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,w={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,a,u,f){var c,l,h=this;return t&&!s(t)?(e.each(t,function(t,e){h.on(t,n,a,e,f)}),h):(s(n)||o(u)||u===!1||(u=a,a=n,n=r),(u===r||a===!1)&&(u=a,a=r),u===!1&&(u=E),h.each(function(r,o){f&&(c=function(t){return x(o,t.type,u),u.apply(this,arguments)}),n&&(l=function(t){var r,s=e(t.target).closest(n,o).get(0);return s&&s!==o?(r=e.extend(S(t),{currentTarget:s,liveFired:o}),(c||u).apply(s,[r].concat(i.call(arguments,1)))):void 0}),y(o,t,u,a,n,l||c)}))},e.fn.off=function(t,n,i){var a=this;return t&&!s(t)?(e.each(t,function(t,e){a.off(t,n,e)}),a):(s(n)||o(i)||i===!1||(i=n,n=r),i===!1&&(i=E),a.each(function(){x(this,t,i,n)}))},e.fn.trigger=function(t,n){return t=s(t)||e.isPlainObject(t)?e.Event(t):T(t),t._args=n,this.each(function(){t.type in c&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)})},e.fn.triggerHandler=function(t,n){var r,i;return this.each(function(o,a){r=S(s(t)?e.Event(t):t),r._args=n,r.target=a,e.each(p(a,t.type||t),function(t,e){return i=e.proxy(r),r.isImmediatePropagationStopped()?!1:void 0})}),i},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}}),e.Event=function(t,e){s(t)||(e=t,t=e.type);var n=document.createEvent(u[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),T(n)}}(e),function(e){function p(t,n,r){var i=e.Event(n);return e(t).trigger(i,r),!i.isDefaultPrevented()}function d(t,e,n,i){return t.global?p(e||r,n,i):void 0}function m(t){t.global&&0===e.active++&&d(t,null,"ajaxStart")}function g(t){t.global&&!--e.active&&d(t,null,"ajaxStop")}function v(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||d(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void d(e,n,"ajaxSend",[t,e])}function y(t,e,n,r){var i=n.context,o="success";n.success.call(i,t,o,e),r&&r.resolveWith(i,[t,o,e]),d(n,i,"ajaxSuccess",[e,n,t]),b(o,e,n)}function x(t,e,n,r,i){var o=r.context;r.error.call(o,n,e,t),i&&i.rejectWith(o,[n,e,t]),d(r,o,"ajaxError",[n,r,t||e]),b(e,n,r)}function b(t,e,n){var r=n.context;n.complete.call(r,e,t),d(n,r,"ajaxComplete",[e,n]),g(n)}function E(t,e,n){if(n.dataFilter==j)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function j(){}function w(t){return t&&(t=t.split(";",2)[0]),t&&(t==c?"html":t==f?"json":a.test(t)?"script":u.test(t)&&"xml")||"text"}function T(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function S(t){t.processData&&t.data&&"string"!=e.type(t.data)&&(t.data=e.param(t.data,t.traditional)),!t.data||t.type&&"GET"!=t.type.toUpperCase()&&"jsonp"!=t.dataType||(t.url=T(t.url,t.data),t.data=void 0)}function C(t,n,r,i){return e.isFunction(n)&&(i=r,r=n,n=void 0),e.isFunction(r)||(i=r,r=void 0),{url:t,data:n,success:r,dataType:i}}function O(t,n,r,i){var o,s=e.isArray(n),a=e.isPlainObject(n);e.each(n,function(n,u){o=e.type(u),i&&(n=r?i:i+"["+(a||"object"==o||"array"==o?n:"")+"]"),!i&&s?t.add(u.name,u.value):"array"==o||!r&&"object"==o?O(t,u,r,n):t.add(n,u)})}var i,o,n=+new Date,r=t.document,s=/)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,u=/^(?:text|application)\/xml/i,f="application/json",c="text/html",l=/^\s*$/,h=r.createElement("a");h.href=t.location.href,e.active=0,e.ajaxJSONP=function(i,o){if(!("type"in i))return e.ajax(i);var c,p,s=i.jsonpCallback,a=(e.isFunction(s)?s():s)||"Zepto"+n++,u=r.createElement("script"),f=t[a],l=function(t){e(u).triggerHandler("error",t||"abort")},h={abort:l};return o&&o.promise(h),e(u).on("load error",function(n,r){clearTimeout(p),e(u).off().remove(),"error"!=n.type&&c?y(c[0],h,i,o):x(null,r||"error",h,i,o),t[a]=f,c&&e.isFunction(f)&&f(c[0]),f=c=void 0}),v(h,i)===!1?(l("abort"),h):(t[a]=function(){c=arguments},u.src=i.url.replace(/\?(.+)=\?/,"?$1="+a),r.head.appendChild(u),i.timeout>0&&(p=setTimeout(function(){l("timeout")},i.timeout)),h)},e.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new t.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:f,xml:"application/xml, text/xml",html:c,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:j},e.ajax=function(n){var u,f,s=e.extend({},n||{}),a=e.Deferred&&e.Deferred();for(i in e.ajaxSettings)void 0===s[i]&&(s[i]=e.ajaxSettings[i]);m(s),s.crossDomain||(u=r.createElement("a"),u.href=s.url,u.href=u.href,s.crossDomain=h.protocol+"//"+h.host!=u.protocol+"//"+u.host),s.url||(s.url=t.location.toString()),(f=s.url.indexOf("#"))>-1&&(s.url=s.url.slice(0,f)),S(s);var c=s.dataType,p=/\?.+=\?/.test(s.url);if(p&&(c="jsonp"),s.cache!==!1&&(n&&n.cache===!0||"script"!=c&&"jsonp"!=c)||(s.url=T(s.url,"_="+Date.now())),"jsonp"==c)return p||(s.url=T(s.url,s.jsonp?s.jsonp+"=?":s.jsonp===!1?"":"callback=?")),e.ajaxJSONP(s,a);var P,d=s.accepts[c],g={},b=function(t,e){g[t.toLowerCase()]=[t,e]},C=/^([\w-]+:)\/\//.test(s.url)?RegExp.$1:t.location.protocol,N=s.xhr(),O=N.setRequestHeader;if(a&&a.promise(N),s.crossDomain||b("X-Requested-With","XMLHttpRequest"),b("Accept",d||"*/*"),(d=s.mimeType||d)&&(d.indexOf(",")>-1&&(d=d.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(d)),(s.contentType||s.contentType!==!1&&s.data&&"GET"!=s.type.toUpperCase())&&b("Content-Type",s.contentType||"application/x-www-form-urlencoded"),s.headers)for(o in s.headers)b(o,s.headers[o]);if(N.setRequestHeader=b,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=j,clearTimeout(P);var t,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==C){if(c=c||w(s.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)t=N.response;else{t=N.responseText;try{t=E(t,c,s),"script"==c?(1,eval)(t):"xml"==c?t=N.responseXML:"json"==c&&(t=l.test(t)?null:e.parseJSON(t))}catch(r){n=r}if(n)return x(n,"parsererror",N,s,a)}y(t,N,s,a)}else x(N.statusText||null,N.status?"error":"abort",N,s,a)}},v(N,s)===!1)return N.abort(),x(null,"abort",N,s,a),N;var A="async"in s?s.async:!0;if(N.open(s.type,s.url,A,s.username,s.password),s.xhrFields)for(o in s.xhrFields)N[o]=s.xhrFields[o];for(o in g)O.apply(N,g[o]);return s.timeout>0&&(P=setTimeout(function(){N.onreadystatechange=j,N.abort(),x(null,"timeout",N,s,a)},s.timeout)),N.send(s.data?s.data:null),N},e.get=function(){return e.ajax(C.apply(null,arguments))},e.post=function(){var t=C.apply(null,arguments);return t.type="POST",e.ajax(t)},e.getJSON=function(){var t=C.apply(null,arguments);return t.dataType="json",e.ajax(t)},e.fn.load=function(t,n,r){if(!this.length)return this;var a,i=this,o=t.split(/\s/),u=C(t,n,r),f=u.success;return o.length>1&&(u.url=o[0],a=o[1]),u.success=function(t){i.html(a?e("
    ").html(t.replace(s,"")).find(a):t),f&&f.apply(i,arguments)},e.ajax(u),this};var N=encodeURIComponent;e.param=function(t,n){var r=[];return r.add=function(t,n){e.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(t)+"="+N(n))},O(r,t,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;t.getComputedStyle=function(t,e){try{return n(t,e)}catch(r){return null}}}}(),e});;۷8`)`)Cm:`da3:https://www.ip12345.net/user/js/zepto-1.2.0.min.jsnecko:classified1strongly-framed1security-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request-methodGETresponse-headHTTP/1.1 200 OK +Server: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 26387 +Accept-Ranges: bytes +Last-Modified: Wed, 11 Nov 2020 02:19:09 GMT +original-response-headersServer: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/javascript; charset=utf-8 +Content-Length: 26387 +Connection: keep-alive +Accept-Ranges: bytes +Last-Modified: Wed, 11 Nov 2020 02:19:09 GMT +ctid2uncompressed-len0net-response-time-onstart151net-response-time-onstop151g \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF1BACE394752D45713998EB70CE8A120DEA6D96 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF1BACE394752D45713998EB70CE8A120DEA6D96 new file mode 100644 index 0000000..a38eb1f Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF1BACE394752D45713998EB70CE8A120DEA6D96 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF6D4041B3FDAECB45AE8D91D06245AEF7C4826F b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF6D4041B3FDAECB45AE8D91D06245AEF7C4826F new file mode 100644 index 0000000..cbb98f2 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/EF6D4041B3FDAECB45AE8D91D06245AEF7C4826F differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F05341547C607BDCAE68315A37795D0FF8A79924 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F05341547C607BDCAE68315A37795D0FF8A79924 new file mode 100644 index 0000000..043ec88 Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F05341547C607BDCAE68315A37795D0FF8A79924 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F093BB83D51CB857B1B99DD79DE440BEBF142FE4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F093BB83D51CB857B1B99DD79DE440BEBF142FE4 new file mode 100644 index 0000000..78aad9a Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F093BB83D51CB857B1B99DD79DE440BEBF142FE4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F0B7206B18A82FB74D76C4A2B3067118FC74A2C4 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F0B7206B18A82FB74D76C4A2B3067118FC74A2C4 new file mode 100644 index 0000000..ef62e4e Binary files /dev/null and b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F0B7206B18A82FB74D76C4A2B3067118FC74A2C4 differ diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12A1EE315961FBB7024C0F56892007CAE88CEF3 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12A1EE315961FBB7024C0F56892007CAE88CEF3 new file mode 100644 index 0000000..97249f6 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12A1EE315961FBB7024C0F56892007CAE88CEF3 @@ -0,0 +1,6571 @@ +@charset "utf-8"; + +.list-beizhu>div:last-child { + width: 200px; + background-color: #f9f9f9; + position: absolute; + display: none; + top: 25px; + left: 50%; + color: black; + transform: translateX(-50%); + padding: 5px; + box-shadow: 2px 2px 5px #000, + -2px 2px 5px #000; + border-radius: 3px; + z-index: 444; + line-height: 1.2; + text-align: left; + cursor: pointer; + word-break: break-all; +} + +.list-beizhu { + position: relative; +} + +.list-beizhu>div:first-child { + position: relative; + height: 30px; + width: 100%; + max-width: 200px; + cursor: pointer; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.list-beizhu>div:last-child>span { + font-weight: bold; +} + +.list-beizhu:hover>div:last-child { + display: block; +} + +.main-index .advantage-area-3 .advantage-map { + margin: 30px auto 0; + width: 1000px; + height: 650px; + background: url(../img/index/map.png?v=2020082601) top center no-repeat; + filter: drop-shadow(10px 10px 10px rgb(0, 132, 255)); + position: relative; +} + +.main-index .advantage-area-3 .advantage-map .map-point { + position: absolute; + width: 10px; + height: 10px; + background-color: #4a8efd; + border-radius: 50%; + cursor: pointer; + transition: all 0.5s; + color: #000; + +} + +.main-index .advantage-area-3 .advantage-map .map-point::after { + content: ''; + border-radius: 50%; + width: 100%; + height: 100%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + /* background-color: #83a7e0; */ + border: 2px solid #83a7e0; + /* background-color: black; */ + animation: rout 3s ease-in 0s infinite; +} + +.main-index .advantage-area-3 .advantage-map .map-point::before { + content: ''; + border-radius: 50%; + width: 100%; + height: 100%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + /* background-color: #83a7e0; */ + border: 2px solid #83a7e0; + /* background-color: black; */ + animation: rout 3s ease-in 0.7s infinite; +} + + + +@keyframes rout { + from { + width: 100%; + height: 100%; + opacity: 1; + } + + to { + width: 2000%; + height: 2000%; + opacity: 0; + } +} + +.main-index .advantage-area-3 .advantage-map .map-point:hover { + color: rgb(163, 27, 27); + filter: drop-shadow(10px 10px 10px rgb(163, 27, 27)); + transform: scale(1.2); + /* background-color: red; */ +} + +.icon { + width: 1em; + height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} + +.main-index .advantage-area-3 .advantage-map .map-point>span { + position: absolute; + left: 14px; + font-size: 12px; + + top: 50%; + transform: translateY(-50%); + user-select: none; + white-space: nowrap; +} + +.root-route .header{ + position: absolute; + left: 0; + top: 0; + background-color: transparent; +} + +.main-route { + font-family: "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; + width: 100%; + background-color: #fff; +} + +.main-route { + font-family: "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; + width: 100%; + background-color: #fff; +} + +.main-route .banner { + background: url(../img/city/bg.png) top center/100% 100% no-repeat; + padding-top: 90px; + height: 320px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: rgb(88, 86, 86); +} + +.main-route .banner .banner-con { + width: 1200px; + margin: 0 auto; + height: 100%; +} + +.main-route .banner .banner-con .title { + font-size: 35px; + color: #fff; + text-align: center; + padding-top: 80px; + margin-bottom: 30px; +} + +.main-route .banner .banner-con .mid { + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 25px; +} + + + + +.main-route .banner .banner-con .mid>.serach { + position: relative; + margin-right: 25px; + display: flex; +} + +.main-route .banner .banner-con .mid>.serach>input { + font-family: "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; + box-sizing: border-box; + color: #666; + padding: 13px 50px; + font-size: 14px; + border: none; + outline: none; + border-radius: 5px; + background-color: #fff; + display: block; + height: 48px; + width: 475px; + border-radius: 4px 0 0 4px; +} + +.main-route .banner .banner-con .mid>.serach>input::-webkit-input-placeholder { + color: #fff; +} + +.main-route .banner .banner-con .mid .serach .serach-btn { + width: 107px; + height: 48px; + background-color: #578df2; + border-radius: 0 4px 4px 0; + font-size: 15px; + color: #fff; + line-height: 48px; + text-align: center; + cursor: pointer; +} + +.main-route .banner .banner-con .mid>.serach>span { + position: absolute; + color: #578df2; + font-size: 29px; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.main-route .banner .banner-con .mid>.serach>span:first-of-type { + left: 8px; +} + +.main-route .banner .banner-con .mid>.serach>span:last-of-type { + cursor: pointer; + right: 115px; +} + +.main-route .banner .banner-con .mid>.serach>span:last-of-type:hover { + color: red; +} + +.main-route .banner .banner-con .mid>a { + font-size: 15px; + color: #fff; +} + +.main-route .banner .banner-con .mid .export-btn { + width: 107px; + height: 48px; + background-color: #ffffff; + border-radius: 4px; + font-size: 15px; + color: #555; + font-weight: lighter; + line-height: 48px; + text-align: center; + cursor: pointer; + margin-right: 25px; +} + + + +.main-route .banner .banner-con .serach-keyword { + overflow: hidden; + padding-left: 224px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + color: #fff; + font-size: 14px; +} + +.main-route .banner .banner-con .serach-keyword>p { + margin-right: 22px; +} + +.main-route .banner .banner-con .serach-keyword>span { + cursor: pointer; + margin-right: 17px; +} + +.main-route .city-list { + overflow: hidden; + width: 1200px; + min-height: 700px; + min-width: 1200px; + margin: 50px auto 0; + color: #333; +} + +.main-route .city-list>table { + border-collapse: collapse; + width: 100%; + font-size: 15px; +} + +.main-route .city-list>table thead tr { + background: #3c7eff; + border-bottom: 4px solid black; +} + +.main-route .city-list>table thead th { + color: #000; + line-height: 60px; + height: 60px; + font-weight: bold; + text-align: center; +} + +.main-route .city-list>table thead th:first-child { + border-radius: 5px 0 0 0; +} + +.main-route .city-list>table thead th:last-child { + border-radius: 0px 5px 0 0; +} + +.main-route .city-list>table thead th>svg { + font-size: 18px; + color: #fff; +} + +.main-route .city-list>table tbody td { + font-size: 14px; + line-height: 60px; + height: 60px; + text-align: center; +} + +.main-route .city-list>table tbody>tr:nth-child(even) { + background-color: #dcdcdc; +} + +/*************************************css reset*************************************/ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +font, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + font: inherit; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; + font-family: Arial, Helvetica, '\5FAE\8F6F\96C5\9ED1', '\5B8B\4F53', sans-serif; +} + +a { + text-decoration: none; + color: #666 +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: normal; +} + +em, +i, +dfn { + font-style: normal +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} + +del { + text-decoration: line-through; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +/*************************************css style preset*************************************/ +.clearfix:after { + clear: both; + display: table; + content: ''; +} + +.clearfix { + *zoom: 1; +} + +.tc { + text-align: center; +} + +.pr { + position: relative; +} + +.pb { + position: absolute; +} + +.pf { + position: fixed; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.of { + overflow: hidden +} + +.hide { + display: none; +} + +.vh { + visibility: hidden; +} + +.vt { + vertical-align: top; +} + +.vm { + vertical-align: middle; +} + +.vb { + vertical-align: bottom; +} + +.middle { + width: 0; + height: 100%; + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.inline { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.block { + display: block; +} + +.cover { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; +} + +.no-margin { + margin: 0 !important; +} + +.text-overflow { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.padding-x { + padding: 0 22px; +} + +/*************************************** css formal style **********************************/ +body { + background: #f7f8fa; + font-size: 16px; + font-family: "Microsoft Yahei"; + min-width: 1200px; + text-align: left; +} + +/**********头部样式**********/ +.header { + min-width: 1200px; + width: 100%; + height: 90px; + background-color: rgb(70, 69, 69); + +} +.header.inset-top { + position: absolute; + left: 0; + top: 0; + background-color: transparent; +} +.header .header-con { + width: 1200px; + height: 90px; + line-height: 90px; + margin: 0 auto; + text-align: center; +} + +/****左边部分****/ +.header-con .img-logo-wrap { + margin-top: 23px; +} + +.header-con .img-logo { + height: 43px; + display: block; +} + +/****中间部分****/ + +/*导航栏*/ +.header .nav-list { + font-size: 16px; +} + +.header .nav-list .list-item { + float: left; + position: relative; +} + +.header .nav-list .link { + display: block; + padding: 0 15px; + color: #7e869f; +} + +.header .nav-list .link:hover { + color: #fff; +} + +.header .nav-list .list-item .line { + display: none; + position: absolute; + width: 50px; + height: 2px; + background: #3d7dff; + left: 50%; + margin-left: -25px; + bottom: 0; +} + +.header .nav-list .list-item .line-1 { + height: 6px; + border-radius: 4px; +} + +.header .nav-list .list-item.active .link { + color: #fff; + font-size: 18px; +} + +.header .nav-list .list-item.active .line { + display: block; +} + +.header .nav-list .list-item .img-tooltip { + position: absolute; + width: 67px; + height: 23px; + left: 50%; + margin-left: -34px; + top: 11px; +} + +/****右边部分****/ +/*登录前*/ +.header .login-before { + position: relative; +} + +.header .login-before .btn { + width: 80px; + line-height: 32px; + font-size: 16px; + border: 1px solid #3d7dff; + border-radius: 17px; + margin-top: 33px; +} + +.header .login-before .btn-login { + margin-right: 19px; + background: #3d7dff; + color: #fff; +} + +.header .login-before .btn-register { + color: #3d7dff; +} + +.header .login-before .img-tooltip { + position: absolute; + width: 97px; + height: 28px; + bottom: -42px; + left: 95px; +} + +/*登录后*/ +.header .login-after .btn { + text-align: center; +} + +.header .login-after .btn-user { + width: 80px; + margin-right: 16px; + margin-top: 25px; +} + +.header .login-after .btn-user.active { + background: #edf2f2; +} + +.header .login-after .btn-user .img { + display: block; + width: 39px; + margin: 0 auto; +} + +.header .login-after .btn-logout { + width: 80px; + line-height: 32px; + font-size: 16px; + border: 1px solid #fefefe; + color: #fefefe; + ; + border-radius: 17px; + margin-top: 28px; +} + +/**********底部样式**********/ +.footer { + background: #22252e; +} + +.footer-con { + width: 1200px; + margin: 0 auto; + padding: 30px 0; + overflow: hidden; +} + +.footer-con .left-side { + float: left; + padding-top: 31px; +} + +.footer-con .left-side .tip { + font-size: 18px; +} + +.footer-con .left-side .tip .txt-1 { + width: 124px; + color: #fff; +} + +.footer-con .left-side .tip-1 { + position: relative; +} + +.footer-con .left-side .tip-1 .txt-2 { + position: relative; + width: 136px; + color: #fff; + opacity: .5; + filter: alpha(opacity=50); +} + +.footer-con .left-side .tip-1 .txt-3 { + color: #fff; + opacity: .5; + filter: alpha(opacity=50); +} + +.footer-con .left-side .tip-1 .img-hot { + position: absolute; + left: 196px; + top: -5px; + width: 28px; +} + +.footer-con .left-side .tip-2 { + margin-top: 34px; +} + +.footer-con .left-side .tip-2 .txt-2 { + color: #7498fb; +} + +.footer-con .left-side .tip-2 .txt-3 { + color: #7498fb; + margin-left: 20px; +} + +.footer-con .left-side .tip-2 .txt-4 { + color: #7498fb; +} + +.footer-con .left-side .tip-3 { + margin-top: 34px; +} + +.footer-con .left-side .tip-3 .txt-2 { + margin-right: 24px; + color: #fff; + opacity: .5; + filter: alpha(opacity=50); +} + +.footer-con .left-side .tip-3 .txt-3 { + color: #fff; + opacity: .5; + filter: alpha(opacity=50); +} + +.footer-con .left-side .tip-4 { + margin-top: 34px; +} + +.footer-con .left-side .tip-4 a:hover { + opacity: .5; + filter: alpha(opacity=50); + text-decoration: underline; +} + +.footer-con .left-side .tip-4 .txt-2 { + color: #fff; + opacity: .2; + filter: alpha(opacity=20); +} +.footer-con .left-side .tip-5 { + margin-top: 34px; +} +.footer-con .right-side { + float: right; +} + +.footer-con .right-side .img-logo { + display: block; + margin: 0 auto; +} + +.footer-con .right-side .tip { + font-size: 24px; + color: #fff; + text-align: center; + margin-top: -2px; +} + +/**********加载中样式**********/ +.pulse-container { + text-align: center; +} + +.pulse-container .pulse-bubble { + width: 20px; + height: 20px; + border-radius: 50%; + background: #5072fe; + margin: 0 6px; +} + +.pulse-container .pulse-bubble-1 { + -webkit-animation: pulse .4s ease 0s infinite alternate; + animation: pulse .4s ease 0s infinite alternate; +} + +.pulse-container .pulse-bubble-2 { + -webkit-animation: pulse .4s ease .2s infinite alternate; + animation: pulse .4s ease .2s infinite alternate; +} + +.pulse-container .pulse-bubble-3 { + -webkit-animation: pulse .4s ease .4s infinite alternate; + animation: pulse .4s ease .4s infinite alternate; +} + +/**********用户个人中心**********/ +/*主体内容样式*/ +.main-be {} + +.main-be .placeholder { + height: 90px; + background: #444750; +} + +.main-be-wrap { + padding: 25px 0; +} + +.main-be-con { + width: 1200px; + margin: 0 auto; + overflow: hidden; + background: #fff; +} + +.main-be-con-table { + background: transparent; +} + +/*左边导航栏样式*/ +.main-be-con .left-side { + text-align: center; + -webkit-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + -moz-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + -o-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); +} + +.main-be-con-table .left-side { + background: #fff; +} + +.main-be-con .sidebar { + padding-top: 1px; + padding-bottom: 52px; +} + +.main-be-con .sidebar .img-portrait { + display: block; + margin: 60px auto 0; +} + +.main-be-con .sidebar .user-name { + margin-top: 8px; + font-size: 18px; + color: #22252e; +} + +.main-be-con .sidebar .user-type-wrap { + margin-top: 7px; +} + +.main-be-con .sidebar .user-type { + position: relative; + line-height: 16px; + border-radius: 8px; + padding: 0 10px 0 15px; +} + +.main-be-con .sidebar .user-type-vip { + background: -webkit-linear-gradient(90deg, rgba(255, 203, 130, 1) 0%, rgba(255, 185, 86, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(255, 203, 130, 1) 0%, rgba(255, 185, 86, 1) 100%); + background: -o-linear-gradient(90deg, rgba(255, 203, 130, 1) 0%, rgba(255, 185, 86, 1) 100%); + background: -ms-linear-gradient(90deg, rgba(255, 203, 130, 1) 0%, rgba(255, 185, 86, 1) 100%); + background: linear-gradient(90deg, rgba(255, 203, 130, 1) 0%, rgba(255, 185, 86, 1) 100%); +} + +.main-be-con .sidebar .user-type-normal { + background: -webkit-linear-gradient(90deg, rgba(221, 233, 250, 1) 0%, rgba(168, 179, 192, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(221, 233, 250, 1) 0%, rgba(168, 179, 192, 1) 100%); + background: -o-linear-gradient(90deg, rgba(221, 233, 250, 1) 0%, rgba(168, 179, 192, 1) 100%); + background: -ms-linear-gradient(90deg, rgba(221, 233, 250, 1) 0%, rgba(168, 179, 192, 1) 100%); + background: linear-gradient(90deg, rgba(221, 233, 250, 1) 0%, rgba(168, 179, 192, 1) 100%); +} + +.main-be-con .sidebar .user-type .txt { + font-size: 12px; + color: #fff; +} + +.main-be-con .sidebar .user-type .img-vip { + position: absolute; + width: 18px; + top: -1px; + left: -5px; +} + +.main-be-con .sidebar .rest-time-title { + font-size: 0; + line-height: 30px; + margin-top: 19px; +} + +.main-be-con .sidebar .rest-time-title .img-time { + margin-right: 13px; +} + +.main-be-con .sidebar .rest-time-title .txt { + font-size: 14px; + color: #22252e; +} + +.main-be-con .sidebar .rest-time { + margin-top: 8px; + font-size: 18px; + color: #22252e; + font-weight: bold; +} + +.main-be-con .sidebar-list { + margin-top: 43px; +} + +.main-be-con .sidebar-list .list-item { + line-height: 60px; + position: relative; + font-size: 0; +} + +.main-be-con .sidebar-list .list-item .item-bg { + display: none; + border-radius: 2px; + background: -webkit-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -o-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -ms-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); +} + +.main-be-con .sidebar-list .list-item:hover .item-bg { + display: block; +} + +.main-be-con .sidebar-list .list-item.active .item-bg { + display: block; +} + +.main-be-con .sidebar-list .list-item .img-icon { + margin-right: 10px; +} + +.main-be-con .sidebar-list .list-item:hover .img-icon { + margin-right: 13px; +} + +.main-be-con .sidebar-list .list-item.active .img-icon { + margin-right: 13px; +} + +.main-be-con .sidebar-list .list-item .txt { + font-size: 14px; + color: #7e869f; +} + +.main-be-con .sidebar-list .list-item:hover .txt { + font-size: 18px; + color: #3383ff; +} + +.main-be-con .sidebar-list .list-item.active .txt { + font-size: 18px; + color: #3383ff; +} + +.main-be-con .sidebar .btn-logout { + display: block; + margin: 19px auto 0; + width: 220px; + line-height: 40px; + color: #fff; + font-size: 14px; + background: #5072fe; + border-radius: 20px; +} + +/*右边正文样式*/ +.main-be-con .right-side {} + +.main-be-con-table .right-side { + background: #fff; +} + +.main-be-con .main-con { + padding-top: 46px; +} + +.main-be-con .main-con-table {} + +.main-be-con .main-con .main-con-header { + position: relative; + line-height: 58px; +} + +.main-be-con .main-con .main-con-title { + color: #22252e; + font-size: 24px; + padding-left: 50px; +} + +.main-be-con .main-con .main-con-header .line { + position: absolute; + width: 48px; + bottom: 0; + left: 50px; + height: 2px; + background: #22252e; + border-radius: 2px; +} + +.main-be-con .main-con .main-con-header .btn-return { + position: absolute; + right: 0; + top: 50%; + margin-top: -15px; + padding: 0 28px; + line-height: 28px; + color: #7e869f; + font-size: 12px; + border-radius: 15px; + border: 1px solid #d4e5ff; +} + +.main-be-con .main-con .main-con-header .btn-return:hover { + background: #d4e5ff; + color: #333; +} + +.main-be-con .main-con-header .search-tabs { + border-radius: 16px; + position: absolute; + right: 0; + top: 14px; + height: 28px; + font-size: 12px; + text-align: center; + overflow: hidden; + border-top: 1px solid #d4e5ff; + border-bottom: 1px solid #d4e5ff; +} + +.main-be-con .main-con-header .tab-item { + float: left; + color: #7e869f; + margin-top: -1px; + border-radius: 16px; + width: 82px; + line-height: 30px; +} + +.main-be-con .main-con-header .tab-item:first-child { + border-left: 1px solid #d4e5ff; +} + +.main-be-con .main-con-header .tab-item:last-child { + border-right: 1px solid #d4e5ff; +} + +.main-be-con .main-con-header .tab-item.active { + color: #fff; + background: #6ea6ff; + border-color: #6ea6ff; +} + +.main-be-con .main-con-header .main-con-nav-list { + font-size: 20px; +} + +.main-be-con .main-con-header .main-con-nav-list .list-item { + float: left; + position: relative; +} + +.main-be-con .main-con-header .main-con-nav-list .item-link { + display: block; + padding: 0 32px 35px; + color: #999; +} + +.main-be-con .main-con-header .main-con-nav-list .line { + display: none; + position: absolute; + width: 42px; + height: 4px; + left: 50%; + margin-left: -21px; + bottom: 0; + background: #5072fe; + border-radius: 2px; +} + +.main-be-con .main-con-header .main-con-nav-list .list-item:hover .line { + display: block; +} + +.main-be-con .main-con-header .main-con-nav-list .list-item:hover .item-link { + font-weight: bold; + color: #161c3b; +} + +.main-be-con .main-con-header .main-con-nav-list .list-item.active .item-link { + cursor: default; + color: #161c3b; + font-weight: bold; +} + +.main-be-con .main-con-header .main-con-nav-list .list-item.active .line { + display: block; +} + +.main-user .split-line { + width: 500px; + height: 2px; + background: #efefef; +} + +.main-user .split-line-1 { + margin-top: 34px; +} + +.main-user .split-line-2 { + width: auto; +} + +.main-user .user-info-wrap { + padding-top: 43px; + padding-left: 50px; +} + +.main-user .user-info-item { + margin-top: 23px; + line-height: 30px; +} + +.main-user .user-info-item:first-child { + margin-top: 0; +} + +.main-user .user-info-item .item-title { + width: 252px; + color: #22252e; + font-size: 14px; +} + +.main-user .user-info-item .item-con { + font-size: 0; +} + +.main-user .item-con .txt-1 { + font-size: 14px; + color: #22252e; +} + +.main-user .item-con .btn-1 { + font-size: 14px; + color: #5072fe; + padding: 0 22px; + line-height: 30px; + border-radius: 16px; + border: 1px solid #5072fe; + margin-left: 9px; +} + +.main-user .item-con .btn-1:hover { + background: #5072fe; + color: #fff; +} + +.main-user .user-info-wrap .split-line { + margin-left: -51px; + height: 1px; + background: #e8eaef; + margin-top: 26px; + margin-bottom: 34px; +} + +.main-user .nav-content-area {} + +.main-user .nav-content-1 { + padding-top: 18px; + padding-bottom: 20px; +} + +.main-user .nav-content-2 { + padding-top: 19px; +} + +.main-user .nav-content-3 { + padding-top: 1px; + padding-bottom: 20px; +} + +.main-user .nav-content-5 { + padding-top: 24px; + padding-bottom: 20px; +} + +.main-user .nav-content .form-wrap { + position: relative; + padding-top: 1px; +} + +.main-user .nav-content .form-wrap .btn-return { + position: absolute; + right: 30px; + top: 50%; + margin-top: -15px; + padding: 0 28px; + line-height: 28px; + color: #7e869f; + font-size: 12px; + border-radius: 15px; + border: 1px solid #d4e5ff; +} + +.main-user .nav-content .form-item { + margin-top: 24px; + line-height: 42px; + padding-left: 31px; +} + +.main-user .nav-content .form-item .item-title { + width: 265px; + color: #161c3b; + font-size: 18px; +} + +.main-user .nav-content .form-item .item-con { + font-size: 0; +} + +.main-user .nav-content .form-item .item-remarks { + font-size: 12px; + color: #3383ff; + line-height: 20px; + margin-left: -6px; + margin-top: 9px; +} + +.main-user .nav-content .select-box-wrap { + background: #fff; + cursor: pointer; + position: relative; + margin-top: 5px; +} + +.main-user .nav-content .select-box { + border-radius: 8px; + border: 1px solid #d3ddf4; + line-height: 30px; + padding: 0 40px 0 16px; +} + +.main-user .nav-content .select-box-wrap .icon-more { + position: absolute; + width: 17px; + height: 10px; + right: 12px; + top: 12px; + background: url(../img/popbox/icon_more.png) no-repeat; +} + +.main-user .nav-content .select-box-wrap.active .icon-more { + background-position: 0 -10px; +} + +.main-user .nav-content .select-list-wrap { + background: #fff; + line-height: 32px; + position: absolute; + left: 0; + top: 0; + min-width: 100%; + border-radius: 8px; + overflow: hidden; + border: 1px solid #d3ddf4; +} + +.main-user .nav-content .select-list-wrap .select-txt { + font-size: 16px; + color: #22252e; + padding: 0 40px 0 16px; +} + +.main-user .nav-content .select-list {} + +.main-user .nav-content .select-list .list-item { + cursor: pointer; + padding: 0 40px 0 16px; + color: #999; + font-size: 16px; +} + +.main-user .nav-content .select-list .list-item:hover { + background: #d4e5ff; + color: #6ea6ff; +} + +.main-user .nav-content .item-con .txt-1 { + font-size: 16px; + color: #22252e; +} + +.main-user .nav-content-4 .item-con .txt-1 { + margin: 0 4px; +} + +.main-user .nav-content .item-con .txt-2 { + font-size: 36px; + color: #3383ff; +} + +.main-user .nav-content .item-con .btn-minus { + width: 20px; + height: 20px; + background: url(../img/popbox/btn_minus.png?v=20190604001) no-repeat; +} + +.main-user .nav-content .item-con .btn-minus:hover { + background-position: 0 -20px; +} + +.main-user .nav-content .item-con .btn-minus:active { + background-position: 0 -40px; +} + +.main-user .nav-content .item-con .btn-add { + width: 20px; + height: 20px; + background: url(../img/popbox/btn_add.png?v=20190604001) no-repeat; +} + +.main-user .nav-content .item-con .btn-add:hover { + background-position: 0 -20px; +} + +.main-user .nav-content .item-con .btn-add:active { + background-position: 0 -40px; +} + +.main-user .nav-content .item-con .input-txt { + text-align: center; + border: 1px solid #e8eaef; + border-radius: 4px; + font-size: 16px; + color: #22252e; + padding: 0; +} + +.main-user .nav-content .item-con .input-txt:focus { + border-color: #3383ff; +} + +.main-user .nav-content .item-con .input-txt-1 { + width: 88px; + height: 30px; + line-height: 30px; + margin: 0 6px; +} + +.main-user .nav-content .item-con .input-txt-2 { + text-align: left; + width: 120px; + padding: 0 15px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-3 { + text-align: left; + width: 328px; + padding: 0 18px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-4 { + margin-left: 26px; + text-align: left; + width: 120px; + padding: 0 15px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-5 { + text-align: left; + width: 240px; + padding: 0 15px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-6 { + text-align: left; + width: 150px; + padding: 0 12px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-7 { + width: 63px; + padding: 0 12px 0 13px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .input-txt-8 { + margin-left: 26px; + text-align: left; + width: 170px; + padding: 0 19px 0 14px; + height: 30px; + line-height: 30px; +} + +.main-user .nav-content .item-con .payway { + width: 130px; + height: 42px; + background-repeat: no-repeat; +} + +.main-user .nav-content .item-con .payway:hover { + background-position: 0 -42px; +} + +.main-user .nav-content .item-con .payway.active { + background-position: 0 -84px; +} + +.main-user .nav-content .item-con .payway-wechat { + background-image: url(../img/popbox/pay_wechat.png); + margin-right: 15px; +} + +.main-user .nav-content .item-con .payway-alipay { + background-image: url(../img/popbox/pay_alipay.png); +} + +.main-user .nav-content .form-wrap .split-line { + width: auto; + height: 1px; + background: #e8eaef; + margin: 34px 0 40px; +} + +.main-user .nav-content .form-item .item-con .btn-open { + padding: 0 18px; + height: 30px; + line-height: 30px; + color: #fff; + font-size: 14px; + border-radius: 15px; + background: #5072fe; +} + +.main-user .nav-content .form-item .item-con .btn-open:hover { + color: #fff +} + +.main-user .nav-content .form-item .item-con .btn-open:active { + background: #b9cadb; +} + +.main-user .nav-content .form-item .item-con .btn-pay { + padding: 0 31px; + height: 30px; + line-height: 30px; + color: #fff; + font-size: 14px; + border-radius: 12px; + background: #5072fe; +} + +.main-user .nav-content .form-item .item-con .btn-pay:hover { + color: #fff; +} + +.main-user .nav-content .form-item .item-con .btn-pay:active { + background: #b9cadb; +} + +.main-user .nav-content .form-item .item-con .btn-search { + text-align: center; + padding: 0 31px; + height: 30px; + line-height: 30px; + color: #fff; + font-size: 14px; + border-radius: 12px; + background: #5072fe; +} + +.main-user .nav-content .form-item .item-con .btn-search:hover { + color: #fff; +} + +.main-user .nav-content .form-item .item-con .btn-search:active { + background: #b9cadb; +} + +.main-user .nav-content .error-tip-area { + position: relative; + line-height: 24px; + margin-left: 21px; + margin-top: 9px; + padding: 0 13px; + background: #ff3b61; + border-radius: 10px; + font-size: 0; +} + +.main-user .nav-content-4 .error-tip-area { + margin-top: 4px; +} + +.main-user .nav-content .error-tip-area .triangle { + position: absolute; + width: 9px; + left: -6px; + top: 5px; +} + +.main-user .nav-content .error-tip-area .error-tip { + font-size: 12px; + color: #fff; +} + + +.main-user .nav-content-2 .form-item { + margin-top: 0; +} + +.main-user .nav-content-2 .form-item .item-con .btn-pay { + margin-left: 26px; +} + +.main-user .nav-content-3 .item-con .txt-2 { + font-size: 18px; +} + +.main-user .nav-content-3 .form-item .item-remarks { + margin: 0 0 0 16px; + line-height: 42px; +} + +.main-user .nav-content-4 .form-wrap { + z-index: 1; +} + +.main-user .nav-content-4 .form-item { + padding-left: 0; +} + +.main-user .nav-content-4 .select-box-wrap { + margin: 0 0 0 26px; + min-width: 150px; +} + +.main-user .nav-content-4 .form-item .item-con .btn-search { + margin-left: 26px; +} + +.main-user .nav-content-4 .error-tip-area { + margin-top: 4px; +} + +.main-user .nav-content-6 .form-wrap { + z-index: 1; +} + +.main-user .nav-content-6 .form-item { + padding-left: 0; +} + +.main-user .nav-content-6 .user-type-wrap {} + +.main-user .nav-content-6 .title { + margin-right: 7px; + font-size: 18px; + color: #161c3b; + line-height: 32px; +} + +.main-user .nav-content-6 .select-box-wrap { + margin: 0; +} + +.main-user .nav-content-6 .form-item .item-con .btn-search { + margin-left: 26px; +} + +.main-user .nav-content-6 .error-tip-area { + margin-top: 4px; +} + +/*表格样式*/ +.main-be-con .main-con .data-area { + min-height: 724px; + position: relative; +} + +.main-be-con .main-con .data-table-wrap { + padding-top: 25px; +} + +.main-be-con .main-con .data-table { + width: 100%; +} + +.main-be-con .main-con .data-table .color-1 { + color: #6ea6ff; +} + +.main-be-con .main-con .data-table .link-view { + color: #22252e; + padding-bottom: 4px; + border-bottom: 1px solid #22252e; +} + +.main-be-con .main-con .data-table .link-view:hover { + color: #6ea6ff; + border-color: #6ea6ff; +} + +.main-be-con .main-con .data-table .btn { + display: inline-block; + border-radius: 12px; + padding: 0 18px; + line-height: 24px; + font-size: 12px; +} + +.main-be-con .main-con .data-table .btn-1 { + background: #6ea6ff; + color: #fff; +} + +.main-be-con .main-con .data-table thead { + color: #22252e; + font-size: 14px; + text-align: center; + background: #e9f1ff; +} + +.main-be-con .main-con .data-table thead tr { + height: 64px; +} + +/* */ +.main-be-con .main-con .data-table-long thead th { + min-width: 75px; +} + +.main-be-con .main-con .data-table thead .data-table-th-1 { + min-width: 85px; +} + +.main-be-con .main-con .data-table tbody { + line-height: 26px; + font-size: 12px; + color: #22252e; + text-align: center; +} + +.main-be-con .main-con .data-table-long tbody { + line-height: 28px; +} + +.main-be-con .main-con .data-table tbody tr { + border-bottom: 1px solid #e7eaee; +} + +/*没有相关数据*/ +.main-be-con .main-con .no-data { + padding-top: 120px; +} + +.main-be-con .main-con .no-data .img-no-data { + display: block; + margin: 0 auto; +} + +.main-be-con .main-con .no-data .tip { + font-size: 14px; + color: #7e869f; + text-align: center; + margin-top: 32px; +} + +/*分页样式*/ +.pagination-wrap { + display: flex; + height: 70px; + justify-content: center; + align-items: center; +} + +.pagination { + font-size: 12px; + line-height: 32px; + text-align: center; +} + +.pagination li { + float: left; + margin-left: 5px; +} + +.pagination li a { + float: left; + width: 32px; + color: #7e869f; + border-radius: 50%; +} + +.pagination li a:hover { + background: #d4e5ff; + color: #3383ff; +} + +.pagination .active a, +.pagination .active a:hover { + background: #d4e5ff; + color: #3383ff; + cursor: default; +} + +.pagination .disabled a, +.pagination .disabled a:hover { + color: #7e869f; + background: #eee; + cursor: not-allowed; +} + +.pagination-info { + margin-left: 8px; + font-size: 0; + line-height: 32px; +} + +.pagination-info .txt { + font-size: 12px; + color: #7e869f; +} + +.pagination-info .txt-1 { + margin-left: 4px; +} + +.pagination-info .input-txt { + border-radius: 10px; + border: 1px solid #d4e5ff; + width: 38px; + height: 20px; + line-height: 20px; + padding: 0; + font-size: 12px; + color: #333; + text-align: center; + margin-left: 4px; + margin-right: 10px; +} + +.pagination-info .btn-jump { + line-height: 22px; + padding: 0 10px; + background: #6ea6ff; + color: #fff; + font-size: 12px; + margin-left: 12px; + border-radius: 10px; +} + +/**********弹出区域**********/ +.pop-area { + z-index: 10000; +} + +.pop-area.pf { + position: fixed; +} + +.mask-layer { + background: #444750; + opacity: .3; + filter: alpha(opacity=30); +} + +.pop-box { + left: 50%; + top: 50%; +} + +/****支付弹窗****/ +.pop-pay { + position: absolute; + width: 546px; + padding-left: 174px; + margin-left: -360px; + margin-top: -314px; + overflow: hidden; + border-radius: 4px; + background: #fff; +} + +/*左边部分*/ +.pop-pay .left-side { + position: absolute; + width: 174px; + left: 0; + top: 0; + height: 100%; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + background: -webkit-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +.pop-pay .left-side .img { + display: block; + margin: 14px auto 0; +} + +/*右边部分*/ +.pop-pay .right-side { + height: 589px; + padding-top: 39px; + padding-left: 65px; +} + +.pop-pay .pop-header { + position: relative; + line-height: 58px; +} + +.pop-pay .pop-header-title { + color: #22252e; + font-size: 24px; +} + +.pop-pay .pop-header .line { + position: absolute; + width: 48px; + bottom: 0; + left: 0; + height: 2px; + background: #22252e; + border-radius: 2px; +} + +.pop-pay .pop-header .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; + right: 66px; + top: 17px; +} + +.pop-pay .pop-header .pop-close .img-close { + margin-right: 6px; +} + +.pop-pay .pop-header .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +.pop-pay .form-wrap { + padding-top: 45px; +} + +.pop-pay .form-item { + margin-top: 25px; + line-height: 42px; +} + +.pop-pay .form-item:first-child { + margin-top: 0; +} + +.pop-pay .form-item .item-title { + width: 102px; + color: #cccfdc; + font-size: 16px; +} + +.pop-pay .form-item .item-con { + font-size: 0; +} + +.pop-pay .form-item .item-remarks { + font-size: 16px; + color: #3383ff; + line-height: 56px; + margin-right: 65px; +} + +.pop-pay .select-box-wrap { + background: #fff; + cursor: pointer; + position: relative; +} + +.pop-pay .select-box { + border-radius: 21px; + border: 1px solid #e8eaef; + line-height: 40px; + padding: 0 40px 0 16px; +} + +.pop-pay .select-box-wrap .icon-more { + position: absolute; + width: 17px; + height: 10px; + right: 12px; + top: 16px; + background: url(../img/popbox/icon_more.png) no-repeat; +} + +.pop-pay .select-box-wrap.active .icon-more { + background-position: 0 -10px; +} + +.pop-pay .select-list-wrap { + background: #fff; + line-height: 42px; + position: absolute; + left: 0; + top: 0; + min-width: 100%; + border-radius: 21px; + overflow: hidden; + box-shadow: 0 0 24px 0 rgba(97, 158, 255, .3); +} + +.pop-pay .select-list-wrap .select-txt { + font-size: 16px; + color: #22252e; + padding: 0 40px 0 16px; +} + +.pop-pay .select-list {} + +.pop-pay .select-list .list-item { + cursor: pointer; + padding: 0 40px 0 16px; + color: #cccfdc; + font-size: 16px; +} + +.pop-pay .select-list .list-item:hover { + background: #d4e5ff; + color: #6ea6ff; +} + +.pop-pay .item-con .txt-1 { + font-size: 16px; + color: #22252e; +} + +.pop-pay .item-con .txt-2 { + font-size: 36px; + color: #3383ff; +} + +.pop-pay .item-con .btn-minus { + width: 20px; + height: 20px; + background: url(../img/popbox/btn_minus.png) no-repeat; +} + +.pop-pay .item-con .btn-minus:hover { + background-position: 0 -20px; +} + +.pop-pay .item-con .btn-add { + width: 20px; + height: 20px; + background: url(../img/popbox/btn_add.png) no-repeat; +} + +.pop-pay .item-con .btn-add:hover { + background-position: 0 -20px; +} + +.pop-pay .item-con .input-txt { + text-align: center; + border: 1px solid #e8eaef; + border-radius: 16px; + font-size: 16px; + color: #22252e; + padding: 0; +} + +.pop-pay .item-con .input-txt:focus { + border-color: #3383ff; +} + +.pop-pay .item-con .input-txt-1 { + width: 83px; + height: 30px; + line-height: 30px; + margin: 0 6px; +} + +.pop-pay .item-con .payway { + text-align: center; + width: 128px; + height: 40px; + line-height: 40px; + color: #22252e; + border: 1px solid #e8eaef; + border-radius: 22px; + font-size: 16px; +} + +.pop-pay .item-con .payway:hover { + border-color: #6ea6ff; +} + +.pop-pay .item-con .payway.active { + border-color: #6ea6ff; + background: #6ea6ff; + color: #fff; +} + +.pop-pay .item-con .payway-wechat { + margin-right: 15px; +} + +.pop-pay .item-con .payway .img-wrap { + background-repeat: no-repeat; + margin-right: 8px; +} + +.pop-pay .item-con .payway-wechat .img-wrap { + width: 25px; + height: 24px; + background-image: url(../img/popbox/icon_wechat.png); +} + +.pop-pay .item-con .payway-wechat.active .img-wrap { + background-position: 0 -24px; +} + +.pop-pay .item-con .payway-alipay .img-wrap { + width: 24px; + height: 23px; + background-image: url(../img/popbox/icon_alipay.png); +} + +.pop-pay .item-con .payway-alipay.active .img-wrap { + background-position: 0 -23px; +} + +.pop-pay .form-wrap .split-line { + width: 416px; + height: 1px; + background: #e8eaef; + margin-top: 34px; +} + +.pop-pay .form-item .item-con .btn-pay { + display: block; + width: 200px; + height: 42px; + line-height: 42px; + color: #fff; + font-size: 16px; + text-align: center; + border-radius: 22px; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +.pop-pay .form-item .item-con .payment-discount { + position: relative; + line-height: 20px; + margin-left: 21px; + margin-top: 10px; + padding: 0 13px; + background: #ff3b61; + border-radius: 10px; +} + +.pop-pay .form-item .item-con .payment-discount .triangle { + position: absolute; + width: 9px; + left: -6px; + top: 4px; +} + +.pop-pay .form-item .item-con .payment-discount .discount-info { + font-size: 12px; + color: #fff; +} + +/****弹窗状态公共部分****/ +.pop-pay-status .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; + right: 20px; + top: 10px; +} + +.pop-pay-status .pop-close .img-close { + margin-right: 6px; +} + +.pop-pay-status .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +/*确认支付弹窗*/ +.pop-pay-sure { + position: absolute; + width: 444px; + height: 451px; + margin-left: -222px; + margin-top: -226px; + text-align: center; + padding-top: 1px; + border-radius: 4px; + background: #fff; +} + +.pop-pay-sure .img-pay-logo { + position: absolute; + top: 0; + left: -52px; + width: 52px; +} + +.pop-pay-sure .pay-sure-tip { + font-size: 16px; + color: #22252e; + margin-top: 30px; +} + +.pop-pay-sure .pay-sure-price { + font-size: 30px; + color: #3383ff; + margin-top: 23px; +} + +.pop-pay-sure .img-qrcode-wrap { + width: 256px; + margin: 0 auto 0; +} + +.pop-pay-sure .img-qrcode { + display: block; + width: 100%; +} + +.pop-pay-sure .btn { + display: block; + margin: 42px auto 0; + width: 200px; + height: 42px; + line-height: 42px; + color: #fff; + font-size: 16px; + text-align: center; + border-radius: 22px; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +/*正在支付弹窗*/ +.pop-pay-loading { + position: absolute; + width: 432px; + height: 249px; + margin-left: -216px; + margin-top: -125px; + text-align: center; + padding-top: 1px; + border-radius: 8px; + background: #fff; + box-shadow: 0px 0px 23px 0px rgba(146, 156, 159, 0.16); +} + +.pop-pay-loading .pay-loading-tip { + font-size: 20px; + color: #161c3b; + margin-top: 0; + font-weight: bold; +} + +.pop-pay-loading .pulse-container { + margin-top: 25px; +} + +/*支付成功弹窗*/ +.pop-pay-success { + position: absolute; + width: 444px; + height: 303px; + margin-left: -222px; + margin-top: -152px; + text-align: center; + padding-top: 1px; + border-radius: 4px; + background: #fff; +} + +.pop-pay-success .img-pay-logo { + position: absolute; + top: 0; + left: -52px; + width: 52px; +} + +.pop-pay-success .pay-success-tip { + font-size: 16px; + color: #3383ff; + margin-top: 20px; +} + +.pop-pay-success .img-icon { + display: block; + width: 75px; + margin: 30px auto 0; +} + +.pop-pay-success .btn { + display: block; + margin: 42px auto 0; + width: 200px; + height: 42px; + line-height: 42px; + color: #fff; + font-size: 16px; + text-align: center; + border-radius: 22px; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +/*支付失败弹窗*/ +.pop-pay-fail { + position: absolute; + width: 444px; + height: 303px; + margin-left: -222px; + margin-top: -152px; + text-align: center; + padding-top: 1px; + border-radius: 4px; + background: #fff; +} + +.pop-pay-fail .img-pay-logo { + position: absolute; + top: 0; + left: -52px; + width: 52px; +} + +.pop-pay-fail .pay-fail-tip { + font-size: 16px; + color: #3383ff; + margin-top: 0; +} + +.pop-pay-fail .img-icon { + display: block; + width: 75px; + margin: 30px auto 0; +} + +.pop-pay-fail .btn { + display: block; + margin: 42px auto 0; + width: 200px; + height: 42px; + line-height: 42px; + color: #fff; + font-size: 16px; + text-align: center; + border-radius: 22px; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +/****用户注册登录弹窗****/ + +/****弹窗公共部分****/ +.pop-user { + position: absolute; + width: 432px; + padding-left: 368px; + margin-left: -400px; + overflow: hidden; + border-radius: 4px; + background: #fff; +} + +/*左边部分*/ +.pop-user .left-side { + position: absolute; + width: 368px; + left: 0; + top: 0; + height: 100%; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + background: -webkit-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(0deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +.pop-user .left-side .img {} + +.pop-user .left-side .txt { + font-size: 18px; + color: #fff; + margin-top: 7px; +} + +/*右边部分*/ +.pop-user .right-side { + padding: 39px 49px 0; +} + +.pop-user .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; +} + +.pop-user .pop-close .img-close { + margin-right: 6px; +} + +.pop-user .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +/*登录弹窗*/ +.pop-login { + margin-top: -252px; +} + +.pop-login .right-side { + height: 465px; +} + +.pop-login .pop-close { + right: 49px; + top: 33px; +} + +.pop-login .pop-header { + font-size: 12px; +} + +.pop-login .pop-header .txt { + color: #999; + margin-right: 8px; +} + +.pop-login .pop-header .link { + color: #3383ff; +} + +.pop-login .form-wrap { + margin-top: 80px; +} + +.pop-login .form-item { + position: relative; +} + +.pop-login .form-item .icon-wrap { + position: absolute; + width: 20px; + height: 20px; + left: 4px; + top: 50%; + margin-top: -10px; + background-repeat: no-repeat; +} + +.pop-login .form-item .icon-account { + background-image: url(../img/popbox/icon_account.png); +} + +.pop-login .form-item .icon-pwd { + background-image: url(../img/popbox/icon_pwd.png); +} + +.pop-login .form-item .input-txt { + display: block; + width: 268px; + border: none; + border-bottom: 1px solid #e8eaef; + padding: 25px 14px 25px 52px; + height: 20px; + line-height: 20px; + font-size: 16px; + color: #999; +} + +.pop-login .form-item .input-txt:focus { + border-color: #5072fe; + color: #22252e; +} + +.pop-login .form-item.focus .icon-wrap { + background-position: 0 -20px; +} + +.pop-login .error-tip { + font-size: 14px; + color: #f35050; + text-align: center; + height: 31px; + line-height: 31px; + margin-top: 20px; +} + +.pop-login .btn-login { + cursor: pointer; + width: 139px; + height: 43px; + line-height: 43px; + border-radius: 22px; + font-size: 16px; + color: #fff; + text-align: center; + margin: 10px auto 0; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +.pop-login .forgot-pwd-wrap { + font-size: 12px; + margin-top: 21px; + text-align: center; +} + +.pop-login .forgot-pwd { + color: #3383ff; +} + +/*注册弹窗*/ +#js-pop-register { + width: 500px; +} + +#js-pop-register .right-side { + box-sizing: border-box; + padding: 39px 60px 20px; +} + +#js-pop-register .form-item-range { + padding-top: 15px; +} + +#js-pop-register .form-item-range .rangebox { + height: 40px; + background-color: rgb(232, 232, 232); + border: 1px solid #aaa; + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +#js-pop-register .form-item-range .rangebox>div.redbg { + position: absolute; + left: 0; + top: 0; + width: 0px; + height: 100%; + background-color: rgba(82, 103, 242, 0.63); +} + + +#js-pop-register .form-item-range .rangebox>div.bar { + position: absolute; + left: 0; + top: 0; + width: 50px; + height: 40px; + cursor: move; + box-sizing: border-box; + background-color: #fff; + border-right: 1px solid #aaa; + font-size: 25px; + color: rgb(172, 172, 172); + text-align: center; + line-height: 40px; + font-weight: bold; +} + +#js-pop-register .form-item-range .rangebox>p { + font-size: 14px; + color: rgb(156, 156, 156); + position: relative; + overflow: hidden; + user-select: none; +} + +#js-pop-register .form-item-range .rangebox>p::after { + content: ''; + position: absolute; + left: -50px; + top: 0; + width: 50px; + height: 100%; + background: linear-gradient(to right, + rgba(102, 102, 102, 0), + rgb(255, 255, 255), + rgba(102, 101, 101, 0)) no-repeat; + animation: bgtoright 2.5s 1s linear infinite; +} + +@keyframes bgtoright { + from { + left: -300%; + } + + to { + left: 300%; + } +} + +.pop-register { + margin-top: -308px; +} + +.pop-register .right-side {} + +.pop-register .pop-close { + right: 49px; + top: 42px; +} + +.pop-register .pop-header .link { + color: #3383ff; + font-size: 0; + line-height: 18px; +} + +.pop-register .pop-header .img { + margin-right: 11px; +} + +.pop-register .pop-header .txt { + font-size: 12px; +} + +.pop-register .form-wrap { + margin-top: 16px; +} + +.pop-register .form-item { + position: relative; +} + +.pop-register .form-item .input-txt { + display: block; + width: 100%; + border: none; + border-bottom: 1px solid #e8eaef; + padding: 21px 14px 14px 50px; + box-sizing: border-box; + height: 61px; + line-height: 20px; + font-size: 14px; + color: #999; +} + +.pop-register .form-item>.lefticon { + position: absolute; + left: 13px; + top: 55%; + transform: translateY(-50%); + font-size: 20px; + color: rgb(124, 124, 248); +} + +.pop-register .form-item>.righticon { + position: absolute; + right: 5px; + top: 55%; + transform: translateY(-50%); + font-size: 20px; + color: rgb(124, 124, 248); + cursor: pointer; +} + +.pop-register .form-item-img-code .input-txt { + width: 220px; + padding-right: 100px; +} + +.pop-register .form-item-sms-code .input-txt { + padding-right: 110px; +} + +.pop-register .form-item .input-txt:focus { + border-color: #5072fe; + color: #22252e; +} + +.pop-register .form-item .img-code { + position: absolute; + top: 50%; + margin-top: -22px; + right: 7px; + cursor: pointer; +} + +.pop-register .form-item .sms-code { + text-align: center; + position: absolute; + top: 50%; + margin-top: -15px; + right: 0; + width: 98px; + height: 28px; + line-height: 28px; + border: 1px solid #5072fe; + border-radius: 15px; + color: #3383ff; + font-size: 14px; +} + +.pop-register .form-item .sms-code.disabled { + border-color: #888; + color: #888; + font-size: 12px; + cursor: default; +} + +.pop-register .register-tip { + font-size: 0; + line-height: 16px; + margin-top: 25px; + padding-left: 14px; +} + +.pop-register .register-tip .check { + width: 16px; + height: 16px; + background: url(../img/popbox/icon_check.png) no-repeat; +} + +.pop-register .register-tip .check.active { + background-position: 0 -16px; +} + +.pop-register .register-tip .txt { + font-size: 12px; + color: #22252e; + margin-left: 12px; +} + +.pop-register .register-tip .link { + font-size: 12px; + color: #3383ff; +} + +.pop-register .error-tip { + font-size: 14px; + color: #f35050; + text-align: center; + height: 31px; + line-height: 31px; + margin-top: 4px; +} + +.pop-register .btn-register { + cursor: pointer; + width: 139px; + height: 43px; + line-height: 43px; + border-radius: 22px; + font-size: 16px; + color: #fff; + text-align: center; + margin: 5px auto 0; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +.pop-register .btn-register.disabled { + cursor: default; + background: #e8eaef; +} + +/*忘记密码弹窗*/ +.pop-forgot { + margin-top: -308px; +} + +.pop-forgot .right-side { + height: 578px; +} + +.pop-forgot .pop-header { + position: relative; + line-height: 58px; +} + +.pop-forgot .pop-header-title { + color: #22252e; + font-size: 24px; +} + +.pop-forgot .pop-header .line { + position: absolute; + width: 48px; + height: 2px; + bottom: 0; + left: 0; + background: #22252e; + border-radius: 2px; +} + +.pop-forgot .pop-header .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; + top: 17px; + right: 49px; +} + +.pop-forgot .pop-header .pop-close .img-close { + margin-right: 6px; +} + +.pop-forgot .pop-header .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +.pop-forgot .form-wrap { + margin-top: 20px; +} + +.pop-forgot .form-item { + position: relative; +} + +.pop-forgot .form-item .input-txt { + display: block; + width: 306px; + border: none; + border-bottom: 1px solid #e8eaef; + padding: 21px 14px; + height: 20px; + line-height: 20px; + font-size: 16px; + color: #999; +} + +.pop-forgot .form-item-img-code .input-txt { + width: 220px; + padding-right: 100px; +} + +.pop-forgot .form-item-sms-code .input-txt { + width: 210px; + padding-right: 110px; +} + +.pop-forgot .form-item .input-txt:focus { + border-color: #5072fe; + color: #22252e; +} + +.pop-forgot .form-item .img-code { + position: absolute; + top: 50%; + margin-top: -22px; + right: 7px; + cursor: pointer; +} + +.pop-forgot .form-item .sms-code { + text-align: center; + position: absolute; + top: 50%; + margin-top: -15px; + right: 0; + width: 98px; + height: 28px; + line-height: 28px; + border: 1px solid #5072fe; + border-radius: 15px; + color: #3383ff; + font-size: 14px; +} + +.pop-forgot .form-item .sms-code.disabled { + border-color: #888; + color: #888; + font-size: 12px; + cursor: default; +} + +.pop-forgot .error-tip { + font-size: 14px; + color: #f35050; + text-align: center; + height: 31px; + line-height: 31px; + margin-top: 20px; +} + +.pop-forgot .btn-forgot { + cursor: pointer; + width: 139px; + height: 43px; + line-height: 43px; + border-radius: 22px; + font-size: 16px; + color: #fff; + text-align: center; + margin: 10px auto 0; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +/*修改密码弹窗*/ +.pop-change { + margin-top: -308px; +} + +.pop-change .right-side { + height: 578px; +} + +.pop-change .pop-header { + position: relative; + line-height: 58px; +} + +.pop-change .pop-header-title { + color: #22252e; + font-size: 24px; +} + +.pop-change .pop-header .line { + position: absolute; + width: 48px; + height: 2px; + bottom: 0; + left: 0; + background: #22252e; + border-radius: 2px; +} + +.pop-change .pop-header .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; + top: 17px; + right: 49px; +} + +.pop-change .pop-header .pop-close .img-close { + margin-right: 6px; +} + +.pop-change .pop-header .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +.pop-change .form-wrap { + margin-top: 60px; +} + +.pop-change .form-item { + position: relative; +} + +.pop-change .form-item .input-txt { + display: block; + width: 306px; + border: none; + border-bottom: 1px solid #e8eaef; + padding: 21px 14px; + height: 20px; + line-height: 20px; + font-size: 16px; + color: #999; +} + +.pop-change .form-item-img-code .input-txt { + width: 220px; + padding-right: 100px; +} + +.pop-change .form-item-sms-code .input-txt { + width: 210px; + padding-right: 110px; +} + +.pop-change .form-item .input-txt:focus { + border-color: #5072fe; + color: #22252e; +} + +.pop-change .form-item .img-code { + position: absolute; + top: 50%; + margin-top: -22px; + right: 7px; + cursor: pointer; +} + +.pop-change .form-item .sms-code { + text-align: center; + position: absolute; + top: 50%; + margin-top: -15px; + right: 0; + width: 98px; + height: 28px; + line-height: 28px; + border: 1px solid #5072fe; + border-radius: 15px; + color: #3383ff; + font-size: 14px; +} + +.pop-change .form-item .sms-code.disabled { + border-color: #888; + color: #888; + font-size: 12px; + cursor: default; +} + +.pop-change .error-tip { + font-size: 14px; + color: #f35050; + text-align: center; + height: 31px; + line-height: 31px; + margin-top: 20px; +} + +.pop-change .btn-change { + cursor: pointer; + width: 139px; + height: 43px; + line-height: 43px; + border-radius: 22px; + font-size: 16px; + color: #fff; + text-align: center; + margin: 10px auto 0; + background: -webkit-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -moz-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -o-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: -ms-linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background: linear-gradient(-30deg, rgba(48, 129, 255, 1) 0%, rgba(110, 166, 255, 1) 100%); + background-color: #3383ff; +} + +/****客服弹窗****/ +.pop-service { + position: fixed; + z-index: 9999; + width: 350px; + height: 320px; + margin-left: -220px; + margin-top: -240px; + opacity: 0; + filter: alpha(opacity=0); + padding: 0 45px; + background: #fff; + border-radius: 12px; + box-shadow: 0px 0px 40px 0px rgba(197, 209, 245, 0.84); +} + +.pop-service .pop-header { + padding-top: 12px; + position: relative; + line-height: 62px; +} + +.pop-service .pop-header .txt { + font-size: 24px; + color: #22252e; +} + +.pop-service .pop-header .close { + position: absolute; + width: 26px; + height: 26px; + right: 0; + top: 50%; + margin-top: -13px; + background: url(../img/popbox/kefu_close.png) no-repeat; +} + +.pop-service .pop-header .split-line { + margin: 0 6px; + height: 1px; + background: #e5e5e5; +} + +.pop-service .pop-service-con { + padding-top: 1px; +} + +.pop-service .pop-service-con .kefu-area { + margin-top: 21px; +} + +.pop-service .pop-service-con .kefu-area .img-qq {} + +.pop-service .pop-service-con .desc-area { + margin-left: 14px; +} + +.pop-service .pop-service-con .desc-area .tip-1 { + color: #22252e; + font-size: 24px; + margin-top: 35px; +} + +.pop-service .pop-service-con .desc-area .tip-2 { + color: #333; + font-size: 18px; + margin-top: 12px; +} + +.pop-service .pop-service-con .btn-area { + margin-top: 28px; + text-align: center; + font-size: 16px; +} + +.pop-service .pop-service-con .btn-area .btn { + border-radius: 4px; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.pop-service .pop-service-con .btn-yes { + width: 144px; + height: 36px; + line-height: 36px; + color: #fff; + background: #0095ff; +} + +.pop-service .pop-service-con .btn-yes:hover { + background: #0077cc; +} + +.pop-service .pop-service-con .btn-no { + width: 142px; + height: 34px; + line-height: 34px; + border: 1px solid #d0d1d2; + color: #8891a6; +} + +.pop-service .pop-service-con .btn-no:hover { + background: #eee; + color: #333; +} + +/****在线咨询悬浮窗****/ +.aside-bar { + position: fixed; + right: 5px; + top: 300px; + z-index: 9999; + width: 65px; + height: 65px; +} + +.aside-bar-item { + width: 100%; + height: 100%; + border-radius: 8px; + border: 1px solid #e5e5e5; + color: #5173ff; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + background-color: #fff; + cursor: pointer; + font-size: 14px; + position: absolute; + left: 0; + top: 0; + transition: top 0.5s, + background-color 0.5s, + color 0.5s; +} + +.aside-bar-item>*:first-child { + display: block; + margin-bottom: 10px; + font-size: 25px; +} + +.aside-bar-item:hover { + z-index: 100 !important; + background-color: #5072fe; + color: white; + border-color: transparent; + box-shadow: 0px 0px 5px 3px rgba(0, 0, 0, 0.596); +} + +.aside-bar-item:hover>div { + display: block; +} + +.aside-bar-item>div { + display: none; + position: absolute; + right: 65px; + top: 0; + padding-right: 10px; +} + +.aside-bar-item-pop { + position: relative; + border: 1px solid #5072fe; + min-width: 284px; + max-width: 284px; + background-color: #fff; + padding-top: 45px; + padding-bottom: 20px; +} + +.aside-bar-item-pop>i { + position: absolute; + right: 15px; + top: 15px; + font-size: 16px; + color: #000000; +} + +.aside-bar-item-pop .img-box { + width: 100%; + padding-bottom: 22px; + display: flex; + flex-direction: column; + align-items: center; +} + +.aside-bar-item-pop .img-box>*:first-child { + width: 100px; + height: 100px; + margin-bottom: 6px; + display: block; + font-size: 50px; + text-align: center; + line-height: 100px; + color: #4d74fe; +} + +.aside-bar-item-pop .img-box>span { + color: #a9a9a9; + font-size: 12px; +} + +.aside-bar-link { + display: flex; + align-items: center; + width: 100%; + height: 60px; + border-radius: 8px; + transition: all 0.3s; + font-size: 14px; +} + +.aside-bar-link>span { + display: block; + width: 45px; + height: 45px; + border-radius: 50%; + background-color: #4d74fe; + transition: all 0.3s; + line-height: 45px; + text-align: center; + color: white; + margin: 0 25px 0 10px; + font-size: 25px; +} + +.aside-bar-link>div>p { + line-height: 1.7; + transition: all 0.3s; +} + +.aside-bar-link>div>p:first-child { + color: #4d74fe; +} + +.aside-bar-link>div>p:last-child { + color: #656565; +} + +.aside-bar-link:hover { + background-color: #4d74fe; + box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.295); +} + +.aside-bar-link:hover>span { + background-color: #fff; + color: #47f3fe; +} + +.aside-bar-item-pop-title { + font-size: 20px; + color: #666; + letter-spacing: 2px; + text-align: center; + margin-bottom: 25px; +} + +.aside-bar-item-pop-title~.aside-bar-link { + margin-bottom: 15px; +} + +.aside-bar-item-pop-title~.aside-bar-link>span { + margin-left: 30px; +} + +.aside-bar-link:hover>div>p { + color: white; +} + + + + + + + + + + + + +/****信息编辑弹窗****/ +.pop-edit { + position: absolute; + width: 432px; + height: 529px; + padding-top: 1px; + border-radius: 8px; + background: #fff; +} + +.pop-edit .pop-close { + font-size: 0; + line-height: 24px; + position: absolute; + right: 20px; + top: 10px; +} + +.pop-edit .pop-close .img-close { + margin-right: 6px; +} + +.pop-edit .pop-close .txt { + font-size: 12px; + color: #3383ff; +} + +.pop-edit .pop-header { + position: relative; + margin-top: 50px; + padding-left: 55px; +} + +.pop-edit .pop-header-title { + color: #161c3b; + font-size: 20px; + font-weight: bold; +} + +.pop-edit .form-wrap { + margin-top: 59px; + padding-left: 55px; +} + +.pop-edit .form-item { + position: relative; + line-height: 42px; + margin-top: 21px; +} + +.pop-edit .form-item:first-child { + margin-top: 0; +} + +.pop-edit .form-item .item-title { + width: 94px; + color: #161c3b; + font-size: 16px; + font-weight: bold; +} + +.pop-edit .form-item .item-con { + font-size: 0; +} + +.pop-edit .form-item .item-con .txt-1 { + font-size: 16px; + color: #22252e; +} + +.pop-edit .form-item .item-con .txt-2 { + font-size: 16px; + color: #22252e; +} + +.pop-edit .form-item .input-txt { + width: 156px; + height: 30px; + line-height: 30px; + padding: 0 14px; + font-size: 16px; + color: #22252e; + border: 1px solid #e8eaef; + border-radius: 4px; +} + +.pop-edit .form-item .input-txt:focus { + border-color: #5072fe; + color: #161c3b; +} + +.pop-edit .form-item .input-textarea { + font-family: "Microsoft Yahei"; + width: 156px; + height: 64px; + line-height: 30px; + padding: 7px 14px; + font-size: 16px; + color: #22252e; + border: 1px solid #e8eaef; + border-radius: 4px; + resize: none; +} + +.pop-edit .form-item .input-textarea:focus { + border-color: #5072fe; + color: #161c3b; +} + +.pop-edit .error-tip { + font-size: 14px; + color: #f35050; + text-align: center; + height: 31px; + line-height: 31px; + margin-top: 20px; +} + +.pop-edit .btn-confirm-edit { + cursor: pointer; + width: 160px; + height: 40px; + line-height: 40px; + border-radius: 6px; + font-size: 14px; + color: #fff; + text-align: center; + margin: 10px auto 0; + background: #5072fe; +} + +.pop-edit .btn-confirm-edit:hover { + color: #fff +} + +.pop-edit .btn-confirm-edit:active { + background: #b9cadb; +} + +/**********首页**********/ +.main-index {} + +/****背景区域****/ +.main-index .bg-area { + position: relative; + padding-top: 90px; +} +.root-index .header{ + background-color: transparent; + left: 0; + top: 0; + position: absolute; +} + + + +.main-index .bg-wrap { + background: url(../img/index/bg.jpg) no-repeat right #444750; +} + +.main-index .bg-content { + width: 1200px; + margin: 0 auto; + position: relative; + padding-top: 4.832%; + padding-bottom: 4.05%; +} + +.main-index .bg-big-title-1 { + font-size: 36px; + color: #fff; + font-weight: bold; +} + +.main-index .bg-big-title-2 { + font-size: 36px; + color: #fff; + margin-top: 42px; +} + +.main-index .bg-small-title { + font-size: 24px; + color: #fff; + /*color: #d4ebff;*/ + margin-top: 37px; + /*opacity: .2;filter: alpha(opacity=20);*/ +} + +.main-index .bg-free-tray { + margin-top: 31px; + font-size: 0; + line-height: 24px; +} + +.main-index .bg-free-tray .free-tray { + color: #ff3e3e; + font-size: 24px; +} + +.main-index .bg-free-tray .img-hot { + width: 28px; + margin-left: 14px; +} + +.main-index .bg-content .download-area { + margin-top: 64px; +} + +.main-index .bg-content .download-file { + position: relative; + ; + width: 240px; + height: 56px; + line-height: 56px; + background-repeat: no-repeat; +} + +.main-index .bg-content .download-file .download-qrcode-wrap { + position: absolute; + padding: 10px; + background: #fff; + left: 50%; + margin-left: -55px; + bottom: 65px; +} + +.main-index .bg-content .download-file .img-qrcode { + display: block; + width: 100px; +} + +.main-index .bg-content .download-file .triangle { + position: absolute; + font-size: 40px; + color: #fff; + bottom: -18px; + line-height: 1; + left: 50%; + margin-left: -12px; +} + +.main-index .bg-content .download-windows { + background-image: url(../img/index/btn_windows.png); +} + +.main-index .bg-content .download-app { + margin-left: 19px; + background-image: url(../img/index/btn_app.png); +} + +.main-index .bg-content .bg-tip-area { + font-size: 14px; + color: #fff; + line-height: 25px; + margin-top: 21px; +} + +.main-index .bg-area .img-pc-phone { + position: absolute; + right: 16.75%; + top: 20.53%; + width: 31.25%; + min-width: 500px; +} + +.main-index .img-wrap { + background: #fff; + height: 2680px; + padding-top: 75px; + overflow: hidden; +} + +.main-index .img-wrap .img { + display: block; + margin: 0 auto; +} + +.main-index .map-area { + background: #fff; +} + +.main-index .map-area .placeholder { + height: 110px; +} + +.main-index .map-con { + width: 1200px; + margin: 0 auto; + position: relative; +} + +.main-index .map-bg-wrap { + width: 1054px; + height: 800px; + background: url(../img/index/index_map_bg.png) no-repeat; + position: relative; +} + +.main-index .map-bg-wrap .maps { + width: 980px; + height: 620px; + position: absolute; + right: 17px; + bottom: 40px; +} + +.main-index .map-bg-wrap .map-tips { + position: absolute; + width: 200px; + top: 25px; + right: 70px; + line-height: 28px; + color: #444; + font-size: 16px; + font-weight: normal; + text-align: left; +} + +.main-index .map-bg-wrap .map-notes { + position: absolute; + left: 120px; + bottom: 20px; +} + +.main-index .map-bg-wrap .map-notes .list-item { + line-height: 48px; + height: 48px; + position: relative; + display: block; + box-sizing: border-box; + padding: 0 0 0 45px; + text-align: left; + color: #555; + font-size: 18px; + font-weight: normal; +} + +.main-index .map-bg-wrap .map-notes .list-item:before { + width: 26px; + height: 26px; + box-sizing: border-box; + display: block; + border-radius: 100%; + content: ""; + position: absolute; + left: 4px; + top: calc(50% - 13px); + border: 1px solid #0a99ff; +} + +.main-index .map-bg-wrap .map-notes .list-item:after { + width: 14px; + height: 14px; + display: block; + content: ""; + position: absolute; + border-radius: 100%; + left: 10px; + top: calc(50% - 7px); + background: #0a99ff; +} + +.main-index .map-bg-wrap .points { + display: block; + position: relative; +} + +.main-index .map-bg-wrap .points .item { + padding: 0 0 0 25px; + height: 18px; + line-height: 18px; + position: absolute; + color: #666; + font-weight: normal; +} + +.main-index .map-bg-wrap .points .item.am>b.pb-1 { + -webkit-animation: rip 5s ease-out infinite; + -ms-animation: rip 5s ease-out infinite; + -moz-animation: rip 5s ease-out infinite; + animation: rip 5s ease-out infinite; +} + +.main-index .map-bg-wrap .points .item.am>b.pb-2 { + -webkit-animation: rip 5s ease-out infinite 900ms; + -ms-animation: rip 5s ease-out infinite 900ms; + -moz-animation: rip 5s ease-out infinite 900ms; + animation: rip 5s ease-out infinite 900ms; +} + +.main-index .map-bg-wrap .points .item.am>b.pb-3 { + -webkit-animation: rip 5s ease-out infinite 900ms; + -ms-animation: rip 5s ease-out infinite 900ms; + -moz-animation: rip 5s ease-out infinite 900ms; + animation: rip 5s ease-out infinite 900ms; +} + +.main-index .map-bg-wrap .points .item>b { + position: absolute; + width: 120px; + height: 120px; + box-sizing: border-box; + display: block; + border-radius: 100%; + opacity: 0; + filter: alpha(opacity=0); + z-index: 1; + left: calc(-60px + 8px); + top: calc(50% - 60px); + border: 2px solid #ffbb6e; +} + +.main-index .map-bg-wrap .points .item>b.pb-3 { + box-shadow: inset 0 0 50px rgba(255, 187, 110, 0.3); +} + +.main-index .map-bg-wrap .points .item:hover { + z-index: 10; +} + +.main-index .map-bg-wrap .points .item.active>span { + border-color: #0a99ff; +} + +.main-index .map-bg-wrap .points .item.active>span:after { + background: #0a99ff; +} + +.main-index .map-bg-wrap .points .item.active>b { + border: 2px solid #0a99ff; +} + +.main-index .map-bg-wrap .points .item.active>b.pb-3 { + box-shadow: inset 0 0 50px rgba(10, 153, 255, 0.2); +} + +.main-index .map-bg-wrap .points .item.small { + z-index: 11; +} + +.main-index .map-bg-wrap .points .item.small:hover p { + display: block; +} + +.main-index .map-bg-wrap .points .item.small:hover:after { + display: block; +} + +.main-index .map-bg-wrap .points .item.small:hover:before { + display: block; +} + +.main-index .map-bg-wrap .points .item.small p { + position: absolute; + line-height: 20px; + padding: 0 5px; + font-size: 12px; + color: #666; + background: #fff; + border: 1px solid #0a99ff; + border-radius: 10px; + top: 10px; + left: 35px; + white-space: nowrap; + box-sizing: border-box; + z-index: 2; + display: none; +} + +.main-index .map-bg-wrap .points .item.small:after { + width: 16px; + height: 1px; + background: #0a99ff; + position: absolute; + left: 20px; + top: 20px; + content: ""; + z-index: 1; + display: none; +} + +.main-index .map-bg-wrap .points .item.small:before { + width: 16px; + height: 1px; + background: #0a99ff; + display: none; + position: absolute; + left: 6px; + top: 14px; + content: ""; + z-index: 1; + -webkit-transform: rotate(40deg); + -ms-transform: rotate(40deg); + -moz-transform: rotate(40deg); + transform: rotate(40deg); +} + +.main-index .map-bg-wrap .points .item.big { + z-index: 2; +} + +.main-index .map-bg-wrap .points .item.big>span { + border: 1px solid #ffbb6e; + background: #fff; +} + +.main-index .map-bg-wrap .points .item.big>span:after { + background: #ffbb6e; +} + +.main-index .map-bg-wrap .points .item.big.active>span { + border: 1px solid #0a99ff; + background: #fff; +} + +.main-index .map-bg-wrap .points .item.big.active>span:after { + background: #0a99ff; +} + +.main-index .map-bg-wrap .points .item.big.active p { + display: block; + font-size: 14px; + line-height: 18px; +} + +.main-index .map-bg-wrap .points .item.big.active:after { + display: none; +} + +.main-index .map-bg-wrap .points .item.big.active:before { + display: none; +} + +.main-index .map-bg-wrap .points .item>span { + display: block; + border-radius: 100%; + width: 16px; + height: 16px; + box-sizing: border-box; + background: none; + border: none; + position: absolute; + z-index: 2; + left: 0; + top: calc(50% - 8px); +} + +.main-index .map-bg-wrap .points .item>span:after { + width: 8px; + height: 8px; + display: block; + background: #ffbb6e; + content: ""; + border-radius: 100%; + position: absolute; + top: calc(50% - 4px); + left: 3px; +} + +.main-index .map-info-wrap { + position: absolute; + right: 0; + top: 336px; + text-align: center; +} + +.main-index .map-info-title { + font-size: 36px; + color: #22252e; + line-height: 48px; +} + +.main-index .map-info-details { + line-height: 32px; + color: #22252e; + font-size: 18px; + margin-top: 30px; +} + +.main-index .map-info-details .tip-wrap { + margin-top: 26px; +} + +.main-index .map-info-details .tip-wrap:first-child { + margin-top: 0; +} + +.main-index .map-info-details .txt { + color: #3d7dff; +} + +.main-index .advantage-area-1 { + background: #fff; + padding-top: 38px; +} + +.main-index .advantage-area-1 .advantage-con { + width: 1200px; + margin: 0 auto; + text-align: center; +} + +.main-index .advantage-area-1 .img-logo { + display: block; + width: 159px; + margin: 0 auto; +} + +.main-index .advantage-area-1 .advantage-desc { + margin-top: 27px; +} + +.main-index .advantage-area-1 .desc-title { + color: #222328; + font-size: 36px; + font-weight: bold; +} + +.main-index .advantage-area-1 .desc-details { + color: #222328; + font-size: 24px; + margin-top: 28px; +} + +.main-index .advantage-area-1 .img-advantage { + display: block; + margin: 60px auto 0; +} + +.main-index .advantage-area-2 { + background: #fff; +} + +.main-index .advantage-area-2 .advantage-con { + width: 1200px; + margin: 0 auto; + text-align: center; + padding: 132px 0 69px; +} + +.main-index .advantage-area-2 .img-advantage { + display: block; + margin: 0 auto; +} + +.main-index .advantage-area-2 .img-advantage-1 {} + +.main-index .advantage-area-2 .advantage-wrap { + margin-top: 94px; +} + +.main-index .advantage-area-2 .img-advantage-2 {} + +.main-index .advantage-area-2 .advantage-info { + padding-top: 110px; +} + +.main-index .advantage-area-2 .advantage-info .big-title { + font-size: 36px; + color: #222328; + font-weight: bold; + margin-top: 1px; +} + +.main-index .advantage-area-2 .advantage-info .btn-receive { + display: block; + margin: 41px auto 0; + width: 272px; + height: 58px; + border-radius: 6px; + background: #f00; + font-size: 24px; + color: #fff; + line-height: 58px; + text-align: center; +} + +.main-index .advantage-area-2 .advantage-info .img-list { + display: block; + margin: 68px auto 0; + width: 298px; +} + +.main-index .service-area { + background: #f5f8fd; +} + +.main-index .service-con { + width: 1200px; + margin: 0 auto; + padding-top: 1px; + padding-bottom: 90px; + text-align: center; +} + +.main-index .service-big-title { + font-size: 36px; + color: #22252e; + margin-top: 87px; + font-weight: bold; +} + +.main-index .service-small-title { + font-size: 24px; + color: #22252e; + margin-top: 24px; +} + +.main-index .service-list { + margin-top: 49px; +} + +.main-index .service-list .list-item { + width: 400px; + float: left; +} + +.main-index .service-list .item-box { + width: 335px; + height: 236px; + border: 2px solid #3585f9; + border-radius: 20px; + margin: 0 auto; +} + +.main-index .service-list .item-title { + font-size: 30px; + color: #444750; + margin-top: 34px; +} + +.main-index .service-list .item-tip { + font-size: 18px; + color: #444750; + line-height: 32px; + margin-top: 15px; +} + +.main-index .advantage-area-3 { + background: #fff; +} + +.main-index .advantage-area-3 .advantage-con { + position: relative; + width: 1200px; + margin: 0 auto; + text-align: center; + padding-top: 77px; + +} + +.main-index .advantage-area-3 .desc-title { + font-size: 36px; + color: #22252e; + font-weight: bold; +} + +.main-index .advantage-area-3 .advantage-list { + margin-top: 46px; +} + +.main-index .advantage-area-3 .advantage-list .list-item { + float: left; + width: 400px; +} + +.main-index .advantage-area-3 .advantage-list .tip-1 { + font-size: 24px; + color: #9297a3; +} + +.main-index .advantage-area-3 .advantage-list .tip-2 { + font-size: 30px; + color: #7498fb; + margin-top: 19px; + font-weight: bold; +} + +.main-index .advantage-area-3 .loading { + position: absolute; + width: 16px; + height: 16px; +} + +.main-index .advantage-area-3 .loading .point { + position: absolute; + z-index: 2; + left: 0; + top: 0; + padding: 3px; + width: 8px; + height: 8px; + border-radius: 50%; + background: #7498fb; + background-clip: content-box; + border: 1px solid #7498fb; +} + +.main-index .advantage-area-3 .loading .circle { + opacity: 0; + filter: alpha(opacity=0); + position: absolute; + z-index: 1; + width: 116px; + height: 116px; + left: -53px; + top: -53px; + border: 2px solid #7498fb; + border-radius: 50%; +} + +.main-index .advantage-area-3 .loading.active .circle-1 { + -webkit-animation: rip 5s ease-out infinite; + -ms-animation: rip 5s ease-out infinite; + -moz-animation: rip 5s ease-out infinite; + animation: rip 5s ease-out infinite; +} + +.main-index .advantage-area-3 .loading.active .circle-2 { + -webkit-animation: rip 5s ease-out infinite 900ms; + -ms-animation: rip 5s ease-out infinite 900ms; + -moz-animation: rip 5s ease-out infinite 900ms; + animation: rip 5s ease-out infinite 900ms; +} + +.main-index .advantage-area-3 .loading.active .circle-3 { + box-shadow: inset 0 0 50px rgba(10, 153, 255, 0.2); + -webkit-animation: rip 5s ease-out infinite 900ms; + -ms-animation: rip 5s ease-out infinite 900ms; + -moz-animation: rip 5s ease-out infinite 900ms; + animation: rip 5s ease-out infinite 900ms; +} + +/****新闻资讯****/ +.main-index .news-area { + padding: 39px 0 59px; + background: #fff; +} + +.main-index .news-content { + width: 1200px; + margin: 0 auto; +} + +.main-index .news-content .news-big-title { + margin-bottom: 20px; +} + +.main-index .news-content .news-big-title>h1 { + font-size: 30px; + color: #000; + font-weight: bold; + text-align: center; + line-height: 3; +} + +.main-index .news-content .news-big-title>h2 { + font-size: 18px; + color: #666; + text-align: center; + line-height: 2; +} + +.main-index .news-content .news-listbox { + display: flex; + justify-content: space-between; +} + +.main-index .news-content .news-listbox .new-list-item { + width: 360px; +} + +.main-index .news-content .news-listbox .new-list-item .new-list-item-imgbox { + display: block; + width: 360px; + height: 220px; + overflow: hidden; +} + +.main-index .news-content .news-listbox .new-list-item>ul { + box-sizing: border-box; + padding-left: 5px; + box-shadow: 0 2px 12px 1px #E5E9EE; + border-radius: 0 0 1px 1px; +} + +.main-index .news-content .news-listbox .new-list-item>ul>li { + cursor: pointer; + display: flex; + align-items: center; +} + +.main-index .news-content .news-listbox .new-list-item>ul>li:hover>span { + margin-right: 40px; +} + +.main-index .news-content .news-listbox .new-list-item>ul>li>span { + display: block; + font-size: 12px; + background-color: #ffdede; + padding: 1px 3px; + border-radius: 2px; + margin-right: 10px; + user-select: none; + transition: all 0.4s; +} + +.main-index .news-content .news-listbox .new-list-item>ul>li>a { + color: black; + font-size: 14px; + transition: all 0.3s; + line-height: 3; + display: block; + flex-grow: 1; +} + +.main-index .news-content .news-listbox .new-list-item>ul>li>a:hover { + color: blue; + +} + +.main-index .news-content .news-listbox .new-list-item .new-list-item-imgbox:hover>img { + transform: scale(1.2); +} + +.main-index .news-content .news-listbox .new-list-item .new-list-item-imgbox>img { + display: block; + width: 360px; + height: 220px; + transition: all 0.3s; +} + + +.main-index .details-list-item { + line-height: 63px; + padding: 0 43px; +} + +.main-index .details-list-item .date { + font-size: 20px; + color: #161c3b; + font-weight: bold; +} + +.main-index .details-list-item .link { + width: 180px; + font-size: 20px; + color: #161c3b; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.main-index .details-list-item .link:hover { + color: #4a8efd; +} + +.main-index .news-content .btn-more { + display: block; + text-align: center; + width: 160px; + height: 38px; + line-height: 38px; + border-radius: 6px; + border: 1px solid #4a8efd; + margin: 29px auto 0; + color: #4a8efd; + font-size: 14px; +} + +.main-index .news-content .btn-more:hover { + background: #4a8efd; + color: #fff; +} + +/****底部推广****/ +.promotion-banner { + position: fixed; + left: 50%; + bottom: 0; + z-index: 1000; +} + +.promotion-banner .banner-close { + position: absolute; +} + +.promotion-banner-5-1 { + width: 1200px; + height: 270px; + margin-left: -600px; + background: url(../img/index/promotion/5.1/banner.png) no-repeat center; +} + +.promotion-banner-5-1 .banner-close { + width: 40px; + height: 40px; + right: 0; + top: 43px; + cursor: pointer; + background: url(../img/index/promotion/5.1/close.png) no-repeat; +} + +.promotion-banner-6-1 { + width: 1200px; + height: 270px; + margin-left: -600px; + background: url(../img/index/promotion/6.1/banner.png) no-repeat center; +} + +.promotion-banner-6-1 .banner-close { + width: 40px; + height: 40px; + right: 0; + top: 43px; + cursor: pointer; + background: url(../img/index/promotion/6.1/close.png) no-repeat; +} + + +/**********套餐购买**********/ +.root-buy { + background: #fff; +} + +.root-buy .placeholder { + height: 90px; + background: #444750; +} + +.main-buy { + position: relative; +} + +/****背景区域****/ +.main-buy .bg-area { + position: relative; +} + +/*背景内容*/ +.main-buy .bg-wrap { + background: #fff; +} + +.main-buy .bg-content { + width: 1200px; + margin: 0 auto; + overflow: hidden; + position: relative; + padding-bottom: 82px; +} + +.main-buy .bg-big-title { + text-align: center; + font-size: 28px; + color: #242529; + margin-top: 58px; + font-weight: bold; +} + +.main-buy .bg-small-title { + text-align: center; + font-size: 30px; + color: #fff; + margin-top: 27px; +} + +.main-buy .bg-split-line { + width: 36px; + height: 2px; + background: #3d7dff; + margin: 14px auto 0; +} + +/*优势列表*/ +.main-buy .advantage-list { + margin-top: 32px; +} + +.main-buy .advantage-list-item { + float: left; + width: 400px; + font-size: 0; +} + +.main-buy .details-list {} + +.main-buy .details-list-1 { + padding-left: 122px; +} + +.main-buy .details-list-2 { + padding-left: 73px; +} + +.main-buy .details-list-3 { + padding-left: 15px; +} + +.main-buy .details-list-item { + line-height: 32px; + margin-top: 14px; +} + +.main-buy .details-list-item:first-child { + margin-top: 0; +} + +.main-buy .details-list-item .img-hook { + margin-right: 10px; +} + +.main-buy .details-list-item .txt { + font-size: 18px; + color: #242529; +} + +/****套餐区域****/ +.main-buy .meal-area {} + +/**正常活动**/ +.meal-area-normal .meal-wrap { + width: 1200px; + margin: 0 auto; + padding-top: 1px; + height: 533px; +} + +.main-buy .meal-btn-renewal { + display: block; + margin: 60px auto -60px; + text-align: center; + width: 160px; + height: 40px; + line-height: 40px; + font-size: 16px; + border-radius: 20px; + color: #fff; + background: #ff3340; +} + +.main-buy .meal-btn-renewal:hover { + color: #ffe06d; +} + +.main-buy .meal-btn-renewal:active { + background: #dcdcdc; + color: #fff; +} + +/*套餐列表*/ +.meal-area-normal .meal-list { + margin-top: 120px; + display: flex; + justify-content: center; +} + +.meal-area-normal .meal-list .list-item { + width: 198px; + border: 1px solid #e2e2e2; + height: 314px; + position: relative; + background: #fff; + border-radius: 6px; + box-shadow: 0 0 20px rgba(241, 244, 247, .64); +} + + +.meal-area-normal .meal-list .list-item:hover { + border-color: #5072fe; +} + +.meal-area-normal .meal-list .meal-slogan { + position: absolute; + width: 189px; + height: 39px; + line-height: 39px; + text-align: center; + color: #fff; + font-size: 14px; + left: 50%; + margin-left: -95px; + top: -24px; + background: url(../img/buy/discount/daily/banner_1.png) no-repeat center; +} + +.meal-area-normal .meal-list .meal-title { + text-align: center; + line-height: 66px; + font-size: 16px; + color: #22252e; + font-weight: bold; + border-bottom: 1px solid #e5e5e5; +} + +.meal-area-normal .meal-list .meal-detail { + padding-top: 18px; + text-align: center; +} + +.meal-area-normal .meal-list .meal-detail .old-price { + color: #bec6d6; + font-size: 14px; +} + +.meal-area-normal .meal-list .meal-detail .old-price .txt { + padding: 0 2px; + background: url(../img/buy/line_through.png) repeat-x left center; +} + +.meal-area-normal .meal-list .meal-detail .new-price { + color: #22252e; + font-size: 60px; + font-weight: bold; + margin-top: 29px; +} + +.meal-area-normal .meal-list .meal-detail .other { + color: #22252e; + font-size: 18px; + margin-top: 6px; +} + +.meal-area-normal .meal-list .meal-detail .btn-buy { + display: block; + width: 118px; + height: 28px; + margin: 42px auto 0; + line-height: 28px; + font-size: 14px; + color: #3d7dff; + border-radius: 15px; + border: 1px solid #3d7dff; +} + +.meal-area-normal .meal-list .meal-detail .btn-buy:hover { + background: #3d7dff; + color: #fff; +} + +/****推广活动****/ +.meal-area-promotion .meal-wrap { + width: 1200px; + margin: 0 auto; +} + +/**5.1推广**/ +.meal-area-5-1 .meal-banner-area { + height: 450px; + background: url(../img/buy/discount/5.1/banner.jpg) no-repeat center; +} + +.meal-area-5-1 .meal-wrap { + padding-top: 1px; +} + +.meal-area-6-1 .meal-banner-area { + height: 360px; + background: url(../img/buy/discount/6.1/banner.jpg) no-repeat center; +} + +.meal-area-6-1 .meal-wrap { + padding-top: 1px; +} + +/**套餐列表**/ + +/*5.1活动套餐*/ +.meal-area-5-1 .meal-list { + margin-top: -121px; +} + +.meal-area-5-1 .meal-list .list-item { + float: left; + width: 198px; + height: 312px; + position: relative; + background: #fff; + border-radius: 6px; + border: 1px solid #b9babf; +} + +.meal-area-5-1 .meal-list .list-item:first-child {} + +.meal-area-5-1 .meal-list .list-item:hover { + border-color: #f03026; +} + +.meal-area-5-1 .meal-list .img-banner { + position: absolute; + width: 94px; + height: 91px; + left: -20px; + top: -40px; +} + +.meal-area-5-1 .meal-list .meal-title { + text-align: center; + line-height: 66px; + font-size: 16px; + color: #22252e; + font-weight: bold; + border-bottom: 1px solid #e5e5e5; +} + +.meal-area-5-1 .meal-list .meal-detail { + padding-top: 18px; + text-align: center; +} + +.meal-area-5-1 .meal-list .meal-detail .old-price { + color: #bec6d6; + font-size: 14px; +} + +.meal-area-5-1 .meal-list .meal-detail .old-price .txt { + padding: 0 2px; + background: url(../img/buy/line_through.png) repeat-x left center; +} + +.meal-area-5-1 .meal-list .meal-detail .new-price { + color: #22252e; + font-size: 60px; + font-weight: bold; + margin-top: 29px; +} + +.meal-area-5-1 .meal-list .meal-detail .other { + color: #22252e; + font-size: 18px; + margin-top: 6px; +} + +.meal-area-5-1 .meal-list .meal-detail .btn-buy { + display: block; + width: 118px; + height: 28px; + margin: 42px auto 0; + line-height: 28px; + font-size: 14px; + color: #3d7dff; + border-radius: 15px; + border: 1px solid #3d7dff; +} + +.meal-area-5-1 .meal-list .meal-detail .btn-buy:hover { + background: #3d7dff; + color: #fff; +} + +/*6.1 & 端午双节活动套餐*/ +.meal-area-6-1 .meal-list { + margin-top: -31px; +} + +.meal-area-6-1 .meal-list .list-item { + float: left; + width: 198px; + height: 312px; + position: relative; + background: #fff; + border-radius: 6px; + border: 1px solid #b9babf; +} + +.meal-area-6-1 .meal-list .list-item:first-child {} + +.meal-area-6-1 .meal-list .list-item:hover { + border-color: #f03026; +} + +.meal-area-6-1 .meal-list .img-banner { + position: absolute; + width: 94px; + height: 91px; + left: -20px; + top: -40px; +} + +.meal-area-6-1 .meal-list .meal-title { + text-align: center; + line-height: 66px; + font-size: 16px; + color: #22252e; + font-weight: bold; + border-bottom: 1px solid #e5e5e5; +} + +.meal-area-6-1 .meal-list .meal-detail { + padding-top: 18px; + text-align: center; +} + +.meal-area-6-1 .meal-list .meal-detail .old-price { + color: #bec6d6; + font-size: 14px; +} + +.meal-area-6-1 .meal-list .meal-detail .old-price .txt { + padding: 0 2px; + background: url(../img/buy/line_through.png) repeat-x left center; +} + +.meal-area-6-1 .meal-list .meal-detail .new-price { + color: #22252e; + font-size: 60px; + font-weight: bold; + margin-top: 29px; +} + +.meal-area-6-1 .meal-list .meal-detail .other { + color: #22252e; + font-size: 18px; + margin-top: 6px; +} + +.meal-area-6-1 .meal-list .meal-detail .btn-buy { + display: block; + width: 118px; + height: 28px; + margin: 42px auto 0; + line-height: 28px; + font-size: 14px; + color: #3d7dff; + border-radius: 15px; + border: 1px solid #3d7dff; +} + +.meal-area-6-1 .meal-list .meal-detail .btn-buy:hover { + background: #3d7dff; + color: #fff; +} + +.meal-area-6-1 .meal-list .promotion-label-wrap { + position: absolute; + background: #fe3557; + padding: 0 15px; + line-height: 20px; + color: #fff; + font-size: 12px; + border-radius: 4px; + bottom: 56px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%) +} + +.meal-area-6-1 .meal-list .promotion-label-wrap .label-txt { + white-space: nowrap; +} + +.meal-area-6-1 .meal-list .promotion-label-wrap .triangle { + position: absolute; + width: 0; + height: 0; + left: 50%; + margin-left: -4px; + top: 20px; + border: 4px solid transparent; + border-top-color: #fe3557; +} + +/**********软件下载**********/ + + +/****背景区域****/ +.main-download .bg-area { + position: relative; + height: 940px; + box-sizing: border-box; + background-color: #000; + padding-top: 90px; +} + +.root-download .header { + background-color: transparent; + position: absolute; + left: 0; + top: 0; +} + + + +.main-download .bg-content { + width: 100%; + height: 100%; + position: relative; + padding-top: 1px; + text-align: center; +} + +.main-download .bg-content .img-logo { + display: block; + width: 97px; + margin: 87px auto 0; +} + +.main-download .bg-content .txtbox { + color: white; + width: 1200px; + margin: 43px auto 48px; + display: flex; + flex-direction: column; + align-items: center; +} + +.main-download .bg-content .txtbox>h2 { + font-size: 34px; + text-align: center; + margin-bottom: 40px; +} + +.main-download .bg-content .txtbox>div { + display: flex; + +} + +.main-download .bg-content .txtbox>div>p { + font-size: 16px; + position: relative; +} + +.main-download .bg-content .txtbox>div>p:first-of-type { + margin-right: 99px; +} + +.main-download .bg-content .txtbox>div>p::before { + content: ''; + display: block; + position: absolute; + width: 15px; + height: 15px; + border-radius: 50%; + background-color: #3585f9; + left: -22px; + top: 50%; + transform: translateY(-50%); +} + + + +.main-download .bg-big-title { + font-size: 48px; + color: #fff; + margin-top: 137px; +} + +.main-download .bg-small-title { + font-size: 24px; + color: #fff; + margin-top: 13px; +} + +.main-download .bg-tip { + font-size: 14px; + color: #fff; + line-height: 30px; + margin-top: 28px; +} + +.main-download .download-area { + width: 1200px; + margin: 0 auto; + display: flex; + justify-content: space-between; +} + +.main-download .download-file { + flex: 1; + height: 320px; + border-radius: 8px; + color: #fff; + position: relative; + box-sizing: border-box; +} + +.main-download .download-file:not(:last-child)::after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 0; + height: 80%; + width: 1px; + background-color: #3585f9; +} + +.main-download .download-file:hover { + border: 1px solid #3585f9; +} + +.main-download .download-img-area { + text-align: center; + margin-top: 45px; + height: 74px; +} + +.main-download .img-download-wrap { + background-repeat: no-repeat; +} + +.main-download .download-windows .img-download-wrap { + width: 75px; + height: 67px; + background-image: url(../img/download/icon_windows.png); +} + +.main-download .download-windows:hover .img-download-wrap { + background-position: 0 -67px +} + +.main-download .download-app .img-download-wrap { + width: 64px; + height: 74px; + background-image: url(../img/download/icon_app.png); +} + +.main-download .download-app:hover .img-download-wrap { + background-position: 0 -74px; +} + +.main-download .download-file .download-title { + font-size: 30px; + color: #fff; + padding-top: 56px; + margin-bottom: 52px; +} + +.main-download .download-file .download-tip { + font-size: 14px; + color: #fff; + line-height: 20px; +} + +.main-download .download-file:hover .download-title { + color: #3585f9; +} + +.main-download .download-file:hover .download-tip { + color: #3585f9; +} + +.main-download .download-file.download-androidsdk .download-tip, +.main-download .download-file.download-winsdk .download-tip { + width: 154px; + display: flex; + justify-content: space-between; + margin: 0 auto; +} + + +.main-download .download-file .btn-download { + position: relative; + display: block; + margin: 30px auto 0; + width: 170px; + height: 54px; + line-height: 54px; + color: #fff; + font-size: 16px; + background-color: transparent; + border: 1px solid #3585f9; + border-radius: 10px; +} + +.main-download .download-file:hover .btn-download { + background: #3585f9; +} + +.main-download .download-file .download-qrcode-wrap { + position: absolute; + padding: 10px; + background: #fff; + left: 50%; + margin-left: -55px; + bottom: 65px; +} + +.main-download .download-file .img-qrcode { + display: block; + width: 100px; +} + +.main-download .download-file .triangle { + position: absolute; + font-size: 40px; + color: #fff; + bottom: -18px; + line-height: 1; + left: 50%; + margin-left: -12px; +} + +/**********代理加盟**********/ +.root-join .header { + position: absolute; + left: 0; + top: 0; + background-color: transparent; + z-index: 999; +} + +/****背景区域****/ +.main-join .bg-area { + position: relative; + height: 510px; + padding-top: 90px; +} + +.main-join .bg-wrap { + background: url(../img/join/bg.jpg) no-repeat center; +} + +.main-join .bg-content { + width: 1200px; + margin: 0 auto; + position: relative; + padding-top: 1px; + text-align: center; +} + +.main-join .bg-big-title { + font-size: 48px; + color: #fff; + margin-top: 136px; +} + +.main-join .bg-small-title { + font-size: 24px; + color: #fff; + margin-top: 15px; +} + +/****加盟代理区域****/ +.main-join .join-area { + position: relative; + background: #fff; +} + +.main-join .join-wrap { + width: 1200px; + margin: 0 auto; + text-align: center; + height: 684px; + padding-top: 1px; +} + +.main-join .join-wrap .table-wrap { + margin-top: -237px; + border: 1px solid #c9cacb; + background: #fff; + height: 529px; +} + +.main-join .advantage-area { + margin-top: 70px; + text-align: center; +} + +.main-join .advantage-area .big-title { + color: #242529; + font-size: 28px; + font-weight: bold; +} + +.main-join .advantage-area .split-line { + width: 36px; + height: 2px; + background: #3d7dff; + margin: 13px auto 0; +} + +.main-join .advantage-area .tip { + color: #b9babf; + font-size: 18px; + line-height: 22px; + margin-top: 36px; +} + +.main-join .advantage-area .advantage-list { + margin-top: 57px; +} + +.main-join .advantage-area .advantage-list-item { + float: left; + width: 25%; +} + +.main-join .advantage-area .advantage-list-item .advantage-title { + width: 143px; + height: 35px; + line-height: 35px; + color: #000; + background: #cddcf9; + font-size: 20px; + margin: 0 auto; + font-weight: bold; +} + +.main-join .advantage-area .advantage-list-item .advantage-desc { + font-size: 14px; + color: #000; + line-height: 24px; + margin-top: 23px; +} + +/**********帮助中心**********/ +.main-help .placeholder { + height: 90px; + background: #444750; +} + +.main-help-con-wrap { + padding: 25px 0; +} + +.main-help-con { + width: 1200px; + margin: 0 auto; + overflow: hidden; +} + +.main-help-con .left-side { + width: 320px; + background: #fff; + -webkit-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + -moz-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + -o-box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); + box-shadow: 0px 0px 28px 3px rgba(223, 223, 225, 0.31); +} + +.main-help-con .sidebar { + padding-left: 30px; +} + +.main-help-con .sidebar-list { + border-top: 1px solid #e7eaee; +} + +.main-help-con .sidebar-list:first-child { + border-top: 0; +} + +.main-help-con .sidebar-list .list-title { + height: 62px; + line-height: 62px; + font-size: 0; + position: relative; + cursor: pointer; +} + +.main-help-con .sidebar-list .list-title .img-icon { + vertical-align: middle; + margin-right: 19px; +} + +.main-help-con .sidebar-list .list-title .txt { + font-size: 14px; + color: #22252e; + vertical-align: middle; +} + +.main-help-con .sidebar-list .list-title .img-arrow-wrap { + position: absolute; + width: 18px; + height: 10px; + right: 30px; + top: 50%; + margin-top: -5px; + background: url(../img/help/img_arrow.png) 0 -10px; +} + +.main-help-con .sidebar-list .list-title.open .img-arrow-wrap { + background-position: 0 0; +} + +.main-help-con .sidebar-list .list-item { + height: 58px; + line-height: 58px; + cursor: pointer; + font-size: 14px; + color: #7e869f; +} + +.main-help-con .sidebar-list .list-item:hover { + background: -webkit-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -o-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -ms-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); +} + +.main-help-con .sidebar-list .list-item.active { + background: -webkit-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -o-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: -ms-linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); + background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(212, 229, 255, 1) 100%); +} + +.main-help-con .sidebar-list .list-item .img-video { + margin-left: 8px; + margin-top: 20px; + vertical-align: top; +} + +.main-help-con .right-side { + padding-bottom: 30px; + background: #fff; +} + +.main-help-con .main-con { + padding-left: 50px; + padding-top: 46px; +} + +.main-help-con .list-details {} + +.main-help-con .list-details .title { + font-size: 24px; + color: #22252e; +} + +.main-help-con .list-details .details-content { + color: #22252e; + margin-top: 34px; +} + +.main-help-con .list-details .details-content .link { + color: #3d7dff; +} + +.main-help-con .list-details .details-content .link:hover { + text-decoration: underline; +} + +.main-help-con .list-details .details-content .tip-1 { + line-height: 2; + font-size: 12px; +} + +.main-help-con .list-details .details-content .tip-1>.province { + font-weight: bold; +} + +.main-help-con .list-details .details-content .tip-2 { + font-size: 14px; + margin-bottom: 10px; +} + +.main-help-con .list-details .details-content .tip-3 { + font-size: 14px; + line-height: 24px; + color: #a5a5a5; + margin-bottom: 20px; +} + +.main-help-con .list-details .details-content .video { + display: block; + margin: 30px 0; + object-fit: fill; +} + +.main-help-con .list-details .details-content .img { + margin: 30px 0; + display: block; +} + +.main-help-con .list-details .details-content .img-1 { + width: 600px; +} + +.main-help-con .list-details .details-content .img-2 { + width: 600px; +} + +.main-help-con .list-details .details-content .img-3 { + width: 600px; +} + +.main-help-con .list-details .details-content .img-4 { + width: 600px; +} + +.main-help-con .list-details .details-content .img-5 { + width: 600px; +} + +.main-help-con .list-details .details-content .img-6 { + width: 478px; +} + +.main-help-con .list-details .details-content .img-7 { + width: 500px; +} + +.main-help-con .list-details .details-content .img-8 { + width: 508px; +} + +.main-help-con .list-details .details-content .img-9 { + width: 508px; +} + +.main-help-con .list-details .details-content .img-10 { + width: 508px; +} + +.main-help-con .list-details .details-content .img-11 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-12 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-13 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-14 { + width: 745px; +} + +.main-help-con .list-details .details-content .img-15 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-16 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-17 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-18 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-19 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-20 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-21 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-22 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-23 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-24 { + width: 375px; +} + +.main-help-con .list-details .details-content .img-25 { + width: 375px; +} + +/**********开发者中心**********/ +.main-developer {} + +/****背景区域****/ +.main-developer .bg-area { + position: relative; + height: 510px; + padding-top: 90px; +} + +.main-developer .bg-wrap { + background: url(../img/developer/bg.jpg) no-repeat center; +} + +.main-developer .bg-content { + width: 1200px; + margin: 0 auto; + position: relative; + padding-top: 1px; + text-align: center; +} + +.main-developer .bg-big-title { + font-size: 48px; + color: #fff; + margin-top: 136px; +} + +.main-developer .bg-small-title { + font-size: 24px; + color: #fff; + margin-top: 15px; +} + +/****开发者区域****/ +.main-developer .developer-area { + position: relative; + height: 684px; + padding-top: 1px; + background: #fff; +} + +.main-developer .developer-wrap { + width: 1200px; + margin: 0 auto; +} + +.main-developer .developer-area .download-file-list { + margin-top: -237px; + text-align: center; +} + +.main-developer .developer-area .download-file { + float: left; + border: 1px solid #c9cacb; + border-left-width: 0; + width: 399px; + height: 472px; + background: #fff; +} + +.main-developer .developer-area .download-file:first-child { + border-left-width: 1px; + width: 398px; +} + +.main-developer .developer-area .download-file:hover { + border-color: #3d7dff; +} + +.main-developer .developer-area .download-file.hover { + border-right-color: #3d7dff; +} + +.main-developer .developer-area .download-img-area { + margin-top: 60px; + height: 92px; + font-size: 0; +} + +.main-developer .developer-area .img-download-wrap { + background-repeat: no-repeat; +} + +.main-developer .developer-area .download-app .img-download-wrap { + width: 92px; + height: 92px; + background-image: url(../img/developer/icon_app.png); +} + +.main-developer .developer-area .download-windows .img-download-wrap { + width: 92px; + height: 91px; + background-image: url(../img/developer/icon_windows.png); +} + +.main-developer .developer-area .download-ios .img-download-wrap { + width: 92px; + height: 91px; + background-image: url(../img/developer/icon_ios.png); +} + +.main-developer .developer-area .download-title { + font-size: 20px; + margin-top: 27px; + color: #242529; +} + +.main-developer .download-file .advantage-list { + margin-top: 36px; + padding-left: 98px; + font-size: 0; +} + +.main-developer .download-file .advantage-list-item { + margin-top: 19px; + text-align: left; + overflow: hidden; +} + +.main-developer .download-file .advantage-list-item:first-child { + margin-top: 0; +} + +.main-developer .download-file .advantage-list-item .list-item-details { + width: 134px; +} + +.main-developer .download-file .advantage-list-item .img-hook { + margin-right: 7px; +} + +.main-developer .download-file .advantage-list-item .txt { + font-size: 12px; + color: #000; +} + +.main-developer .download-file .btn-download { + display: block; + margin: 51px auto 0; + width: 160px; + height: 40px; + line-height: 40px; + border-radius: 20px; + color: #fff; + background: #3d7dff; + font-size: 14px; +} + +.main-developer .download-file .btn-not-allowed { + cursor: default; + background: #cddcf9; +} + +.main-developer .advantage-area { + margin-top: 70px; + text-align: center; +} + +.main-developer .advantage-area .big-title { + color: #242529; + font-size: 28px; + font-weight: bold; +} + +.main-developer .advantage-area .split-line { + width: 36px; + height: 2px; + background: #3d7dff; + margin: 13px auto 0; +} + +.main-developer .advantage-area .tip { + color: #b9babf; + font-size: 18px; + line-height: 22px; + margin-top: 36px; +} + +.main-developer .advantage-area .advantage-list { + margin-top: 57px; +} + +.main-developer .advantage-area .advantage-list-item { + float: left; + width: 25%; +} + +.main-developer .advantage-area .advantage-list-item .advantage-title { + width: 143px; + height: 35px; + line-height: 35px; + color: #000; + background: #cddcf9; + font-size: 20px; + margin: 0 auto; + font-weight: bold; +} + +.main-developer .advantage-area .advantage-list-item .advantage-desc { + font-size: 14px; + color: #000; + line-height: 24px; + margin-top: 23px; +} + + +/**********关于我们**********/ +.root-about .header { + position: absolute; + left: 0; + top: 0; + background-color: transparent; + z-index: 100000; +} + +/****背景区域****/ +.main-about .bg-area { + position: relative; + height: 473px; + padding-top: 90px; +} + +.main-about .bg-wrap { + background: url(../img/about/bg.jpg) no-repeat center; +} + +.main-about .bg-content { + width: 1200px; + margin: 0 auto; + position: relative; + padding-top: 1px; + text-align: center; +} + +.main-about .bg-big-title { + font-size: 48px; + color: #fff; + margin-top: 137px; +} + +.main-about .bg-small-title { + font-size: 24px; + color: #fff; + margin-top: 13px; +} + +.main-about .bg-tip { + font-size: 14px; + color: #fff; + line-height: 30px; + margin-top: 28px; +} + +.main-about .about-area { + background: #fff; +} + +.main-about .about-con { + width: 1200px; + margin: 0 auto; + height: 727px; + padding-top: 1px; + padding-bottom: 57px; + text-align: center; +} + +.main-about .about-con .img { + display: block; + margin: 86px auto 0; +} + +.main-about .about-big-title { + font-size: 36px; + color: #22252e; + margin-top: 122px; +} + +.main-about .about-small-title { + font-size: 14px; + color: #22252e; + margin-top: 12px; +} + +.main-about .about-contact-list { + margin-top: 27px; +} + +.main-about .about-contact-list .list-item { + width: 250px; + height: 140px; + margin-left: 88px; + padding-top: 1px; + border-radius: 10px; + box-shadow: 0px 0px 14px 2px rgba(223, 223, 225, 0.31); +} + +.main-about .about-contact-list .list-item:first-child { + margin-left: 0; +} + +.main-about .about-contact-list .item-title { + font-size: 18px; + font-weight: bold; + color: #22252e; + line-height: 33px; + margin-top: 40px; +} + +.main-about .about-contact-list .item-txt { + font-size: 18px; + color: #22252e; + line-height: 26px; +} + +/**********个人中心**********/ + +/**** XXX ****/ + + +/* XX */ + +/**********登录 & 注册 & 忘记密码**********/ +.entry-outer { + width: 1000px; + margin: 0 auto; + overflow: hidden; + padding-bottom: 30px; +} + +.entry-outer .logo { + margin: 145px 0 30px 0; +} + +.entry-outer .logo .img { + display: block; + margin: 0 auto; + height: 84px; +} + +.entry-outer .entry-way { + text-align: center; + font-size: 24px; + margin-bottom: 16px; + color: #666; +} + +.entry-outer .entry-panel { + width: 525px; + background: #fff; + border-radius: 3px; + position: relative; + margin: 0 auto 178px; + padding: 62px 0 42px; + border: 1px solid #ecedf0; + box-shadow: 0 0 1px 1px #f1f2f5; +} + +.entry-outer .input-wrap { + position: relative; + margin: 0 auto; + margin-bottom: 42px; + width: 414px; + height: 44px; + line-height: 44px; +} + + +.entry-outer .input-wrap>.lefticon { + position: absolute; + left: 105px; + top: 50%; + transform: translateY(-50%); + font-size: 20px; + color: rgb(124, 124, 248); +} + +.entry-outer .input-wrap>.righticon { + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); + font-size: 20px; + color: rgb(124, 124, 248); + cursor: pointer; +} + +.entry-outer .input-wrap>.rangebox { + width: 324px; + height: 42px; + background-color: #eee; + border: 1px solid #dee0e3; + float: left; + position: relative; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; +} + +.entry-outer .input-wrap>.rangebox .bar { + position: absolute; + left: 0; + top: 0; + width: 50px; + height: 40px; + cursor: move; + box-sizing: border-box; + background-color: #fff; + border-right: 1px solid #dee0e3; + font-size: 25px; + color: rgb(172, 172, 172); + text-align: center; + line-height: 40px; + font-weight: bold; +} + +.entry-outer .input-wrap>.rangebox .redbg { + position: absolute; + left: 0; + top: 0; + width: 0px; + height: 100%; + background-color: rgba(82, 103, 242, 0.63); +} + +.entry-outer .input-wrap>.rangebox>p { + font-size: 14px; + color: rgb(156, 156, 156); + position: relative; + overflow: hidden; + user-select: none; + line-height: 1; +} + +.entry-outer .input-wrap>.rangebox>p::after { + content: ''; + position: absolute; + left: -50px; + top: 0; + width: 50px; + height: 100%; + background: linear-gradient(to right, + rgba(102, 102, 102, 0), + rgb(255, 255, 255), + rgba(102, 101, 101, 0)) no-repeat; + animation: bgtoright 2.5s 1s linear infinite; +} + +@keyframes bgtoright { + from { + left: -300%; + } + + to { + left: 300%; + } +} + +.entry-outer .input-wrap .title { + width: 80px; + text-align: right; + padding-right: 10px; + font-size: 14px; + color: #333; +} + +.entry-outer .input-wrap .input-txt { + border: 1px solid #dee0e3; + width: 324px; + height: 42px; + padding: 0 50px; + box-sizing: border-box; + color: #666; + font-size: 14px; + border-radius: 3px; +} + +.entry-outer .input-wrap .input-txt-short { + width: 200px; +} + +.entry-outer .input-wrap .input-txt:focus { + border-color: #57c3fb; +} + +.entry-outer .input-wrap .input-txt.error { + border-color: #f35050; +} + +.entry-outer .input-wrap .img-code { + width: 86px; + height: 44px; + cursor: pointer; +} + +.entry-outer .input-wrap .sms-code { + text-align: center; + width: 98px; + height: 42px; + line-height: 42px; + border: 1px solid #5072fe; + border-radius: 15px; + color: #3383ff; + font-size: 14px; +} + +.entry-outer .input-wrap .sms-code.disabled { + border-color: #888; + color: #888; + font-size: 12px; + cursor: default; +} + +.entry-outer .input-wrap .error-tip { + position: absolute; + padding: 0 12px; + height: 34px; + line-height: 34px; + font-size: 0; + left: 90px; + top: -50px; + border: 1px solid #d7d9dc; + color: #f35050; + border-radius: 3px; + z-index: 20; +} + +.entry-outer .input-wrap .error-tip .txt { + font-size: 14px; +} + +.entry-outer .input-wrap .error-tip .img { + margin-right: 8px; + width: 18px; +} + +.entry-outer .entry-panel em.triangle { + position: absolute; + font-size: 50px; + font-style: normal; + left: 319px; + top: -35px; + color: #ecedf0; +} + +.entry-outer .entry-panel span.triangle { + position: absolute; + font-size: 50px; + color: #fff; + left: 319px; + top: -34px; +} + +.entry-outer .input-wrap .error-tip em.triangle { + color: #d7d9dc; + font-size: 30px; + left: 47px; + top: 16px; +} + +.entry-outer .input-wrap .error-tip span.triangle { + font-size: 30px; + left: 47px; + top: 15px; +} + +.entry-outer .entry-panel .entry-footer { + text-align: center; +} + +.entry-outer .entry-footer .input { + border: none; + width: 414px; + height: 44px; + line-height: 44px; + color: #fff; + font-size: 14px; + background: #57c3fb; + border-radius: 3px; + cursor: pointer; +} + +.entry-outer .entry-footer .tip { + font-size: 16px; + padding: 0 55px; + margin-top: 20px; +} + +.entry-outer .entry-footer .color-1 { + color: #57c3fb; +} + +.entry-outer .entry-footer .color-2 { + color: #999; +} + +.entry-outer .entry-footer .color-3 { + color: #333; +} + +.entry-outer .line { + width: 1000px; + height: 1px; + background: #dcdfe2; + margin-bottom: 23px; +} + +.entry-outer .copy-right { + color: #bbb; + font-size: 12px; + text-align: center; + margin-bottom: 7px; +} + +/**********404页面**********/ +.root-404 {} + +.root-404 .placeholder { + height: 80px; + background: #000; +} + +.main-404 { + position: absolute; + width: 100%; + ; + left: 0; + top: 80px; + bottom: 280px; +} + +.root-404 .img-404 { + display: block; + width: 487px; + margin: 0 auto; +} + +.root-404 .return-index { + display: block; + margin: 53px auto 0; + width: 200px; + height: 40px; + line-height: 40px; + border-radius: 20px; + background: #3d7dff; + color: #fff; + font-size: 18px; +} + +.root-404 .footer-wrap { + position: absolute; + width: 100%; + left: 0; + bottom: 0; +} + +/**********注册协议**********/ +.root-protocol { + background: #fff; +} + +.main-protocol { + padding: 8px 48px; +} + +.main-protocol .big-title { + font-size: 28px; + font-weight: bold; + margin-top: 30px; + padding-bottom: 20px; + line-height: 46px; + text-align: center; +} + +.main-protocol .explain { + font-size: 18px; +} + +.main-protocol .protocol-list { + overflow: hidden; + font-size: 18px; + line-height: 30px; + padding-bottom: 60px; +} + +.main-protocol .protocol-list dt { + margin-top: 30px; +} + +/**********新闻列表**********/ + +.record-action-btn-wrap { + display: flex; + flex-direction: column; + justify-content: space-around; + width: 100%; + height: 70px; +} + +.record-action-btn { + display: block; + line-height: 1; + border: 1px dashed; + border-radius: 4px; + padding: 5px 10px; + text-align: center; + transition: all 0.3s; + font-size: 12px; +} + +.record-action-btn:first-child { + color: #4a8efd; + border-color: #4a8efd; +} + +.record-action-btn:last-child { + color: #7bbd02; + border-color: #7bbd02; +} + + +.record-action-btn:hover { + color: rgb(34, 33, 33); + border-color: rgb(34, 33, 33); + +} + + +.first-field-td { + width: 75px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.root-news-all .placeholder { + height: 90px; + background: #32323d; +} + +.main-news-all { + background: #fff; +} + +/****背景区域****/ +.main-news-all .bg-area { + position: relative; +} + +.main-news-all .bg-wrap { + background: url(../img/news/bg.jpg?v=20190624001) no-repeat top; +} + +.main-news-all .bg-content { + height: 351px; + padding-top: 1px; + width: 1200px; + margin: 0 auto; + position: relative; +} + +.main-news-all .bg-title-area { + margin: 127px 0 0 104px; +} + +.main-news-all .bg-big-title-1 { + font-size: 47px; + color: #fff; + font-weight: bold; +} + +.main-news-all .bg-small-title-1 { + font-size: 16px; + color: #fff; + margin-top: 41px; +} + +.main-news-all .news-list-area { + padding: 56px 0 45px; +} + +.main-news-all .news-list { + width: 1200px; + margin: 0 auto 32px; +} + +.main-news-all .news-list .list-item {} + +.main-news-all .news-list .date-wrap { + float: left; + width: 195px; + padding: 22px 0; +} + +.main-news-all .news-list .date-box { + margin: 0 auto; + border: 2px solid #3d7dff; + border-radius: 4px; + width: 78px; + height: 78px; + text-align: center; +} + +.main-news-all .news-list .date-top { + font-size: 16px; + color: #242529; + margin-top: 13px; +} + +.main-news-all .news-list .date-bot { + font-size: 30px; + color: #242529; + margin-top: 6px; + font-weight: bold; +} + +.main-news-all .news-list .news-link { + display: block; + overflow: hidden; + padding: 22px 0 35px; + border-bottom: 1px solid #d8dadf; +} + +.main-news-all .news-list .news-title { + font-size: 20px; + color: #242529; + font-weight: bold; + margin-top: 14px; +} + +.main-news-all .news-list .news-link:hover .news-title { + color: #3d7dff; +} + +.main-news-all .news-list .news-desc { + font-size: 18px; + color: #242529; + margin-top: 16px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +/**********新闻详情**********/ +.root-news-details .placeholder { + height: 90px; + background: #32323d; +} + +.main-news-details { + background: #fff; +} + +.main-news-details .news-content { + width: 1200px; + margin: 0 auto; + padding: 82px 0 72px; +} + +.main-news-details .news-content .news-title { + font-size: 30px; + color: #161c3b; + font-weight: bold; +} + +.main-news-details .news-content .news-time { + font-size: 14px; + color: #b9cadb; + margin-top: 18px; +} + +.main-news-details .news-content .news-info { + font-size: 16px; + color: #161c3b; + margin-top: 16px; + line-height: 1.5; +} + +.main-news-details .news-content .news-footer { + margin-top: 70px; + height: 56px; + position: relative; +} + +.main-news-details .news-content .news-link-wrap { + line-height: 28px; + font-size: 0; +} + +.main-news-details .news-content .news-link { + color: #161c3b; + font-size: 14px; +} + +.main-news-details .news-content .news-link:hover { + color: #3d7dff; +} + +.main-news-details .news-content .news-link .link-title { + font-weight: bold; +} + +.main-news-details .news-content .news-footer .btn-more { + position: absolute; + width: 158px; + height: 38px; + line-height: 38px; + left: 50%; + top: 50%; + margin-left: -80px; + margin-top: -20px; + border: 1px solid #3d7dff; + color: #3d7dff; + font-size: 14px; + text-align: center; + border-radius: 6px; +} + +.main-news-details .news-content .news-footer .btn-more:hover { + background: #3d7dff; + color: #fff; +} + +/*laydate重置样式*/ +.layui-laydate-main .layui-laydate-header i:hover, +.layui-laydate-main .layui-laydate-header span:hover { + color: #3d7dff; +} + +.layui-laydate .layui-laydate-content .layui-this { + background-color: #3d7dff !important; +} + +.laydate-theme-grid .layui-laydate-content .laydate-selected, +.laydate-theme-grid .layui-laydate-content .laydate-selected:hover { + color: #3d7dff !important; +} + +.layui-laydate-footer .laydate-footer-btns span:hover { + color: #3d7dff; +} + +/*动画效果*/ + +/*地图加载动画*/ +@-webkit-keyframes rip { + 0% { + -webkit-transform: scale(0); + opacity: 0; + filter: alpha(opacity=0); + } + + 5% { + opacity: 1; + filter: alpha(opacity=100); + } + + 100% { + -webkit-transform: scale(1); + opacity: 0; + filter: alpha(opacity=0); + } +} + +@keyframes rip { + 0% { + transform: scale(0); + opacity: 0; + filter: alpha(opacity=0); + } + + 5% { + opacity: 1; + filter: alpha(opacity=100); + } + + 100% { + transform: scale(1); + opacity: 0; + filter: alpha(opacity=0); + } +} + +/*第二种地图动效*/ +@-webkit-keyframes inner-ripple { + 0% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.8 + } + + 30% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.5 + } + + 100% { + transform: scale(5.5); + filter: alpha(opacity=0); + opacity: 0 + } +} + +@-moz-keyframes inner-ripple { + 0% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.8 + } + + 30% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.5 + } + + 100% { + transform: scale(5.5); + filter: alpha(opacity=0); + opacity: 0 + } +} + +@keyframes inner-ripple { + 0% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.8 + } + + 30% { + transform: scale(1); + filter: alpha(opacity=50); + opacity: 0.5 + } + + 100% { + transform: scale(10.5); + filter: alpha(opacity=0); + opacity: 0 + } +} + +/*加载中动画*/ +@-webkit-keyframes pulse { + 0% { + opacity: 1; + -webkit-transform: scale(1); + } + + 100% { + opacity: .5; + -webkit-transform: scale(.75); + } +} + +@keyframes pulse { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: .5; + transform: scale(.75); + } +}J`)`)Cm:`da6:https://www.ip12345.net/user/css/style.css?v=20201026necko:classified1strongly-framed1security-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request-methodGETresponse-headHTTP/1.1 200 OK +Server: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/css; charset=utf-8 +Content-Length: 133011 +Accept-Ranges: bytes +Last-Modified: Mon, 26 Oct 2020 09:11:48 GMT +original-response-headersServer: nginx/1.16.1 +Date: Mon, 24 May 2021 04:21:53 GMT +Content-Type: text/css; charset=utf-8 +Content-Length: 133011 +Connection: keep-alive +Accept-Ranges: bytes +Last-Modified: Mon, 26 Oct 2020 09:11:48 GMT +ctid5uncompressed-len0net-response-time-onstart136net-response-time-onstop192 \ No newline at end of file diff --git a/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12C48E0472A59B04E3F5B2DE5B8F8D36456CB02 b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12C48E0472A59B04E3F5B2DE5B8F8D36456CB02 new file mode 100644 index 0000000..1522be4 --- /dev/null +++ b/firefox/config/.cache/mozilla/firefox/jkkwdvuh.default-default/cache2/entries/F12C48E0472A59B04E3F5B2DE5B8F8D36456CB02 @@ -0,0 +1,20 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/\s*$/g,ra={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?""!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("