diff --git a/.gitignore b/.gitignore index b512c09..caf544d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,131 @@ -node_modules \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* +.vercel diff --git a/README.md b/README.md index 42bbc13..cb2301b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ REST API Al-Quran Indonesia (Kemenag), Dzikir Harian, Kumpulan Doa, Hadits Arba'in.

- Contoh · Laporkan Bug · Request Fitur + Dokumentasi · Laporkan Bug · Request Fitur

GitHub contributors @@ -37,33 +37,9 @@ Fitur utama: ## Penggunaan -|Endpoint|Contoh|Keterangan| -|----------|-----------|-----------| -|`/quran/surah`|[/quran/surah](https://api.dikiotang.com/quran/surah)|Daftar Surah| -|`/quran/surah/{surahId}`|[/quran/surah/114](https://api.dikiotang.com/quran/surah/114)|Informasi Surah| -|`/quran/juz`|[/quran/juz](https://api.dikiotang.com/quran/juz)|Daftar Juz| -|`/quran/juz/{juzId}`|[/quran/juz/30](https://api.dikiotang.com/quran/juz/30)|Informasi Juz| -|`/quran/ayah`|[/quran/ayah](https://api.dikiotang.com/quran/ayah)|Semua Ayat| -|`/quran/ayah/surah/{surahId}`|[/quran/ayah/surah/114](https://api.dikiotang.com/quran/ayah/surah/114)|Daftar Ayat berdasarkan Surah| -|`/quran/ayah/{surahId}/{ayahId}`|[/quran/ayah/114/1](https://api.dikiotang.com/quran/ayah/114/1)|Spesifik Ayat berdasarkan Surah| -|`/quran/ayah/{surahId}/{start}-{end}`|[/quran/ayah/114/1-3](https://api.dikiotang.com/quran/ayah/114/1-3)|Range Ayat berdasarkan Surah| -|`/quran/ayah/juz/{juzId}`|[/quran/ayah/juz/30](https://api.dikiotang.com/quran/ayah/juz/30)|Daftar Ayat berdasarkan Juz| -|`/quran/ayah/page/{pageId}`|[/quran/ayah/page/604](https://api.dikiotang.com/quran/ayah/page/604)|Daftar Ayat berdasarkan Halaman| -|`/quran/asbab`|[/quran/asbab](https://api.dikiotang.com/quran/asbab)|Daftar Asbab Nujul| -|`/quran/asbab/{id}`|[/quran/asbab/1](https://api.dikiotang.com/quran/asbab/1)|Spesifik Asbab Nujur| -|`/quran/asma`|[/quran/asma](https://api.dikiotang.com/quran/asma)|Daftar Asmaul Husna| -|`/quran/tafsir`|[/quran/tafsir](https://api.dikiotang.com/quran/tafsir)|Semua Tafsir| -|`/quran/tafsir/{id}`|[/quran/tafsir/1](https://api.dikiotang.com/quran/tafsir/1)|Tafsir berdasarkan Ayat| -|`/quran/theme`|[/quran/theme](https://api.dikiotang.com/quran/theme)|Semua Tema (Topik)| -|`/quran/theme/{id}`|[/quran/theme/1](https://api.dikiotang.com/quran/theme/1)|Spesifik topik| -|`/quran/word`|[/quran/word](https://api.dikiotang.com/quran/word)|Semua kata| -|`/quran/word/{surahId}`|[/quran/word/1](https://api.dikiotang.com/quran/word/1)|Semua Kata berdasarkan Surah| -|`/quran/word/{surahId}/{ayahId}`|[/quran/word/1/1](https://api.dikiotang.com/quran/word/1/1)|Semua Kata berdasarkan Spesifik Ayat dari Surah| -|`/doa`|[/doa](https://api.dikiotang.com/doa)|Kumpulan Doa| -|`/doa/{sumber}`|[/doa/harian](https://api.dikiotang.com/doa/harian)|Spesifik Kategori Doa (quran, hadits, pilihan, harian, ibadah, haji, lainnya)| -|`/dzikir/{sumber}`|[/dzikir/pagi](https://api.dikiotang.com/dzikir/pagi)|Dzikir Harian (pagi, sore, solat)| -|`/hadits`|[/hadits](https://api.dikiotang.com/hadits)|Daftar Hadits| -|`/hadits/{nomor}`|[/hadits/1](https://api.dikiotang.com/hadits/1)|Spesifik Hadits berdasarkan Nomor| +Lihat di halaman dokumentasi [disini](https://muslim-api-three.vercel.app) + +> Untuk menghindari dns error atau semacamnya, silahkan fork dan deploy masing-masing. ## Project Contoh aplikasi saya menggunakan api ini. diff --git a/app.js b/app.js new file mode 100644 index 0000000..69f7142 --- /dev/null +++ b/app.js @@ -0,0 +1,53 @@ +var createError = require("http-errors"); +var express = require("express"); +var path = require("path"); +var cookieParser = require("cookie-parser"); +var logger = require("morgan"); +var bodyParser = require("body-parser"); +var ejsLayouts = require("express-ejs-layouts"); + +var apiRouter = require("./routes/index"); +var apiV1Router = require("./routes/muslim/v1/index"); + +var app = express(); + +// view engine setup +app.use(ejsLayouts); +app.set("layout", "./layouts/api"); +app.set("views", path.join(__dirname, "views")); +app.set("view engine", "ejs"); + +app.use(logger("dev")); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: true })); +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); +app.use(cookieParser()); +app.use(express.static(path.join(__dirname, "public"))); + +app.use("/css", express.static(path.join(__dirname, "public/css"))); +app.use("/js", express.static(path.join(__dirname, "public/js"))); +app.use("/", apiRouter); +app.use("/v1", apiV1Router); + +// PW: dykq bppc wkon llmh + +// catch 404 and forward to error handler +app.use((req, res, next) => { + next(createError(404)); +}); + +// error handler +app.use((err, req, res, next) => { + // set locals, only providing error in development + res.locals.message = err.message; + res.locals.error = req.app.get("env") === "development" ? err : {}; + // render the error page + res.status(err.status || 500); + res.render("error", { + title: "Otang | Error", + layout: "./layouts/api", + }); +}); + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100755 index 0000000..99f414b --- /dev/null +++ b/bin/www @@ -0,0 +1,86 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require("../app"); +var debug = require("debug")("muslim-api:server"); +var http = require("http"); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT); +app.set("port", port); + +/** + * Create HTTP server. + */ + +var server = http.createServer(app); + +/** + * Listen on provided port, on all network interfaces. + */ + +server.listen(port); +server.on("error", onError); +server.on("listening", onListening); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server "error" event. + */ + +function onError(error) { + if (error.syscall !== "listen") { + throw error; + } + + var bind = typeof port === "string" ? "Pipe " + port : "Port " + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case "EACCES": + console.error(bind + " requires elevated privileges"); + process.exit(1); + break; + case "EADDRINUSE": + console.error(bind + " is already in use"); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server "listening" event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port; + debug("Listening on " + bind); +} diff --git a/database/alquran.db b/database/alquran.db new file mode 100755 index 0000000..667c886 Binary files /dev/null and b/database/alquran.db differ diff --git a/database/config.js b/database/config.js new file mode 100644 index 0000000..5cbba92 --- /dev/null +++ b/database/config.js @@ -0,0 +1,12 @@ +const sqlite3 = require("sqlite3").verbose(); +const dbFile = __dirname + "/../database/alquran.db"; + +const db = new sqlite3.Database(dbFile, sqlite3.OPEN_READWRITE, (err) => { + if (err) { + console.error("Error open database.", err.message); + } else { + console.log("Database connected."); + } +}); + +module.exports = db; diff --git a/index.js b/index.js deleted file mode 100644 index c0e7cee..0000000 --- a/index.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require("express"); -const cors = require("cors"); -const router = require("./src/routes/router"); -const app = express(); -const PORT = process.env.PORT || 3000; - -app.set("trust proxy", 1); -app.use(cors()); -app.use(express.json()); -app.use("/", router); - -app.listen(PORT, () => { - console.log("Running at port:", PORT); -}); diff --git a/package-lock.json b/package-lock.json index d0c484d..f39008b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,82 @@ { "name": "muslim-api", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "muslim-api", "version": "1.0.0", - "license": "ISC", "dependencies": { - "cors": "^2.8.5", - "express": "^4.18.2" + "body-parser": "^1.20.3", + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "ejs": "^3.1.10", + "express": "^4.21.1", + "express-ejs-layouts": "^2.5.1", + "http-errors": "~1.6.3", + "morgan": "~1.9.1", + "sqlite3": "^5.1.7" }, "devDependencies": { - "nodemon": "^3.0.1" + "nodemon": "^3.1.7" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT", + "optional": true + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" } }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "license": "ISC", + "optional": true }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -34,11 +85,102 @@ "node": ">= 0.6" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", + "optional": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -47,30 +189,128 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "license": "MIT" }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -80,7 +320,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -90,59 +330,124 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "node_modules/body-parser/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "optional": true, "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -151,17 +456,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz", + "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -174,20 +503,78 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC", + "optional": true }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -199,48 +586,77 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" }, "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "ms": "2.0.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" } }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -253,10 +669,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", + "optional": true + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -265,31 +689,126 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", + "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT", + "optional": true }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, "dependencies": { - "get-intrinsic": "^1.2.4" + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT", + "optional": true + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -298,6 +817,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -305,47 +825,59 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -354,26 +886,90 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node_modules/express-ejs-layouts": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/express-ejs-layouts/-/express-ejs-layouts-2.5.1.tgz", + "integrity": "sha512-IXROv9n3xKga7FowT06n1Qn927JR8ZWDn5Dc9CJQoiiaaDqbhW5PDmWShzbpAa2wjWT1vJqaIM1S6vJwwX11gA==" + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/express/node_modules/ms": { + "node_modules/express/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -382,12 +978,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -398,23 +995,11 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -423,16 +1008,43 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC", + "optional": true + }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -445,20 +1057,46 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz", + "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -467,11 +1105,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -480,29 +1147,38 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC", + "optional": true + }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -510,10 +1186,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -521,21 +1198,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC", + "optional": true }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -543,25 +1217,146 @@ "node": ">= 0.4" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause", + "optional": true + }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.0.0" } }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -569,21 +1364,103 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC", + "optional": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } }, "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "license": "MIT", + "optional": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -593,6 +1470,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -605,15 +1483,27 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -621,20 +1511,61 @@ "node": ">=0.10.0" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "license": "MIT", + "optional": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC", + "optional": true + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT", + "optional": true + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "license": "ISC", + "optional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -642,23 +1573,57 @@ "node": ">=10" } }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -667,6 +1632,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -678,6 +1644,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -686,6 +1653,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -693,11 +1661,23 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -705,27 +1685,238 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, + "node_modules/node-abi": { + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, "node_modules/nodemon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", - "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", + "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", @@ -746,11 +1937,60 @@ "url": "https://opencollective.com/nodemon" } }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, "dependencies": { "abbrev": "1" }, @@ -758,7 +1998,7 @@ "nopt": "bin/nopt.js" }, "engines": { - "node": "*" + "node": ">=6" } }, "node_modules/normalize-path": { @@ -766,22 +2006,36 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -790,6 +2044,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -797,24 +2052,71 @@ "node": ">= 0.8" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -822,10 +2124,58 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -838,14 +2188,26 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -858,6 +2220,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -866,6 +2229,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -876,11 +2240,63 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -888,6 +2304,33 @@ "node": ">=8.10.0" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -905,21 +2348,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -928,9 +2370,10 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -950,37 +2393,70 @@ "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { + "node_modules/send/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC", + "optional": true + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -996,12 +2472,14 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -1015,11 +2493,64 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC", + "optional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -1027,24 +2558,241 @@ "node": ">=10" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "license": "MIT", + "optional": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" } }, "node_modules/to-regex-range": { @@ -1052,6 +2800,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -1063,26 +2812,38 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, + "license": "ISC", "bin": { "nodetouch": "bin/nodetouch.js" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -1095,20 +2856,49 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -1117,839 +2907,48 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" - }, - "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "nodemon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", - "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "ISC" } } } diff --git a/package.json b/package.json index c2ffc37..c941ca5 100644 --- a/package.json +++ b/package.json @@ -2,20 +2,23 @@ "name": "muslim-api", "version": "1.0.0", "description": "Quran, Doa, Dzikir, Hadits Api", - "main": "index.js", + "private": true, "scripts": { - "build": "npm install", - "start": "node src/index.js", - "dev": "nodemon src/index.js" - }, - "keywords": [], - "author": "Otang45", - "license": "ISC", - "devDependencies": { - "nodemon": "^3.0.1" + "start": "node --env-file=.env ./bin/www", + "devstart": "DEBUG=dikiotang:* nodemon --env-file=.env ./bin/www" }, "dependencies": { - "cors": "^2.8.5", - "express": "^4.18.2" + "body-parser": "^1.20.3", + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "ejs": "^3.1.10", + "express": "^4.21.1", + "express-ejs-layouts": "^2.5.1", + "http-errors": "~1.6.3", + "morgan": "~1.9.1", + "sqlite3": "^5.1.7" + }, + "devDependencies": { + "nodemon": "^3.1.7" } } diff --git a/public/css/animate.min.css b/public/css/animate.min.css new file mode 100644 index 0000000..e2f9a5e --- /dev/null +++ b/public/css/animate.min.css @@ -0,0 +1,2855 @@ +@charset "UTF-8"; /*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2015 Daniel Eden +*/ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +.animated.bounceIn, +.animated.bounceOut, +.animated.flipOutX, +.animated.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; +} +@-webkit-keyframes bounce { + 100%, + 20%, + 53%, + 80%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} +@keyframes bounce { + 100%, + 20%, + 53%, + 80%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +@-webkit-keyframes flash { + 100%, + 50%, + from { + opacity: 1; + } + 25%, + 75% { + opacity: 0; + } +} +@keyframes flash { + 100%, + 50%, + from { + opacity: 1; + } + 25%, + 75% { + opacity: 0; + } +} +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} +@-webkit-keyframes shake { + 100%, + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +@keyframes shake { + 100%, + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes wobble { + from { + -webkit-transform: none; + transform: none; + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +@keyframes wobble { + from { + -webkit-transform: none; + transform: none; + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} +@-webkit-keyframes jello { + 100%, + 11.1%, + from { + -webkit-transform: none; + transform: none; + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} +@keyframes jello { + 100%, + 11.1%, + from { + -webkit-transform: none; + transform: none; + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} +@-webkit-keyframes bounceIn { + 100%, + 20%, + 40%, + 60%, + 80%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +@keyframes bounceIn { + 100%, + 20%, + 40%, + 60%, + 80%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} +@-webkit-keyframes bounceInDown { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +@keyframes bounceInDown { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} +@-webkit-keyframes bounceInLeft { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +@keyframes bounceInLeft { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} +@-webkit-keyframes bounceInRight { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +@keyframes bounceInRight { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + 100% { + -webkit-transform: none; + transform: none; + } +} +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} +@-webkit-keyframes bounceInUp { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes bounceInUp { + 100%, + 60%, + 75%, + 90%, + from { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + from { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + from { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +@keyframes fadeOutDown { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +@keyframes fadeOutLeft { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +@keyframes fadeOutRight { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +@keyframes fadeOutUp { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} +@keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + from { + opacity: 1; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} +@keyframes rollOut { + from { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + from { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} diff --git a/public/css/api/main.css b/public/css/api/main.css new file mode 100644 index 0000000..7c30b59 --- /dev/null +++ b/public/css/api/main.css @@ -0,0 +1,614 @@ +/* ------------------------------------------------------------------------------ + Template Name: Flosix + Author: Designstub + Author URI: http://www.designstub.com + License: GNU General Public License version 3.0 + License URI: http://www.gnu.org/licenses/gpl-3.0.html + Version: 1.0 +/* ------------------------------------------------------------------------------ + Typography +-------------------------------------------------------------------------------*/ +@import url(https://fonts.googleapis.com/css2?family=Edu+AU+VIC+WA+NT+Pre:wght@400..700&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap); +/* ------------------------------------------------------------------------------ + Theme +-------------------------------------------------------------------------------*/ +[data-theme="light"] { + --bg: #fbf1c7; + --bg0: #f9f5d7; + --fg: #3c3836; + --fg0: #282828; + --fg1: #3c3836; + --fg2: #504945; + --fg3: #665c54; + --fg4: #7c6f64; + --red: #9d0006; + --green: #79740e; + --yellow: #b57614; + --blue: #076678; + --purple: #8f3f71; + --aqua: #427b58; + --orange: #af3a03; +} +[data-theme="dark"] { + --bg: #282828; + --bg0: #1d2021; + --fg: #ebdbb2; + --fg0: #fbf1c7; + --fg1: #ebdbb2; + --fg2: #d5c4a1; + --fg3: #bdae93; + --fg4: #a89984; + --red: #fb4934; + --green: #b8bb26; + --yellow: #fabd2f; + --blue: #83a598; + --purple: #d3869b; + --aqua: #8ec07c; + --orange: #fe8019; +} +/* ------------------------------------------------------------------------------ + Global Style +-------------------------------------------------------------------------------*/ +p { + font-family: "Poppins", sans-serif; + font-size: 14px; + color: var(--fg); +} +h1 { + font-family: "Playfair Display", sans-serif; + font-size: 65px; + color: var(--fg0); +} +h2 { + font-family: "Playfair Display", sans-serif; + font-size: 40px; + color: var(--fg0); +} +h3 { + font-family: "Playfair Display", sans-serif; + font-size: 28px; + color: var(--fg0); + font-weight: 300; +} +h4 { + font-family: "Playfair Display", sans-serif; + font-size: 22px; + color: var(--fg0); + font-weight: 400; +} +h5 { + font-family: "Playfair Display", sans-serif; + font-size: 16px; + color: var(--fg0); + font-weight: 500; +} +.btn { + background-color: var(--fg); + margin-top: 40px; + color: var(--bg); + font-size: 12px; + font-weight: 600; + letter-spacing: 1px; + border-radius: 0px; + padding: 3% 7%; + display: inline-block; + text-transform: uppercase; +} +.btn:hover, +.btn:focus { + background-color: var(--aqua); + color: var(--bg); +} +.btn-large { + padding: 15px 40px; +} +/* ------------------------------------------------------------------------------ + General Style +-------------------------------------------------------------------------------*/ +a { + color: var(--fg); +} +a:hover, +a:focus { + color: var(--red); + text-decoration: none; + -moz-transition: background-color, color, 0.3s; + -o-transition: background-color, color, 0.3s; + -webkit-transition: background-color, color, 0.3s; + transition: background-color, color, 0.3s; +} +body { + background-color: var(--bg); + font-family: "Poppins", sans-serif; + font-weight: 400; + color: var(--fg); +} +ul, +ol { + margin: 0; + padding: 0; +} +ul li { + list-style: none; +} +.section { + padding: 100px 0; +} +.no-padding { + padding: 0; +} +.no-gutter [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +/* ------------------------------------------------------------------------------ + Header & navigation +-------------------------------------------------------------------------------*/ +#header { + position: fixed; + width: 94%; + z-index: 999; + margin-left: 3%; + margin-right: 3%; +} +#header .header-content { + margin: 0 auto; + padding: 40px 0; + width: 100%; + -moz-transition: padding 0.3s; + -o-transition: padding 0.3s; + -webkit-transition: padding 0.3s; + transition: padding 0.3s; +} +#header .logo { + font-size: 21px; + color: var(--fg); + font-weight: 700; + float: left; + text-transform: uppercase; +} +#header.fixed { + background-color: var(--bg); +} +#header.fixed .header-content { + border-bottom: 0; + padding: 25px 0; +} +#header.fixed .nav-toggle { + top: 18px; +} +.navigation.open { + opacity: 0.9; + visibility: visible; + -moz-transition: opacity 0.5s; + -o-transition: opacity 0.5s; + -webkit-transition: opacity 0.5s; + transition: opacity 0.5s; +} +.navigation { + float: right; +} +.navigation li { + display: inline-block; +} +.navigation a { + color: var(--fg); + font-size: 13px; + font-weight: 400; + margin-left: 40px; + letter-spacing: 2px; + text-transform: uppercase; +} +.navigation a:hover, +.navigation a.active { + color: var(--yellow); +} +.nav-toggle { + display: none; + height: 44px; + overflow: hidden; + position: fixed; + right: 5%; + text-indent: 100%; + top: 32px; + white-space: nowrap; + width: 44px; + z-index: 99999; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.nav-toggle:before, +.nav-toggle:after { + border-radius: 50%; + content: ""; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -webkit-transform: translateZ(0); + transform: translateZ(0); + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-transition-property: -moz-transform; + -o-transition-property: -o-transform; + -webkit-transition-property: -webkit-transform; + transition-property: transform; +} +.nav-toggle:before { + background-color: var(--yellow); + -moz-transform: scale(1); + -ms-transform: scale(1); + -webkit-transform: scale(1); + transform: scale(1); + -moz-transition-duration: 0.3s; + -o-transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.nav-toggle:after { + background-color: var(--yellow); + -moz-transform: scale(0); + -ms-transform: scale(0); + -webkit-transform: scale(0); + transform: scale(0); + -moz-transition-duration: 0s; + -o-transition-duration: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s; +} +.nav-toggle span { + background-color: var(--bg); + bottom: auto; + display: inline-block; + height: 3px; + left: 50%; + position: absolute; + right: auto; + top: 50%; + width: 18px; + z-index: 10; + -moz-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); +} +.nav-toggle span:before, +.nav-toggle span:after { + background-color: var(--bg); + content: ""; + height: 100%; + position: absolute; + right: 0; + top: 0; + width: 100%; + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -webkit-transform: translateZ(0); + transform: translateZ(0); + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-transition: -moz-transform 0.3s; + -o-transition: -o-transform 0.3s; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; +} +.nav-toggle span:before { + -moz-transform: translateY(-6px) rotate(0deg); + -ms-transform: translateY(-6px) rotate(0deg); + -webkit-transform: translateY(-6px) rotate(0deg); + transform: translateY(-6px) rotate(0deg); +} +.nav-toggle span:after { + -moz-transform: translateY(6px) rotate(0deg); + -ms-transform: translateY(6px) rotate(0deg); + -webkit-transform: translateY(6px) rotate(0deg); + transform: translateY(6px) rotate(0deg); +} +.nav-toggle.close-nav:before { + -moz-transform: scale(0); + -ms-transform: scale(0); + -webkit-transform: scale(0); + transform: scale(0); +} +.nav-toggle.close-nav:after { + -moz-transform: scale(1); + -ms-transform: scale(1); + -webkit-transform: scale(1); + transform: scale(1); +} +.nav-toggle.close-nav span { + background-color: rgba(255, 255, 255, 0); +} +.nav-toggle.close-nav span:before, +.nav-toggle.close-nav span:after { + background-color: var(--bg); +} +.nav-toggle.close-nav span:before { + -moz-transform: translateY(0) rotate(45deg); + -ms-transform: translateY(0) rotate(45deg); + -webkit-transform: translateY(0) rotate(45deg); + transform: translateY(0) rotate(45deg); +} +.nav-toggle.close-nav span:after { + -moz-transform: translateY(0) rotate(-45deg); + -ms-transform: translateY(0) rotate(-45deg); + -webkit-transform: translateY(0) rotate(-45deg); + transform: translateY(0) rotate(-45deg); +} +/* ------------------------------------------------------------------------------ + Info +-------------------------------------------------------------------------------*/ +.data { + width: 94%; + margin: auto; +} +.data .title-content { + text-align: center; + background-color: var(--green); + padding: 5%; +} +.data .title-content h2, +.data .title-content p { + color: var(--bg); +} +.data ul, +.data li { + list-style: circle; + text-align: start; + color: var(--bg); +} +.data a { + color: var(--bg0); +} +.data a:hover { + color: var(--red); +} +/* ------------------------------------------------------------------------------ + Contoh +-------------------------------------------------------------------------------*/ +.api { + width: 94%; + margin: auto; + margin-bottom: 4%; + background-color: var(--bg0); + padding: 2% 4%; +} +.api h3 { + color: var(--purple); +} +.api .method { + background-color: var(--blue); + padding: 10px; + margin-top: 8px; + display: flex; + flex-direction: column; +} +.api .request { + padding: unset; + margin: unset; + display: flex; + flex-direction: row; + align-items: center; +} +.api .example { + padding: 10px 0px; + margin-bottom: 2%; + background-color: var(--aqua); +} +.api span { + padding: 4px; + background-color: var(--bg0); + font-weight: bold; + color: var(--fg); +} +.api p { + color: var(--bg); + padding-left: 10px; + margin: unset; +} +.api p.title { + color: var(--bg); + padding: unset; + padding-bottom: 8px; + margin: unset; + font-size: 12px; +} +.api a { + color: var(--bg); + padding-left: 10px; + margin: unset; + font-weight: bold; +} +.api a:hover { + color: var(--red); +} +.api p.footer { + padding: unset; + margin: unset; + padding-top: 8px; + color: var(--red); +} +.api .result pre { + background-color: var(--bg); + padding: 10px; + margin: 10px; + color: var(--fg); +} +/* ------------------------------------------------------------------------------ + Footer +-------------------------------------------------------------------------------*/ +.footer { + width: 94%; + margin: auto; + text-align: left; + padding-top: 5%; + padding-bottom: 7%; +} +.footer h4 { + font-size: 16px; + color: var(--orange); + margin: 0 0 15px 0; + padding: 0px; +} +.footer p { + font-size: 13px; + color: var(--fg); +} +.footer a { + color: var(--fg); +} +.footer a:hover { + text-decoration: underline; + color: var(--green); +} +.footer .footer-share { + margin-top: 0; +} +.footer .footer-share li { + display: inline-block; + float: none; +} +.footer .footer-share a { + border: none; + font-size: 16px; + color: var(--fg); + letter-spacing: 15px; +} +.footer .fa-heart { + color: var(--red); + font-size: 11px; + margin: 0 2px; +} +.footer .left { + padding-bottom: 24px; +} + +.error { + width: 94%; + margin: auto; +} +.error .title-content { + background-color: var(--green); + padding: 5%; +} +.error h2, +.error h3 { + text-align: center; + color: var(--bg); +} +.error pre { + text-align: unset; + background-color: var(--bg); + padding: 10px; + margin: 10px; + margin-top: 56px; + color: var(--fg); +} + +/* ------------------------------------------------------------------------------ + Responsive +-------------------------------------------------------------------------------*/ +@media screen and (max-width: 1024px) { + #header .header-content { + width: 90%; + } + .nav-toggle { + display: block; + } + .navigation { + position: fixed; + background-color: #000; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 99999; + visibility: hidden; + opacity: 0; + -webkit-transition: opacity 0.5s, visibility 0s 0.5s; + transition: opacity 0.5s, visibility 0s 0.5s; + } + .navigation .primary-nav { + position: relative; + top: 45%; + -moz-transform: translateY(-45%); + -ms-transform: translateY(-45%); + -webkit-transform: translateY(-45%); + transform: translateY(-45%); + } + .navigation li { + display: block; + margin-bottom: 20px; + } + .navigation a { + display: block; + font-size: 25px; + margin: 0; + color: #fff; + font-size: 13px; + text-align: center; + } + .feature .feat-img { + display: none; + } +} +@media screen and (max-width: 768px) { + .banner-text { + padding-top: 30%; + } + .banner-text h1 { + font-size: 42px; + } + .banner-text p { + font-size: 18px; + } + .footer .footer-col { + margin-bottom: 50px; + } + .detail-contentbox { + background-color: #f2f2f2; + padding: 6%; + } + .about .about-text, + .about h2 { + text-align: center; + padding: 0% 5%; + } +} +@media screen and (max-width: 640px) { + .banner-text { + padding-top: 35%; + } + .detail-contentbox { + background-color: #f2f2f2; + padding: 6%; + } +} +@media screen and (max-width: 480px) { + .banner-text { + padding-top: 45%; + } + .banner-text h1 { + font-size: 32px; + } + .detail-contentbox { + background-color: #f2f2f2; + padding: 6%; + } +} +@media screen and (max-width: 320px) { + .banner-text { + padding-top: 55%; + } + .detail-contentbox { + background-color: #f2f2f2; + padding: 6%; + } +} diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css new file mode 100644 index 0000000..c8512cc --- /dev/null +++ b/public/css/bootstrap.min.css @@ -0,0 +1,7178 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: 700; +} +dfn { + font-style: italic; +} +h1 { + margin: 0.67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + appearance: button; + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + appearance: textfield; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid silver; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: 700; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + :after, + :before { + color: #000 !important; + text-shadow: none !important; + background: 0 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + blockquote, + pre { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + img, + tr { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + h2, + h3, + p { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered td, + .table-bordered th { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: "Glyphicons Halflings"; + src: url(../fonts/glyphicons-halflings-regular.eot); + src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) + format("embedded-opentype"), + url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"), + url(../fonts/glyphicons-halflings-regular.woff) format("woff"), + url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"), + url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) + format("svg"); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: "Glyphicons Halflings"; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-eur:before, +.glyphicon-euro:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +:after, +:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} +button, +input, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:focus, +a:hover { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.carousel-inner > .item > a > img, +.carousel-inner > .item > img, +.img-responsive, +.thumbnail a > img, +.thumbnail > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +.h1 .small, +.h1 small, +.h2 .small, +.h2 small, +.h3 .small, +.h3 small, +.h4 .small, +.h4 small, +.h5 .small, +.h5 small, +.h6 .small, +.h6 small, +h1 .small, +h1 small, +h2 .small, +h2 small, +h3 .small, +h3 small, +h4 .small, +h4 small, +h5 .small, +h5 small, +h6 .small, +h6 small { + font-weight: 400; + line-height: 1; + color: #777; +} +.h1, +.h2, +.h3, +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} +.h1 .small, +.h1 small, +.h2 .small, +.h2 small, +.h3 .small, +.h3 small, +h1 .small, +h1 small, +h2 .small, +h2 small, +h3 .small, +h3 small { + font-size: 65%; +} +.h4, +.h5, +.h6, +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} +.h4 .small, +.h4 small, +.h5 .small, +.h5 small, +.h6 .small, +.h6 small, +h4 .small, +h4 small, +h5 .small, +h5 small, +h6 .small, +h6 small { + font-size: 75%; +} +.h1, +h1 { + font-size: 36px; +} +.h2, +h2 { + font-size: 30px; +} +.h3, +h3 { + font-size: 24px; +} +.h4, +h4 { + font-size: 18px; +} +.h5, +h5 { + font-size: 14px; +} +.h6, +h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +.small, +small { + font-size: 85%; +} +.mark, +mark { + padding: 0.2em; + background-color: #fcf8e3; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:focus, +a.text-primary:hover { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:focus, +a.text-success:hover { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:focus, +a.text-info:hover { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:focus, +a.text-warning:hover { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:focus, +a.text-danger:hover { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:focus, +a.bg-primary:hover { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:focus, +a.bg-success:hover { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:focus, +a.bg-info:hover { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:focus, +a.bg-warning:hover { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:focus, +a.bg-danger:hover { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} +ol, +ul { + margin-top: 0; + margin-bottom: 10px; +} +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dd, +dt { + line-height: 1.42857143; +} +dt { + font-weight: 700; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[data-original-title], +abbr[title] { + cursor: help; + border-bottom: 1px dotted #777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} +blockquote ol:last-child, +blockquote p:last-child, +blockquote ul:last-child { + margin-bottom: 0; +} +blockquote .small, +blockquote footer, +blockquote small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} +blockquote .small:before, +blockquote footer:before, +blockquote small:before { + content: "\2014 \00A0"; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} +.blockquote-reverse .small:before, +.blockquote-reverse footer:before, +.blockquote-reverse small:before, +blockquote.pull-right .small:before, +blockquote.pull-right footer:before, +blockquote.pull-right small:before { + content: ""; +} +.blockquote-reverse .small:after, +.blockquote-reverse footer:after, +.blockquote-reverse small:after, +blockquote.pull-right .small:after, +blockquote.pull-right footer:after, +blockquote.pull-right small:after { + content: "\00A0 \2014"; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.col-lg-1, +.col-lg-10, +.col-lg-11, +.col-lg-12, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-md-1, +.col-md-10, +.col-md-11, +.col-md-12, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-sm-1, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-xs-1, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0; +} +@media (min-width: 768px) { + .col-sm-1, + .col-sm-10, + .col-sm-11, + .col-sm-12, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } +} +@media (min-width: 992px) { + .col-md-1, + .col-md-10, + .col-md-11, + .col-md-12, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } +} +@media (min-width: 1200px) { + .col-lg-1, + .col-lg-10, + .col-lg-11, + .col-lg-12, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > tbody > tr > td, +.table > tbody > tr > th, +.table > tfoot > tr > td, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > thead > tr > th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > td, +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > td, +.table > thead:first-child > tr:first-child > th { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > tbody > tr > td, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > td, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > thead > tr > th { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > tbody > tr > td, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > td, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > thead > tr > th { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > td, +.table-bordered > thead > tr > th { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > tbody > tr.active > td, +.table > tbody > tr.active > th, +.table > tbody > tr > td.active, +.table > tbody > tr > th.active, +.table > tfoot > tr.active > td, +.table > tfoot > tr.active > th, +.table > tfoot > tr > td.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > thead > tr.active > th, +.table > thead > tr > td.active, +.table > thead > tr > th.active { + background-color: #f5f5f5; +} +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr.active:hover > th, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover { + background-color: #e8e8e8; +} +.table > tbody > tr.success > td, +.table > tbody > tr.success > th, +.table > tbody > tr > td.success, +.table > tbody > tr > th.success, +.table > tfoot > tr.success > td, +.table > tfoot > tr.success > th, +.table > tfoot > tr > td.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > thead > tr.success > th, +.table > thead > tr > td.success, +.table > thead > tr > th.success { + background-color: #dff0d8; +} +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr.success:hover > th, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover { + background-color: #d0e9c6; +} +.table > tbody > tr.info > td, +.table > tbody > tr.info > th, +.table > tbody > tr > td.info, +.table > tbody > tr > th.info, +.table > tfoot > tr.info > td, +.table > tfoot > tr.info > th, +.table > tfoot > tr > td.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > thead > tr.info > th, +.table > thead > tr > td.info, +.table > thead > tr > th.info { + background-color: #d9edf7; +} +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr.info:hover > th, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover { + background-color: #c4e3f3; +} +.table > tbody > tr.warning > td, +.table > tbody > tr.warning > th, +.table > tbody > tr > td.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr.warning > td, +.table > tfoot > tr.warning > th, +.table > tfoot > tr > td.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > thead > tr.warning > th, +.table > thead > tr > td.warning, +.table > thead > tr > th.warning { + background-color: #fcf8e3; +} +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr.warning:hover > th, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover { + background-color: #faf2cc; +} +.table > tbody > tr.danger > td, +.table > tbody > tr.danger > th, +.table > tbody > tr > td.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr.danger > td, +.table > tfoot > tr.danger > th, +.table > tfoot > tr > td.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > thead > tr.danger > th, +.table > thead > tr > td.danger, +.table > thead > tr > th.danger { + background-color: #f2dede; +} +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr.danger:hover > th, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover { + background-color: #ebcccc; +} +.table-responsive { + min-height: 0.01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > td, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > thead > tr > th { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="checkbox"], +input[type="radio"] { + margin: 4px 0 0; + margin-top: 1px\9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="checkbox"]:focus, +input[type="radio"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, + -webkit-box-shadow ease-in-out 0.15s; + -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), + 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), + 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + appearance: none; + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"], + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm { + line-height: 30px; + } + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"], + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.checkbox, +.radio { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.checkbox label, +.radio label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer; +} +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"], +.radio input[type="radio"], +.radio-inline input[type="radio"] { + position: absolute; + margin-top: 4px\9; + margin-left: -20px; +} +.checkbox + .checkbox, +.radio + .radio { + margin-top: -5px; +} +.checkbox-inline, +.radio-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer; +} +.checkbox-inline + .checkbox-inline, +.radio-inline + .radio-inline { + margin-top: 0; + margin-left: 10px; +} +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] input[type="radio"], +input[type="checkbox"].disabled, +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="radio"][disabled] { + cursor: not-allowed; +} +.checkbox-inline.disabled, +.radio-inline.disabled, +fieldset[disabled] .checkbox-inline, +fieldset[disabled] .radio-inline { + cursor: not-allowed; +} +.checkbox.disabled label, +.radio.disabled label, +fieldset[disabled] .checkbox label, +fieldset[disabled] .radio label { + cursor: not-allowed; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +select[multiple].input-sm, +textarea.input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm select[multiple].form-control, +.form-group-sm textarea.form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +select[multiple].input-lg, +textarea.input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} +.form-group-lg select[multiple].form-control, +.form-group-lg textarea.form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.form-group-lg .form-control + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.form-group-sm .form-control + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .checkbox, +.has-success .checkbox-inline, +.has-success .control-label, +.has-success .help-block, +.has-success .radio, +.has-success .radio-inline, +.has-success.checkbox label, +.has-success.checkbox-inline label, +.has-success.radio label, +.has-success.radio-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .checkbox, +.has-warning .checkbox-inline, +.has-warning .control-label, +.has-warning .help-block, +.has-warning .radio, +.has-warning .radio-inline, +.has-warning.checkbox label, +.has-warning.checkbox-inline label, +.has-warning.radio label, +.has-warning.radio-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .checkbox, +.has-error .checkbox-inline, +.has-error .control-label, +.has-error .help-block, +.has-error .radio, +.has-error .radio-inline, +.has-error.checkbox label, +.has-error.checkbox-inline label, +.has-error.radio label, +.has-error.radio-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .form-control, + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .checkbox, + .form-inline .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .checkbox label, + .form-inline .radio label { + padding-left: 0; + } + .form-inline .checkbox input[type="checkbox"], + .form-inline .radio input[type="radio"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .checkbox, +.form-horizontal .checkbox-inline, +.form-horizontal .radio, +.form-horizontal .radio-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .checkbox, +.form-horizontal .radio { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.33px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.btn.active.focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn:active:focus, +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.focus, +.btn:focus, +.btn:hover { + color: #333; + text-decoration: none; +} +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: 0.65; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default.focus, +.btn-default:focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default.active, +.btn-default:active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default.active.focus, +.btn-default.active:focus, +.btn-default.active:hover, +.btn-default:active.focus, +.btn-default:active:focus, +.btn-default:active:hover, +.open > .dropdown-toggle.btn-default.focus, +.open > .dropdown-toggle.btn-default:focus, +.open > .dropdown-toggle.btn-default:hover { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.btn-default.active, +.btn-default:active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default.disabled.active, +.btn-default.disabled.focus, +.btn-default.disabled:active, +.btn-default.disabled:focus, +.btn-default.disabled:hover, +.btn-default[disabled], +.btn-default[disabled].active, +.btn-default[disabled].focus, +.btn-default[disabled]:active, +.btn-default[disabled]:focus, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default, +fieldset[disabled] .btn-default.active, +fieldset[disabled] .btn-default.focus, +fieldset[disabled] .btn-default:active, +fieldset[disabled] .btn-default:focus, +fieldset[disabled] .btn-default:hover { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary.focus, +.btn-primary:focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary.active, +.btn-primary:active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary.active.focus, +.btn-primary.active:focus, +.btn-primary.active:hover, +.btn-primary:active.focus, +.btn-primary:active:focus, +.btn-primary:active:hover, +.open > .dropdown-toggle.btn-primary.focus, +.open > .dropdown-toggle.btn-primary:focus, +.open > .dropdown-toggle.btn-primary:hover { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} +.btn-primary.active, +.btn-primary:active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary.disabled.active, +.btn-primary.disabled.focus, +.btn-primary.disabled:active, +.btn-primary.disabled:focus, +.btn-primary.disabled:hover, +.btn-primary[disabled], +.btn-primary[disabled].active, +.btn-primary[disabled].focus, +.btn-primary[disabled]:active, +.btn-primary[disabled]:focus, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-primary.active, +fieldset[disabled] .btn-primary.focus, +fieldset[disabled] .btn-primary:active, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary:hover { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success.focus, +.btn-success:focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success.active, +.btn-success:active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success.active.focus, +.btn-success.active:focus, +.btn-success.active:hover, +.btn-success:active.focus, +.btn-success:active:focus, +.btn-success:active:hover, +.open > .dropdown-toggle.btn-success.focus, +.open > .dropdown-toggle.btn-success:focus, +.open > .dropdown-toggle.btn-success:hover { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.btn-success.active, +.btn-success:active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success.disabled.active, +.btn-success.disabled.focus, +.btn-success.disabled:active, +.btn-success.disabled:focus, +.btn-success.disabled:hover, +.btn-success[disabled], +.btn-success[disabled].active, +.btn-success[disabled].focus, +.btn-success[disabled]:active, +.btn-success[disabled]:focus, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-success.active, +fieldset[disabled] .btn-success.focus, +fieldset[disabled] .btn-success:active, +fieldset[disabled] .btn-success:focus, +fieldset[disabled] .btn-success:hover { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info.focus, +.btn-info:focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info.active, +.btn-info:active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info.active.focus, +.btn-info.active:focus, +.btn-info.active:hover, +.btn-info:active.focus, +.btn-info:active:focus, +.btn-info:active:hover, +.open > .dropdown-toggle.btn-info.focus, +.open > .dropdown-toggle.btn-info:focus, +.open > .dropdown-toggle.btn-info:hover { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.btn-info.active, +.btn-info:active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info.disabled.active, +.btn-info.disabled.focus, +.btn-info.disabled:active, +.btn-info.disabled:focus, +.btn-info.disabled:hover, +.btn-info[disabled], +.btn-info[disabled].active, +.btn-info[disabled].focus, +.btn-info[disabled]:active, +.btn-info[disabled]:focus, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-info.active, +fieldset[disabled] .btn-info.focus, +fieldset[disabled] .btn-info:active, +fieldset[disabled] .btn-info:focus, +fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning.focus, +.btn-warning:focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning.active, +.btn-warning:active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning.active.focus, +.btn-warning.active:focus, +.btn-warning.active:hover, +.btn-warning:active.focus, +.btn-warning:active:focus, +.btn-warning:active:hover, +.open > .dropdown-toggle.btn-warning.focus, +.open > .dropdown-toggle.btn-warning:focus, +.open > .dropdown-toggle.btn-warning:hover { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.btn-warning.active, +.btn-warning:active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning.disabled.active, +.btn-warning.disabled.focus, +.btn-warning.disabled:active, +.btn-warning.disabled:focus, +.btn-warning.disabled:hover, +.btn-warning[disabled], +.btn-warning[disabled].active, +.btn-warning[disabled].focus, +.btn-warning[disabled]:active, +.btn-warning[disabled]:focus, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-warning.active, +fieldset[disabled] .btn-warning.focus, +fieldset[disabled] .btn-warning:active, +fieldset[disabled] .btn-warning:focus, +fieldset[disabled] .btn-warning:hover { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger.focus, +.btn-danger:focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger.active, +.btn-danger:active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger.active.focus, +.btn-danger.active:focus, +.btn-danger.active:hover, +.btn-danger:active.focus, +.btn-danger:active:focus, +.btn-danger:active:hover, +.open > .dropdown-toggle.btn-danger.focus, +.open > .dropdown-toggle.btn-danger:focus, +.open > .dropdown-toggle.btn-danger:hover { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.btn-danger.active, +.btn-danger:active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger.disabled.active, +.btn-danger.disabled.focus, +.btn-danger.disabled:active, +.btn-danger.disabled:focus, +.btn-danger.disabled:hover, +.btn-danger[disabled], +.btn-danger[disabled].active, +.btn-danger[disabled].focus, +.btn-danger[disabled]:active, +.btn-danger[disabled]:focus, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger, +fieldset[disabled] .btn-danger.active, +fieldset[disabled] .btn-danger.focus, +fieldset[disabled] .btn-danger:active, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger:hover { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: 400; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link.active, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:active, +.btn-link:focus, +.btn-link:hover { + border-color: transparent; +} +.btn-link:focus, +.btn-link:hover { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:focus, +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:focus, +fieldset[disabled] .btn-link:hover { + color: #777; + text-decoration: none; +} +.btn-group-lg > .btn, +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-group-sm > .btn, +.btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-group-xs > .btn, +.btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="button"].btn-block, +input[type="reset"].btn-block, +input[type="submit"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: 0.35s; + -o-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid\9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropdown, +.dropup { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:focus, +.dropdown-menu > li > a:hover { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:focus, +.dropdown-menu > .active > a:hover { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:focus, +.dropdown-menu > .disabled > a:hover { + color: #777; +} +.dropdown-menu > .disabled > a:focus, +.dropdown-menu > .disabled > a:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid\9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group-vertical > .btn, +.btn-group > .btn { + position: relative; + float: left; +} +.btn-group-vertical > .btn.active, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:hover, +.btn-group > .btn.active, +.btn-group > .btn:active, +.btn-group > .btn:focus, +.btn-group > .btn:hover { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical + > .btn-group:first-child:not(:last-child) + > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical + > .btn-group:last-child:not(:first-child) + > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn, +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn, +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group .form-control, +.input-group-addon, +.input-group-btn { + display: table-cell; +} +.input-group .form-control:not(:first-child):not(:last-child), +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="checkbox"], +.input-group-addon input[type="radio"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:active, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:hover { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:focus, +.nav > li > a:hover { + text-decoration: none; + background-color: #eee; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:focus, +.nav > li.disabled > a:hover { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:focus, +.nav .open > a:hover { + background-color: #eee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:focus, +.nav-tabs > li.active > a:hover { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:focus, +.nav-tabs.nav-justified > .active > a:hover { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:focus, + .nav-tabs.nav-justified > .active > a:hover { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:focus, +.nav-pills > li.active > a:hover { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:focus, +.nav-tabs-justified > .active > a:hover { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:focus, + .nav-tabs-justified > .active > a:hover { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-bottom .navbar-collapse, + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-bottom .navbar-collapse, +.navbar-fixed-top .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-bottom .navbar-collapse, + .navbar-fixed-top .navbar-collapse { + max-height: 200px; + } +} +.container-fluid > .navbar-collapse, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container > .navbar-header { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container-fluid > .navbar-collapse, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container > .navbar-header { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-bottom, +.navbar-fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-bottom, + .navbar-fixed-top { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:focus, +.navbar-brand:hover { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu .dropdown-header, + .navbar-nav .open .dropdown-menu > li > a { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:focus, + .navbar-nav .open .dropdown-menu > li > a:hover { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), + 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), + 0 1px 0 rgba(255, 255, 255, 0.1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .form-control, + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .checkbox, + .navbar-form .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .checkbox label, + .navbar-form .radio label { + padding-left: 0; + } + .navbar-form .checkbox input[type="checkbox"], + .navbar-form .radio input[type="radio"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:focus, +.navbar-default .navbar-brand:hover { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:focus, +.navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:focus, +.navbar-default .navbar-nav > .active > a:hover { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:focus, +.navbar-default .navbar-nav > .disabled > a:hover { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:focus, +.navbar-default .navbar-toggle:hover { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:focus, +.navbar-default .navbar-nav > .open > a:hover { + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:focus, +.navbar-default .btn-link:hover { + color: #333; +} +.navbar-default .btn-link[disabled]:focus, +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:focus, +fieldset[disabled] .navbar-default .btn-link:hover { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:focus, +.navbar-inverse .navbar-brand:hover { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:focus, +.navbar-inverse .navbar-nav > li > a:hover { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:focus, +.navbar-inverse .navbar-nav > .active > a:hover { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:focus, +.navbar-inverse .navbar-nav > .disabled > a:hover { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:focus, +.navbar-inverse .navbar-toggle:hover { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:focus, +.navbar-inverse .navbar-nav > .open > a:hover { + color: #fff; + background-color: #080808; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:focus, +.navbar-inverse .btn-link:hover { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:focus, +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:focus, +fieldset[disabled] .navbar-inverse .btn-link:hover { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:focus, +.pagination > li > a:hover, +.pagination > li > span:focus, +.pagination > li > span:hover { + z-index: 3; + color: #23527c; + background-color: #eee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > a:focus, +.pagination > .active > a:hover, +.pagination > .active > span, +.pagination > .active > span:focus, +.pagination > .active > span:hover { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > a, +.pagination > .disabled > a:focus, +.pagination > .disabled > a:hover, +.pagination > .disabled > span, +.pagination > .disabled > span:focus, +.pagination > .disabled > span:hover { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:focus, +.pager li > a:hover { + text-decoration: none; + background-color: #eee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:focus, +.pager .disabled > a:hover, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: 0.2em 0.6em 0.3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; +} +a.label:focus, +a.label:hover { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777; +} +.label-default[href]:focus, +.label-default[href]:hover { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:focus, +.label-primary[href]:hover { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:focus, +.label-success[href]:hover { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:focus, +.label-info[href]:hover { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:focus, +.label-warning[href]:hover { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:focus, +.label-danger[href]:hover { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-group-xs > .btn .badge, +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} +a.badge:focus, +a.badge:hover { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} +.jumbotron .h1, +.jumbotron h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron .h1, + .jumbotron h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; +} +.thumbnail a > img, +.thumbnail > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail.active, +a.thumbnail:focus, +a.thumbnail:hover { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: 700; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-bar-striped, +.progress-striped .progress-bar { + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: -o-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress-bar.active, +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: -o-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: -o-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: -o-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: -o-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-body, +.media-left, +.media-right { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:focus, +a.list-group-item:hover, +button.list-group-item:focus, +button.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item.disabled, +.list-group-item.disabled:focus, +.list-group-item.disabled:hover { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text { + color: #777; +} +.list-group-item.active, +.list-group-item.active:focus, +.list-group-item.active:hover { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:focus .list-group-item-text, +.list-group-item.active:hover .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:focus, +a.list-group-item-success:hover, +button.list-group-item-success:focus, +button.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:focus, +a.list-group-item-success.active:hover, +button.list-group-item-success.active, +button.list-group-item-success.active:focus, +button.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:focus, +a.list-group-item-info:hover, +button.list-group-item-info:focus, +button.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:focus, +a.list-group-item-info.active:hover, +button.list-group-item-info.active, +button.list-group-item-info.active:focus, +button.list-group-item-info.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:focus, +a.list-group-item-warning:hover, +button.list-group-item-warning:focus, +button.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:focus, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active, +button.list-group-item-warning.active:focus, +button.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:focus, +a.list-group-item-danger:hover, +button.list-group-item-danger:focus, +button.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:focus, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active, +button.list-group-item-danger.active:focus, +button.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > .small, +.panel-title > .small > a, +.panel-title > a, +.panel-title > small, +.panel-title > small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel + > .panel-collapse + > .list-group:first-child + .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel + > .panel-heading + + .panel-collapse + > .list-group + .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .panel-collapse > .table, +.panel > .table, +.panel > .table-responsive > .table { + margin-bottom: 0; +} +.panel > .panel-collapse > .table caption, +.panel > .table caption, +.panel > .table-responsive > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table-responsive:first-child > .table:first-child, +.panel > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child, +.panel + > .table-responsive:first-child + > .table:first-child + > thead:first-child + > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child + td:first-child, +.panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child + th:first-child, +.panel + > .table-responsive:first-child + > .table:first-child + > thead:first-child + > tr:first-child + td:first-child, +.panel + > .table-responsive:first-child + > .table:first-child + > thead:first-child + > tr:first-child + th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel + > .table:first-child + > thead:first-child + > tr:first-child + th:first-child { + border-top-left-radius: 3px; +} +.panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child + td:last-child, +.panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child + th:last-child, +.panel + > .table-responsive:first-child + > .table:first-child + > thead:first-child + > tr:first-child + td:last-child, +.panel + > .table-responsive:first-child + > .table:first-child + > thead:first-child + > tr:first-child + th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table-responsive:last-child > .table:last-child, +.panel > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel + > .table-responsive:last-child + > .table:last-child + > tbody:last-child + > tr:last-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tfoot:last-child + > tr:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel + > .table-responsive:last-child + > .table:last-child + > tbody:last-child + > tr:last-child + td:first-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tbody:last-child + > tr:last-child + th:first-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tfoot:last-child + > tr:last-child + td:first-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tfoot:last-child + > tr:last-child + th:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel + > .table-responsive:last-child + > .table:last-child + > tbody:last-child + > tr:last-child + td:last-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tbody:last-child + > tr:last-child + th:last-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tfoot:last-child + > tr:last-child + td:last-child, +.panel + > .table-responsive:last-child + > .table:last-child + > tfoot:last-child + > tr:last-child + th:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child td, +.panel > .table > tbody:first-child > tr:first-child th { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0; +} +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0; +} +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .list-group, +.panel-group .panel-heading + .panel-collapse > .panel-body { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { + border-color: #ddd; +} +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive embed, +.embed-responsive iframe, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: 0.2; +} +.close:focus, +.close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; +} +button.close { + appearance: none; + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: 0 0; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: 0.5; +} +.modal-header { + min-height: 16.43px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + line-break: auto; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: 0.9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + line-break: auto; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > a > img, +.carousel-inner > .item > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.active.right, + .carousel-inner > .item.next { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.active.left, + .carousel-inner > .item.prev { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.active, + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + filter: alpha(opacity=50); + opacity: 0.5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient( + left, + rgba(0, 0, 0, 0.5) 0, + rgba(0, 0, 0, 0.0001) 100% + ); + background-image: -o-linear-gradient( + left, + rgba(0, 0, 0, 0.5) 0, + rgba(0, 0, 0, 0.0001) 100% + ); + background-image: -webkit-gradient( + linear, + left top, + right top, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0.0001)) + ); + background-image: linear-gradient( + to right, + rgba(0, 0, 0, 0.5) 0, + rgba(0, 0, 0, 0.0001) 100% + ); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient( + left, + rgba(0, 0, 0, 0.0001) 0, + rgba(0, 0, 0, 0.5) 100% + ); + background-image: -o-linear-gradient( + left, + rgba(0, 0, 0, 0.0001) 0, + rgba(0, 0, 0, 0.5) 100% + ); + background-image: -webkit-gradient( + linear, + left top, + right top, + from(rgba(0, 0, 0, 0.0001)), + to(rgba(0, 0, 0, 0.5)) + ); + background-image: linear-gradient( + to right, + rgba(0, 0, 0, 0.0001) 0, + rgba(0, 0, 0, 0.5) 100% + ); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:focus, +.carousel-control:hover { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: 0.9; +} +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right, +.carousel-control .icon-next, +.carousel-control .icon-prev { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.carousel-control .glyphicon-chevron-left, +.carousel-control .icon-prev { + left: 50%; + margin-left: -10px; +} +.carousel-control .glyphicon-chevron-right, +.carousel-control .icon-next { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-next, +.carousel-control .icon-prev { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: "\2039"; +} +.carousel-control .icon-next:before { + content: "\203a"; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #0009; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next, + .carousel-control .icon-prev { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.btn-group-vertical > .btn-group:after, +.btn-group-vertical > .btn-group:before, +.btn-toolbar:after, +.btn-toolbar:before, +.clearfix:after, +.clearfix:before, +.container-fluid:after, +.container-fluid:before, +.container:after, +.container:before, +.dl-horizontal dd:after, +.dl-horizontal dd:before, +.form-horizontal .form-group:after, +.form-horizontal .form-group:before, +.modal-footer:after, +.modal-footer:before, +.nav:after, +.nav:before, +.navbar-collapse:after, +.navbar-collapse:before, +.navbar-header:after, +.navbar-header:before, +.navbar:after, +.navbar:before, +.pager:after, +.pager:before, +.panel-body:after, +.panel-body:before, +.row:after, +.row:before { + display: table; + content: " "; +} +.btn-group-vertical > .btn-group:after, +.btn-toolbar:after, +.clearfix:after, +.container-fluid:after, +.container:after, +.dl-horizontal dd:after, +.form-horizontal .form-group:after, +.modal-footer:after, +.nav:after, +.navbar-collapse:after, +.navbar-header:after, +.navbar:after, +.pager:after, +.panel-body:after, +.row:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-lg, +.visible-md, +.visible-sm, +.visible-xs { + display: none !important; +} +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + td.visible-xs, + th.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + td.visible-sm, + th.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + td.visible-md, + th.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + td.visible-lg, + th.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + td.visible-print, + th.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} diff --git a/public/css/flexslider.css b/public/css/flexslider.css new file mode 100644 index 0000000..4bb884b --- /dev/null +++ b/public/css/flexslider.css @@ -0,0 +1,266 @@ +/* + * jQuery FlexSlider v2.5.0 + * http://www.woothemes.com/flexslider/ + * + * Copyright 2012 WooThemes + * Free to use under the GPLv2 and later license. + * http://www.gnu.org/licenses/gpl-2.0.html + * + * Contributing author: Tyler Smith (@mbmufffin) + * + */ +/* ==================================================================================================================== + * FONT-FACE + * ====================================================================================================================*/ +@font-face { + font-family: "flexslider-icon"; + src: url("../fonts/flexslider-icon.eot"); + src: url("../fonts/flexslider-icon.eot?#iefix") format("embedded-opentype"), + url("../fonts/flexslider-icon.woff") format("woff"), + url("../fonts/flexslider-icon.ttf") format("truetype"), + url("../fonts/flexslider-icon.svg#flexslider-icon") format("svg"); + font-weight: normal; + font-style: normal; +} +/* ==================================================================================================================== + * RESETS + * ====================================================================================================================*/ +.flex-container a:hover, +.flex-slider a:hover, +.flex-container a:focus, +.flex-slider a:focus { + outline: none; +} +.slides, +.slides > li, +.flex-control-nav, +.flex-direction-nav { + margin: 0; + padding: 0; + list-style: none; +} +.flex-pauseplay span { + text-transform: capitalize; +} +/* ==================================================================================================================== + * BASE STYLES + * ====================================================================================================================*/ +.flexslider { + margin: 0; + padding: 0; +} +.flexslider .slides > li { + display: none; + backface-visibility: hidden; + -webkit-backface-visibility: hidden; +} +.flexslider .slides img { + width: 100%; + display: block; +} +.flexslider .slides:after { + content: "\0020"; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +html[xmlns] .flexslider .slides { + display: block; +} +* html .flexslider .slides { + height: 1%; +} +.no-js .flexslider .slides > li:first-child { + display: block; +} +/* ==================================================================================================================== + * DEFAULT THEME + * ====================================================================================================================*/ +.flexslider { + position: relative; + zoom: 1; +} +.flexslider .slides { + zoom: 1; +} +.flexslider .slides img { + height: auto; +} +.flex-viewport { + max-height: 2000px; + -webkit-transition: all 1s ease; + -moz-transition: all 1s ease; + -ms-transition: all 1s ease; + -o-transition: all 1s ease; + transition: all 1s ease; +} +.loading .flex-viewport { + max-height: 300px; +} +.carousel li { + margin-right: 5px; +} +.flex-direction-nav { + height: 0; +} +.flex-direction-nav a { + text-decoration: none; + display: block; + width: 40px; + height: 40px; + margin: -20px 0 0; + position: absolute; + top: 50%; + z-index: 10; + overflow: hidden; + opacity: 0; + cursor: pointer; + color: rgba(0, 0, 0, 0.8); + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} +.flex-direction-nav a:before { + font-family: "flexslider-icon"; + font-size: 40px; + display: inline-block; + content: "\f001"; + color: rgba(0, 0, 0, 0.8); + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); +} +.flex-direction-nav a.flex-next:before { + content: "\f002"; +} +.flex-direction-nav .flex-prev { + left: -50px; +} +.flex-direction-nav .flex-next { + right: -50px; + text-align: right; +} +.flexslider:hover .flex-direction-nav .flex-prev { + opacity: 0.7; + left: 10px; +} +.flexslider:hover .flex-direction-nav .flex-prev:hover { + opacity: 1; +} +.flexslider:hover .flex-direction-nav .flex-next { + opacity: 0.7; + right: 10px; +} +.flexslider:hover .flex-direction-nav .flex-next:hover { + opacity: 1; +} +.flex-direction-nav .flex-disabled { + opacity: 0 !important; + filter: alpha(opacity=0); + cursor: default; +} +.flex-pauseplay a { + display: block; + width: 20px; + height: 20px; + position: absolute; + bottom: 5px; + left: 10px; + opacity: 0.8; + z-index: 10; + overflow: hidden; + cursor: pointer; + color: #000; +} +.flex-pauseplay a:before { + font-family: "flexslider-icon"; + font-size: 20px; + display: inline-block; + content: "\f004"; +} +.flex-pauseplay a:hover { + opacity: 1; +} +.flex-pauseplay a.flex-play:before { + content: "\f003"; +} +.flex-control-nav { + width: 50%; + position: absolute; + bottom: 100px; + right: 0; + text-align: center; + z-index: 100; +} +.flex-control-nav li { + margin: 0 6px; + display: inline-block; + zoom: 1; + display: inline; +} +.flex-control-paging li a { + width: 11px; + height: 11px; + display: block; + background: #fff; + background: rgba(255, 255, 255, 0.2); + cursor: pointer; + text-indent: -9999px; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; +} +.flex-control-paging li a:hover { + background: #fff; + background: rgba(255, 255, 255, 1); +} +.flex-control-paging li a.flex-active { + background: #fff; + background: rgba(255, 255, 255, 1); + cursor: default; +} +.flex-control-thumbs { + margin: 5px 0 0; + position: static; + overflow: hidden; +} +.flex-control-thumbs li { + width: 25%; + float: left; + margin: 0; +} +.flex-control-thumbs img { + width: 100%; + height: auto; + display: block; + opacity: 0.7; + cursor: pointer; + -webkit-transition: all 1s ease; + -moz-transition: all 1s ease; + -ms-transition: all 1s ease; + -o-transition: all 1s ease; + transition: all 1s ease; +} +.flex-control-thumbs img:hover { + opacity: 1; +} +.flex-control-thumbs .flex-active { + opacity: 1; + cursor: default; +} +/* ==================================================================================================================== + * RESPONSIVE + * ====================================================================================================================*/ +@media screen and (max-width: 860px) { + .flex-direction-nav .flex-prev { + opacity: 1; + left: 10px; + } + .flex-direction-nav .flex-next { + opacity: 1; + right: 10px; + } +} diff --git a/public/css/lightbox.css b/public/css/lightbox.css new file mode 100644 index 0000000..f2a15be --- /dev/null +++ b/public/css/lightbox.css @@ -0,0 +1,203 @@ +body.lb-disable-scrolling { + overflow: hidden; +} + +.lightboxOverlay { + position: absolute; + top: 0; + left: 0; + z-index: 9999; + background-color: black; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + opacity: 0.8; + display: none; +} + +.lightbox { + position: absolute; + left: 0; + width: 100%; + z-index: 10000; + text-align: center; + line-height: 0; + font-weight: normal; + outline: none; +} + +.lightbox .lb-image { + display: block; + height: auto; + max-width: inherit; + max-height: none; + border-radius: 3px; + + /* Image border */ + border: 4px solid white; +} + +.lightbox a img { + border: none; +} + +.lb-outerContainer { + position: relative; + width: 250px; + height: 250px; + margin: 0 auto; + border-radius: 4px; + + /* Background color behind image. + This is visible during transitions. */ + background-color: white; +} + +.lb-outerContainer:after { + content: ""; + display: table; + clear: both; +} + +.lb-loader { + position: absolute; + top: 43%; + left: 0; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; +} + +.lb-cancel { + display: block; + width: 32px; + height: 32px; + margin: 0 auto; + background: url(/img/muslim/loading.gif) no-repeat; +} + +.lb-nav { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; +} + +.lb-container > .nav { + left: 0; +} + +.lb-nav a { + outline: none; + background-image: url("data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); +} + +.lb-prev, +.lb-next { + height: 100%; + cursor: pointer; + display: block; +} + +.lb-nav a.lb-prev { + width: 34%; + left: 0; + float: left; + background: url(/img/muslim/prev.png) left 48% no-repeat; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -webkit-transition: opacity 0.6s; + -moz-transition: opacity 0.6s; + -o-transition: opacity 0.6s; + transition: opacity 0.6s; +} + +.lb-nav a.lb-prev:hover { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} + +.lb-nav a.lb-next { + width: 64%; + right: 0; + float: right; + background: url(/img/muslim/next.png) right 48% no-repeat; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -webkit-transition: opacity 0.6s; + -moz-transition: opacity 0.6s; + -o-transition: opacity 0.6s; + transition: opacity 0.6s; +} + +.lb-nav a.lb-next:hover { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} + +.lb-dataContainer { + margin: 0 auto; + padding-top: 5px; + width: 100%; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.lb-dataContainer:after { + content: ""; + display: table; + clear: both; +} + +.lb-data { + padding: 0 4px; + color: #ccc; +} + +.lb-data .lb-details { + width: 85%; + float: left; + text-align: left; + line-height: 1.1em; +} + +.lb-data .lb-caption { + font-size: 13px; + font-weight: bold; + line-height: 1em; +} + +.lb-data .lb-caption a { + color: #4ae; +} + +.lb-data .lb-number { + display: block; + clear: left; + padding-bottom: 1em; + font-size: 12px; + color: #999999; +} + +.lb-data .lb-close { + display: block; + float: right; + width: 30px; + height: 30px; + background: url(/img/muslim/close.png) top right no-repeat; + text-align: right; + outline: none; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); + opacity: 0.7; + -webkit-transition: opacity 0.2s; + -moz-transition: opacity 0.2s; + -o-transition: opacity 0.2s; + transition: opacity 0.2s; +} + +.lb-data .lb-close:hover { + cursor: pointer; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} diff --git a/public/css/owl.carousel.min.css b/public/css/owl.carousel.min.css new file mode 100644 index 0000000..2bee96d --- /dev/null +++ b/public/css/owl.carousel.min.css @@ -0,0 +1,190 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +.owl-carousel, +.owl-carousel .owl-item { + -webkit-tap-highlight-color: transparent; + position: relative; +} +.owl-carousel { + display: none; + width: 100%; + z-index: 1; +} +.owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; + touch-action: manipulation; + backface-visibility: hidden; + -moz-backface-visibility: hidden; +} +.owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +.owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + transform: translate3d(0, 0, 0); + -webkit-transform: translate3d(0, 0, 0); +} +.owl-carousel .owl-item, +.owl-carousel .owl-wrapper { + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + transform: translate3d(0, 0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); +} +.owl-carousel .owl-item { + min-height: 1px; + float: left; + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -webkit-touch-callout: none; +} +.owl-carousel .owl-item img { + display: block; + width: 100%; +} +.owl-carousel .owl-dots.disabled, +.owl-carousel .owl-nav.disabled { + display: none; +} +.no-js .owl-carousel, +.owl-carousel.owl-loaded { + display: block; +} +.owl-carousel .owl-dot, +.owl-carousel .owl-nav .owl-next, +.owl-carousel .owl-nav .owl-prev { + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.owl-carousel .owl-nav button.owl-next, +.owl-carousel .owl-nav button.owl-prev, +.owl-carousel button.owl-dot { + background: 0 0; + color: inherit; + border: none; + padding: 0 !important; + font: inherit; +} +.owl-carousel.owl-loading { + opacity: 0; + display: block; +} +.owl-carousel.owl-hidden { + opacity: 0; +} +.owl-carousel.owl-refresh .owl-item { + visibility: hidden; +} +.owl-carousel.owl-drag .owl-item { + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.owl-carousel.owl-grab { + cursor: move; + cursor: grab; +} +.owl-carousel.owl-rtl { + direction: rtl; +} +.owl-carousel.owl-rtl .owl-item { + float: right; +} +.owl-carousel .animated { + animation-duration: 1s; + animation-fill-mode: both; +} +.owl-carousel .owl-animated-in { + z-index: 0; +} +.owl-carousel .owl-animated-out { + z-index: 1; +} +.owl-carousel .fadeOut { + animation-name: fadeOut; +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.owl-height { + transition: height 0.5s ease-in-out; +} +.owl-carousel .owl-item .owl-lazy { + opacity: 0; + transition: opacity 0.4s ease; +} +.owl-carousel .owl-item .owl-lazy:not([src]), +.owl-carousel .owl-item .owl-lazy[src^=""] { + max-height: 0; +} +.owl-carousel .owl-item img.owl-lazy { + transform-style: preserve-3d; +} +.owl-carousel .owl-video-wrapper { + position: relative; + height: 100%; + background: #000; +} +.owl-carousel .owl-video-play-icon { + position: absolute; + height: 80px; + width: 80px; + left: 50%; + top: 50%; + margin-left: -40px; + margin-top: -40px; + background: url(owl.video.play.png) no-repeat; + cursor: pointer; + z-index: 1; + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + transition: transform 0.1s ease; +} +.owl-carousel .owl-video-play-icon:hover { + -ms-transform: scale(1.3, 1.3); + transform: scale(1.3, 1.3); +} +.owl-carousel .owl-video-playing .owl-video-play-icon, +.owl-carousel .owl-video-playing .owl-video-tn { + display: none; +} +.owl-carousel .owl-video-tn { + opacity: 0; + height: 100%; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + transition: opacity 0.4s ease; +} +.owl-carousel .owl-video-frame { + position: relative; + z-index: 1; + height: 100%; + width: 100%; +} diff --git a/public/css/owl.theme.default.css b/public/css/owl.theme.default.css new file mode 100644 index 0000000..929a8c4 --- /dev/null +++ b/public/css/owl.theme.default.css @@ -0,0 +1,61 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +/* + * Default theme - Owl Carousel CSS File + */ +.owl-theme .owl-nav { + margin-top: 10px; + text-align: center; + -webkit-tap-highlight-color: transparent; +} +.owl-theme .owl-nav [class*="owl-"] { + color: #fff; + font-size: 14px; + margin: 5px; + padding: 4px 7px; + background: #d6d6d6; + display: inline-block; + cursor: pointer; + border-radius: 3px; +} +.owl-theme .owl-nav [class*="owl-"]:hover { + background: #869791; + color: #fff; + text-decoration: none; +} +.owl-theme .owl-nav .disabled { + opacity: 0.5; + cursor: default; +} + +.owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 10px; +} + +.owl-theme .owl-dots { + text-align: center; + -webkit-tap-highlight-color: transparent; +} +.owl-theme .owl-dots .owl-dot { + display: inline-block; + zoom: 1; + display: inline; +} +.owl-theme .owl-dots .owl-dot span { + width: 10px; + height: 10px; + margin: 5px 7px; + background: #d6d6d6; + display: block; + backface-visibility: hidden; + -webkit-backface-visibility: visible; + transition: opacity 200ms ease; + border-radius: 30px; +} +.owl-theme .owl-dots .owl-dot.active span, +.owl-theme .owl-dots .owl-dot:hover span { + background: #869791; +} diff --git a/public/css/owl.theme.default.min.css b/public/css/owl.theme.default.min.css new file mode 100644 index 0000000..78bb81f --- /dev/null +++ b/public/css/owl.theme.default.min.css @@ -0,0 +1,54 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +.owl-theme .owl-dots, +.owl-theme .owl-nav { + text-align: center; + -webkit-tap-highlight-color: transparent; +} +.owl-theme .owl-nav { + margin-top: 10px; +} +.owl-theme .owl-nav [class*="owl-"] { + color: #fff; + font-size: 14px; + margin: 5px; + padding: 4px 7px; + background: #d6d6d6; + display: inline-block; + cursor: pointer; + border-radius: 3px; +} +.owl-theme .owl-nav [class*="owl-"]:hover { + background: #869791; + color: #fff; + text-decoration: none; +} +.owl-theme .owl-nav .disabled { + opacity: 0.5; + cursor: default; +} +.owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 10px; +} +.owl-theme .owl-dots .owl-dot { + display: inline-block; + zoom: 1; +} +.owl-theme .owl-dots .owl-dot span { + width: 10px; + height: 10px; + margin: 5px 7px; + background: #d6d6d6; + display: block; + backface-visibility: hidden; + -webkit-backface-visibility: visible; + transition: opacity 0.2s ease; + border-radius: 30px; +} +.owl-theme .owl-dots .owl-dot.active span, +.owl-theme .owl-dots .owl-dot:hover span { + background: #869791; +} diff --git a/public/css/prettyPhoto.min.css b/public/css/prettyPhoto.min.css new file mode 100644 index 0000000..64837e9 --- /dev/null +++ b/public/css/prettyPhoto.min.css @@ -0,0 +1,946 @@ +.pp_gallery div, +.pp_gallery ul a, +.pp_social .facebook { + overflow: hidden; + float: left; +} +div.pp_default .pp_bottom, +div.pp_default .pp_bottom .pp_left, +div.pp_default .pp_bottom .pp_middle, +div.pp_default .pp_bottom .pp_right, +div.pp_default .pp_top, +div.pp_default .pp_top .pp_left, +div.pp_default .pp_top .pp_middle, +div.pp_default .pp_top .pp_right { + height: 13px; +} +div.pp_default .pp_top .pp_left { + background: url(../images/prettyPhoto/default/sprite.png) -78px -93px + no-repeat; +} +div.pp_default .pp_top .pp_middle { + background: url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x; +} +div.pp_default .pp_top .pp_right { + background: url(../images/prettyPhoto/default/sprite.png) -112px -93px + no-repeat; +} +div.pp_default .pp_content .ppt { + color: #f8f8f8; +} +div.pp_default .pp_content_container .pp_left { + background: url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y; + padding-left: 13px; +} +div.pp_default .pp_content_container .pp_right { + background: url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y; + padding-right: 13px; +} +div.pp_default .pp_content { + background-color: #fff; +} +div.pp_default .pp_next:hover { + background: url(../images/prettyPhoto/default/sprite_next.png) center right + no-repeat; + cursor: pointer; +} +div.pp_default .pp_previous:hover { + background: url(../images/prettyPhoto/default/sprite_prev.png) center left + no-repeat; + cursor: pointer; +} +div.pp_default .pp_expand { + background: url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat; + cursor: pointer; + width: 28px; + height: 28px; +} +div.pp_default .pp_expand:hover { + background: url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat; + cursor: pointer; +} +div.pp_default .pp_contract { + background: url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat; + cursor: pointer; + width: 28px; + height: 28px; +} +div.pp_default .pp_contract:hover { + background: url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat; + cursor: pointer; +} +div.pp_default .pp_close { + width: 30px; + height: 30px; + background: url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat; + cursor: pointer; +} +div.pp_default #pp_full_res .pp_inline { + color: #000; +} +div.pp_default .pp_gallery ul li a { + background: url(../images/prettyPhoto/default/default_thumb.png) center center + #f8f8f8; + border: 1px solid #aaa; +} +div.pp_default .pp_gallery ul li a:hover, +div.pp_default .pp_gallery ul li.selected a { + border-color: #fff; +} +div.pp_default .pp_social { + margin-top: 7px; +} +div.pp_default .pp_gallery a.pp_arrow_next, +div.pp_default .pp_gallery a.pp_arrow_previous { + position: static; + left: auto; +} +div.pp_default .pp_nav .pp_pause, +div.pp_default .pp_nav .pp_play { + background: url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat; + height: 30px; + width: 30px; +} +div.pp_default .pp_nav .pp_pause { + background-position: -51px -29px; +} +div.pp_default .pp_details { + position: relative; +} +div.pp_default a.pp_arrow_next, +div.pp_default a.pp_arrow_previous { + background: url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat; + height: 20px; + margin: 4px 0 0; + width: 20px; +} +div.pp_default a.pp_arrow_next { + left: 52px; + background-position: -82px -3px; +} +div.pp_default .pp_content_container .pp_details { + margin-top: 5px; +} +div.pp_default .pp_nav { + clear: none; + height: 30px; + width: 110px; + position: relative; +} +div.pp_default .pp_nav .currentTextHolder { + font-family: Georgia; + font-style: italic; + color: #999; + font-size: 11px; + left: 75px; + line-height: 25px; + margin: 0; + padding: 0 0 0 10px; + position: absolute; + top: 2px; +} +div.light_rounded #pp_full_res .pp_inline, +div.light_rounded .pp_content .ppt { + color: #000; +} +div.dark_rounded .pp_details, +div.dark_square .pp_details, +div.facebook .pp_details, +div.light_rounded .pp_details, +div.light_square .pp_details { + position: relative; +} +div.pp_default .pp_arrow_next:hover, +div.pp_default .pp_arrow_previous:hover, +div.pp_default .pp_close:hover, +div.pp_default .pp_nav .pp_pause:hover, +div.pp_default .pp_nav .pp_play:hover { + opacity: 0.7; +} +div.pp_default .pp_description { + font-size: 11px; + font-weight: 700; + line-height: 14px; + margin: 5px 50px 5px 0; +} +div.dark_rounded .pp_description, +div.light_rounded .pp_description { + margin-right: 85px; +} +div.dark_rounded .pp_gallery a.pp_arrow_next, +div.dark_rounded .pp_gallery a.pp_arrow_previous, +div.light_rounded .pp_gallery a.pp_arrow_next, +div.light_rounded .pp_gallery a.pp_arrow_previous { + margin-top: 12px !important; +} +div.pp_default .pp_bottom .pp_left { + background: url(../images/prettyPhoto/default/sprite.png) -78px -127px + no-repeat; +} +div.pp_default .pp_bottom .pp_middle { + background: url(../images/prettyPhoto/default/sprite_x.png) bottom left + repeat-x; +} +div.pp_default .pp_bottom .pp_right { + background: url(../images/prettyPhoto/default/sprite.png) -112px -127px + no-repeat; +} +div.pp_default .pp_loaderIcon { + background: url(../images/prettyPhoto/default/loader.gif) center center + no-repeat; +} +div.light_rounded .pp_top .pp_left { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px + no-repeat; +} +div.light_rounded .pp_top .pp_middle { + background: #fff; +} +div.light_rounded .pp_top .pp_right { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px + no-repeat; +} +div.light_rounded .pp_content_container .pp_left, +div.light_rounded .pp_content_container .pp_right { + background: #fff; +} +div.light_rounded .pp_content { + background-color: #fff; +} +div.light_rounded .pp_next:hover { + background: url(../images/prettyPhoto/light_rounded/btnNext.png) center right + no-repeat; + cursor: pointer; +} +div.light_rounded .pp_previous:hover { + background: url(../images/prettyPhoto/light_rounded/btnPrevious.png) center + left no-repeat; + cursor: pointer; +} +div.light_rounded .pp_expand { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px + no-repeat; + cursor: pointer; +} +div.light_rounded .pp_expand:hover { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px + no-repeat; + cursor: pointer; +} +div.light_rounded .pp_contract { + background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; + cursor: pointer; +} +div.light_rounded .pp_contract:hover { + background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; + cursor: pointer; +} +div.light_rounded .pp_close { + width: 75px; + height: 22px; + background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px + no-repeat; + cursor: pointer; +} +div.light_rounded .pp_nav .pp_play { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.light_rounded .pp_nav .pp_pause { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.light_rounded .pp_arrow_previous { + background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; +} +div.light_rounded .pp_arrow_previous.disabled { + background-position: 0 -87px; + cursor: default; +} +div.light_rounded .pp_arrow_next { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px + no-repeat; +} +div.light_rounded .pp_arrow_next.disabled { + background-position: -22px -87px; + cursor: default; +} +div.light_rounded .pp_bottom .pp_left { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px + no-repeat; +} +div.light_rounded .pp_bottom .pp_middle { + background: #fff; +} +div.light_rounded .pp_bottom .pp_right { + background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px + no-repeat; +} +div.light_rounded .pp_loaderIcon { + background: url(../images/prettyPhoto/light_rounded/loader.gif) center center + no-repeat; +} +div.dark_rounded .pp_top .pp_left { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px + no-repeat; +} +div.dark_rounded .pp_top .pp_middle { + background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top + left; +} +div.dark_rounded .pp_top .pp_right { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px + no-repeat; +} +div.dark_rounded .pp_content_container .pp_left { + background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top + left repeat-y; +} +div.dark_rounded .pp_content_container .pp_right { + background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top + right repeat-y; +} +div.dark_rounded .pp_content { + background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top + left; +} +div.dark_rounded .pp_next:hover { + background: url(../images/prettyPhoto/dark_rounded/btnNext.png) center right + no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_previous:hover { + background: url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center + left no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_expand { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px + no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_expand:hover { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px + no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_contract { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_contract:hover { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; + cursor: pointer; +} +div.dark_rounded .pp_close { + width: 75px; + height: 22px; + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px + no-repeat; + cursor: pointer; +} +div.dark_rounded .currentTextHolder { + color: #c4c4c4; +} +div.dark_rounded #pp_full_res .pp_inline, +div.dark_rounded .pp_description { + color: #fff; +} +div.dark_rounded .pp_nav .pp_play { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.dark_rounded .pp_nav .pp_pause { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.dark_rounded .pp_arrow_previous { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; +} +div.dark_rounded .pp_arrow_previous.disabled { + background-position: 0 -87px; + cursor: default; +} +div.dark_rounded .pp_arrow_next { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px + no-repeat; +} +div.dark_rounded .pp_arrow_next.disabled { + background-position: -22px -87px; + cursor: default; +} +div.dark_rounded .pp_bottom .pp_left { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px + no-repeat; +} +div.dark_rounded .pp_bottom .pp_middle { + background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top + left; +} +div.dark_rounded .pp_bottom .pp_right { + background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px + no-repeat; +} +div.dark_rounded .pp_loaderIcon { + background: url(../images/prettyPhoto/dark_rounded/loader.gif) center center + no-repeat; +} +div.dark_square .pp_content, +div.dark_square .pp_left, +div.dark_square .pp_middle, +div.dark_square .pp_right { + background: #000; +} +div.dark_square .currentTextHolder { + color: #c4c4c4; +} +div.dark_square .pp_description { + color: #fff; + margin: 0 85px 0 0; +} +div.dark_square .pp_gallery a.pp_arrow_next, +div.dark_square .pp_gallery a.pp_arrow_previous, +div.light_square .pp_gallery a.pp_arrow_next, +div.light_square .pp_gallery a.pp_arrow_previous { + margin-top: 12px !important; +} +div.dark_square .pp_loaderIcon { + background: url(../images/prettyPhoto/dark_square/loader.gif) center center + no-repeat; +} +div.dark_square .pp_expand { + background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px + no-repeat; + cursor: pointer; +} +div.dark_square .pp_expand:hover { + background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px + no-repeat; + cursor: pointer; +} +div.dark_square .pp_contract { + background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; + cursor: pointer; +} +div.dark_square .pp_contract:hover { + background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; + cursor: pointer; +} +div.dark_square .pp_close { + width: 75px; + height: 22px; + background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px + no-repeat; + cursor: pointer; +} +div.dark_square #pp_full_res .pp_inline { + color: #fff; +} +div.facebook #pp_full_res .pp_inline, +div.facebook .pp_content .ppt, +div.light_square #pp_full_res .pp_inline, +div.light_square .pp_content .ppt { + color: #000; +} +div.dark_square .pp_nav { + clear: none; +} +div.dark_square .pp_nav .pp_play { + background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.dark_square .pp_nav .pp_pause { + background: url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.dark_square .pp_arrow_previous { + background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; +} +div.dark_square .pp_arrow_previous.disabled { + background-position: 0 -87px; + cursor: default; +} +div.dark_square .pp_arrow_next { + background: url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px + no-repeat; +} +div.dark_square .pp_arrow_next.disabled { + background-position: -22px -87px; + cursor: default; +} +div.dark_square .pp_next:hover { + background: url(../images/prettyPhoto/dark_square/btnNext.png) center right + no-repeat; + cursor: pointer; +} +div.dark_square .pp_previous:hover { + background: url(../images/prettyPhoto/dark_square/btnPrevious.png) center left + no-repeat; + cursor: pointer; +} +div.light_square .pp_content, +div.light_square .pp_left, +div.light_square .pp_middle, +div.light_square .pp_right { + background: #fff; +} +div.light_square .pp_expand { + background: url(../images/prettyPhoto/light_square/sprite.png) -31px -26px + no-repeat; + cursor: pointer; +} +div.light_square .pp_expand:hover { + background: url(../images/prettyPhoto/light_square/sprite.png) -31px -47px + no-repeat; + cursor: pointer; +} +div.light_square .pp_contract { + background: url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; + cursor: pointer; +} +div.light_square .pp_contract:hover { + background: url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; + cursor: pointer; +} +div.light_square .pp_close { + width: 75px; + height: 22px; + background: url(../images/prettyPhoto/light_square/sprite.png) -1px -1px + no-repeat; + cursor: pointer; +} +div.light_square .pp_description { + margin-right: 85px; +} +div.light_square .pp_nav .pp_play { + background: url(../images/prettyPhoto/light_square/sprite.png) -1px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.light_square .pp_nav .pp_pause { + background: url(../images/prettyPhoto/light_square/sprite.png) -24px -100px + no-repeat; + height: 15px; + width: 14px; +} +div.light_square .pp_arrow_previous { + background: url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; +} +div.light_square .pp_arrow_previous.disabled { + background-position: 0 -87px; + cursor: default; +} +div.light_square .pp_arrow_next { + background: url(../images/prettyPhoto/light_square/sprite.png) -22px -71px + no-repeat; +} +div.light_square .pp_arrow_next.disabled { + background-position: -22px -87px; + cursor: default; +} +div.light_square .pp_next:hover { + background: url(../images/prettyPhoto/light_square/btnNext.png) center right + no-repeat; + cursor: pointer; +} +div.light_square .pp_previous:hover { + background: url(../images/prettyPhoto/light_square/btnPrevious.png) center + left no-repeat; + cursor: pointer; +} +div.light_square .pp_loaderIcon { + background: url(../images/prettyPhoto/light_rounded/loader.gif) center center + no-repeat; +} +div.facebook .pp_top .pp_left { + background: url(../images/prettyPhoto/facebook/sprite.png) -88px -53px + no-repeat; +} +div.facebook .pp_top .pp_middle { + background: url(../images/prettyPhoto/facebook/contentPatternTop.png) top left + repeat-x; +} +div.facebook .pp_top .pp_right { + background: url(../images/prettyPhoto/facebook/sprite.png) -110px -53px + no-repeat; +} +div.facebook .pp_content_container .pp_left { + background: url(../images/prettyPhoto/facebook/contentPatternLeft.png) top + left repeat-y; +} +div.facebook .pp_content_container .pp_right { + background: url(../images/prettyPhoto/facebook/contentPatternRight.png) top + right repeat-y; +} +div.facebook .pp_content { + background: #fff; +} +div.facebook .pp_expand { + background: url(../images/prettyPhoto/facebook/sprite.png) -31px -26px + no-repeat; + cursor: pointer; +} +div.facebook .pp_expand:hover { + background: url(../images/prettyPhoto/facebook/sprite.png) -31px -47px + no-repeat; + cursor: pointer; +} +div.facebook .pp_contract { + background: url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; + cursor: pointer; +} +div.facebook .pp_contract:hover { + background: url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; + cursor: pointer; +} +div.facebook .pp_close { + width: 22px; + height: 22px; + background: url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; + cursor: pointer; +} +div.facebook .pp_description { + margin: 0 37px 0 0; +} +div.facebook .pp_loaderIcon { + background: url(../images/prettyPhoto/facebook/loader.gif) center center + no-repeat; +} +div.facebook .pp_arrow_previous { + background: url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; + height: 22px; + margin-top: 0; + width: 22px; +} +div.facebook .pp_arrow_previous.disabled { + background-position: 0 -96px; + cursor: default; +} +div.facebook .pp_arrow_next { + background: url(../images/prettyPhoto/facebook/sprite.png) -32px -71px + no-repeat; + height: 22px; + margin-top: 0; + width: 22px; +} +div.facebook .pp_arrow_next.disabled { + background-position: -32px -96px; + cursor: default; +} +div.facebook .pp_nav { + margin-top: 0; +} +div.facebook .pp_nav p { + font-size: 15px; + padding: 0 3px 0 4px; +} +div.facebook .pp_nav .pp_play { + background: url(../images/prettyPhoto/facebook/sprite.png) -1px -123px + no-repeat; + height: 22px; + width: 22px; +} +div.facebook .pp_nav .pp_pause { + background: url(../images/prettyPhoto/facebook/sprite.png) -32px -123px + no-repeat; + height: 22px; + width: 22px; +} +div.facebook .pp_next:hover { + background: url(../images/prettyPhoto/facebook/btnNext.png) center right + no-repeat; + cursor: pointer; +} +div.facebook .pp_previous:hover { + background: url(../images/prettyPhoto/facebook/btnPrevious.png) center left + no-repeat; + cursor: pointer; +} +div.facebook .pp_bottom .pp_left { + background: url(../images/prettyPhoto/facebook/sprite.png) -88px -80px + no-repeat; +} +div.facebook .pp_bottom .pp_middle { + background: url(../images/prettyPhoto/facebook/contentPatternBottom.png) top + left repeat-x; +} +div.facebook .pp_bottom .pp_right { + background: url(../images/prettyPhoto/facebook/sprite.png) -110px -80px + no-repeat; +} +div.pp_pic_holder a:focus { + outline: 0; +} +div.pp_overlay { + background: #000; + display: none; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 9500; +} +div.pp_pic_holder { + display: none; + position: absolute; + width: 100px; + z-index: 10000; +} +.pp_top { + height: 20px; + position: relative; +} +* html .pp_top { + padding: 0 20px; +} +.pp_top .pp_left { + height: 20px; + left: 0; + position: absolute; + width: 20px; +} +.pp_top .pp_middle { + height: 20px; + left: 20px; + position: absolute; + right: 20px; +} +* html .pp_top .pp_middle { + left: 0; + position: static; +} +.pp_top .pp_right { + height: 20px; + left: auto; + position: absolute; + right: 0; + top: 0; + width: 20px; +} +.pp_content { + height: 40px; + min-width: 40px; +} +* html .pp_content { + width: 40px; +} +.pp_fade { + display: none; +} +.pp_content_container { + position: relative; + text-align: left; + width: 100%; +} +.pp_content_container .pp_left { + padding-left: 20px; +} +.pp_content_container .pp_right { + padding-right: 20px; +} +.pp_content_container .pp_details { + float: left; + margin: 10px 0 2px; +} +.pp_description { + display: none; + margin: 0; +} +.pp_social { + float: left; + margin: 0; +} +.pp_social .facebook { + margin-left: 5px; + width: 55px; +} +.pp_social .twitter { + float: left; +} +.pp_nav { + clear: right; + float: left; + margin: 3px 10px 0 0; +} +.pp_nav p { + float: left; + margin: 2px 4px; + white-space: nowrap; +} +.pp_nav .pp_pause, +.pp_nav .pp_play { + float: left; + margin-right: 4px; + text-indent: -10000px; +} +a.pp_arrow_next, +a.pp_arrow_previous { + display: block; + float: left; + height: 15px; + margin-top: 3px; + overflow: hidden; + text-indent: -10000px; + width: 14px; +} +.pp_hoverContainer { + position: absolute; + top: 0; + width: 100%; + z-index: 2000; +} +.pp_gallery { + display: none; + left: 50%; + margin-top: -50px; + position: absolute; + z-index: 10000; +} +.pp_gallery div { + position: relative; +} +.pp_gallery ul { + float: left; + height: 35px; + margin: 0 0 0 5px; + padding: 0; + position: relative; + white-space: nowrap; +} +.pp_gallery ul a { + border: 1px solid #000; + border: 1px solid rgba(0, 0, 0, 0.5); + display: block; + height: 33px; +} +.pp_gallery li.selected a, +.pp_gallery ul a:hover { + border-color: #fff; +} +.pp_gallery ul a img { + border: 0; +} +.pp_gallery li { + display: block; + float: left; + margin: 0 5px 0 0; + padding: 0; +} +.pp_gallery li.default a { + background: url(../images/prettyPhoto/facebook/default_thumbnail.gif) + no-repeat; + display: block; + height: 33px; + width: 50px; +} +.pp_gallery li.default a img { + display: none; +} +a.pp_next, +a.pp_previous { + background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px + 10000px no-repeat; + display: block; + height: 100%; + width: 49%; + text-indent: -10000px; +} +.pp_gallery .pp_arrow_next, +.pp_gallery .pp_arrow_previous { + margin-top: 7px !important; +} +a.pp_next { + float: right; +} +a.pp_previous { + float: left; +} +a.pp_contract, +a.pp_expand { + cursor: pointer; + display: none; + height: 20px; + position: absolute; + right: 30px; + text-indent: -10000px; + top: 10px; + width: 20px; + z-index: 20000; +} +a.pp_close { + position: absolute; + right: 0; + top: 0; + display: block; + line-height: 22px; + text-indent: -10000px; +} +.pp_bottom { + height: 20px; + position: relative; +} +* html .pp_bottom { + padding: 0 20px; +} +.pp_bottom .pp_left { + height: 20px; + left: 0; + position: absolute; + width: 20px; +} +.pp_bottom .pp_middle { + height: 20px; + left: 20px; + position: absolute; + right: 20px; +} +* html .pp_bottom .pp_middle { + left: 0; + position: static; +} +.pp_bottom .pp_right { + height: 20px; + left: auto; + position: absolute; + right: 0; + top: 0; + width: 20px; +} +.pp_loaderIcon { + display: block; + height: 24px; + left: 50%; + margin: -12px 0 0 -12px; + position: absolute; + top: 50%; + width: 24px; +} +#pp_full_res { + line-height: 1 !important; +} +#pp_full_res .pp_inline { + text-align: left; +} +#pp_full_res .pp_inline p { + margin: 0 0 15px; +} +div.ppt { + color: #fff; + display: none; + font-size: 17px; + margin: 0 0 5px 15px; + z-index: 9999; +} diff --git a/public/fonts/elegant-theme-line.eot b/public/fonts/elegant-theme-line.eot new file mode 100644 index 0000000..bf6c580 Binary files /dev/null and b/public/fonts/elegant-theme-line.eot differ diff --git a/public/fonts/elegant-theme-line.svg b/public/fonts/elegant-theme-line.svg new file mode 100644 index 0000000..2d1be92 --- /dev/null +++ b/public/fonts/elegant-theme-line.svg @@ -0,0 +1,110 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/elegant-theme-line.ttf b/public/fonts/elegant-theme-line.ttf new file mode 100644 index 0000000..b3b738e Binary files /dev/null and b/public/fonts/elegant-theme-line.ttf differ diff --git a/public/fonts/elegant-theme-line.woff b/public/fonts/elegant-theme-line.woff new file mode 100644 index 0000000..1e4de29 Binary files /dev/null and b/public/fonts/elegant-theme-line.woff differ diff --git a/public/fonts/flexslider-icon.eot b/public/fonts/flexslider-icon.eot new file mode 100644 index 0000000..97c4196 Binary files /dev/null and b/public/fonts/flexslider-icon.eot differ diff --git a/public/fonts/flexslider-icon.svg b/public/fonts/flexslider-icon.svg new file mode 100644 index 0000000..89fd1ab --- /dev/null +++ b/public/fonts/flexslider-icon.svg @@ -0,0 +1,19 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/flexslider-icon.ttf b/public/fonts/flexslider-icon.ttf new file mode 100644 index 0000000..0543298 Binary files /dev/null and b/public/fonts/flexslider-icon.ttf differ diff --git a/public/fonts/flexslider-icon.woff b/public/fonts/flexslider-icon.woff new file mode 100644 index 0000000..10c4eeb Binary files /dev/null and b/public/fonts/flexslider-icon.woff differ diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..b93a495 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.eot differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..94fb549 --- /dev/null +++ b/public/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..1413fc6 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.ttf differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..9e61285 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff differ diff --git a/public/fonts/glyphicons-halflings-regular.woff2 b/public/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000..64539b5 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/public/js/api/main.js b/public/js/api/main.js new file mode 100644 index 0000000..798d7fa --- /dev/null +++ b/public/js/api/main.js @@ -0,0 +1,132 @@ +/** + * Utility function to calculate the current theme setting. + * Look for a local storage value. + * Fall back to system setting. + * Fall back to light mode. + */ +function calculateSettingAsThemeString({ + localStorageTheme, + systemSettingDark, +}) { + if (localStorageTheme !== null) { + return localStorageTheme; + } + + if (systemSettingDark.matches) { + return "dark"; + } + + return "light"; +} + +/** + * Utility function to update the button text and aria-label. + */ +function updateButton({ buttonEl, isDark }) { + const newCta = isDark ? "Terang" : "Gelap"; + // use an aria-label if you are omitting text on the button + // and using a sun/moon icon, for example + buttonEl.innerText = newCta; +} + +/** + * Utility function to update the theme setting on the html tag + */ +function updateThemeOnHtmlEl({ theme }) { + document.querySelector("html").setAttribute("data-theme", theme); +} + +/** + * On page load: + */ + +/** + * 1. Grab what we need from the DOM and system settings on page load + */ +const button = document.querySelector(".theme-toggle"); +const localStorageTheme = localStorage.getItem("theme"); +const systemSettingDark = window.matchMedia("(prefers-color-scheme: dark)"); + +/** + * 2. Work out the current site settings + */ +let currentThemeSetting = calculateSettingAsThemeString({ + localStorageTheme, + systemSettingDark, +}); + +/** + * 3. Update the theme setting and button text accoridng to current settings + */ +updateButton({ + buttonEl: button, + isDark: currentThemeSetting === "dark", +}); +updateThemeOnHtmlEl({ theme: currentThemeSetting }); + +/** + * 4. Add an event listener to toggle the theme + */ +function changeTheme() { + const newTheme = currentThemeSetting === "dark" ? "light" : "dark"; + + localStorage.setItem("theme", newTheme); + updateButton({ + buttonEl: button, + isDark: newTheme === "dark", + }); + updateThemeOnHtmlEl({ theme: newTheme }); + + currentThemeSetting = newTheme; +} + +$(document).ready(function () { + // Header Scroll + $(window).on("scroll", function () { + var scroll = $(window).scrollTop(); + + if (scroll >= 50) { + $("#header").addClass("fixed"); + } else { + $("#header").removeClass("fixed"); + } + }); + + // Page Scroll + var sections = $("section"); + nav = $('nav[role="navigation"]'); + + $(window).on("scroll", function () { + var cur_pos = $(this).scrollTop(); + sections.each(function () { + var top = $(this).offset().top - 276; + bottom = top + $(this).outerHeight(); + if (cur_pos >= top && cur_pos <= bottom) { + nav.find("a").removeClass("active"); + nav.find('a[href="#' + $(this).attr("id") + '"]').addClass("active"); + } + }); + }); + nav.find("a").on("click", function () { + var $el = $(this); + id = $el.attr("href"); + $("html, body").animate( + { + scrollTop: $(id).offset().top - 75, + }, + 500 + ); + return false; + }); + + // Mobile Navigation + $(".nav-toggle").on("click", function () { + $(this).toggleClass("close-nav"); + nav.toggleClass("open"); + return false; + }); + nav.find("a").on("click", function () { + $(".nav-toggle").toggleClass("close-nav"); + nav.toggleClass("open"); + }); +}); diff --git a/public/js/bootstrap.min.js b/public/js/bootstrap.min.js new file mode 100644 index 0000000..716e7aa --- /dev/null +++ b/public/js/bootstrap.min.js @@ -0,0 +1,1697 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under the MIT license + */ +if ("undefined" == typeof jQuery) + throw new Error("Bootstrap's JavaScript requires jQuery"); ++(function (a) { + "use strict"; + var b = a.fn.jquery.split(" ")[0].split("."); + if ((b[0] < 2 && b[1] < 9) || (1 == b[0] && 9 == b[1] && b[2] < 1)) + throw new Error( + "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher" + ); +})(jQuery), + +(function (a) { + "use strict"; + function b() { + var a = document.createElement("bootstrap"), + b = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend", + }; + for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; + return !1; + } + (a.fn.emulateTransitionEnd = function (b) { + var c = !1, + d = this; + a(this).one("bsTransitionEnd", function () { + c = !0; + }); + var e = function () { + c || a(d).trigger(a.support.transition.end); + }; + return setTimeout(e, b), this; + }), + a(function () { + (a.support.transition = b()), + a.support.transition && + (a.event.special.bsTransitionEnd = { + bindType: a.support.transition.end, + delegateType: a.support.transition.end, + handle: function (b) { + return a(b.target).is(this) + ? b.handleObj.handler.apply(this, arguments) + : void 0; + }, + }); + }); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.alert"); + e || c.data("bs.alert", (e = new d(this))), + "string" == typeof b && e[b].call(c); + }); + } + var c = '[data-dismiss="alert"]', + d = function (b) { + a(b).on("click", c, this.close); + }; + (d.VERSION = "3.3.5"), + (d.TRANSITION_DURATION = 150), + (d.prototype.close = function (b) { + function c() { + g.detach().trigger("closed.bs.alert").remove(); + } + var e = a(this), + f = e.attr("data-target"); + f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, ""))); + var g = a(f); + b && b.preventDefault(), + g.length || (g = e.closest(".alert")), + g.trigger((b = a.Event("close.bs.alert"))), + b.isDefaultPrevented() || + (g.removeClass("in"), + a.support.transition && g.hasClass("fade") + ? g + .one("bsTransitionEnd", c) + .emulateTransitionEnd(d.TRANSITION_DURATION) + : c()); + }); + var e = a.fn.alert; + (a.fn.alert = b), + (a.fn.alert.Constructor = d), + (a.fn.alert.noConflict = function () { + return (a.fn.alert = e), this; + }), + a(document).on("click.bs.alert.data-api", c, d.prototype.close); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.button"), + f = "object" == typeof b && b; + e || d.data("bs.button", (e = new c(this, f))), + "toggle" == b ? e.toggle() : b && e.setState(b); + }); + } + var c = function (b, d) { + (this.$element = a(b)), + (this.options = a.extend({}, c.DEFAULTS, d)), + (this.isLoading = !1); + }; + (c.VERSION = "3.3.5"), + (c.DEFAULTS = { loadingText: "loading..." }), + (c.prototype.setState = function (b) { + var c = "disabled", + d = this.$element, + e = d.is("input") ? "val" : "html", + f = d.data(); + (b += "Text"), + null == f.resetText && d.data("resetText", d[e]()), + setTimeout( + a.proxy(function () { + d[e](null == f[b] ? this.options[b] : f[b]), + "loadingText" == b + ? ((this.isLoading = !0), d.addClass(c).attr(c, c)) + : this.isLoading && + ((this.isLoading = !1), d.removeClass(c).removeAttr(c)); + }, this), + 0 + ); + }), + (c.prototype.toggle = function () { + var a = !0, + b = this.$element.closest('[data-toggle="buttons"]'); + if (b.length) { + var c = this.$element.find("input"); + "radio" == c.prop("type") + ? (c.prop("checked") && (a = !1), + b.find(".active").removeClass("active"), + this.$element.addClass("active")) + : "checkbox" == c.prop("type") && + (c.prop("checked") !== this.$element.hasClass("active") && + (a = !1), + this.$element.toggleClass("active")), + c.prop("checked", this.$element.hasClass("active")), + a && c.trigger("change"); + } else + this.$element.attr("aria-pressed", !this.$element.hasClass("active")), + this.$element.toggleClass("active"); + }); + var d = a.fn.button; + (a.fn.button = b), + (a.fn.button.Constructor = c), + (a.fn.button.noConflict = function () { + return (a.fn.button = d), this; + }), + a(document) + .on( + "click.bs.button.data-api", + '[data-toggle^="button"]', + function (c) { + var d = a(c.target); + d.hasClass("btn") || (d = d.closest(".btn")), + b.call(d, "toggle"), + a(c.target).is('input[type="radio"]') || + a(c.target).is('input[type="checkbox"]') || + c.preventDefault(); + } + ) + .on( + "focus.bs.button.data-api blur.bs.button.data-api", + '[data-toggle^="button"]', + function (b) { + a(b.target) + .closest(".btn") + .toggleClass("focus", /^focus(in)?$/.test(b.type)); + } + ); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.carousel"), + f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), + g = "string" == typeof b ? b : f.slide; + e || d.data("bs.carousel", (e = new c(this, f))), + "number" == typeof b + ? e.to(b) + : g + ? e[g]() + : f.interval && e.pause().cycle(); + }); + } + var c = function (b, c) { + (this.$element = a(b)), + (this.$indicators = this.$element.find(".carousel-indicators")), + (this.options = c), + (this.paused = null), + (this.sliding = null), + (this.interval = null), + (this.$active = null), + (this.$items = null), + this.options.keyboard && + this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), + "hover" == this.options.pause && + !("ontouchstart" in document.documentElement) && + this.$element + .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) + .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)); + }; + (c.VERSION = "3.3.5"), + (c.TRANSITION_DURATION = 600), + (c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }), + (c.prototype.keydown = function (a) { + if (!/input|textarea/i.test(a.target.tagName)) { + switch (a.which) { + case 37: + this.prev(); + break; + case 39: + this.next(); + break; + default: + return; + } + a.preventDefault(); + } + }), + (c.prototype.cycle = function (b) { + return ( + b || (this.paused = !1), + this.interval && clearInterval(this.interval), + this.options.interval && + !this.paused && + (this.interval = setInterval( + a.proxy(this.next, this), + this.options.interval + )), + this + ); + }), + (c.prototype.getItemIndex = function (a) { + return ( + (this.$items = a.parent().children(".item")), + this.$items.index(a || this.$active) + ); + }), + (c.prototype.getItemForDirection = function (a, b) { + var c = this.getItemIndex(b), + d = + ("prev" == a && 0 === c) || + ("next" == a && c == this.$items.length - 1); + if (d && !this.options.wrap) return b; + var e = "prev" == a ? -1 : 1, + f = (c + e) % this.$items.length; + return this.$items.eq(f); + }), + (c.prototype.to = function (a) { + var b = this, + c = this.getItemIndex( + (this.$active = this.$element.find(".item.active")) + ); + return a > this.$items.length - 1 || 0 > a + ? void 0 + : this.sliding + ? this.$element.one("slid.bs.carousel", function () { + b.to(a); + }) + : c == a + ? this.pause().cycle() + : this.slide(a > c ? "next" : "prev", this.$items.eq(a)); + }), + (c.prototype.pause = function (b) { + return ( + b || (this.paused = !0), + this.$element.find(".next, .prev").length && + a.support.transition && + (this.$element.trigger(a.support.transition.end), this.cycle(!0)), + (this.interval = clearInterval(this.interval)), + this + ); + }), + (c.prototype.next = function () { + return this.sliding ? void 0 : this.slide("next"); + }), + (c.prototype.prev = function () { + return this.sliding ? void 0 : this.slide("prev"); + }), + (c.prototype.slide = function (b, d) { + var e = this.$element.find(".item.active"), + f = d || this.getItemForDirection(b, e), + g = this.interval, + h = "next" == b ? "left" : "right", + i = this; + if (f.hasClass("active")) return (this.sliding = !1); + var j = f[0], + k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); + if ((this.$element.trigger(k), !k.isDefaultPrevented())) { + if ( + ((this.sliding = !0), g && this.pause(), this.$indicators.length) + ) { + this.$indicators.find(".active").removeClass("active"); + var l = a(this.$indicators.children()[this.getItemIndex(f)]); + l && l.addClass("active"); + } + var m = a.Event("slid.bs.carousel", { + relatedTarget: j, + direction: h, + }); + return ( + a.support.transition && this.$element.hasClass("slide") + ? (f.addClass(b), + f[0].offsetWidth, + e.addClass(h), + f.addClass(h), + e + .one("bsTransitionEnd", function () { + f.removeClass([b, h].join(" ")).addClass("active"), + e.removeClass(["active", h].join(" ")), + (i.sliding = !1), + setTimeout(function () { + i.$element.trigger(m); + }, 0); + }) + .emulateTransitionEnd(c.TRANSITION_DURATION)) + : (e.removeClass("active"), + f.addClass("active"), + (this.sliding = !1), + this.$element.trigger(m)), + g && this.cycle(), + this + ); + } + }); + var d = a.fn.carousel; + (a.fn.carousel = b), + (a.fn.carousel.Constructor = c), + (a.fn.carousel.noConflict = function () { + return (a.fn.carousel = d), this; + }); + var e = function (c) { + var d, + e = a(this), + f = a( + e.attr("data-target") || + ((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")) + ); + if (f.hasClass("carousel")) { + var g = a.extend({}, f.data(), e.data()), + h = e.attr("data-slide-to"); + h && (g.interval = !1), + b.call(f, g), + h && f.data("bs.carousel").to(h), + c.preventDefault(); + } + }; + a(document) + .on("click.bs.carousel.data-api", "[data-slide]", e) + .on("click.bs.carousel.data-api", "[data-slide-to]", e), + a(window).on("load", function () { + a('[data-ride="carousel"]').each(function () { + var c = a(this); + b.call(c, c.data()); + }); + }); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + var c, + d = + b.attr("data-target") || + ((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")); + return a(d); + } + function c(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.collapse"), + f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); + !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), + e || c.data("bs.collapse", (e = new d(this, f))), + "string" == typeof b && e[b](); + }); + } + var d = function (b, c) { + (this.$element = a(b)), + (this.options = a.extend({}, d.DEFAULTS, c)), + (this.$trigger = a( + '[data-toggle="collapse"][href="#' + + b.id + + '"],[data-toggle="collapse"][data-target="#' + + b.id + + '"]' + )), + (this.transitioning = null), + this.options.parent + ? (this.$parent = this.getParent()) + : this.addAriaAndCollapsedClass(this.$element, this.$trigger), + this.options.toggle && this.toggle(); + }; + (d.VERSION = "3.3.5"), + (d.TRANSITION_DURATION = 350), + (d.DEFAULTS = { toggle: !0 }), + (d.prototype.dimension = function () { + var a = this.$element.hasClass("width"); + return a ? "width" : "height"; + }), + (d.prototype.show = function () { + if (!this.transitioning && !this.$element.hasClass("in")) { + var b, + e = + this.$parent && + this.$parent.children(".panel").children(".in, .collapsing"); + if ( + !( + e && + e.length && + ((b = e.data("bs.collapse")), b && b.transitioning) + ) + ) { + var f = a.Event("show.bs.collapse"); + if ((this.$element.trigger(f), !f.isDefaultPrevented())) { + e && + e.length && + (c.call(e, "hide"), b || e.data("bs.collapse", null)); + var g = this.dimension(); + this.$element + .removeClass("collapse") + .addClass("collapsing") + [g](0) + .attr("aria-expanded", !0), + this.$trigger + .removeClass("collapsed") + .attr("aria-expanded", !0), + (this.transitioning = 1); + var h = function () { + this.$element + .removeClass("collapsing") + .addClass("collapse in") + [g](""), + (this.transitioning = 0), + this.$element.trigger("shown.bs.collapse"); + }; + if (!a.support.transition) return h.call(this); + var i = a.camelCase(["scroll", g].join("-")); + this.$element + .one("bsTransitionEnd", a.proxy(h, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + [g](this.$element[0][i]); + } + } + } + }), + (d.prototype.hide = function () { + if (!this.transitioning && this.$element.hasClass("in")) { + var b = a.Event("hide.bs.collapse"); + if ((this.$element.trigger(b), !b.isDefaultPrevented())) { + var c = this.dimension(); + this.$element[c](this.$element[c]())[0].offsetHeight, + this.$element + .addClass("collapsing") + .removeClass("collapse in") + .attr("aria-expanded", !1), + this.$trigger.addClass("collapsed").attr("aria-expanded", !1), + (this.transitioning = 1); + var e = function () { + (this.transitioning = 0), + this.$element + .removeClass("collapsing") + .addClass("collapse") + .trigger("hidden.bs.collapse"); + }; + return a.support.transition + ? void this.$element[c](0) + .one("bsTransitionEnd", a.proxy(e, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + : e.call(this); + } + } + }), + (d.prototype.toggle = function () { + this[this.$element.hasClass("in") ? "hide" : "show"](); + }), + (d.prototype.getParent = function () { + return a(this.options.parent) + .find( + '[data-toggle="collapse"][data-parent="' + + this.options.parent + + '"]' + ) + .each( + a.proxy(function (c, d) { + var e = a(d); + this.addAriaAndCollapsedClass(b(e), e); + }, this) + ) + .end(); + }), + (d.prototype.addAriaAndCollapsedClass = function (a, b) { + var c = a.hasClass("in"); + a.attr("aria-expanded", c), + b.toggleClass("collapsed", !c).attr("aria-expanded", c); + }); + var e = a.fn.collapse; + (a.fn.collapse = c), + (a.fn.collapse.Constructor = d), + (a.fn.collapse.noConflict = function () { + return (a.fn.collapse = e), this; + }), + a(document).on( + "click.bs.collapse.data-api", + '[data-toggle="collapse"]', + function (d) { + var e = a(this); + e.attr("data-target") || d.preventDefault(); + var f = b(e), + g = f.data("bs.collapse"), + h = g ? "toggle" : e.data(); + c.call(f, h); + } + ); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + var c = b.attr("data-target"); + c || + ((c = b.attr("href")), + (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""))); + var d = c && a(c); + return d && d.length ? d : b.parent(); + } + function c(c) { + (c && 3 === c.which) || + (a(e).remove(), + a(f).each(function () { + var d = a(this), + e = b(d), + f = { relatedTarget: this }; + e.hasClass("open") && + ((c && + "click" == c.type && + /input|textarea/i.test(c.target.tagName) && + a.contains(e[0], c.target)) || + (e.trigger((c = a.Event("hide.bs.dropdown", f))), + c.isDefaultPrevented() || + (d.attr("aria-expanded", "false"), + e.removeClass("open").trigger("hidden.bs.dropdown", f)))); + })); + } + function d(b) { + return this.each(function () { + var c = a(this), + d = c.data("bs.dropdown"); + d || c.data("bs.dropdown", (d = new g(this))), + "string" == typeof b && d[b].call(c); + }); + } + var e = ".dropdown-backdrop", + f = '[data-toggle="dropdown"]', + g = function (b) { + a(b).on("click.bs.dropdown", this.toggle); + }; + (g.VERSION = "3.3.5"), + (g.prototype.toggle = function (d) { + var e = a(this); + if (!e.is(".disabled, :disabled")) { + var f = b(e), + g = f.hasClass("open"); + if ((c(), !g)) { + "ontouchstart" in document.documentElement && + !f.closest(".navbar-nav").length && + a(document.createElement("div")) + .addClass("dropdown-backdrop") + .insertAfter(a(this)) + .on("click", c); + var h = { relatedTarget: this }; + if ( + (f.trigger((d = a.Event("show.bs.dropdown", h))), + d.isDefaultPrevented()) + ) + return; + e.trigger("focus").attr("aria-expanded", "true"), + f.toggleClass("open").trigger("shown.bs.dropdown", h); + } + return !1; + } + }), + (g.prototype.keydown = function (c) { + if ( + /(38|40|27|32)/.test(c.which) && + !/input|textarea/i.test(c.target.tagName) + ) { + var d = a(this); + if ( + (c.preventDefault(), + c.stopPropagation(), + !d.is(".disabled, :disabled")) + ) { + var e = b(d), + g = e.hasClass("open"); + if ((!g && 27 != c.which) || (g && 27 == c.which)) + return ( + 27 == c.which && e.find(f).trigger("focus"), d.trigger("click") + ); + var h = " li:not(.disabled):visible a", + i = e.find(".dropdown-menu" + h); + if (i.length) { + var j = i.index(c.target); + 38 == c.which && j > 0 && j--, + 40 == c.which && j < i.length - 1 && j++, + ~j || (j = 0), + i.eq(j).trigger("focus"); + } + } + } + }); + var h = a.fn.dropdown; + (a.fn.dropdown = d), + (a.fn.dropdown.Constructor = g), + (a.fn.dropdown.noConflict = function () { + return (a.fn.dropdown = h), this; + }), + a(document) + .on("click.bs.dropdown.data-api", c) + .on("click.bs.dropdown.data-api", ".dropdown form", function (a) { + a.stopPropagation(); + }) + .on("click.bs.dropdown.data-api", f, g.prototype.toggle) + .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) + .on( + "keydown.bs.dropdown.data-api", + ".dropdown-menu", + g.prototype.keydown + ); + })(jQuery), + +(function (a) { + "use strict"; + function b(b, d) { + return this.each(function () { + var e = a(this), + f = e.data("bs.modal"), + g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); + f || e.data("bs.modal", (f = new c(this, g))), + "string" == typeof b ? f[b](d) : g.show && f.show(d); + }); + } + var c = function (b, c) { + (this.options = c), + (this.$body = a(document.body)), + (this.$element = a(b)), + (this.$dialog = this.$element.find(".modal-dialog")), + (this.$backdrop = null), + (this.isShown = null), + (this.originalBodyPad = null), + (this.scrollbarWidth = 0), + (this.ignoreBackdropClick = !1), + this.options.remote && + this.$element.find(".modal-content").load( + this.options.remote, + a.proxy(function () { + this.$element.trigger("loaded.bs.modal"); + }, this) + ); + }; + (c.VERSION = "3.3.5"), + (c.TRANSITION_DURATION = 300), + (c.BACKDROP_TRANSITION_DURATION = 150), + (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }), + (c.prototype.toggle = function (a) { + return this.isShown ? this.hide() : this.show(a); + }), + (c.prototype.show = function (b) { + var d = this, + e = a.Event("show.bs.modal", { relatedTarget: b }); + this.$element.trigger(e), + this.isShown || + e.isDefaultPrevented() || + ((this.isShown = !0), + this.checkScrollbar(), + this.setScrollbar(), + this.$body.addClass("modal-open"), + this.escape(), + this.resize(), + this.$element.on( + "click.dismiss.bs.modal", + '[data-dismiss="modal"]', + a.proxy(this.hide, this) + ), + this.$dialog.on("mousedown.dismiss.bs.modal", function () { + d.$element.one("mouseup.dismiss.bs.modal", function (b) { + a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0); + }); + }), + this.backdrop(function () { + var e = a.support.transition && d.$element.hasClass("fade"); + d.$element.parent().length || d.$element.appendTo(d.$body), + d.$element.show().scrollTop(0), + d.adjustDialog(), + e && d.$element[0].offsetWidth, + d.$element.addClass("in"), + d.enforceFocus(); + var f = a.Event("shown.bs.modal", { relatedTarget: b }); + e + ? d.$dialog + .one("bsTransitionEnd", function () { + d.$element.trigger("focus").trigger(f); + }) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : d.$element.trigger("focus").trigger(f); + })); + }), + (c.prototype.hide = function (b) { + b && b.preventDefault(), + (b = a.Event("hide.bs.modal")), + this.$element.trigger(b), + this.isShown && + !b.isDefaultPrevented() && + ((this.isShown = !1), + this.escape(), + this.resize(), + a(document).off("focusin.bs.modal"), + this.$element + .removeClass("in") + .off("click.dismiss.bs.modal") + .off("mouseup.dismiss.bs.modal"), + this.$dialog.off("mousedown.dismiss.bs.modal"), + a.support.transition && this.$element.hasClass("fade") + ? this.$element + .one("bsTransitionEnd", a.proxy(this.hideModal, this)) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : this.hideModal()); + }), + (c.prototype.enforceFocus = function () { + a(document) + .off("focusin.bs.modal") + .on( + "focusin.bs.modal", + a.proxy(function (a) { + this.$element[0] === a.target || + this.$element.has(a.target).length || + this.$element.trigger("focus"); + }, this) + ); + }), + (c.prototype.escape = function () { + this.isShown && this.options.keyboard + ? this.$element.on( + "keydown.dismiss.bs.modal", + a.proxy(function (a) { + 27 == a.which && this.hide(); + }, this) + ) + : this.isShown || this.$element.off("keydown.dismiss.bs.modal"); + }), + (c.prototype.resize = function () { + this.isShown + ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) + : a(window).off("resize.bs.modal"); + }), + (c.prototype.hideModal = function () { + var a = this; + this.$element.hide(), + this.backdrop(function () { + a.$body.removeClass("modal-open"), + a.resetAdjustments(), + a.resetScrollbar(), + a.$element.trigger("hidden.bs.modal"); + }); + }), + (c.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null); + }), + (c.prototype.backdrop = function (b) { + var d = this, + e = this.$element.hasClass("fade") ? "fade" : ""; + if (this.isShown && this.options.backdrop) { + var f = a.support.transition && e; + if ( + ((this.$backdrop = a(document.createElement("div")) + .addClass("modal-backdrop " + e) + .appendTo(this.$body)), + this.$element.on( + "click.dismiss.bs.modal", + a.proxy(function (a) { + return this.ignoreBackdropClick + ? void (this.ignoreBackdropClick = !1) + : void ( + a.target === a.currentTarget && + ("static" == this.options.backdrop + ? this.$element[0].focus() + : this.hide()) + ); + }, this) + ), + f && this.$backdrop[0].offsetWidth, + this.$backdrop.addClass("in"), + !b) + ) + return; + f + ? this.$backdrop + .one("bsTransitionEnd", b) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : b(); + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass("in"); + var g = function () { + d.removeBackdrop(), b && b(); + }; + a.support.transition && this.$element.hasClass("fade") + ? this.$backdrop + .one("bsTransitionEnd", g) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : g(); + } else b && b(); + }), + (c.prototype.handleUpdate = function () { + this.adjustDialog(); + }), + (c.prototype.adjustDialog = function () { + var a = + this.$element[0].scrollHeight > document.documentElement.clientHeight; + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", + paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "", + }); + }), + (c.prototype.resetAdjustments = function () { + this.$element.css({ paddingLeft: "", paddingRight: "" }); + }), + (c.prototype.checkScrollbar = function () { + var a = window.innerWidth; + if (!a) { + var b = document.documentElement.getBoundingClientRect(); + a = b.right - Math.abs(b.left); + } + (this.bodyIsOverflowing = document.body.clientWidth < a), + (this.scrollbarWidth = this.measureScrollbar()); + }), + (c.prototype.setScrollbar = function () { + var a = parseInt(this.$body.css("padding-right") || 0, 10); + (this.originalBodyPad = document.body.style.paddingRight || ""), + this.bodyIsOverflowing && + this.$body.css("padding-right", a + this.scrollbarWidth); + }), + (c.prototype.resetScrollbar = function () { + this.$body.css("padding-right", this.originalBodyPad); + }), + (c.prototype.measureScrollbar = function () { + var a = document.createElement("div"); + (a.className = "modal-scrollbar-measure"), this.$body.append(a); + var b = a.offsetWidth - a.clientWidth; + return this.$body[0].removeChild(a), b; + }); + var d = a.fn.modal; + (a.fn.modal = b), + (a.fn.modal.Constructor = c), + (a.fn.modal.noConflict = function () { + return (a.fn.modal = d), this; + }), + a(document).on( + "click.bs.modal.data-api", + '[data-toggle="modal"]', + function (c) { + var d = a(this), + e = d.attr("href"), + f = a( + d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, "")) + ), + g = f.data("bs.modal") + ? "toggle" + : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); + d.is("a") && c.preventDefault(), + f.one("show.bs.modal", function (a) { + a.isDefaultPrevented() || + f.one("hidden.bs.modal", function () { + d.is(":visible") && d.trigger("focus"); + }); + }), + b.call(f, g, this); + } + ); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tooltip"), + f = "object" == typeof b && b; + (e || !/destroy|hide/.test(b)) && + (e || d.data("bs.tooltip", (e = new c(this, f))), + "string" == typeof b && e[b]()); + }); + } + var c = function (a, b) { + (this.type = null), + (this.options = null), + (this.enabled = null), + (this.timeout = null), + (this.hoverState = null), + (this.$element = null), + (this.inState = null), + this.init("tooltip", a, b); + }; + (c.VERSION = "3.3.5"), + (c.TRANSITION_DURATION = 150), + (c.DEFAULTS = { + animation: !0, + placement: "top", + selector: !1, + template: + '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + viewport: { selector: "body", padding: 0 }, + }), + (c.prototype.init = function (b, c, d) { + if ( + ((this.enabled = !0), + (this.type = b), + (this.$element = a(c)), + (this.options = this.getOptions(d)), + (this.$viewport = + this.options.viewport && + a( + a.isFunction(this.options.viewport) + ? this.options.viewport.call(this, this.$element) + : this.options.viewport.selector || this.options.viewport + )), + (this.inState = { click: !1, hover: !1, focus: !1 }), + this.$element[0] instanceof document.constructor && + !this.options.selector) + ) + throw new Error( + "`selector` option must be specified when initializing " + + this.type + + " on the window.document object!" + ); + for (var e = this.options.trigger.split(" "), f = e.length; f--; ) { + var g = e[f]; + if ("click" == g) + this.$element.on( + "click." + this.type, + this.options.selector, + a.proxy(this.toggle, this) + ); + else if ("manual" != g) { + var h = "hover" == g ? "mouseenter" : "focusin", + i = "hover" == g ? "mouseleave" : "focusout"; + this.$element.on( + h + "." + this.type, + this.options.selector, + a.proxy(this.enter, this) + ), + this.$element.on( + i + "." + this.type, + this.options.selector, + a.proxy(this.leave, this) + ); + } + } + this.options.selector + ? (this._options = a.extend({}, this.options, { + trigger: "manual", + selector: "", + })) + : this.fixTitle(); + }), + (c.prototype.getDefaults = function () { + return c.DEFAULTS; + }), + (c.prototype.getOptions = function (b) { + return ( + (b = a.extend({}, this.getDefaults(), this.$element.data(), b)), + b.delay && + "number" == typeof b.delay && + (b.delay = { show: b.delay, hide: b.delay }), + b + ); + }), + (c.prototype.getDelegateOptions = function () { + var b = {}, + c = this.getDefaults(); + return ( + this._options && + a.each(this._options, function (a, d) { + c[a] != d && (b[a] = d); + }), + b + ); + }), + (c.prototype.enter = function (b) { + var c = + b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + return ( + c || + ((c = new this.constructor( + b.currentTarget, + this.getDelegateOptions() + )), + a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && + (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), + c.tip().hasClass("in") || "in" == c.hoverState + ? void (c.hoverState = "in") + : (clearTimeout(c.timeout), + (c.hoverState = "in"), + c.options.delay && c.options.delay.show + ? void (c.timeout = setTimeout(function () { + "in" == c.hoverState && c.show(); + }, c.options.delay.show)) + : c.show()) + ); + }), + (c.prototype.isInStateTrue = function () { + for (var a in this.inState) if (this.inState[a]) return !0; + return !1; + }), + (c.prototype.leave = function (b) { + var c = + b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + return ( + c || + ((c = new this.constructor( + b.currentTarget, + this.getDelegateOptions() + )), + a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && + (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), + c.isInStateTrue() + ? void 0 + : (clearTimeout(c.timeout), + (c.hoverState = "out"), + c.options.delay && c.options.delay.hide + ? void (c.timeout = setTimeout(function () { + "out" == c.hoverState && c.hide(); + }, c.options.delay.hide)) + : c.hide()) + ); + }), + (c.prototype.show = function () { + var b = a.Event("show.bs." + this.type); + if (this.hasContent() && this.enabled) { + this.$element.trigger(b); + var d = a.contains( + this.$element[0].ownerDocument.documentElement, + this.$element[0] + ); + if (b.isDefaultPrevented() || !d) return; + var e = this, + f = this.tip(), + g = this.getUID(this.type); + this.setContent(), + f.attr("id", g), + this.$element.attr("aria-describedby", g), + this.options.animation && f.addClass("fade"); + var h = + "function" == typeof this.options.placement + ? this.options.placement.call(this, f[0], this.$element[0]) + : this.options.placement, + i = /\s?auto?\s?/i, + j = i.test(h); + j && (h = h.replace(i, "") || "top"), + f + .detach() + .css({ top: 0, left: 0, display: "block" }) + .addClass(h) + .data("bs." + this.type, this), + this.options.container + ? f.appendTo(this.options.container) + : f.insertAfter(this.$element), + this.$element.trigger("inserted.bs." + this.type); + var k = this.getPosition(), + l = f[0].offsetWidth, + m = f[0].offsetHeight; + if (j) { + var n = h, + o = this.getPosition(this.$viewport); + (h = + "bottom" == h && k.bottom + m > o.bottom + ? "top" + : "top" == h && k.top - m < o.top + ? "bottom" + : "right" == h && k.right + l > o.width + ? "left" + : "left" == h && k.left - l < o.left + ? "right" + : h), + f.removeClass(n).addClass(h); + } + var p = this.getCalculatedOffset(h, k, l, m); + this.applyPlacement(p, h); + var q = function () { + var a = e.hoverState; + e.$element.trigger("shown.bs." + e.type), + (e.hoverState = null), + "out" == a && e.leave(e); + }; + a.support.transition && this.$tip.hasClass("fade") + ? f + .one("bsTransitionEnd", q) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : q(); + } + }), + (c.prototype.applyPlacement = function (b, c) { + var d = this.tip(), + e = d[0].offsetWidth, + f = d[0].offsetHeight, + g = parseInt(d.css("margin-top"), 10), + h = parseInt(d.css("margin-left"), 10); + isNaN(g) && (g = 0), + isNaN(h) && (h = 0), + (b.top += g), + (b.left += h), + a.offset.setOffset( + d[0], + a.extend( + { + using: function (a) { + d.css({ top: Math.round(a.top), left: Math.round(a.left) }); + }, + }, + b + ), + 0 + ), + d.addClass("in"); + var i = d[0].offsetWidth, + j = d[0].offsetHeight; + "top" == c && j != f && (b.top = b.top + f - j); + var k = this.getViewportAdjustedDelta(c, b, i, j); + k.left ? (b.left += k.left) : (b.top += k.top); + var l = /top|bottom/.test(c), + m = l ? 2 * k.left - e + i : 2 * k.top - f + j, + n = l ? "offsetWidth" : "offsetHeight"; + d.offset(b), this.replaceArrow(m, d[0][n], l); + }), + (c.prototype.replaceArrow = function (a, b, c) { + this.arrow() + .css(c ? "left" : "top", 50 * (1 - a / b) + "%") + .css(c ? "top" : "left", ""); + }), + (c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(); + a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), + a.removeClass("fade in top bottom left right"); + }), + (c.prototype.hide = function (b) { + function d() { + "in" != e.hoverState && f.detach(), + e.$element + .removeAttr("aria-describedby") + .trigger("hidden.bs." + e.type), + b && b(); + } + var e = this, + f = a(this.$tip), + g = a.Event("hide.bs." + this.type); + return ( + this.$element.trigger(g), + g.isDefaultPrevented() + ? void 0 + : (f.removeClass("in"), + a.support.transition && f.hasClass("fade") + ? f + .one("bsTransitionEnd", d) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : d(), + (this.hoverState = null), + this) + ); + }), + (c.prototype.fixTitle = function () { + var a = this.$element; + (a.attr("title") || "string" != typeof a.attr("data-original-title")) && + a + .attr("data-original-title", a.attr("title") || "") + .attr("title", ""); + }), + (c.prototype.hasContent = function () { + return this.getTitle(); + }), + (c.prototype.getPosition = function (b) { + b = b || this.$element; + var c = b[0], + d = "BODY" == c.tagName, + e = c.getBoundingClientRect(); + null == e.width && + (e = a.extend({}, e, { + width: e.right - e.left, + height: e.bottom - e.top, + })); + var f = d ? { top: 0, left: 0 } : b.offset(), + g = { + scroll: d + ? document.documentElement.scrollTop || document.body.scrollTop + : b.scrollTop(), + }, + h = d + ? { width: a(window).width(), height: a(window).height() } + : null; + return a.extend({}, e, g, h, f); + }), + (c.prototype.getCalculatedOffset = function (a, b, c, d) { + return "bottom" == a + ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } + : "top" == a + ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } + : "left" == a + ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } + : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width }; + }), + (c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { + var e = { top: 0, left: 0 }; + if (!this.$viewport) return e; + var f = (this.options.viewport && this.options.viewport.padding) || 0, + g = this.getPosition(this.$viewport); + if (/right|left/.test(a)) { + var h = b.top - f - g.scroll, + i = b.top + f - g.scroll + d; + h < g.top + ? (e.top = g.top - h) + : i > g.top + g.height && (e.top = g.top + g.height - i); + } else { + var j = b.left - f, + k = b.left + f + c; + j < g.left + ? (e.left = g.left - j) + : k > g.right && (e.left = g.left + g.width - k); + } + return e; + }), + (c.prototype.getTitle = function () { + var a, + b = this.$element, + c = this.options; + return (a = + b.attr("data-original-title") || + ("function" == typeof c.title ? c.title.call(b[0]) : c.title)); + }), + (c.prototype.getUID = function (a) { + do a += ~~(1e6 * Math.random()); + while (document.getElementById(a)); + return a; + }), + (c.prototype.tip = function () { + if ( + !this.$tip && + ((this.$tip = a(this.options.template)), 1 != this.$tip.length) + ) + throw new Error( + this.type + + " `template` option must consist of exactly 1 top-level element!" + ); + return this.$tip; + }), + (c.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); + }), + (c.prototype.enable = function () { + this.enabled = !0; + }), + (c.prototype.disable = function () { + this.enabled = !1; + }), + (c.prototype.toggleEnabled = function () { + this.enabled = !this.enabled; + }), + (c.prototype.toggle = function (b) { + var c = this; + b && + ((c = a(b.currentTarget).data("bs." + this.type)), + c || + ((c = new this.constructor( + b.currentTarget, + this.getDelegateOptions() + )), + a(b.currentTarget).data("bs." + this.type, c))), + b + ? ((c.inState.click = !c.inState.click), + c.isInStateTrue() ? c.enter(c) : c.leave(c)) + : c.tip().hasClass("in") + ? c.leave(c) + : c.enter(c); + }), + (c.prototype.destroy = function () { + var a = this; + clearTimeout(this.timeout), + this.hide(function () { + a.$element.off("." + a.type).removeData("bs." + a.type), + a.$tip && a.$tip.detach(), + (a.$tip = null), + (a.$arrow = null), + (a.$viewport = null); + }); + }); + var d = a.fn.tooltip; + (a.fn.tooltip = b), + (a.fn.tooltip.Constructor = c), + (a.fn.tooltip.noConflict = function () { + return (a.fn.tooltip = d), this; + }); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.popover"), + f = "object" == typeof b && b; + (e || !/destroy|hide/.test(b)) && + (e || d.data("bs.popover", (e = new c(this, f))), + "string" == typeof b && e[b]()); + }); + } + var c = function (a, b) { + this.init("popover", a, b); + }; + if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); + (c.VERSION = "3.3.5"), + (c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { + placement: "right", + trigger: "click", + content: "", + template: + '', + })), + (c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)), + (c.prototype.constructor = c), + (c.prototype.getDefaults = function () { + return c.DEFAULTS; + }), + (c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(), + c = this.getContent(); + a.find(".popover-title")[this.options.html ? "html" : "text"](b), + a + .find(".popover-content") + .children() + .detach() + .end() + [ + this.options.html + ? "string" == typeof c + ? "html" + : "append" + : "text" + ](c), + a.removeClass("fade top bottom left right in"), + a.find(".popover-title").html() || a.find(".popover-title").hide(); + }), + (c.prototype.hasContent = function () { + return this.getTitle() || this.getContent(); + }), + (c.prototype.getContent = function () { + var a = this.$element, + b = this.options; + return ( + a.attr("data-content") || + ("function" == typeof b.content ? b.content.call(a[0]) : b.content) + ); + }), + (c.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find(".arrow")); + }); + var d = a.fn.popover; + (a.fn.popover = b), + (a.fn.popover.Constructor = c), + (a.fn.popover.noConflict = function () { + return (a.fn.popover = d), this; + }); + })(jQuery), + +(function (a) { + "use strict"; + function b(c, d) { + (this.$body = a(document.body)), + (this.$scrollElement = a(a(c).is(document.body) ? window : c)), + (this.options = a.extend({}, b.DEFAULTS, d)), + (this.selector = (this.options.target || "") + " .nav li > a"), + (this.offsets = []), + (this.targets = []), + (this.activeTarget = null), + (this.scrollHeight = 0), + this.$scrollElement.on( + "scroll.bs.scrollspy", + a.proxy(this.process, this) + ), + this.refresh(), + this.process(); + } + function c(c) { + return this.each(function () { + var d = a(this), + e = d.data("bs.scrollspy"), + f = "object" == typeof c && c; + e || d.data("bs.scrollspy", (e = new b(this, f))), + "string" == typeof c && e[c](); + }); + } + (b.VERSION = "3.3.5"), + (b.DEFAULTS = { offset: 10 }), + (b.prototype.getScrollHeight = function () { + return ( + this.$scrollElement[0].scrollHeight || + Math.max( + this.$body[0].scrollHeight, + document.documentElement.scrollHeight + ) + ); + }), + (b.prototype.refresh = function () { + var b = this, + c = "offset", + d = 0; + (this.offsets = []), + (this.targets = []), + (this.scrollHeight = this.getScrollHeight()), + a.isWindow(this.$scrollElement[0]) || + ((c = "position"), (d = this.$scrollElement.scrollTop())), + this.$body + .find(this.selector) + .map(function () { + var b = a(this), + e = b.data("target") || b.attr("href"), + f = /^#./.test(e) && a(e); + return ( + (f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) || + null + ); + }) + .sort(function (a, b) { + return a[0] - b[0]; + }) + .each(function () { + b.offsets.push(this[0]), b.targets.push(this[1]); + }); + }), + (b.prototype.process = function () { + var a, + b = this.$scrollElement.scrollTop() + this.options.offset, + c = this.getScrollHeight(), + d = this.options.offset + c - this.$scrollElement.height(), + e = this.offsets, + f = this.targets, + g = this.activeTarget; + if ((this.scrollHeight != c && this.refresh(), b >= d)) + return g != (a = f[f.length - 1]) && this.activate(a); + if (g && b < e[0]) return (this.activeTarget = null), this.clear(); + for (a = e.length; a--; ) + g != f[a] && + b >= e[a] && + (void 0 === e[a + 1] || b < e[a + 1]) && + this.activate(f[a]); + }), + (b.prototype.activate = function (b) { + (this.activeTarget = b), this.clear(); + var c = + this.selector + + '[data-target="' + + b + + '"],' + + this.selector + + '[href="' + + b + + '"]', + d = a(c).parents("li").addClass("active"); + d.parent(".dropdown-menu").length && + (d = d.closest("li.dropdown").addClass("active")), + d.trigger("activate.bs.scrollspy"); + }), + (b.prototype.clear = function () { + a(this.selector) + .parentsUntil(this.options.target, ".active") + .removeClass("active"); + }); + var d = a.fn.scrollspy; + (a.fn.scrollspy = c), + (a.fn.scrollspy.Constructor = b), + (a.fn.scrollspy.noConflict = function () { + return (a.fn.scrollspy = d), this; + }), + a(window).on("load.bs.scrollspy.data-api", function () { + a('[data-spy="scroll"]').each(function () { + var b = a(this); + c.call(b, b.data()); + }); + }); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tab"); + e || d.data("bs.tab", (e = new c(this))), + "string" == typeof b && e[b](); + }); + } + var c = function (b) { + this.element = a(b); + }; + (c.VERSION = "3.3.5"), + (c.TRANSITION_DURATION = 150), + (c.prototype.show = function () { + var b = this.element, + c = b.closest("ul:not(.dropdown-menu)"), + d = b.data("target"); + if ( + (d || + ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))), + !b.parent("li").hasClass("active")) + ) { + var e = c.find(".active:last a"), + f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), + g = a.Event("show.bs.tab", { relatedTarget: e[0] }); + if ( + (e.trigger(f), + b.trigger(g), + !g.isDefaultPrevented() && !f.isDefaultPrevented()) + ) { + var h = a(d); + this.activate(b.closest("li"), c), + this.activate(h, h.parent(), function () { + e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), + b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }); + }); + } + } + }), + (c.prototype.activate = function (b, d, e) { + function f() { + g + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !1), + b + .addClass("active") + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), + b.parent(".dropdown-menu").length && + b + .closest("li.dropdown") + .addClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + e && e(); + } + var g = d.find("> .active"), + h = + e && + a.support.transition && + ((g.length && g.hasClass("fade")) || !!d.find("> .fade").length); + g.length && h + ? g + .one("bsTransitionEnd", f) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : f(), + g.removeClass("in"); + }); + var d = a.fn.tab; + (a.fn.tab = b), + (a.fn.tab.Constructor = c), + (a.fn.tab.noConflict = function () { + return (a.fn.tab = d), this; + }); + var e = function (c) { + c.preventDefault(), b.call(a(this), "show"); + }; + a(document) + .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) + .on("click.bs.tab.data-api", '[data-toggle="pill"]', e); + })(jQuery), + +(function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.affix"), + f = "object" == typeof b && b; + e || d.data("bs.affix", (e = new c(this, f))), + "string" == typeof b && e[b](); + }); + } + var c = function (b, d) { + (this.options = a.extend({}, c.DEFAULTS, d)), + (this.$target = a(this.options.target) + .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) + .on( + "click.bs.affix.data-api", + a.proxy(this.checkPositionWithEventLoop, this) + )), + (this.$element = a(b)), + (this.affixed = null), + (this.unpin = null), + (this.pinnedOffset = null), + this.checkPosition(); + }; + (c.VERSION = "3.3.5"), + (c.RESET = "affix affix-top affix-bottom"), + (c.DEFAULTS = { offset: 0, target: window }), + (c.prototype.getState = function (a, b, c, d) { + var e = this.$target.scrollTop(), + f = this.$element.offset(), + g = this.$target.height(); + if (null != c && "top" == this.affixed) return c > e ? "top" : !1; + if ("bottom" == this.affixed) + return null != c + ? e + this.unpin <= f.top + ? !1 + : "bottom" + : a - d >= e + g + ? !1 + : "bottom"; + var h = null == this.affixed, + i = h ? e : f.top, + j = h ? g : b; + return null != c && c >= e + ? "top" + : null != d && i + j >= a - d + ? "bottom" + : !1; + }), + (c.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) return this.pinnedOffset; + this.$element.removeClass(c.RESET).addClass("affix"); + var a = this.$target.scrollTop(), + b = this.$element.offset(); + return (this.pinnedOffset = b.top - a); + }), + (c.prototype.checkPositionWithEventLoop = function () { + setTimeout(a.proxy(this.checkPosition, this), 1); + }), + (c.prototype.checkPosition = function () { + if (this.$element.is(":visible")) { + var b = this.$element.height(), + d = this.options.offset, + e = d.top, + f = d.bottom, + g = Math.max(a(document).height(), a(document.body).height()); + "object" != typeof d && (f = e = d), + "function" == typeof e && (e = d.top(this.$element)), + "function" == typeof f && (f = d.bottom(this.$element)); + var h = this.getState(g, b, e, f); + if (this.affixed != h) { + null != this.unpin && this.$element.css("top", ""); + var i = "affix" + (h ? "-" + h : ""), + j = a.Event(i + ".bs.affix"); + if ((this.$element.trigger(j), j.isDefaultPrevented())) return; + (this.affixed = h), + (this.unpin = "bottom" == h ? this.getPinnedOffset() : null), + this.$element + .removeClass(c.RESET) + .addClass(i) + .trigger(i.replace("affix", "affixed") + ".bs.affix"); + } + "bottom" == h && this.$element.offset({ top: g - b - f }); + } + }); + var d = a.fn.affix; + (a.fn.affix = b), + (a.fn.affix.Constructor = c), + (a.fn.affix.noConflict = function () { + return (a.fn.affix = d), this; + }), + a(window).on("load", function () { + a('[data-spy="affix"]').each(function () { + var c = a(this), + d = c.data(); + (d.offset = d.offset || {}), + null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), + null != d.offsetTop && (d.offset.top = d.offsetTop), + b.call(c, d); + }); + }); + })(jQuery); diff --git a/public/js/jquery.flexslider-min.js b/public/js/jquery.flexslider-min.js new file mode 100644 index 0000000..d5e9885 --- /dev/null +++ b/public/js/jquery.flexslider-min.js @@ -0,0 +1,1173 @@ +/* + * jQuery FlexSlider v2.5.0 + * Copyright 2012 WooThemes + * Contributing Author: Tyler Smith + */ !(function ($) { + ($.flexslider = function (e, t) { + var a = $(e); + a.vars = $.extend({}, $.flexslider.defaults, t); + var n = a.vars.namespace, + i = + window.navigator && + window.navigator.msPointerEnabled && + window.MSGesture, + s = + ("ontouchstart" in window || + i || + (window.DocumentTouch && document instanceof DocumentTouch)) && + a.vars.touch, + r = "click touchend MSPointerUp keyup", + o = "", + l, + c = "vertical" === a.vars.direction, + d = a.vars.reverse, + u = a.vars.itemWidth > 0, + v = "fade" === a.vars.animation, + p = "" !== a.vars.asNavFor, + m = {}, + f = !0; + $.data(e, "flexslider", a), + (m = { + init: function () { + (a.animating = !1), + (a.currentSlide = parseInt( + a.vars.startAt ? a.vars.startAt : 0, + 10 + )), + isNaN(a.currentSlide) && (a.currentSlide = 0), + (a.animatingTo = a.currentSlide), + (a.atEnd = 0 === a.currentSlide || a.currentSlide === a.last), + (a.containerSelector = a.vars.selector.substr( + 0, + a.vars.selector.search(" ") + )), + (a.slides = $(a.vars.selector, a)), + (a.container = $(a.containerSelector, a)), + (a.count = a.slides.length), + (a.syncExists = $(a.vars.sync).length > 0), + "slide" === a.vars.animation && (a.vars.animation = "swing"), + (a.prop = c ? "top" : "marginLeft"), + (a.args = {}), + (a.manualPause = !1), + (a.stopped = !1), + (a.started = !1), + (a.startTimeout = null), + (a.transitions = + !a.vars.video && + !v && + a.vars.useCSS && + (function () { + var e = document.createElement("div"), + t = [ + "perspectiveProperty", + "WebkitPerspective", + "MozPerspective", + "OPerspective", + "msPerspective", + ]; + for (var n in t) + if (void 0 !== e.style[t[n]]) + return ( + (a.pfx = t[n].replace("Perspective", "").toLowerCase()), + (a.prop = "-" + a.pfx + "-transform"), + !0 + ); + return !1; + })()), + (a.ensureAnimationEnd = ""), + "" !== a.vars.controlsContainer && + (a.controlsContainer = + $(a.vars.controlsContainer).length > 0 && + $(a.vars.controlsContainer)), + "" !== a.vars.manualControls && + (a.manualControls = + $(a.vars.manualControls).length > 0 && + $(a.vars.manualControls)), + "" !== a.vars.customDirectionNav && + (a.customDirectionNav = + 2 === $(a.vars.customDirectionNav).length && + $(a.vars.customDirectionNav)), + a.vars.randomize && + (a.slides.sort(function () { + return Math.round(Math.random()) - 0.5; + }), + a.container.empty().append(a.slides)), + a.doMath(), + a.setup("init"), + a.vars.controlNav && m.controlNav.setup(), + a.vars.directionNav && m.directionNav.setup(), + a.vars.keyboard && + (1 === $(a.containerSelector).length || + a.vars.multipleKeyboard) && + $(document).bind("keyup", function (e) { + var t = e.keyCode; + if (!a.animating && (39 === t || 37 === t)) { + var n = + 39 === t + ? a.getTarget("next") + : 37 === t + ? a.getTarget("prev") + : !1; + a.flexAnimate(n, a.vars.pauseOnAction); + } + }), + a.vars.mousewheel && + a.bind("mousewheel", function (e, t, n, i) { + e.preventDefault(); + var s = a.getTarget(0 > t ? "next" : "prev"); + a.flexAnimate(s, a.vars.pauseOnAction); + }), + a.vars.pausePlay && m.pausePlay.setup(), + a.vars.slideshow && + a.vars.pauseInvisible && + m.pauseInvisible.init(), + a.vars.slideshow && + (a.vars.pauseOnHover && + a.hover( + function () { + a.manualPlay || a.manualPause || a.pause(); + }, + function () { + a.manualPause || a.manualPlay || a.stopped || a.play(); + } + ), + (a.vars.pauseInvisible && m.pauseInvisible.isHidden()) || + (a.vars.initDelay > 0 + ? (a.startTimeout = setTimeout(a.play, a.vars.initDelay)) + : a.play())), + p && m.asNav.setup(), + s && a.vars.touch && m.touch(), + (!v || (v && a.vars.smoothHeight)) && + $(window).bind("resize orientationchange focus", m.resize), + a.find("img").attr("draggable", "false"), + setTimeout(function () { + a.vars.start(a); + }, 200); + }, + asNav: { + setup: function () { + (a.asNav = !0), + (a.animatingTo = Math.floor(a.currentSlide / a.move)), + (a.currentItem = a.currentSlide), + a.slides + .removeClass(n + "active-slide") + .eq(a.currentItem) + .addClass(n + "active-slide"), + i + ? ((e._slider = a), + a.slides.each(function () { + var e = this; + (e._gesture = new MSGesture()), + (e._gesture.target = e), + e.addEventListener( + "MSPointerDown", + function (e) { + e.preventDefault(), + e.currentTarget._gesture && + e.currentTarget._gesture.addPointer(e.pointerId); + }, + !1 + ), + e.addEventListener("MSGestureTap", function (e) { + e.preventDefault(); + var t = $(this), + n = t.index(); + $(a.vars.asNavFor).data("flexslider").animating || + t.hasClass("active") || + ((a.direction = a.currentItem < n ? "next" : "prev"), + a.flexAnimate(n, a.vars.pauseOnAction, !1, !0, !0)); + }); + })) + : a.slides.on(r, function (e) { + e.preventDefault(); + var t = $(this), + i = t.index(), + s = t.offset().left - $(a).scrollLeft(); + 0 >= s && t.hasClass(n + "active-slide") + ? a.flexAnimate(a.getTarget("prev"), !0) + : $(a.vars.asNavFor).data("flexslider").animating || + t.hasClass(n + "active-slide") || + ((a.direction = a.currentItem < i ? "next" : "prev"), + a.flexAnimate(i, a.vars.pauseOnAction, !1, !0, !0)); + }); + }, + }, + controlNav: { + setup: function () { + a.manualControls + ? m.controlNav.setupManual() + : m.controlNav.setupPaging(); + }, + setupPaging: function () { + var e = + "thumbnails" === a.vars.controlNav + ? "control-thumbs" + : "control-paging", + t = 1, + i, + s; + if ( + ((a.controlNavScaffold = $( + '
    ' + )), + a.pagingCount > 1) + ) + for (var l = 0; l < a.pagingCount; l++) { + if ( + ((s = a.slides.eq(l)), + (i = + "thumbnails" === a.vars.controlNav + ? '' + : "
    " + t + ""), + "thumbnails" === a.vars.controlNav && + !0 === a.vars.thumbCaptions) + ) { + var c = s.attr("data-thumbcaption"); + "" !== c && + void 0 !== c && + (i += '' + c + ""); + } + a.controlNavScaffold.append("
  1. " + i + "
  2. "), t++; + } + a.controlsContainer + ? $(a.controlsContainer).append(a.controlNavScaffold) + : a.append(a.controlNavScaffold), + m.controlNav.set(), + m.controlNav.active(), + a.controlNavScaffold.delegate("a, img", r, function (e) { + if ((e.preventDefault(), "" === o || o === e.type)) { + var t = $(this), + i = a.controlNav.index(t); + t.hasClass(n + "active") || + ((a.direction = i > a.currentSlide ? "next" : "prev"), + a.flexAnimate(i, a.vars.pauseOnAction)); + } + "" === o && (o = e.type), m.setToClearWatchedEvent(); + }); + }, + setupManual: function () { + (a.controlNav = a.manualControls), + m.controlNav.active(), + a.controlNav.bind(r, function (e) { + if ((e.preventDefault(), "" === o || o === e.type)) { + var t = $(this), + i = a.controlNav.index(t); + t.hasClass(n + "active") || + ((a.direction = i > a.currentSlide ? "next" : "prev"), + a.flexAnimate(i, a.vars.pauseOnAction)); + } + "" === o && (o = e.type), m.setToClearWatchedEvent(); + }); + }, + set: function () { + var e = "thumbnails" === a.vars.controlNav ? "img" : "a"; + a.controlNav = $( + "." + n + "control-nav li " + e, + a.controlsContainer ? a.controlsContainer : a + ); + }, + active: function () { + a.controlNav + .removeClass(n + "active") + .eq(a.animatingTo) + .addClass(n + "active"); + }, + update: function (e, t) { + a.pagingCount > 1 && "add" === e + ? a.controlNavScaffold.append( + $("
  3. " + a.count + "
  4. ") + ) + : 1 === a.pagingCount + ? a.controlNavScaffold.find("li").remove() + : a.controlNav.eq(t).closest("li").remove(), + m.controlNav.set(), + a.pagingCount > 1 && a.pagingCount !== a.controlNav.length + ? a.update(t, e) + : m.controlNav.active(); + }, + }, + directionNav: { + setup: function () { + var e = $( + '" + ); + a.customDirectionNav + ? (a.directionNav = a.customDirectionNav) + : a.controlsContainer + ? ($(a.controlsContainer).append(e), + (a.directionNav = $( + "." + n + "direction-nav li a", + a.controlsContainer + ))) + : (a.append(e), + (a.directionNav = $("." + n + "direction-nav li a", a))), + m.directionNav.update(), + a.directionNav.bind(r, function (e) { + e.preventDefault(); + var t; + ("" === o || o === e.type) && + ((t = a.getTarget( + $(this).hasClass(n + "next") ? "next" : "prev" + )), + a.flexAnimate(t, a.vars.pauseOnAction)), + "" === o && (o = e.type), + m.setToClearWatchedEvent(); + }); + }, + update: function () { + var e = n + "disabled"; + 1 === a.pagingCount + ? a.directionNav.addClass(e).attr("tabindex", "-1") + : a.vars.animationLoop + ? a.directionNav.removeClass(e).removeAttr("tabindex") + : 0 === a.animatingTo + ? a.directionNav + .removeClass(e) + .filter("." + n + "prev") + .addClass(e) + .attr("tabindex", "-1") + : a.animatingTo === a.last + ? a.directionNav + .removeClass(e) + .filter("." + n + "next") + .addClass(e) + .attr("tabindex", "-1") + : a.directionNav.removeClass(e).removeAttr("tabindex"); + }, + }, + pausePlay: { + setup: function () { + var e = $('
    '); + a.controlsContainer + ? (a.controlsContainer.append(e), + (a.pausePlay = $("." + n + "pauseplay a", a.controlsContainer))) + : (a.append(e), (a.pausePlay = $("." + n + "pauseplay a", a))), + m.pausePlay.update(a.vars.slideshow ? n + "pause" : n + "play"), + a.pausePlay.bind(r, function (e) { + e.preventDefault(), + ("" === o || o === e.type) && + ($(this).hasClass(n + "pause") + ? ((a.manualPause = !0), (a.manualPlay = !1), a.pause()) + : ((a.manualPause = !1), (a.manualPlay = !0), a.play())), + "" === o && (o = e.type), + m.setToClearWatchedEvent(); + }); + }, + update: function (e) { + "play" === e + ? a.pausePlay + .removeClass(n + "pause") + .addClass(n + "play") + .html(a.vars.playText) + : a.pausePlay + .removeClass(n + "play") + .addClass(n + "pause") + .html(a.vars.pauseText); + }, + }, + touch: function () { + function t(t) { + t.stopPropagation(), + a.animating + ? t.preventDefault() + : (a.pause(), + e._gesture.addPointer(t.pointerId), + (w = 0), + (p = c ? a.h : a.w), + (f = Number(new Date())), + (l = + u && d && a.animatingTo === a.last + ? 0 + : u && d + ? a.limit - + (a.itemW + a.vars.itemMargin) * a.move * a.animatingTo + : u && a.currentSlide === a.last + ? a.limit + : u + ? (a.itemW + a.vars.itemMargin) * a.move * a.currentSlide + : d + ? (a.last - a.currentSlide + a.cloneOffset) * p + : (a.currentSlide + a.cloneOffset) * p)); + } + function n(t) { + t.stopPropagation(); + var a = t.target._slider; + if (a) { + var n = -t.translationX, + i = -t.translationY; + return ( + (w += c ? i : n), + (m = w), + (y = c + ? Math.abs(w) < Math.abs(-n) + : Math.abs(w) < Math.abs(-i)), + t.detail === t.MSGESTURE_FLAG_INERTIA + ? void setImmediate(function () { + e._gesture.stop(); + }) + : void ( + (!y || Number(new Date()) - f > 500) && + (t.preventDefault(), + !v && + a.transitions && + (a.vars.animationLoop || + (m = + w / + ((0 === a.currentSlide && 0 > w) || + (a.currentSlide === a.last && w > 0) + ? Math.abs(w) / p + 2 + : 1)), + a.setProps(l + m, "setTouch"))) + ) + ); + } + } + function s(e) { + e.stopPropagation(); + var t = e.target._slider; + if (t) { + if (t.animatingTo === t.currentSlide && !y && null !== m) { + var a = d ? -m : m, + n = t.getTarget(a > 0 ? "next" : "prev"); + t.canAdvance(n) && + ((Number(new Date()) - f < 550 && Math.abs(a) > 50) || + Math.abs(a) > p / 2) + ? t.flexAnimate(n, t.vars.pauseOnAction) + : v || + t.flexAnimate(t.currentSlide, t.vars.pauseOnAction, !0); + } + (r = null), (o = null), (m = null), (l = null), (w = 0); + } + } + var r, + o, + l, + p, + m, + f, + g, + h, + S, + y = !1, + x = 0, + b = 0, + w = 0; + i + ? ((e.style.msTouchAction = "none"), + (e._gesture = new MSGesture()), + (e._gesture.target = e), + e.addEventListener("MSPointerDown", t, !1), + (e._slider = a), + e.addEventListener("MSGestureChange", n, !1), + e.addEventListener("MSGestureEnd", s, !1)) + : ((g = function (t) { + a.animating + ? t.preventDefault() + : (window.navigator.msPointerEnabled || + 1 === t.touches.length) && + (a.pause(), + (p = c ? a.h : a.w), + (f = Number(new Date())), + (x = t.touches[0].pageX), + (b = t.touches[0].pageY), + (l = + u && d && a.animatingTo === a.last + ? 0 + : u && d + ? a.limit - + (a.itemW + a.vars.itemMargin) * a.move * a.animatingTo + : u && a.currentSlide === a.last + ? a.limit + : u + ? (a.itemW + a.vars.itemMargin) * + a.move * + a.currentSlide + : d + ? (a.last - a.currentSlide + a.cloneOffset) * p + : (a.currentSlide + a.cloneOffset) * p), + (r = c ? b : x), + (o = c ? x : b), + e.addEventListener("touchmove", h, !1), + e.addEventListener("touchend", S, !1)); + }), + (h = function (e) { + (x = e.touches[0].pageX), + (b = e.touches[0].pageY), + (m = c ? r - b : r - x), + (y = c + ? Math.abs(m) < Math.abs(x - o) + : Math.abs(m) < Math.abs(b - o)); + var t = 500; + (!y || Number(new Date()) - f > t) && + (e.preventDefault(), + !v && + a.transitions && + (a.vars.animationLoop || + (m /= + (0 === a.currentSlide && 0 > m) || + (a.currentSlide === a.last && m > 0) + ? Math.abs(m) / p + 2 + : 1), + a.setProps(l + m, "setTouch"))); + }), + (S = function (t) { + if ( + (e.removeEventListener("touchmove", h, !1), + a.animatingTo === a.currentSlide && !y && null !== m) + ) { + var n = d ? -m : m, + i = a.getTarget(n > 0 ? "next" : "prev"); + a.canAdvance(i) && + ((Number(new Date()) - f < 550 && Math.abs(n) > 50) || + Math.abs(n) > p / 2) + ? a.flexAnimate(i, a.vars.pauseOnAction) + : v || + a.flexAnimate(a.currentSlide, a.vars.pauseOnAction, !0); + } + e.removeEventListener("touchend", S, !1), + (r = null), + (o = null), + (m = null), + (l = null); + }), + e.addEventListener("touchstart", g, !1)); + }, + resize: function () { + !a.animating && + a.is(":visible") && + (u || a.doMath(), + v + ? m.smoothHeight() + : u + ? (a.slides.width(a.computedW), + a.update(a.pagingCount), + a.setProps()) + : c + ? (a.viewport.height(a.h), a.setProps(a.h, "setTotal")) + : (a.vars.smoothHeight && m.smoothHeight(), + a.newSlides.width(a.computedW), + a.setProps(a.computedW, "setTotal"))); + }, + smoothHeight: function (e) { + if (!c || v) { + var t = v ? a : a.viewport; + e + ? t.animate({ height: a.slides.eq(a.animatingTo).height() }, e) + : t.height(a.slides.eq(a.animatingTo).height()); + } + }, + sync: function (e) { + var t = $(a.vars.sync).data("flexslider"), + n = a.animatingTo; + switch (e) { + case "animate": + t.flexAnimate(n, a.vars.pauseOnAction, !1, !0); + break; + case "play": + t.playing || t.asNav || t.play(); + break; + case "pause": + t.pause(); + } + }, + uniqueID: function (e) { + return ( + e + .filter("[id]") + .add(e.find("[id]")) + .each(function () { + var e = $(this); + e.attr("id", e.attr("id") + "_clone"); + }), + e + ); + }, + pauseInvisible: { + visProp: null, + init: function () { + var e = m.pauseInvisible.getHiddenProp(); + if (e) { + var t = e.replace(/[H|h]idden/, "") + "visibilitychange"; + document.addEventListener(t, function () { + m.pauseInvisible.isHidden() + ? a.startTimeout + ? clearTimeout(a.startTimeout) + : a.pause() + : a.started + ? a.play() + : a.vars.initDelay > 0 + ? setTimeout(a.play, a.vars.initDelay) + : a.play(); + }); + } + }, + isHidden: function () { + var e = m.pauseInvisible.getHiddenProp(); + return e ? document[e] : !1; + }, + getHiddenProp: function () { + var e = ["webkit", "moz", "ms", "o"]; + if ("hidden" in document) return "hidden"; + for (var t = 0; t < e.length; t++) + if (e[t] + "Hidden" in document) return e[t] + "Hidden"; + return null; + }, + }, + setToClearWatchedEvent: function () { + clearTimeout(l), + (l = setTimeout(function () { + o = ""; + }, 3e3)); + }, + }), + (a.flexAnimate = function (e, t, i, r, o) { + if ( + (a.vars.animationLoop || + e === a.currentSlide || + (a.direction = e > a.currentSlide ? "next" : "prev"), + p && + 1 === a.pagingCount && + (a.direction = a.currentItem < e ? "next" : "prev"), + !a.animating && (a.canAdvance(e, o) || i) && a.is(":visible")) + ) { + if (p && r) { + var l = $(a.vars.asNavFor).data("flexslider"); + if ( + ((a.atEnd = 0 === e || e === a.count - 1), + l.flexAnimate(e, !0, !1, !0, o), + (a.direction = a.currentItem < e ? "next" : "prev"), + (l.direction = a.direction), + Math.ceil((e + 1) / a.visible) - 1 === a.currentSlide || 0 === e) + ) + return ( + (a.currentItem = e), + a.slides + .removeClass(n + "active-slide") + .eq(e) + .addClass(n + "active-slide"), + !1 + ); + (a.currentItem = e), + a.slides + .removeClass(n + "active-slide") + .eq(e) + .addClass(n + "active-slide"), + (e = Math.floor(e / a.visible)); + } + if ( + ((a.animating = !0), + (a.animatingTo = e), + t && a.pause(), + a.vars.before(a), + a.syncExists && !o && m.sync("animate"), + a.vars.controlNav && m.controlNav.active(), + u || + a.slides + .removeClass(n + "active-slide") + .eq(e) + .addClass(n + "active-slide"), + (a.atEnd = 0 === e || e === a.last), + a.vars.directionNav && m.directionNav.update(), + e === a.last && (a.vars.end(a), a.vars.animationLoop || a.pause()), + v) + ) + s + ? (a.slides.eq(a.currentSlide).css({ opacity: 0, zIndex: 1 }), + a.slides.eq(e).css({ opacity: 1, zIndex: 2 }), + a.wrapup(f)) + : (a.slides + .eq(a.currentSlide) + .css({ zIndex: 1 }) + .animate( + { opacity: 0 }, + a.vars.animationSpeed, + a.vars.easing + ), + a.slides + .eq(e) + .css({ zIndex: 2 }) + .animate( + { opacity: 1 }, + a.vars.animationSpeed, + a.vars.easing, + a.wrapup + )); + else { + var f = c ? a.slides.filter(":first").height() : a.computedW, + g, + h, + S; + u + ? ((g = a.vars.itemMargin), + (S = (a.itemW + g) * a.move * a.animatingTo), + (h = S > a.limit && 1 !== a.visible ? a.limit : S)) + : (h = + 0 === a.currentSlide && + e === a.count - 1 && + a.vars.animationLoop && + "next" !== a.direction + ? d + ? (a.count + a.cloneOffset) * f + : 0 + : a.currentSlide === a.last && + 0 === e && + a.vars.animationLoop && + "prev" !== a.direction + ? d + ? 0 + : (a.count + 1) * f + : d + ? (a.count - 1 - e + a.cloneOffset) * f + : (e + a.cloneOffset) * f), + a.setProps(h, "", a.vars.animationSpeed), + a.transitions + ? ((a.vars.animationLoop && a.atEnd) || + ((a.animating = !1), (a.currentSlide = a.animatingTo)), + a.container.unbind("webkitTransitionEnd transitionend"), + a.container.bind( + "webkitTransitionEnd transitionend", + function () { + clearTimeout(a.ensureAnimationEnd), a.wrapup(f); + } + ), + clearTimeout(a.ensureAnimationEnd), + (a.ensureAnimationEnd = setTimeout(function () { + a.wrapup(f); + }, a.vars.animationSpeed + 100))) + : a.container.animate( + a.args, + a.vars.animationSpeed, + a.vars.easing, + function () { + a.wrapup(f); + } + ); + } + a.vars.smoothHeight && m.smoothHeight(a.vars.animationSpeed); + } + }), + (a.wrapup = function (e) { + v || + u || + (0 === a.currentSlide && + a.animatingTo === a.last && + a.vars.animationLoop + ? a.setProps(e, "jumpEnd") + : a.currentSlide === a.last && + 0 === a.animatingTo && + a.vars.animationLoop && + a.setProps(e, "jumpStart")), + (a.animating = !1), + (a.currentSlide = a.animatingTo), + a.vars.after(a); + }), + (a.animateSlides = function () { + !a.animating && f && a.flexAnimate(a.getTarget("next")); + }), + (a.pause = function () { + clearInterval(a.animatedSlides), + (a.animatedSlides = null), + (a.playing = !1), + a.vars.pausePlay && m.pausePlay.update("play"), + a.syncExists && m.sync("pause"); + }), + (a.play = function () { + a.playing && clearInterval(a.animatedSlides), + (a.animatedSlides = + a.animatedSlides || + setInterval(a.animateSlides, a.vars.slideshowSpeed)), + (a.started = a.playing = !0), + a.vars.pausePlay && m.pausePlay.update("pause"), + a.syncExists && m.sync("play"); + }), + (a.stop = function () { + a.pause(), (a.stopped = !0); + }), + (a.canAdvance = function (e, t) { + var n = p ? a.pagingCount - 1 : a.last; + return t + ? !0 + : p && + a.currentItem === a.count - 1 && + 0 === e && + "prev" === a.direction + ? !0 + : p && + 0 === a.currentItem && + e === a.pagingCount - 1 && + "next" !== a.direction + ? !1 + : e !== a.currentSlide || p + ? a.vars.animationLoop + ? !0 + : a.atEnd && + 0 === a.currentSlide && + e === n && + "next" !== a.direction + ? !1 + : a.atEnd && + a.currentSlide === n && + 0 === e && + "next" === a.direction + ? !1 + : !0 + : !1; + }), + (a.getTarget = function (e) { + return ( + (a.direction = e), + "next" === e + ? a.currentSlide === a.last + ? 0 + : a.currentSlide + 1 + : 0 === a.currentSlide + ? a.last + : a.currentSlide - 1 + ); + }), + (a.setProps = function (e, t, n) { + var i = (function () { + var n = e + ? e + : (a.itemW + a.vars.itemMargin) * a.move * a.animatingTo, + i = (function () { + if (u) + return "setTouch" === t + ? e + : d && a.animatingTo === a.last + ? 0 + : d + ? a.limit - + (a.itemW + a.vars.itemMargin) * a.move * a.animatingTo + : a.animatingTo === a.last + ? a.limit + : n; + switch (t) { + case "setTotal": + return d + ? (a.count - 1 - a.currentSlide + a.cloneOffset) * e + : (a.currentSlide + a.cloneOffset) * e; + case "setTouch": + return d ? e : e; + case "jumpEnd": + return d ? e : a.count * e; + case "jumpStart": + return d ? a.count * e : e; + default: + return e; + } + })(); + return -1 * i + "px"; + })(); + a.transitions && + ((i = c + ? "translate3d(0," + i + ",0)" + : "translate3d(" + i + ",0,0)"), + (n = void 0 !== n ? n / 1e3 + "s" : "0s"), + a.container.css("-" + a.pfx + "-transition-duration", n), + a.container.css("transition-duration", n)), + (a.args[a.prop] = i), + (a.transitions || void 0 === n) && a.container.css(a.args), + a.container.css("transform", i); + }), + (a.setup = function (e) { + if (v) + a.slides.css({ + width: "100%", + float: "left", + marginRight: "-100%", + position: "relative", + }), + "init" === e && + (s + ? a.slides + .css({ + opacity: 0, + display: "block", + webkitTransition: + "opacity " + a.vars.animationSpeed / 1e3 + "s ease", + zIndex: 1, + }) + .eq(a.currentSlide) + .css({ opacity: 1, zIndex: 2 }) + : 0 == a.vars.fadeFirstSlide + ? a.slides + .css({ opacity: 0, display: "block", zIndex: 1 }) + .eq(a.currentSlide) + .css({ zIndex: 2 }) + .css({ opacity: 1 }) + : a.slides + .css({ opacity: 0, display: "block", zIndex: 1 }) + .eq(a.currentSlide) + .css({ zIndex: 2 }) + .animate( + { opacity: 1 }, + a.vars.animationSpeed, + a.vars.easing + )), + a.vars.smoothHeight && m.smoothHeight(); + else { + var t, i; + "init" === e && + ((a.viewport = $('
    ') + .css({ overflow: "hidden", position: "relative" }) + .appendTo(a) + .append(a.container)), + (a.cloneCount = 0), + (a.cloneOffset = 0), + d && + ((i = $.makeArray(a.slides).reverse()), + (a.slides = $(i)), + a.container.empty().append(a.slides))), + a.vars.animationLoop && + !u && + ((a.cloneCount = 2), + (a.cloneOffset = 1), + "init" !== e && a.container.find(".clone").remove(), + a.container + .append( + m + .uniqueID(a.slides.first().clone().addClass("clone")) + .attr("aria-hidden", "true") + ) + .prepend( + m + .uniqueID(a.slides.last().clone().addClass("clone")) + .attr("aria-hidden", "true") + )), + (a.newSlides = $(a.vars.selector, a)), + (t = d + ? a.count - 1 - a.currentSlide + a.cloneOffset + : a.currentSlide + a.cloneOffset), + c && !u + ? (a.container + .height(200 * (a.count + a.cloneCount) + "%") + .css("position", "absolute") + .width("100%"), + setTimeout( + function () { + a.newSlides.css({ display: "block" }), + a.doMath(), + a.viewport.height(a.h), + a.setProps(t * a.h, "init"); + }, + "init" === e ? 100 : 0 + )) + : (a.container.width(200 * (a.count + a.cloneCount) + "%"), + a.setProps(t * a.computedW, "init"), + setTimeout( + function () { + a.doMath(), + a.newSlides.css({ + width: a.computedW, + float: "left", + display: "block", + }), + a.vars.smoothHeight && m.smoothHeight(); + }, + "init" === e ? 100 : 0 + )); + } + u || + a.slides + .removeClass(n + "active-slide") + .eq(a.currentSlide) + .addClass(n + "active-slide"), + a.vars.init(a); + }), + (a.doMath = function () { + var e = a.slides.first(), + t = a.vars.itemMargin, + n = a.vars.minItems, + i = a.vars.maxItems; + (a.w = void 0 === a.viewport ? a.width() : a.viewport.width()), + (a.h = e.height()), + (a.boxPadding = e.outerWidth() - e.width()), + u + ? ((a.itemT = a.vars.itemWidth + t), + (a.minW = n ? n * a.itemT : a.w), + (a.maxW = i ? i * a.itemT - t : a.w), + (a.itemW = + a.minW > a.w + ? (a.w - t * (n - 1)) / n + : a.maxW < a.w + ? (a.w - t * (i - 1)) / i + : a.vars.itemWidth > a.w + ? a.w + : a.vars.itemWidth), + (a.visible = Math.floor(a.w / a.itemW)), + (a.move = + a.vars.move > 0 && a.vars.move < a.visible + ? a.vars.move + : a.visible), + (a.pagingCount = Math.ceil((a.count - a.visible) / a.move + 1)), + (a.last = a.pagingCount - 1), + (a.limit = + 1 === a.pagingCount + ? 0 + : a.vars.itemWidth > a.w + ? a.itemW * (a.count - 1) + t * (a.count - 1) + : (a.itemW + t) * a.count - a.w - t)) + : ((a.itemW = a.w), + (a.pagingCount = a.count), + (a.last = a.count - 1)), + (a.computedW = a.itemW - a.boxPadding); + }), + (a.update = function (e, t) { + a.doMath(), + u || + (e < a.currentSlide + ? (a.currentSlide += 1) + : e <= a.currentSlide && 0 !== e && (a.currentSlide -= 1), + (a.animatingTo = a.currentSlide)), + a.vars.controlNav && + !a.manualControls && + (("add" === t && !u) || a.pagingCount > a.controlNav.length + ? m.controlNav.update("add") + : (("remove" === t && !u) || + a.pagingCount < a.controlNav.length) && + (u && + a.currentSlide > a.last && + ((a.currentSlide -= 1), (a.animatingTo -= 1)), + m.controlNav.update("remove", a.last))), + a.vars.directionNav && m.directionNav.update(); + }), + (a.addSlide = function (e, t) { + var n = $(e); + (a.count += 1), + (a.last = a.count - 1), + c && d + ? void 0 !== t + ? a.slides.eq(a.count - t).after(n) + : a.container.prepend(n) + : void 0 !== t + ? a.slides.eq(t).before(n) + : a.container.append(n), + a.update(t, "add"), + (a.slides = $(a.vars.selector + ":not(.clone)", a)), + a.setup(), + a.vars.added(a); + }), + (a.removeSlide = function (e) { + var t = isNaN(e) ? a.slides.index($(e)) : e; + (a.count -= 1), + (a.last = a.count - 1), + isNaN(e) + ? $(e, a.slides).remove() + : c && d + ? a.slides.eq(a.last).remove() + : a.slides.eq(e).remove(), + a.doMath(), + a.update(t, "remove"), + (a.slides = $(a.vars.selector + ":not(.clone)", a)), + a.setup(), + a.vars.removed(a); + }), + m.init(); + }), + $(window) + .blur(function (e) { + focused = !1; + }) + .focus(function (e) { + focused = !0; + }), + ($.flexslider.defaults = { + namespace: "flex-", + selector: ".slides > li", + animation: "fade", + easing: "swing", + direction: "horizontal", + reverse: !1, + animationLoop: !0, + smoothHeight: !1, + startAt: 0, + slideshow: !0, + slideshowSpeed: 7e3, + animationSpeed: 600, + initDelay: 0, + randomize: !1, + fadeFirstSlide: !0, + thumbCaptions: !1, + pauseOnAction: !0, + pauseOnHover: !1, + pauseInvisible: !0, + useCSS: !0, + touch: !0, + video: !1, + controlNav: !0, + directionNav: !0, + prevText: "Previous", + nextText: "Next", + keyboard: !0, + multipleKeyboard: !1, + mousewheel: !1, + pausePlay: !1, + pauseText: "Pause", + playText: "Play", + controlsContainer: "", + manualControls: "", + customDirectionNav: "", + sync: "", + asNavFor: "", + itemWidth: 0, + itemMargin: 0, + minItems: 1, + maxItems: 0, + move: 0, + allowOneSlide: !0, + start: function () {}, + before: function () {}, + after: function () {}, + end: function () {}, + added: function () {}, + removed: function () {}, + init: function () {}, + }), + ($.fn.flexslider = function (e) { + if ((void 0 === e && (e = {}), "object" == typeof e)) + return this.each(function () { + var t = $(this), + a = e.selector ? e.selector : ".slides > li", + n = t.find(a); + (1 === n.length && e.allowOneSlide === !0) || 0 === n.length + ? (n.fadeIn(400), e.start && e.start(t)) + : void 0 === t.data("flexslider") && new $.flexslider(this, e); + }); + var t = $(this).data("flexslider"); + switch (e) { + case "play": + t.play(); + break; + case "pause": + t.pause(); + break; + case "stop": + t.stop(); + break; + case "next": + t.flexAnimate(t.getTarget("next"), !0); + break; + case "prev": + case "previous": + t.flexAnimate(t.getTarget("prev"), !0); + break; + default: + "number" == typeof e && t.flexAnimate(e, !0); + } + }); +})(jQuery); diff --git a/public/js/jquery.localscroll-1.2.7-min.js b/public/js/jquery.localscroll-1.2.7-min.js new file mode 100644 index 0000000..91338c2 --- /dev/null +++ b/public/js/jquery.localscroll-1.2.7-min.js @@ -0,0 +1,87 @@ +/** + * jQuery.LocalScroll - Animated scrolling navigation, using anchors. + * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 3/11/2009 + * @author Ariel Flesler + * @version 1.2.7 + **/ +(function ($) { + var l = location.href.replace(/#.*/, ""); + var g = ($.localScroll = function (a) { + $("body").localScroll(a); + }); + g.defaults = { + duration: 1e3, + axis: "y", + event: "click", + stop: true, + target: window, + reset: true, + }; + g.hash = function (a) { + if (location.hash) { + a = $.extend({}, g.defaults, a); + a.hash = false; + if (a.reset) { + var e = a.duration; + delete a.duration; + $(a.target).scrollTo(0, a); + a.duration = e; + } + i(0, location, a); + } + }; + $.fn.localScroll = function (b) { + b = $.extend({}, g.defaults, b); + return b.lazy + ? this.bind(b.event, function (a) { + var e = $([a.target, a.target.parentNode]).filter(d)[0]; + if (e) i(a, e, b); + }) + : this.find("a,area") + .filter(d) + .bind(b.event, function (a) { + i(a, this, b); + }) + .end() + .end(); + function d() { + return ( + !!this.href && + !!this.hash && + this.href.replace(this.hash, "") == l && + (!b.filter || $(this).is(b.filter)) + ); + } + }; + function i(a, e, b) { + var d = e.hash.slice(1), + f = document.getElementById(d) || document.getElementsByName(d)[0]; + if (!f) return; + if (a) a.preventDefault(); + var h = $(b.target); + if ( + (b.lock && h.is(":animated")) || + (b.onBefore && b.onBefore.call(b, a, f, h) === false) + ) + return; + if (b.stop) h.stop(true); + if (b.hash) { + var j = f.id == d ? "id" : "name", + k = $(" ") + .attr(j, d) + .css({ + position: "absolute", + top: $(window).scrollTop(), + left: $(window).scrollLeft(), + }); + f[j] = ""; + $("body").prepend(k); + location = e.hash; + k.remove(); + f[j] = d; + } + h.scrollTo(f, b).trigger("notify.serialScroll", [f]); + } +})(jQuery); diff --git a/public/js/jquery.min.js b/public/js/jquery.min.js new file mode 100644 index 0000000..979d4ed --- /dev/null +++ b/public/js/jquery.min.js @@ -0,0 +1,5795 @@ +!(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) { + function c(a) { + var b = "length" in a && a.length, + c = ea.type(a); + return "function" === c || ea.isWindow(a) + ? !1 + : 1 === a.nodeType && b + ? !0 + : "array" === c || + 0 === b || + ("number" == typeof b && b > 0 && b - 1 in a); + } + function d(a, b, c) { + if (ea.isFunction(b)) + return ea.grep(a, function (a, d) { + return !!b.call(a, d, a) !== c; + }); + if (b.nodeType) + return ea.grep(a, function (a) { + return (a === b) !== c; + }); + if ("string" == typeof b) { + if (ma.test(b)) return ea.filter(b, a, c); + b = ea.filter(b, a); + } + return ea.grep(a, function (a) { + return ea.inArray(a, b) >= 0 !== c; + }); + } + function e(a, b) { + do a = a[b]; + while (a && 1 !== a.nodeType); + return a; + } + function f(a) { + var b = (ua[a] = {}); + return ( + ea.each(a.match(ta) || [], function (a, c) { + b[c] = !0; + }), + b + ); + } + function g() { + oa.addEventListener + ? (oa.removeEventListener("DOMContentLoaded", h, !1), + a.removeEventListener("load", h, !1)) + : (oa.detachEvent("onreadystatechange", h), a.detachEvent("onload", h)); + } + function h() { + (oa.addEventListener || + "load" === event.type || + "complete" === oa.readyState) && + (g(), ea.ready()); + } + function i(a, b, c) { + if (void 0 === c && 1 === a.nodeType) { + var d = "data-" + b.replace(za, "-$1").toLowerCase(); + if (((c = a.getAttribute(d)), "string" == typeof c)) { + try { + c = + "true" === c + ? !0 + : "false" === c + ? !1 + : "null" === c + ? null + : +c + "" === c + ? +c + : ya.test(c) + ? ea.parseJSON(c) + : c; + } catch (e) {} + ea.data(a, b, c); + } else c = void 0; + } + return c; + } + function j(a) { + var b; + for (b in a) + if (("data" !== b || !ea.isEmptyObject(a[b])) && "toJSON" !== b) + return !1; + return !0; + } + function k(a, b, c, d) { + if (ea.acceptData(a)) { + var e, + f, + g = ea.expando, + h = a.nodeType, + i = h ? ea.cache : a, + j = h ? a[g] : a[g] && g; + if ( + (j && i[j] && (d || i[j].data)) || + void 0 !== c || + "string" != typeof b + ) + return ( + j || (j = h ? (a[g] = W.pop() || ea.guid++) : g), + i[j] || (i[j] = h ? {} : { toJSON: ea.noop }), + ("object" == typeof b || "function" == typeof b) && + (d + ? (i[j] = ea.extend(i[j], b)) + : (i[j].data = ea.extend(i[j].data, b))), + (f = i[j]), + d || (f.data || (f.data = {}), (f = f.data)), + void 0 !== c && (f[ea.camelCase(b)] = c), + "string" == typeof b + ? ((e = f[b]), null == e && (e = f[ea.camelCase(b)])) + : (e = f), + e + ); + } + } + function l(a, b, c) { + if (ea.acceptData(a)) { + var d, + e, + f = a.nodeType, + g = f ? ea.cache : a, + h = f ? a[ea.expando] : ea.expando; + if (g[h]) { + if (b && (d = c ? g[h] : g[h].data)) { + ea.isArray(b) + ? (b = b.concat(ea.map(b, ea.camelCase))) + : b in d + ? (b = [b]) + : ((b = ea.camelCase(b)), (b = b in d ? [b] : b.split(" "))), + (e = b.length); + for (; e--; ) delete d[b[e]]; + if (c ? !j(d) : !ea.isEmptyObject(d)) return; + } + (c || (delete g[h].data, j(g[h]))) && + (f + ? ea.cleanData([a], !0) + : ca.deleteExpando || g != g.window + ? delete g[h] + : (g[h] = null)); + } + } + } + function m() { + return !0; + } + function n() { + return !1; + } + function o() { + try { + return oa.activeElement; + } catch (a) {} + } + function p(a) { + var b = Ka.split("|"), + c = a.createDocumentFragment(); + if (c.createElement) for (; b.length; ) c.createElement(b.pop()); + return c; + } + function q(a, b) { + var c, + d, + e = 0, + f = + typeof a.getElementsByTagName !== xa + ? a.getElementsByTagName(b || "*") + : typeof a.querySelectorAll !== xa + ? a.querySelectorAll(b || "*") + : void 0; + if (!f) + for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) + !b || ea.nodeName(d, b) ? f.push(d) : ea.merge(f, q(d, b)); + return void 0 === b || (b && ea.nodeName(a, b)) ? ea.merge([a], f) : f; + } + function r(a) { + Ea.test(a.type) && (a.defaultChecked = a.checked); + } + function s(a, b) { + return ea.nodeName(a, "table") && + ea.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") + ? a.getElementsByTagName("tbody")[0] || + a.appendChild(a.ownerDocument.createElement("tbody")) + : a; + } + function t(a) { + return (a.type = (null !== ea.find.attr(a, "type")) + "/" + a.type), a; + } + function u(a) { + var b = Va.exec(a.type); + return b ? (a.type = b[1]) : a.removeAttribute("type"), a; + } + function v(a, b) { + for (var c, d = 0; null != (c = a[d]); d++) + ea._data(c, "globalEval", !b || ea._data(b[d], "globalEval")); + } + function w(a, b) { + if (1 === b.nodeType && ea.hasData(a)) { + var c, + d, + e, + f = ea._data(a), + g = ea._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++) ea.event.add(b, c, h[c][d]); + } + g.data && (g.data = ea.extend({}, g.data)); + } + } + function x(a, b) { + var c, d, e; + if (1 === b.nodeType) { + if (((c = b.nodeName.toLowerCase()), !ca.noCloneEvent && b[ea.expando])) { + e = ea._data(b); + for (d in e.events) ea.removeEvent(b, d, e.handle); + b.removeAttribute(ea.expando); + } + "script" === c && b.text !== a.text + ? ((t(b).text = a.text), u(b)) + : "object" === c + ? (b.parentNode && (b.outerHTML = a.outerHTML), + ca.html5Clone && + a.innerHTML && + !ea.trim(b.innerHTML) && + (b.innerHTML = a.innerHTML)) + : "input" === c && Ea.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); + } + } + function y(b, c) { + var d, + e = ea(c.createElement(b)).appendTo(c.body), + f = + a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) + ? d.display + : ea.css(e[0], "display"); + return e.detach(), f; + } + function z(a) { + var b = oa, + c = _a[a]; + return ( + c || + ((c = y(a, b)), + ("none" !== c && c) || + (($a = ( + $a || ea("', + inline_markup: '
    {content}
    ', + custom_markup: "", + social_tools: + '
    Tweet
    ', + }, + pp_settings + ); + var pp_dimensions, + pp_open, + pp_contentHeight, + pp_contentWidth, + pp_containerHeight, + pp_containerWidth, + pp_slideshow, + matchedObjects = this, + percentBased = !1, + windowHeight = $(window).height(), + windowWidth = $(window).width(); + return ( + (doresize = !0), + (scroll_pos = _get_scroll()), + $(window) + .unbind("resize.prettyphoto") + .bind("resize.prettyphoto", function () { + _center_overlay(), _resize_overlay(); + }), + pp_settings.keyboard_shortcuts && + $(document) + .unbind("keydown.prettyphoto") + .bind("keydown.prettyphoto", function (e) { + if ( + "undefined" != typeof $pp_pic_holder && + $pp_pic_holder.is(":visible") + ) + switch (e.keyCode) { + case 37: + $.prettyPhoto.changePage("previous"), e.preventDefault(); + break; + case 39: + $.prettyPhoto.changePage("next"), e.preventDefault(); + break; + case 27: + settings.modal || $.prettyPhoto.close(), e.preventDefault(); + } + }), + ($.prettyPhoto.initialize = function () { + return ( + (settings = pp_settings), + "pp_default" == settings.theme && + (settings.horizontal_padding = 16), + (theRel = $(this).attr(settings.hook)), + (galleryRegExp = /\[(?:.*)\]/), + (isSet = galleryRegExp.exec(theRel) ? !0 : !1), + (pp_images = isSet + ? jQuery.map(matchedObjects, function (n, i) { + return -1 != $(n).attr(settings.hook).indexOf(theRel) + ? $(n).attr("href") + : void 0; + }) + : $.makeArray($(this).attr("href"))), + (pp_titles = isSet + ? jQuery.map(matchedObjects, function (n, i) { + return -1 != $(n).attr(settings.hook).indexOf(theRel) + ? $(n).find("img").attr("alt") + ? $(n).find("img").attr("alt") + : "" + : void 0; + }) + : $.makeArray($(this).find("img").attr("alt"))), + (pp_descriptions = isSet + ? jQuery.map(matchedObjects, function (n, i) { + return -1 != $(n).attr(settings.hook).indexOf(theRel) + ? $(n).attr("title") + ? $(n).attr("title") + : "" + : void 0; + }) + : $.makeArray($(this).attr("title"))), + pp_images.length > settings.overlay_gallery_max && + (settings.overlay_gallery = !1), + (set_position = jQuery.inArray($(this).attr("href"), pp_images)), + (rel_index = isSet + ? set_position + : $("a[" + settings.hook + "^='" + theRel + "']").index($(this))), + _build_overlay(this), + settings.allow_resize && + $(window).bind("scroll.prettyphoto", function () { + _center_overlay(); + }), + $.prettyPhoto.open(), + !1 + ); + }), + ($.prettyPhoto.open = function (event) { + return ( + "undefined" == typeof settings && + ((settings = pp_settings), + (pp_images = $.makeArray(arguments[0])), + (pp_titles = arguments[1] + ? $.makeArray(arguments[1]) + : $.makeArray("")), + (pp_descriptions = arguments[2] + ? $.makeArray(arguments[2]) + : $.makeArray("")), + (isSet = pp_images.length > 1 ? !0 : !1), + (set_position = arguments[3] ? arguments[3] : 0), + _build_overlay(event.target)), + settings.hideflash && + $("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css( + "visibility", + "hidden" + ), + _checkPosition($(pp_images).size()), + $(".pp_loaderIcon").show(), + settings.deeplinking && setHashtag(), + settings.social_tools && + ((facebook_like_link = settings.social_tools.replace( + "{location_href}", + encodeURIComponent(location.href) + )), + $pp_pic_holder.find(".pp_social").html(facebook_like_link)), + $ppt.is(":hidden") && $ppt.css("opacity", 0).show(), + $pp_overlay + .show() + .fadeTo(settings.animation_speed, settings.opacity), + $pp_pic_holder + .find(".currentTextHolder") + .text( + set_position + + 1 + + settings.counter_separator_label + + $(pp_images).size() + ), + "undefined" != typeof pp_descriptions[set_position] && + "" != pp_descriptions[set_position] + ? $pp_pic_holder + .find(".pp_description") + .show() + .html(unescape(pp_descriptions[set_position])) + : $pp_pic_holder.find(".pp_description").hide(), + (movie_width = parseFloat( + getParam("width", pp_images[set_position]) + ) + ? getParam("width", pp_images[set_position]) + : settings.default_width.toString()), + (movie_height = parseFloat( + getParam("height", pp_images[set_position]) + ) + ? getParam("height", pp_images[set_position]) + : settings.default_height.toString()), + (percentBased = !1), + -1 != movie_height.indexOf("%") && + ((movie_height = parseFloat( + ($(window).height() * parseFloat(movie_height)) / 100 - 150 + )), + (percentBased = !0)), + -1 != movie_width.indexOf("%") && + ((movie_width = parseFloat( + ($(window).width() * parseFloat(movie_width)) / 100 - 150 + )), + (percentBased = !0)), + $pp_pic_holder.fadeIn(function () { + switch ( + (settings.show_title && + "" != pp_titles[set_position] && + "undefined" != typeof pp_titles[set_position] + ? $ppt.html(unescape(pp_titles[set_position])) + : $ppt.html(" "), + (imgPreloader = ""), + (skipInjection = !1), + _getFileType(pp_images[set_position])) + ) { + case "image": + (imgPreloader = new Image()), + (nextImage = new Image()), + isSet && + set_position < $(pp_images).size() - 1 && + (nextImage.src = pp_images[set_position + 1]), + (prevImage = new Image()), + isSet && + pp_images[set_position - 1] && + (prevImage.src = pp_images[set_position - 1]), + ($pp_pic_holder.find("#pp_full_res")[0].innerHTML = + settings.image_markup.replace( + /{path}/g, + pp_images[set_position] + )), + (imgPreloader.onload = function () { + (pp_dimensions = _fitToViewport( + imgPreloader.width, + imgPreloader.height + )), + _showContent(); + }), + (imgPreloader.onerror = function () { + alert( + "Image cannot be loaded. Make sure the path is correct and image exist." + ), + $.prettyPhoto.close(); + }), + (imgPreloader.src = pp_images[set_position]); + break; + case "youtube": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (movie_id = getParam("v", pp_images[set_position])), + "" == movie_id && + ((movie_id = pp_images[set_position].split("youtu.be/")), + (movie_id = movie_id[1]), + movie_id.indexOf("?") > 0 && + (movie_id = movie_id.substr(0, movie_id.indexOf("?"))), + movie_id.indexOf("&") > 0 && + (movie_id = movie_id.substr(0, movie_id.indexOf("&")))), + (movie = "http://www.youtube.com/embed/" + movie_id), + getParam("rel", pp_images[set_position]) + ? (movie += + "?rel=" + getParam("rel", pp_images[set_position])) + : (movie += "?rel=1"), + settings.autoplay && (movie += "&autoplay=1"), + (toInject = settings.iframe_markup + .replace(/{width}/g, pp_dimensions.width) + .replace(/{height}/g, pp_dimensions.height) + .replace(/{wmode}/g, settings.wmode) + .replace(/{path}/g, movie)); + break; + case "vimeo": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (movie_id = pp_images[set_position]); + var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/, + match = movie_id.match(regExp); + (movie = + "http://player.vimeo.com/video/" + + match[3] + + "?title=0&byline=0&portrait=0"), + settings.autoplay && (movie += "&autoplay=1;"), + (vimeo_width = + pp_dimensions.width + + "/embed/?moog_width=" + + pp_dimensions.width), + (toInject = settings.iframe_markup + .replace(/{width}/g, vimeo_width) + .replace(/{height}/g, pp_dimensions.height) + .replace(/{path}/g, movie)); + break; + case "quicktime": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (pp_dimensions.height += 15), + (pp_dimensions.contentHeight += 15), + (pp_dimensions.containerHeight += 15), + (toInject = settings.quicktime_markup + .replace(/{width}/g, pp_dimensions.width) + .replace(/{height}/g, pp_dimensions.height) + .replace(/{wmode}/g, settings.wmode) + .replace(/{path}/g, pp_images[set_position]) + .replace(/{autoplay}/g, settings.autoplay)); + break; + case "flash": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (flash_vars = pp_images[set_position]), + (flash_vars = flash_vars.substring( + pp_images[set_position].indexOf("flashvars") + 10, + pp_images[set_position].length + )), + (filename = pp_images[set_position]), + (filename = filename.substring(0, filename.indexOf("?"))), + (toInject = settings.flash_markup + .replace(/{width}/g, pp_dimensions.width) + .replace(/{height}/g, pp_dimensions.height) + .replace(/{wmode}/g, settings.wmode) + .replace(/{path}/g, filename + "?" + flash_vars)); + break; + case "iframe": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (frame_url = pp_images[set_position]), + (frame_url = frame_url.substr( + 0, + frame_url.indexOf("iframe") - 1 + )), + (toInject = settings.iframe_markup + .replace(/{width}/g, pp_dimensions.width) + .replace(/{height}/g, pp_dimensions.height) + .replace(/{path}/g, frame_url)); + break; + case "ajax": + (doresize = !1), + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (doresize = !0), + (skipInjection = !0), + $.get(pp_images[set_position], function (responseHTML) { + (toInject = settings.inline_markup.replace( + /{content}/g, + responseHTML + )), + ($pp_pic_holder.find("#pp_full_res")[0].innerHTML = + toInject), + _showContent(); + }); + break; + case "custom": + (pp_dimensions = _fitToViewport(movie_width, movie_height)), + (toInject = settings.custom_markup); + break; + case "inline": + (myClone = $(pp_images[set_position]) + .clone() + .append('
    ') + .css({ width: settings.default_width }) + .wrapInner( + '
    ' + ) + .appendTo($("body")) + .show()), + (doresize = !1), + (pp_dimensions = _fitToViewport( + $(myClone).width(), + $(myClone).height() + )), + (doresize = !0), + $(myClone).remove(), + (toInject = settings.inline_markup.replace( + /{content}/g, + $(pp_images[set_position]).html() + )); + } + imgPreloader || + skipInjection || + (($pp_pic_holder.find("#pp_full_res")[0].innerHTML = toInject), + _showContent()); + }), + !1 + ); + }), + ($.prettyPhoto.changePage = function (direction) { + (currentGalleryPage = 0), + "previous" == direction + ? (set_position--, + set_position < 0 && (set_position = $(pp_images).size() - 1)) + : "next" == direction + ? (set_position++, + set_position > $(pp_images).size() - 1 && (set_position = 0)) + : (set_position = direction), + (rel_index = set_position), + doresize || (doresize = !0), + settings.allow_expand && + $(".pp_contract") + .removeClass("pp_contract") + .addClass("pp_expand"), + _hideContent(function () { + $.prettyPhoto.open(); + }); + }), + ($.prettyPhoto.changeGalleryPage = function (direction) { + "next" == direction + ? (currentGalleryPage++, + currentGalleryPage > totalPage && (currentGalleryPage = 0)) + : "previous" == direction + ? (currentGalleryPage--, + currentGalleryPage < 0 && (currentGalleryPage = totalPage)) + : (currentGalleryPage = direction), + (slide_speed = + "next" == direction || "previous" == direction + ? settings.animation_speed + : 0), + (slide_to = currentGalleryPage * (itemsPerPage * itemWidth)), + $pp_gallery.find("ul").animate({ left: -slide_to }, slide_speed); + }), + ($.prettyPhoto.startSlideshow = function () { + "undefined" == typeof pp_slideshow + ? ($pp_pic_holder + .find(".pp_play") + .unbind("click") + .removeClass("pp_play") + .addClass("pp_pause") + .click(function () { + return $.prettyPhoto.stopSlideshow(), !1; + }), + (pp_slideshow = setInterval( + $.prettyPhoto.startSlideshow, + settings.slideshow + ))) + : $.prettyPhoto.changePage("next"); + }), + ($.prettyPhoto.stopSlideshow = function () { + $pp_pic_holder + .find(".pp_pause") + .unbind("click") + .removeClass("pp_pause") + .addClass("pp_play") + .click(function () { + return $.prettyPhoto.startSlideshow(), !1; + }), + clearInterval(pp_slideshow), + (pp_slideshow = void 0); + }), + ($.prettyPhoto.close = function () { + $pp_overlay.is(":animated") || + ($.prettyPhoto.stopSlideshow(), + $pp_pic_holder + .stop() + .find("object,embed") + .css("visibility", "hidden"), + $("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut( + settings.animation_speed, + function () { + $(this).remove(); + } + ), + $pp_overlay.fadeOut(settings.animation_speed, function () { + settings.hideflash && + $("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css( + "visibility", + "visible" + ), + $(this).remove(), + $(window).unbind("scroll.prettyphoto"), + clearHashtag(), + settings.callback(), + (doresize = !0), + (pp_open = !1), + delete settings; + })); + }), + !pp_alreadyInitialized && + getHashtag() && + ((pp_alreadyInitialized = !0), + (hashIndex = getHashtag()), + (hashRel = hashIndex), + (hashIndex = hashIndex.substring( + hashIndex.indexOf("/") + 1, + hashIndex.length - 1 + )), + (hashRel = hashRel.substring(0, hashRel.indexOf("/"))), + setTimeout(function () { + $( + "a[" + + pp_settings.hook + + "^='" + + hashRel + + "']:eq(" + + hashIndex + + ")" + ).trigger("click"); + }, 50)), + this.unbind("click.prettyphoto").bind( + "click.prettyphoto", + $.prettyPhoto.initialize + ) + ); + }); +})(jQuery); +var pp_alreadyInitialized = !1; diff --git a/public/js/lightbox.js b/public/js/lightbox.js new file mode 100644 index 0000000..77d2d6f --- /dev/null +++ b/public/js/lightbox.js @@ -0,0 +1,637 @@ +/*! + * Lightbox v2.11.4 + * by Lokesh Dhakar + * + * More info: + * http://lokeshdhakar.com/projects/lightbox2/ + * + * Copyright Lokesh Dhakar + * Released under the MIT license + * https://github.com/lokesh/lightbox2/blob/master/LICENSE + * + * @preserve + */ + +// Uses Node, AMD or browser globals to create a module. +(function (root, factory) { + if (typeof define === "function" && define.amd) { + // AMD. Register as an anonymous module. + define(["jquery"], factory); + } else if (typeof exports === "object") { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(require("jquery")); + } else { + // Browser globals (root is window) + root.lightbox = factory(root.jQuery); + } +})(this, function ($) { + function Lightbox(options) { + this.album = []; + this.currentImageIndex = void 0; + this.init(); + + // options + this.options = $.extend({}, this.constructor.defaults); + this.option(options); + } + + // Descriptions of all options available on the demo site: + // http://lokeshdhakar.com/projects/lightbox2/index.html#options + Lightbox.defaults = { + albumLabel: "Image %1 of %2", + alwaysShowNavOnTouchDevices: false, + fadeDuration: 600, + fitImagesInViewport: true, + imageFadeDuration: 600, + // maxWidth: 800, + // maxHeight: 600, + positionFromTop: 50, + resizeDuration: 700, + showImageNumberLabel: true, + wrapAround: false, + disableScrolling: false, + /* + Sanitize Title + If the caption data is trusted, for example you are hardcoding it in, then leave this to false. + This will free you to add html tags, such as links, in the caption. + + If the caption data is user submitted or from some other untrusted source, then set this to true + to prevent xss and other injection attacks. + */ + sanitizeTitle: false, + }; + + Lightbox.prototype.option = function (options) { + $.extend(this.options, options); + }; + + Lightbox.prototype.imageCountLabel = function (currentImageNum, totalImages) { + return this.options.albumLabel + .replace(/%1/g, currentImageNum) + .replace(/%2/g, totalImages); + }; + + Lightbox.prototype.init = function () { + var self = this; + // Both enable and build methods require the body tag to be in the DOM. + $(document).ready(function () { + self.enable(); + self.build(); + }); + }; + + // Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes + // that contain 'lightbox'. When these are clicked, start lightbox. + Lightbox.prototype.enable = function () { + var self = this; + $("body").on( + "click", + "a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]", + function (event) { + self.start($(event.currentTarget)); + return false; + } + ); + }; + + // Build html for the lightbox and the overlay. + // Attach event handlers to the new DOM elements. click click click + Lightbox.prototype.build = function () { + if ($("#lightbox").length > 0) { + return; + } + + var self = this; + + // The two root notes generated, #lightboxOverlay and #lightbox are given + // tabindex attrs so they are focusable. We attach our keyboard event + // listeners to these two elements, and not the document. Clicking anywhere + // while Lightbox is opened will keep the focus on or inside one of these + // two elements. + // + // We do this so we can prevent propogation of the Esc keypress when + // Lightbox is open. This prevents it from intefering with other components + // on the page below. + // + // Github issue: https://github.com/lokesh/lightbox2/issues/663 + $( + '
    ' + ).appendTo($("body")); + + // Cache jQuery objects + this.$lightbox = $("#lightbox"); + this.$overlay = $("#lightboxOverlay"); + this.$outerContainer = this.$lightbox.find(".lb-outerContainer"); + this.$container = this.$lightbox.find(".lb-container"); + this.$image = this.$lightbox.find(".lb-image"); + this.$nav = this.$lightbox.find(".lb-nav"); + + // Store css values for future lookup + this.containerPadding = { + top: parseInt(this.$container.css("padding-top"), 10), + right: parseInt(this.$container.css("padding-right"), 10), + bottom: parseInt(this.$container.css("padding-bottom"), 10), + left: parseInt(this.$container.css("padding-left"), 10), + }; + + this.imageBorderWidth = { + top: parseInt(this.$image.css("border-top-width"), 10), + right: parseInt(this.$image.css("border-right-width"), 10), + bottom: parseInt(this.$image.css("border-bottom-width"), 10), + left: parseInt(this.$image.css("border-left-width"), 10), + }; + + // Attach event handlers to the newly minted DOM elements + this.$overlay.hide().on("click", function () { + self.end(); + return false; + }); + + this.$lightbox.hide().on("click", function (event) { + if ($(event.target).attr("id") === "lightbox") { + self.end(); + } + }); + + this.$outerContainer.on("click", function (event) { + if ($(event.target).attr("id") === "lightbox") { + self.end(); + } + return false; + }); + + this.$lightbox.find(".lb-prev").on("click", function () { + if (self.currentImageIndex === 0) { + self.changeImage(self.album.length - 1); + } else { + self.changeImage(self.currentImageIndex - 1); + } + return false; + }); + + this.$lightbox.find(".lb-next").on("click", function () { + if (self.currentImageIndex === self.album.length - 1) { + self.changeImage(0); + } else { + self.changeImage(self.currentImageIndex + 1); + } + return false; + }); + + /* + Show context menu for image on right-click + + There is a div containing the navigation that spans the entire image and lives above of it. If + you right-click, you are right clicking this div and not the image. This prevents users from + saving the image or using other context menu actions with the image. + + To fix this, when we detect the right mouse button is pressed down, but not yet clicked, we + set pointer-events to none on the nav div. This is so that the upcoming right-click event on + the next mouseup will bubble down to the image. Once the right-click/contextmenu event occurs + we set the pointer events back to auto for the nav div so it can capture hover and left-click + events as usual. + */ + this.$nav.on("mousedown", function (event) { + if (event.which === 3) { + self.$nav.css("pointer-events", "none"); + + self.$lightbox.one("contextmenu", function () { + setTimeout( + function () { + this.$nav.css("pointer-events", "auto"); + }.bind(self), + 0 + ); + }); + } + }); + + this.$lightbox + .find(".lb-loader, .lb-close") + .on("click keyup", function (e) { + // If mouse click OR 'enter' or 'space' keypress, close LB + if ( + e.type === "click" || + (e.type === "keyup" && (e.which === 13 || e.which === 32)) + ) { + self.end(); + return false; + } + }); + }; + + // Show overlay and lightbox. If the image is part of a set, add siblings to album array. + Lightbox.prototype.start = function ($link) { + var self = this; + var $window = $(window); + + $window.on("resize", $.proxy(this.sizeOverlay, this)); + + this.sizeOverlay(); + + this.album = []; + var imageNumber = 0; + + function addToAlbum($link) { + self.album.push({ + alt: $link.attr("data-alt"), + link: $link.attr("href"), + title: $link.attr("data-title") || $link.attr("title"), + }); + } + + // Support both data-lightbox attribute and rel attribute implementations + var dataLightboxValue = $link.attr("data-lightbox"); + var $links; + + if (dataLightboxValue) { + $links = $( + $link.prop("tagName") + '[data-lightbox="' + dataLightboxValue + '"]' + ); + for (var i = 0; i < $links.length; i = ++i) { + addToAlbum($($links[i])); + if ($links[i] === $link[0]) { + imageNumber = i; + } + } + } else { + if ($link.attr("rel") === "lightbox") { + // If image is not part of a set + addToAlbum($link); + } else { + // If image is part of a set + $links = $($link.prop("tagName") + '[rel="' + $link.attr("rel") + '"]'); + for (var j = 0; j < $links.length; j = ++j) { + addToAlbum($($links[j])); + if ($links[j] === $link[0]) { + imageNumber = j; + } + } + } + } + + // Position Lightbox + var top = $window.scrollTop() + this.options.positionFromTop; + var left = $window.scrollLeft(); + this.$lightbox + .css({ + top: top + "px", + left: left + "px", + }) + .fadeIn(this.options.fadeDuration); + + // Disable scrolling of the page while open + if (this.options.disableScrolling) { + $("body").addClass("lb-disable-scrolling"); + } + + this.changeImage(imageNumber); + }; + + // Hide most UI elements in preparation for the animated resizing of the lightbox. + Lightbox.prototype.changeImage = function (imageNumber) { + var self = this; + var filename = this.album[imageNumber].link; + var filetype = filename.split(".").slice(-1)[0]; + var $image = this.$lightbox.find(".lb-image"); + + // Disable keyboard nav during transitions + this.disableKeyboardNav(); + + // Show loading state + this.$overlay.fadeIn(this.options.fadeDuration); + $(".lb-loader").fadeIn("slow"); + this.$lightbox + .find( + ".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption" + ) + .hide(); + this.$outerContainer.addClass("animating"); + + // When image to show is preloaded, we send the width and height to sizeContainer() + var preloader = new Image(); + preloader.onload = function () { + var $preloader; + var imageHeight; + var imageWidth; + var maxImageHeight; + var maxImageWidth; + var windowHeight; + var windowWidth; + + $image.attr({ + alt: self.album[imageNumber].alt, + src: filename, + }); + + $preloader = $(preloader); + + $image.width(preloader.width); + $image.height(preloader.height); + + var aspectRatio = preloader.width / preloader.height; + + windowWidth = $(window).width(); + windowHeight = $(window).height(); + + // Calculate the max image dimensions for the current viewport. + // Take into account the border around the image and an additional 10px gutter on each side. + maxImageWidth = + windowWidth - + self.containerPadding.left - + self.containerPadding.right - + self.imageBorderWidth.left - + self.imageBorderWidth.right - + 20; + maxImageHeight = + windowHeight - + self.containerPadding.top - + self.containerPadding.bottom - + self.imageBorderWidth.top - + self.imageBorderWidth.bottom - + self.options.positionFromTop - + 70; + + /* + Since many SVGs have small intrinsic dimensions, but they support scaling + up without quality loss because of their vector format, max out their + size inside the viewport. + */ + if (filetype === "svg") { + if (aspectRatio >= 1) { + imageWidth = maxImageWidth; + imageHeight = parseInt(maxImageWidth / aspectRatio, 10); + } else { + imageWidth = parseInt(maxImageHeight / aspectRatio, 10); + imageHeight = maxImageHeight; + } + $image.width(imageWidth); + $image.height(imageHeight); + } else { + // Fit image inside the viewport. + if (self.options.fitImagesInViewport) { + // Check if image size is larger then maxWidth|maxHeight in settings + if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) { + maxImageWidth = self.options.maxWidth; + } + if ( + self.options.maxHeight && + self.options.maxHeight < maxImageHeight + ) { + maxImageHeight = self.options.maxHeight; + } + } else { + maxImageWidth = + self.options.maxWidth || preloader.width || maxImageWidth; + maxImageHeight = + self.options.maxHeight || preloader.height || maxImageHeight; + } + + // Is the current image's width or height is greater than the maxImageWidth or maxImageHeight + // option than we need to size down while maintaining the aspect ratio. + if ( + preloader.width > maxImageWidth || + preloader.height > maxImageHeight + ) { + if ( + preloader.width / maxImageWidth > + preloader.height / maxImageHeight + ) { + imageWidth = maxImageWidth; + imageHeight = parseInt( + preloader.height / (preloader.width / imageWidth), + 10 + ); + $image.width(imageWidth); + $image.height(imageHeight); + } else { + imageHeight = maxImageHeight; + imageWidth = parseInt( + preloader.width / (preloader.height / imageHeight), + 10 + ); + $image.width(imageWidth); + $image.height(imageHeight); + } + } + } + + self.sizeContainer($image.width(), $image.height()); + }; + + // Preload image before showing + preloader.src = this.album[imageNumber].link; + this.currentImageIndex = imageNumber; + }; + + // Stretch overlay to fit the viewport + Lightbox.prototype.sizeOverlay = function () { + var self = this; + /* + We use a setTimeout 0 to pause JS execution and let the rendering catch-up. + Why do this? If the `disableScrolling` option is set to true, a class is added to the body + tag that disables scrolling and hides the scrollbar. We want to make sure the scrollbar is + hidden before we measure the document width, as the presence of the scrollbar will affect the + number. + */ + setTimeout(function () { + self.$overlay.width($(document).width()).height($(document).height()); + }, 0); + }; + + // Animate the size of the lightbox to fit the image we are showing + // This method also shows the the image. + Lightbox.prototype.sizeContainer = function (imageWidth, imageHeight) { + var self = this; + + var oldWidth = this.$outerContainer.outerWidth(); + var oldHeight = this.$outerContainer.outerHeight(); + var newWidth = + imageWidth + + this.containerPadding.left + + this.containerPadding.right + + this.imageBorderWidth.left + + this.imageBorderWidth.right; + var newHeight = + imageHeight + + this.containerPadding.top + + this.containerPadding.bottom + + this.imageBorderWidth.top + + this.imageBorderWidth.bottom; + + function postResize() { + self.$lightbox.find(".lb-dataContainer").width(newWidth); + self.$lightbox.find(".lb-prevLink").height(newHeight); + self.$lightbox.find(".lb-nextLink").height(newHeight); + + // Set focus on one of the two root nodes so keyboard events are captured. + self.$overlay.trigger("focus"); + + self.showImage(); + } + + if (oldWidth !== newWidth || oldHeight !== newHeight) { + this.$outerContainer.animate( + { + width: newWidth, + height: newHeight, + }, + this.options.resizeDuration, + "swing", + function () { + postResize(); + } + ); + } else { + postResize(); + } + }; + + // Display the image and its details and begin preload neighboring images. + Lightbox.prototype.showImage = function () { + this.$lightbox.find(".lb-loader").stop(true).hide(); + this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration); + + this.updateNav(); + this.updateDetails(); + this.preloadNeighboringImages(); + this.enableKeyboardNav(); + }; + + // Display previous and next navigation if appropriate. + Lightbox.prototype.updateNav = function () { + // Check to see if the browser supports touch events. If so, we take the conservative approach + // and assume that mouse hover events are not supported and always show prev/next navigation + // arrows in image sets. + var alwaysShowNav = false; + try { + document.createEvent("TouchEvent"); + alwaysShowNav = this.options.alwaysShowNavOnTouchDevices ? true : false; + } catch (e) {} + + this.$lightbox.find(".lb-nav").show(); + + if (this.album.length > 1) { + if (this.options.wrapAround) { + if (alwaysShowNav) { + this.$lightbox.find(".lb-prev, .lb-next").css("opacity", "1"); + } + this.$lightbox.find(".lb-prev, .lb-next").show(); + } else { + if (this.currentImageIndex > 0) { + this.$lightbox.find(".lb-prev").show(); + if (alwaysShowNav) { + this.$lightbox.find(".lb-prev").css("opacity", "1"); + } + } + if (this.currentImageIndex < this.album.length - 1) { + this.$lightbox.find(".lb-next").show(); + if (alwaysShowNav) { + this.$lightbox.find(".lb-next").css("opacity", "1"); + } + } + } + } + }; + + // Display caption, image number, and closing button. + Lightbox.prototype.updateDetails = function () { + var self = this; + + // Enable anchor clicks in the injected caption html. + // Thanks Nate Wright for the fix. @https://github.com/NateWr + if ( + typeof this.album[this.currentImageIndex].title !== "undefined" && + this.album[this.currentImageIndex].title !== "" + ) { + var $caption = this.$lightbox.find(".lb-caption"); + if (this.options.sanitizeTitle) { + $caption.text(this.album[this.currentImageIndex].title); + } else { + $caption.html(this.album[this.currentImageIndex].title); + } + $caption.fadeIn("fast"); + } + + if (this.album.length > 1 && this.options.showImageNumberLabel) { + var labelText = this.imageCountLabel( + this.currentImageIndex + 1, + this.album.length + ); + this.$lightbox.find(".lb-number").text(labelText).fadeIn("fast"); + } else { + this.$lightbox.find(".lb-number").hide(); + } + + this.$outerContainer.removeClass("animating"); + + this.$lightbox + .find(".lb-dataContainer") + .fadeIn(this.options.resizeDuration, function () { + return self.sizeOverlay(); + }); + }; + + // Preload previous and next images in set. + Lightbox.prototype.preloadNeighboringImages = function () { + if (this.album.length > this.currentImageIndex + 1) { + var preloadNext = new Image(); + preloadNext.src = this.album[this.currentImageIndex + 1].link; + } + if (this.currentImageIndex > 0) { + var preloadPrev = new Image(); + preloadPrev.src = this.album[this.currentImageIndex - 1].link; + } + }; + + Lightbox.prototype.enableKeyboardNav = function () { + this.$lightbox.on("keyup.keyboard", $.proxy(this.keyboardAction, this)); + this.$overlay.on("keyup.keyboard", $.proxy(this.keyboardAction, this)); + }; + + Lightbox.prototype.disableKeyboardNav = function () { + this.$lightbox.off(".keyboard"); + this.$overlay.off(".keyboard"); + }; + + Lightbox.prototype.keyboardAction = function (event) { + var KEYCODE_ESC = 27; + var KEYCODE_LEFTARROW = 37; + var KEYCODE_RIGHTARROW = 39; + + var keycode = event.keyCode; + if (keycode === KEYCODE_ESC) { + // Prevent bubbling so as to not affect other components on the page. + event.stopPropagation(); + this.end(); + } else if (keycode === KEYCODE_LEFTARROW) { + if (this.currentImageIndex !== 0) { + this.changeImage(this.currentImageIndex - 1); + } else if (this.options.wrapAround && this.album.length > 1) { + this.changeImage(this.album.length - 1); + } + } else if (keycode === KEYCODE_RIGHTARROW) { + if (this.currentImageIndex !== this.album.length - 1) { + this.changeImage(this.currentImageIndex + 1); + } else if (this.options.wrapAround && this.album.length > 1) { + this.changeImage(0); + } + } + }; + + // Closing time. :-( + Lightbox.prototype.end = function () { + this.disableKeyboardNav(); + $(window).off("resize", this.sizeOverlay); + this.$lightbox.fadeOut(this.options.fadeDuration); + this.$overlay.fadeOut(this.options.fadeDuration); + + if (this.options.disableScrolling) { + $("body").removeClass("lb-disable-scrolling"); + } + }; + + return new Lightbox(); +}); diff --git a/public/js/modernizr.js b/public/js/modernizr.js new file mode 100644 index 0000000..c78f50c --- /dev/null +++ b/public/js/modernizr.js @@ -0,0 +1,1447 @@ +/*! + * Modernizr v2.8.3 + * www.modernizr.com + * + * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton + * Available under the BSD and MIT licenses: www.modernizr.com/license/ + */ + +/* + * Modernizr tests which native CSS3 and HTML5 features are available in + * the current UA and makes the results available to you in two ways: + * as properties on a global Modernizr object, and as classes on the + * element. This information allows you to progressively enhance + * your pages with a granular level of control over the experience. + * + * Modernizr has an optional (not included) conditional resource loader + * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). + * To get a build that includes Modernizr.load(), as well as choosing + * which tests to include, go to www.modernizr.com/download/ + * + * Authors Faruk Ates, Paul Irish, Alex Sexton + * Contributors Ryan Seddon, Ben Alman + */ + +window.Modernizr = (function (window, document, undefined) { + var version = "2.8.3", + Modernizr = {}, + /*>>cssclasses*/ + // option for enabling the HTML classes to be added + enableClasses = true, + /*>>cssclasses*/ + + docElement = document.documentElement, + /** + * Create our "modernizr" element that we do most feature tests on. + */ + mod = "modernizr", + modElem = document.createElement(mod), + mStyle = modElem.style, + /** + * Create the input element for various Web Forms feature tests. + */ + inputElem /*>>inputelem*/ = document.createElement("input") /*>>inputelem*/, + /*>>smile*/ + smile = ":)", + /*>>smile*/ + + toString = {}.toString, + // TODO :: make the prefixes more granular + /*>>prefixes*/ + // List of property values to set for css tests. See ticket #21 + prefixes = " -webkit- -moz- -o- -ms- ".split(" "), + /*>>prefixes*/ + + /*>>domprefixes*/ + // Following spec is to expose vendor-specific style properties as: + // elem.style.WebkitBorderRadius + // and the following would be incorrect: + // elem.style.webkitBorderRadius + + // Webkit ghosts their properties in lowercase but Opera & Moz do not. + // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ + // erik.eae.net/archives/2008/03/10/21.48.10/ + + // More here: github.com/Modernizr/Modernizr/issues/issue/21 + omPrefixes = "Webkit Moz O ms", + cssomPrefixes = omPrefixes.split(" "), + domPrefixes = omPrefixes.toLowerCase().split(" "), + /*>>domprefixes*/ + + /*>>ns*/ + ns = { svg: "http://www.w3.org/2000/svg" }, + /*>>ns*/ + + tests = {}, + inputs = {}, + attrs = {}, + classes = [], + slice = classes.slice, + featureName, // used in testing loop + /*>>teststyles*/ + // Inject element with style element and some CSS rules + injectElementWithStyles = function (rule, callback, nodes, testnames) { + var style, + ret, + node, + docOverflow, + div = document.createElement("div"), + // After page load injecting a fake body doesn't work so check if body exists + body = document.body, + // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. + fakeBody = body || document.createElement("body"); + + if (parseInt(nodes, 10)) { + // In order not to give false positives we create a node for each test + // This also allows the method to scale for unspecified uses + while (nodes--) { + node = document.createElement("div"); + node.id = testnames ? testnames[nodes] : mod + (nodes + 1); + div.appendChild(node); + } + } + + // "].join(""); + div.id = mod; + // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. + // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 + (body ? div : fakeBody).innerHTML += style; + fakeBody.appendChild(div); + if (!body) { + //avoid crashing IE8, if background image is used + fakeBody.style.background = ""; + //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible + fakeBody.style.overflow = "hidden"; + docOverflow = docElement.style.overflow; + docElement.style.overflow = "hidden"; + docElement.appendChild(fakeBody); + } + + ret = callback(div, rule); + // If this is done after page load we don't want to remove the body so check if body exists + if (!body) { + fakeBody.parentNode.removeChild(fakeBody); + docElement.style.overflow = docOverflow; + } else { + div.parentNode.removeChild(div); + } + + return !!ret; + }, + /*>>teststyles*/ + + /*>>mq*/ + // adapted from matchMedia polyfill + // by Scott Jehl and Paul Irish + // gist.github.com/786768 + testMediaQuery = function (mq) { + var matchMedia = window.matchMedia || window.msMatchMedia; + if (matchMedia) { + return (matchMedia(mq) && matchMedia(mq).matches) || false; + } + + var bool; + + injectElementWithStyles( + "@media " + mq + " { #" + mod + " { position: absolute; } }", + function (node) { + bool = + (window.getComputedStyle + ? getComputedStyle(node, null) + : node.currentStyle)["position"] == "absolute"; + } + ); + + return bool; + }, + /*>>mq*/ + + /*>>hasevent*/ + // + // isEventSupported determines if a given element supports the given event + // kangax.github.com/iseventsupported/ + // + // The following results are known incorrects: + // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative + // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 + // ... + isEventSupported = (function () { + var TAGNAMES = { + select: "input", + change: "input", + submit: "form", + reset: "form", + error: "img", + load: "img", + abort: "img", + }; + + function isEventSupported(eventName, element) { + element = + element || document.createElement(TAGNAMES[eventName] || "div"); + eventName = "on" + eventName; + + // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those + var isSupported = eventName in element; + + if (!isSupported) { + // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element + if (!element.setAttribute) { + element = document.createElement("div"); + } + if (element.setAttribute && element.removeAttribute) { + element.setAttribute(eventName, ""); + isSupported = is(element[eventName], "function"); + + // If property was created, "remove it" (by setting value to `undefined`) + if (!is(element[eventName], "undefined")) { + element[eventName] = undefined; + } + element.removeAttribute(eventName); + } + } + + element = null; + return isSupported; + } + return isEventSupported; + })(), + /*>>hasevent*/ + + // TODO :: Add flag for hasownprop ? didn't last time + + // hasOwnProperty shim by kangax needed for Safari 2.0 support + _hasOwnProperty = {}.hasOwnProperty, + hasOwnProp; + + if ( + !is(_hasOwnProperty, "undefined") && + !is(_hasOwnProperty.call, "undefined") + ) { + hasOwnProp = function (object, property) { + return _hasOwnProperty.call(object, property); + }; + } else { + hasOwnProp = function (object, property) { + /* yes, this can give false positives/negatives, but most of the time we don't care about those */ + return ( + property in object && + is(object.constructor.prototype[property], "undefined") + ); + }; + } + + // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js + // es5.github.com/#x15.3.4.5 + + if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { + var target = this; + + if (typeof target != "function") { + throw new TypeError(); + } + + var args = slice.call(arguments, 1), + bound = function () { + if (this instanceof bound) { + var F = function () {}; + F.prototype = target.prototype; + var self = new F(); + + var result = target.apply(self, args.concat(slice.call(arguments))); + if (Object(result) === result) { + return result; + } + return self; + } else { + return target.apply(that, args.concat(slice.call(arguments))); + } + }; + + return bound; + }; + } + + /** + * setCss applies given styles to the Modernizr DOM node. + */ + function setCss(str) { + mStyle.cssText = str; + } + + /** + * setCssAll extrapolates all vendor-specific css strings. + */ + function setCssAll(str1, str2) { + return setCss(prefixes.join(str1 + ";") + (str2 || "")); + } + + /** + * is returns a boolean for if typeof obj is exactly type. + */ + function is(obj, type) { + return typeof obj === type; + } + + /** + * contains returns a boolean for if substr is found within str. + */ + function contains(str, substr) { + return !!~("" + str).indexOf(substr); + } + + /*>>testprop*/ + + // testProps is a generic CSS / DOM property test. + + // In testing support for a given CSS property, it's legit to test: + // `elem.style[styleName] !== undefined` + // If the property is supported it will return an empty string, + // if unsupported it will return undefined. + + // We'll take advantage of this quick test and skip setting a style + // on our modernizr element, but instead just testing undefined vs + // empty string. + + // Because the testing of the CSS property names (with "-", as + // opposed to the camelCase DOM properties) is non-portable and + // non-standard but works in WebKit and IE (but not Gecko or Opera), + // we explicitly reject properties with dashes so that authors + // developing in WebKit or IE first don't end up with + // browser-specific content by accident. + + function testProps(props, prefixed) { + for (var i in props) { + var prop = props[i]; + if (!contains(prop, "-") && mStyle[prop] !== undefined) { + return prefixed == "pfx" ? prop : true; + } + } + return false; + } + /*>>testprop*/ + + // TODO :: add testDOMProps + /** + * testDOMProps is a generic DOM property test; if a browser supports + * a certain property, it won't return undefined for it. + */ + function testDOMProps(props, obj, elem) { + for (var i in props) { + var item = obj[props[i]]; + if (item !== undefined) { + // return the property name as a string + if (elem === false) return props[i]; + + // let's bind a function + if (is(item, "function")) { + // default to autobind unless override + return item.bind(elem || obj); + } + + // return the unbound function or obj or value + return item; + } + } + return false; + } + + /*>>testallprops*/ + /** + * testPropsAll tests a list of DOM properties we want to check against. + * We specify literally ALL possible (known and/or likely) properties on + * the element including the non-vendor prefixed one, for forward- + * compatibility. + */ + function testPropsAll(prop, prefixed, elem) { + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + " " + cssomPrefixes.join(ucProp + " ") + ucProp).split( + " " + ); + + // did they call .prefixed('boxSizing') or are we just testing a prop? + if (is(prefixed, "string") || is(prefixed, "undefined")) { + return testProps(props, prefixed); + + // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) + } else { + props = (prop + " " + domPrefixes.join(ucProp + " ") + ucProp).split(" "); + return testDOMProps(props, prefixed, elem); + } + } + /*>>testallprops*/ + + /** + * Tests + * ----- + */ + + // The *new* flexbox + // dev.w3.org/csswg/css3-flexbox + + tests["flexbox"] = function () { + return testPropsAll("flexWrap"); + }; + + // The *old* flexbox + // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ + + tests["flexboxlegacy"] = function () { + return testPropsAll("boxDirection"); + }; + + // On the S60 and BB Storm, getContext exists, but always returns undefined + // so we actually have to call getContext() to verify + // github.com/Modernizr/Modernizr/issues/issue/97/ + + tests["canvas"] = function () { + var elem = document.createElement("canvas"); + return !!(elem.getContext && elem.getContext("2d")); + }; + + tests["canvastext"] = function () { + return !!( + Modernizr["canvas"] && + is(document.createElement("canvas").getContext("2d").fillText, "function") + ); + }; + + // webk.it/70117 is tracking a legit WebGL feature detect proposal + + // We do a soft detect which may false positive in order to avoid + // an expensive context creation: bugzil.la/732441 + + tests["webgl"] = function () { + return !!window.WebGLRenderingContext; + }; + + /* + * The Modernizr.touch test only indicates if the browser supports + * touch events, which does not necessarily reflect a touchscreen + * device, as evidenced by tablets running Windows 7 or, alas, + * the Palm Pre / WebOS (touch) phones. + * + * Additionally, Chrome (desktop) used to lie about its support on this, + * but that has since been rectified: crbug.com/36415 + * + * We also test for Firefox 4 Multitouch Support. + * + * For more info, see: modernizr.github.com/Modernizr/touch.html + */ + + tests["touch"] = function () { + var bool; + + if ( + "ontouchstart" in window || + (window.DocumentTouch && document instanceof DocumentTouch) + ) { + bool = true; + } else { + injectElementWithStyles( + [ + "@media (", + prefixes.join("touch-enabled),("), + mod, + ")", + "{#modernizr{top:9px;position:absolute}}", + ].join(""), + function (node) { + bool = node.offsetTop === 9; + } + ); + } + + return bool; + }; + + // geolocation is often considered a trivial feature detect... + // Turns out, it's quite tricky to get right: + // + // Using !!navigator.geolocation does two things we don't want. It: + // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 + // 2. Disables page caching in WebKit: webk.it/43956 + // + // Meanwhile, in Firefox < 8, an about:config setting could expose + // a false positive that would throw an exception: bugzil.la/688158 + + tests["geolocation"] = function () { + return "geolocation" in navigator; + }; + + tests["postmessage"] = function () { + return !!window.postMessage; + }; + + // Chrome incognito mode used to throw an exception when using openDatabase + // It doesn't anymore. + tests["websqldatabase"] = function () { + return !!window.openDatabase; + }; + + // Vendors had inconsistent prefixing with the experimental Indexed DB: + // - Webkit's implementation is accessible through webkitIndexedDB + // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB + // For speed, we don't test the legacy (and beta-only) indexedDB + tests["indexedDB"] = function () { + return !!testPropsAll("indexedDB", window); + }; + + // documentMode logic from YUI to filter out IE8 Compat Mode + // which false positives. + tests["hashchange"] = function () { + return ( + isEventSupported("hashchange", window) && + (document.documentMode === undefined || document.documentMode > 7) + ); + }; + + // Per 1.6: + // This used to be Modernizr.historymanagement but the longer + // name has been deprecated in favor of a shorter and property-matching one. + // The old API is still available in 1.6, but as of 2.0 will throw a warning, + // and in the first release thereafter disappear entirely. + tests["history"] = function () { + return !!(window.history && history.pushState); + }; + + tests["draganddrop"] = function () { + var div = document.createElement("div"); + return "draggable" in div || ("ondragstart" in div && "ondrop" in div); + }; + + // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 + // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. + // FF10 still uses prefixes, so check for it until then. + // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ + tests["websockets"] = function () { + return "WebSocket" in window || "MozWebSocket" in window; + }; + + // css-tricks.com/rgba-browser-support/ + tests["rgba"] = function () { + // Set an rgba() color and check the returned value + + setCss("background-color:rgba(150,255,150,.5)"); + + return contains(mStyle.backgroundColor, "rgba"); + }; + + tests["hsla"] = function () { + // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, + // except IE9 who retains it as hsla + + setCss("background-color:hsla(120,40%,100%,.5)"); + + return ( + contains(mStyle.backgroundColor, "rgba") || + contains(mStyle.backgroundColor, "hsla") + ); + }; + + tests["multiplebgs"] = function () { + // Setting multiple images AND a color on the background shorthand property + // and then querying the style.background property value for the number of + // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! + + setCss("background:url(https://),url(https://),red url(https://)"); + + // If the UA supports multiple backgrounds, there should be three occurrences + // of the string "url(" in the return value for elemStyle.background + + return /(url\s*\(.*?){3}/.test(mStyle.background); + }; + + // this will false positive in Opera Mini + // github.com/Modernizr/Modernizr/issues/396 + + tests["backgroundsize"] = function () { + return testPropsAll("backgroundSize"); + }; + + tests["borderimage"] = function () { + return testPropsAll("borderImage"); + }; + + // Super comprehensive table about all the unique implementations of + // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance + + tests["borderradius"] = function () { + return testPropsAll("borderRadius"); + }; + + // WebOS unfortunately false positives on this test. + tests["boxshadow"] = function () { + return testPropsAll("boxShadow"); + }; + + // FF3.0 will false positive on this test + tests["textshadow"] = function () { + return document.createElement("div").style.textShadow === ""; + }; + + tests["opacity"] = function () { + // Browsers that actually have CSS Opacity implemented have done so + // according to spec, which means their return values are within the + // range of [0.0,1.0] - including the leading zero. + + setCssAll("opacity:.55"); + + // The non-literal . in this regex is intentional: + // German Chrome returns this value as 0,55 + // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 + return /^0.55$/.test(mStyle.opacity); + }; + + // Note, Android < 4 will pass this test, but can only animate + // a single property at a time + // goo.gl/v3V4Gp + tests["cssanimations"] = function () { + return testPropsAll("animationName"); + }; + + tests["csscolumns"] = function () { + return testPropsAll("columnCount"); + }; + + tests["cssgradients"] = function () { + /** + * For CSS Gradients syntax, please see: + * webkit.org/blog/175/introducing-css-gradients/ + * developer.mozilla.org/en/CSS/-moz-linear-gradient + * developer.mozilla.org/en/CSS/-moz-radial-gradient + * dev.w3.org/csswg/css3-images/#gradients- + */ + + var str1 = "background-image:", + str2 = "gradient(linear,left top,right bottom,from(#9f9),to(white));", + str3 = "linear-gradient(left top,#9f9, white);"; + + setCss( + // legacy webkit syntax (FIXME: remove when syntax not in use anymore) + ( + str1 + + "-webkit- ".split(" ").join(str2 + str1) + + // standard syntax // trailing 'background-image:' + prefixes.join(str3 + str1) + ).slice(0, -str1.length) + ); + + return contains(mStyle.backgroundImage, "gradient"); + }; + + tests["cssreflections"] = function () { + return testPropsAll("boxReflect"); + }; + + tests["csstransforms"] = function () { + return !!testPropsAll("transform"); + }; + + tests["csstransforms3d"] = function () { + var ret = !!testPropsAll("perspective"); + + // Webkit's 3D transforms are passed off to the browser's own graphics renderer. + // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in + // some conditions. As a result, Webkit typically recognizes the syntax but + // will sometimes throw a false positive, thus we must do a more thorough check: + if (ret && "webkitPerspective" in docElement.style) { + // Webkit allows this media query to succeed only if the feature is enabled. + // `@media (transform-3d),(-webkit-transform-3d){ ... }` + injectElementWithStyles( + "@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", + function (node, rule) { + ret = node.offsetLeft === 9 && node.offsetHeight === 3; + } + ); + } + return ret; + }; + + tests["csstransitions"] = function () { + return testPropsAll("transition"); + }; + + /*>>fontface*/ + // @font-face detection routine by Diego Perini + // javascript.nwbox.com/CSSSupport/ + + // false positives: + // WebOS github.com/Modernizr/Modernizr/issues/342 + // WP7 github.com/Modernizr/Modernizr/issues/538 + tests["fontface"] = function () { + var bool; + + injectElementWithStyles( + '@font-face {font-family:"font";src:url("https://")}', + function (node, rule) { + var style = document.getElementById("smodernizr"), + sheet = style.sheet || style.styleSheet, + cssText = sheet + ? sheet.cssRules && sheet.cssRules[0] + ? sheet.cssRules[0].cssText + : sheet.cssText || "" + : ""; + + bool = + /src/i.test(cssText) && cssText.indexOf(rule.split(" ")[0]) === 0; + } + ); + + return bool; + }; + /*>>fontface*/ + + // CSS generated content detection + tests["generatedcontent"] = function () { + var bool; + + injectElementWithStyles( + [ + "#", + mod, + "{font:0/0 a}#", + mod, + ':after{content:"', + smile, + '";visibility:hidden;font:3px/1 a}', + ].join(""), + function (node) { + bool = node.offsetHeight >= 3; + } + ); + + return bool; + }; + + // These tests evaluate support of the video/audio elements, as well as + // testing what types of content they support. + // + // We're using the Boolean constructor here, so that we can extend the value + // e.g. Modernizr.video // true + // Modernizr.video.ogg // 'probably' + // + // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 + // thx to NielsLeenheer and zcorpan + + // Note: in some older browsers, "no" was a return value instead of empty string. + // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 + // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 + + tests["video"] = function () { + var elem = document.createElement("video"), + bool = false; + + // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 + try { + if ((bool = !!elem.canPlayType)) { + bool = new Boolean(bool); + bool.ogg = elem + .canPlayType('video/ogg; codecs="theora"') + .replace(/^no$/, ""); + + // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 + bool.h264 = elem + .canPlayType('video/mp4; codecs="avc1.42E01E"') + .replace(/^no$/, ""); + + bool.webm = elem + .canPlayType('video/webm; codecs="vp8, vorbis"') + .replace(/^no$/, ""); + } + } catch (e) {} + + return bool; + }; + + tests["audio"] = function () { + var elem = document.createElement("audio"), + bool = false; + + try { + if ((bool = !!elem.canPlayType)) { + bool = new Boolean(bool); + bool.ogg = elem + .canPlayType('audio/ogg; codecs="vorbis"') + .replace(/^no$/, ""); + bool.mp3 = elem.canPlayType("audio/mpeg;").replace(/^no$/, ""); + + // Mimetypes accepted: + // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements + // bit.ly/iphoneoscodecs + bool.wav = elem + .canPlayType('audio/wav; codecs="1"') + .replace(/^no$/, ""); + bool.m4a = ( + elem.canPlayType("audio/x-m4a;") || elem.canPlayType("audio/aac;") + ).replace(/^no$/, ""); + } + } catch (e) {} + + return bool; + }; + + // In FF4, if disabled, window.localStorage should === null. + + // Normally, we could not test that directly and need to do a + // `('localStorage' in window) && ` test first because otherwise Firefox will + // throw bugzil.la/365772 if cookies are disabled + + // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem + // will throw the exception: + // QUOTA_EXCEEDED_ERRROR DOM Exception 22. + // Peculiarly, getItem and removeItem calls do not throw. + + // Because we are forced to try/catch this, we'll go aggressive. + + // Just FWIW: IE8 Compat mode supports these features completely: + // www.quirksmode.org/dom/html5.html + // But IE8 doesn't support either with local files + + tests["localstorage"] = function () { + try { + localStorage.setItem(mod, mod); + localStorage.removeItem(mod); + return true; + } catch (e) { + return false; + } + }; + + tests["sessionstorage"] = function () { + try { + sessionStorage.setItem(mod, mod); + sessionStorage.removeItem(mod); + return true; + } catch (e) { + return false; + } + }; + + tests["webworkers"] = function () { + return !!window.Worker; + }; + + tests["applicationcache"] = function () { + return !!window.applicationCache; + }; + + // Thanks to Erik Dahlstrom + tests["svg"] = function () { + return ( + !!document.createElementNS && + !!document.createElementNS(ns.svg, "svg").createSVGRect + ); + }; + + // specifically for SVG inline in HTML, not within XHTML + // test page: paulirish.com/demo/inline-svg + tests["inlinesvg"] = function () { + var div = document.createElement("div"); + div.innerHTML = ""; + return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; + }; + + // SVG SMIL animation + tests["smil"] = function () { + return ( + !!document.createElementNS && + /SVGAnimate/.test( + toString.call(document.createElementNS(ns.svg, "animate")) + ) + ); + }; + + // This test is only for clip paths in SVG proper, not clip paths on HTML content + // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg + + // However read the comments to dig into applying SVG clippaths to HTML content here: + // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 + tests["svgclippaths"] = function () { + return ( + !!document.createElementNS && + /SVGClipPath/.test( + toString.call(document.createElementNS(ns.svg, "clipPath")) + ) + ); + }; + + /*>>webforms*/ + // input features and input types go directly onto the ret object, bypassing the tests loop. + // Hold this guy to execute in a moment. + function webforms() { + /*>>input*/ + // Run through HTML5's new input attributes to see if the UA understands any. + // We're using f which is the element created early on + // Mike Taylr has created a comprehensive resource for testing these attributes + // when applied to all input types: + // miketaylr.com/code/input-type-attr.html + // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + + // Only input placeholder is tested while textarea's placeholder is not. + // Currently Safari 4 and Opera 11 have support only for the input placeholder + // Both tests are available in feature-detects/forms-placeholder.js + Modernizr["input"] = (function (props) { + for (var i = 0, len = props.length; i < len; i++) { + attrs[props[i]] = !!(props[i] in inputElem); + } + if (attrs.list) { + // safari false positive's on datalist: webk.it/74252 + // see also github.com/Modernizr/Modernizr/issues/146 + attrs.list = !!( + document.createElement("datalist") && window.HTMLDataListElement + ); + } + return attrs; + })( + "autocomplete autofocus list placeholder max min multiple pattern required step".split( + " " + ) + ); + /*>>input*/ + + /*>>inputtypes*/ + // Run through HTML5's new input types to see if the UA understands any. + // This is put behind the tests runloop because it doesn't return a + // true/false like all the other tests; instead, it returns an object + // containing each input type with its corresponding true/false value + + // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ + Modernizr["inputtypes"] = (function (props) { + for ( + var i = 0, bool, inputElemType, defaultView, len = props.length; + i < len; + i++ + ) { + inputElem.setAttribute("type", (inputElemType = props[i])); + bool = inputElem.type !== "text"; + + // We first check to see if the type we give it sticks.. + // If the type does, we feed it a textual value, which shouldn't be valid. + // If the value doesn't stick, we know there's input sanitization which infers a custom UI + if (bool) { + inputElem.value = smile; + inputElem.style.cssText = "position:absolute;visibility:hidden;"; + + if ( + /^range$/.test(inputElemType) && + inputElem.style.WebkitAppearance !== undefined + ) { + docElement.appendChild(inputElem); + defaultView = document.defaultView; + + // Safari 2-4 allows the smiley as a value, despite making a slider + bool = + defaultView.getComputedStyle && + defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== + "textfield" && + // Mobile android web browser has false positive, so must + // check the height to see if the widget is actually there. + inputElem.offsetHeight !== 0; + + docElement.removeChild(inputElem); + } else if (/^(search|tel)$/.test(inputElemType)) { + // Spec doesn't define any special parsing or detectable UI + // behaviors so we pass these through as true + // Interestingly, opera fails the earlier test, so it doesn't + // even make it here. + } else if (/^(url|email)$/.test(inputElemType)) { + // Real url and email support comes with prebaked validation. + bool = + inputElem.checkValidity && inputElem.checkValidity() === false; + } else { + // If the upgraded input compontent rejects the :) text, we got a winner + bool = inputElem.value != smile; + } + } + + inputs[props[i]] = !!bool; + } + return inputs; + })( + "search tel url email datetime date month week time datetime-local number range color".split( + " " + ) + ); + /*>>inputtypes*/ + } + /*>>webforms*/ + + // End of test definitions + // ----------------------- + + // Run through all tests and detect their support in the current UA. + // todo: hypothetically we could be doing an array of tests and use a basic loop here. + for (var feature in tests) { + if (hasOwnProp(tests, feature)) { + // run the test, throw the return value into the Modernizr, + // then based on that boolean, define an appropriate className + // and push it into an array of classes we'll join later. + featureName = feature.toLowerCase(); + Modernizr[featureName] = tests[feature](); + + classes.push((Modernizr[featureName] ? "" : "no-") + featureName); + } + } + + /*>>webforms*/ + // input tests need to run. + Modernizr.input || webforms(); + /*>>webforms*/ + + /** + * addTest allows the user to define their own feature tests + * the result will be added onto the Modernizr object, + * as well as an appropriate className set on the html element + * + * @param feature - String naming the feature + * @param test - Function returning true if feature is supported, false if not + */ + Modernizr.addTest = function (feature, test) { + if (typeof feature == "object") { + for (var key in feature) { + if (hasOwnProp(feature, key)) { + Modernizr.addTest(key, feature[key]); + } + } + } else { + feature = feature.toLowerCase(); + + if (Modernizr[feature] !== undefined) { + // we're going to quit if you're trying to overwrite an existing test + // if we were to allow it, we'd do this: + // var re = new RegExp("\\b(no-)?" + feature + "\\b"); + // docElement.className = docElement.className.replace( re, '' ); + // but, no rly, stuff 'em. + return Modernizr; + } + + test = typeof test == "function" ? test() : test; + + if (typeof enableClasses !== "undefined" && enableClasses) { + docElement.className += " " + (test ? "" : "no-") + feature; + } + Modernizr[feature] = test; + } + + return Modernizr; // allow chaining. + }; + + // Reset modElem.cssText to nothing to reduce memory footprint. + setCss(""); + modElem = inputElem = null; + + /*>>shiv*/ + /** + * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed + */ + (function (window, document) { + /*jshint evil:true */ + /** version */ + var version = "3.7.0"; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = + /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = + /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = "_html5shiv"; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function () { + try { + var a = document.createElement("a"); + a.innerHTML = ""; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = "hidden" in a; + + supportsUnknownElements = + a.childNodes.length == 1 || + (function () { + // assign a false positive if unable to shiv + document.createElement("a"); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == "undefined" || + typeof frag.createDocumentFragment == "undefined" || + typeof frag.createElement == "undefined" + ); + })(); + } catch (e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + })(); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement("p"), + parent = + ownerDocument.getElementsByTagName("head")[0] || + ownerDocument.documentElement; + + p.innerHTML = "x"; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == "string" ? elements.split(" ") : elements; + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data) { + if (!ownerDocument) { + ownerDocument = document; + } + if (supportsUnknownElements) { + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn + ? data.frag.appendChild(node) + : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data) { + if (!ownerDocument) { + ownerDocument = document; + } + if (supportsUnknownElements) { + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for (; i < l; i++) { + clone.createElement(elems[i]); + } + return clone; + } + + /** + * Shivs the `createElement` and `createDocumentFragment` methods of the document. + * @private + * @param {Document|DocumentFragment} ownerDocument The document. + * @param {Object} data of the document. + */ + function shivMethods(ownerDocument, data) { + if (!data.cache) { + data.cache = {}; + data.createElem = ownerDocument.createElement; + data.createFrag = ownerDocument.createDocumentFragment; + data.frag = data.createFrag(); + } + + ownerDocument.createElement = function (nodeName) { + //abort shiv + if (!html5.shivMethods) { + return data.createElem(nodeName); + } + return createElement(nodeName, ownerDocument, data); + }; + + ownerDocument.createDocumentFragment = Function( + "h,f", + "return function(){" + + "var n=f.cloneNode(),c=n.createElement;" + + "h.shivMethods&&(" + + // unroll the `createElement` calls + getElements() + .join() + .replace(/[\w\-]+/g, function (nodeName) { + data.createElem(nodeName); + data.frag.createElement(nodeName); + return 'c("' + nodeName + '")'; + }) + + ");return n}" + )(html5, data.frag); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Shivs the given document. + * @memberOf html5 + * @param {Document} ownerDocument The document to shiv. + * @returns {Document} The shived document. + */ + function shivDocument(ownerDocument) { + if (!ownerDocument) { + ownerDocument = document; + } + var data = getExpandoData(ownerDocument); + + if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { + data.hasCSS = !!addStyleSheet( + ownerDocument, + // corrects block display not defined in IE6/7/8/9 + "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}" + + // adds styling not present in IE6/7/8/9 + "mark{background:#FF0;color:#000}" + + // hides non-rendered elements + "template{display:none}" + ); + } + if (!supportsUnknownElements) { + shivMethods(ownerDocument, data); + } + return ownerDocument; + } + + /*--------------------------------------------------------------------------*/ + + /** + * The `html5` object is exposed so that more elements can be shived and + * existing shiving can be detected on iframes. + * @type Object + * @example + * + * // options can be changed before the script is included + * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false }; + */ + var html5 = { + /** + * An array or space separated string of node names of the elements to shiv. + * @memberOf html5 + * @type Array|String + */ + elements: + options.elements || + "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video", + + /** + * current version of html5shiv + */ + version: version, + + /** + * A flag to indicate that the HTML5 style sheet should be inserted. + * @memberOf html5 + * @type Boolean + */ + shivCSS: options.shivCSS !== false, + + /** + * Is equal to true if a browser supports creating unknown/HTML5 elements + * @memberOf html5 + * @type boolean + */ + supportsUnknownElements: supportsUnknownElements, + + /** + * A flag to indicate that the document's `createElement` and `createDocumentFragment` + * methods should be overwritten. + * @memberOf html5 + * @type Boolean + */ + shivMethods: options.shivMethods !== false, + + /** + * A string to describe the type of `html5` object ("default" or "default print"). + * @memberOf html5 + * @type String + */ + type: "default", + + // shivs the document according to the specified `html5` object options + shivDocument: shivDocument, + + //creates a shived element + createElement: createElement, + + //creates a shived documentFragment + createDocumentFragment: createDocumentFragment, + }; + + /*--------------------------------------------------------------------------*/ + + // expose html5 + window.html5 = html5; + + // shiv the document + shivDocument(document); + })(this, document); + /*>>shiv*/ + + // Assign private properties to the return object with prefix + Modernizr._version = version; + + // expose these for the plugin API. Look in the source for how to join() them against your input + /*>>prefixes*/ + Modernizr._prefixes = prefixes; + /*>>prefixes*/ + /*>>domprefixes*/ + Modernizr._domPrefixes = domPrefixes; + Modernizr._cssomPrefixes = cssomPrefixes; + /*>>domprefixes*/ + + /*>>mq*/ + // Modernizr.mq tests a given media query, live against the current state of the window + // A few important notes: + // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false + // * A max-width or orientation query will be evaluated against the current state, which may change later. + // * You must specify values. Eg. If you are testing support for the min-width media query use: + // Modernizr.mq('(min-width:0)') + // usage: + // Modernizr.mq('only screen and (max-width:768)') + Modernizr.mq = testMediaQuery; + /*>>mq*/ + + /*>>hasevent*/ + // Modernizr.hasEvent() detects support for a given event, with an optional element to test on + // Modernizr.hasEvent('gesturestart', elem) + Modernizr.hasEvent = isEventSupported; + /*>>hasevent*/ + + /*>>testprop*/ + // Modernizr.testProp() investigates whether a given style property is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testProp('pointerEvents') + Modernizr.testProp = function (prop) { + return testProps([prop]); + }; + /*>>testprop*/ + + /*>>testallprops*/ + // Modernizr.testAllProps() investigates whether a given style property, + // or any of its vendor-prefixed variants, is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testAllProps('boxSizing') + Modernizr.testAllProps = testPropsAll; + /*>>testallprops*/ + + /*>>teststyles*/ + // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards + // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) + Modernizr.testStyles = injectElementWithStyles; + /*>>teststyles*/ + + /*>>prefixed*/ + // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input + // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' + + // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. + // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: + // + // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); + + // If you're trying to ascertain which transition end event to bind to, you might do something like... + // + // var transEndEventNames = { + // 'WebkitTransition' : 'webkitTransitionEnd', + // 'MozTransition' : 'transitionend', + // 'OTransition' : 'oTransitionEnd', + // 'msTransition' : 'MSTransitionEnd', + // 'transition' : 'transitionend' + // }, + // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + + Modernizr.prefixed = function (prop, obj, elem) { + if (!obj) { + return testPropsAll(prop, "pfx"); + } else { + // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' + return testPropsAll(prop, obj, elem); + } + }; + /*>>prefixed*/ + + /*>>cssclasses*/ + // Remove "no-js" class from element, if it exists: + docElement.className = + docElement.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + + // Add the new classes to the element. + (enableClasses ? " js " + classes.join(" ") : ""); + /*>>cssclasses*/ + + return Modernizr; +})(this, this.document); diff --git a/public/js/owl.carousel.min.js b/public/js/owl.carousel.min.js new file mode 100644 index 0000000..64e2806 --- /dev/null +++ b/public/js/owl.carousel.min.js @@ -0,0 +1,2054 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +!(function (a, b, c, d) { + function e(b, c) { + (this.settings = null), + (this.options = a.extend({}, e.Defaults, c)), + (this.$element = a(b)), + (this._handlers = {}), + (this._plugins = {}), + (this._supress = {}), + (this._current = null), + (this._speed = null), + (this._coordinates = []), + (this._breakpoint = null), + (this._width = null), + (this._items = []), + (this._clones = []), + (this._mergers = []), + (this._widths = []), + (this._invalidated = {}), + (this._pipe = []), + (this._drag = { + time: null, + target: null, + pointer: null, + stage: { start: null, current: null }, + direction: null, + }), + (this._states = { + current: {}, + tags: { + initializing: ["busy"], + animating: ["busy"], + dragging: ["interacting"], + }, + }), + a.each( + ["onResize", "onThrottledResize"], + a.proxy(function (b, c) { + this._handlers[c] = a.proxy(this[c], this); + }, this) + ), + a.each( + e.Plugins, + a.proxy(function (a, b) { + this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this); + }, this) + ), + a.each( + e.Workers, + a.proxy(function (b, c) { + this._pipe.push({ filter: c.filter, run: a.proxy(c.run, this) }); + }, this) + ), + this.setup(), + this.initialize(); + } + (e.Defaults = { + items: 3, + loop: !1, + center: !1, + rewind: !1, + checkVisibility: !0, + mouseDrag: !0, + touchDrag: !0, + pullDrag: !0, + freeDrag: !1, + margin: 0, + stagePadding: 0, + merge: !1, + mergeFit: !0, + autoWidth: !1, + startPosition: 0, + rtl: !1, + smartSpeed: 250, + fluidSpeed: !1, + dragEndSpeed: !1, + responsive: {}, + responsiveRefreshRate: 200, + responsiveBaseElement: b, + fallbackEasing: "swing", + slideTransition: "", + info: !1, + nestedItemSelector: !1, + itemElement: "div", + stageElement: "div", + refreshClass: "owl-refresh", + loadedClass: "owl-loaded", + loadingClass: "owl-loading", + rtlClass: "owl-rtl", + responsiveClass: "owl-responsive", + dragClass: "owl-drag", + itemClass: "owl-item", + stageClass: "owl-stage", + stageOuterClass: "owl-stage-outer", + grabClass: "owl-grab", + }), + (e.Width = { Default: "default", Inner: "inner", Outer: "outer" }), + (e.Type = { Event: "event", State: "state" }), + (e.Plugins = {}), + (e.Workers = [ + { + filter: ["width", "settings"], + run: function () { + this._width = this.$element.width(); + }, + }, + { + filter: ["width", "items", "settings"], + run: function (a) { + a.current = this._items && this._items[this.relative(this._current)]; + }, + }, + { + filter: ["items", "settings"], + run: function () { + this.$stage.children(".cloned").remove(); + }, + }, + { + filter: ["width", "items", "settings"], + run: function (a) { + var b = this.settings.margin || "", + c = !this.settings.autoWidth, + d = this.settings.rtl, + e = { + width: "auto", + "margin-left": d ? b : "", + "margin-right": d ? "" : b, + }; + !c && this.$stage.children().css(e), (a.css = e); + }, + }, + { + filter: ["width", "items", "settings"], + run: function (a) { + var b = + (this.width() / this.settings.items).toFixed(3) - + this.settings.margin, + c = null, + d = this._items.length, + e = !this.settings.autoWidth, + f = []; + for (a.items = { merge: !1, width: b }; d--; ) + (c = this._mergers[d]), + (c = + (this.settings.mergeFit && Math.min(c, this.settings.items)) || + c), + (a.items.merge = c > 1 || a.items.merge), + (f[d] = e ? b * c : this._items[d].width()); + this._widths = f; + }, + }, + { + filter: ["items", "settings"], + run: function () { + var b = [], + c = this._items, + d = this.settings, + e = Math.max(2 * d.items, 4), + f = 2 * Math.ceil(c.length / 2), + g = d.loop && c.length ? (d.rewind ? e : Math.max(e, f)) : 0, + h = "", + i = ""; + for (g /= 2; g > 0; ) + b.push(this.normalize(b.length / 2, !0)), + (h += c[b[b.length - 1]][0].outerHTML), + b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), + (i = c[b[b.length - 1]][0].outerHTML + i), + (g -= 1); + (this._clones = b), + a(h).addClass("cloned").appendTo(this.$stage), + a(i).addClass("cloned").prependTo(this.$stage); + }, + }, + { + filter: ["width", "items", "settings"], + run: function () { + for ( + var a = this.settings.rtl ? 1 : -1, + b = this._clones.length + this._items.length, + c = -1, + d = 0, + e = 0, + f = []; + ++c < b; + + ) + (d = f[c - 1] || 0), + (e = this._widths[this.relative(c)] + this.settings.margin), + f.push(d + e * a); + this._coordinates = f; + }, + }, + { + filter: ["width", "items", "settings"], + run: function () { + var a = this.settings.stagePadding, + b = this._coordinates, + c = { + width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a, + "padding-left": a || "", + "padding-right": a || "", + }; + this.$stage.css(c); + }, + }, + { + filter: ["width", "items", "settings"], + run: function (a) { + var b = this._coordinates.length, + c = !this.settings.autoWidth, + d = this.$stage.children(); + if (c && a.items.merge) + for (; b--; ) + (a.css.width = this._widths[this.relative(b)]), + d.eq(b).css(a.css); + else c && ((a.css.width = a.items.width), d.css(a.css)); + }, + }, + { + filter: ["items"], + run: function () { + this._coordinates.length < 1 && this.$stage.removeAttr("style"); + }, + }, + { + filter: ["width", "items", "settings"], + run: function (a) { + (a.current = a.current ? this.$stage.children().index(a.current) : 0), + (a.current = Math.max( + this.minimum(), + Math.min(this.maximum(), a.current) + )), + this.reset(a.current); + }, + }, + { + filter: ["position"], + run: function () { + this.animate(this.coordinates(this._current)); + }, + }, + { + filter: ["width", "position", "items", "settings"], + run: function () { + var a, + b, + c, + d, + e = this.settings.rtl ? 1 : -1, + f = 2 * this.settings.stagePadding, + g = this.coordinates(this.current()) + f, + h = g + this.width() * e, + i = []; + for (c = 0, d = this._coordinates.length; c < d; c++) + (a = this._coordinates[c - 1] || 0), + (b = Math.abs(this._coordinates[c]) + f * e), + ((this.op(a, "<=", g) && this.op(a, ">", h)) || + (this.op(b, "<", g) && this.op(b, ">", h))) && + i.push(c); + this.$stage.children(".active").removeClass("active"), + this.$stage + .children(":eq(" + i.join("), :eq(") + ")") + .addClass("active"), + this.$stage.children(".center").removeClass("center"), + this.settings.center && + this.$stage.children().eq(this.current()).addClass("center"); + }, + }, + ]), + (e.prototype.initializeStage = function () { + (this.$stage = this.$element.find("." + this.settings.stageClass)), + this.$stage.length || + (this.$element.addClass(this.options.loadingClass), + (this.$stage = a("<" + this.settings.stageElement + ">", { + class: this.settings.stageClass, + }).wrap(a("
    ", { class: this.settings.stageOuterClass }))), + this.$element.append(this.$stage.parent())); + }), + (e.prototype.initializeItems = function () { + var b = this.$element.find(".owl-item"); + if (b.length) + return ( + (this._items = b.get().map(function (b) { + return a(b); + })), + (this._mergers = this._items.map(function () { + return 1; + })), + void this.refresh() + ); + this.replace(this.$element.children().not(this.$stage.parent())), + this.isVisible() ? this.refresh() : this.invalidate("width"), + this.$element + .removeClass(this.options.loadingClass) + .addClass(this.options.loadedClass); + }), + (e.prototype.initialize = function () { + if ( + (this.enter("initializing"), + this.trigger("initialize"), + this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), + this.settings.autoWidth && !this.is("pre-loading")) + ) { + var a, b, c; + (a = this.$element.find("img")), + (b = this.settings.nestedItemSelector + ? "." + this.settings.nestedItemSelector + : d), + (c = this.$element.children(b).width()), + a.length && c <= 0 && this.preloadAutoWidthImages(a); + } + this.initializeStage(), + this.initializeItems(), + this.registerEventHandlers(), + this.leave("initializing"), + this.trigger("initialized"); + }), + (e.prototype.isVisible = function () { + return !this.settings.checkVisibility || this.$element.is(":visible"); + }), + (e.prototype.setup = function () { + var b = this.viewport(), + c = this.options.responsive, + d = -1, + e = null; + c + ? (a.each(c, function (a) { + a <= b && a > d && (d = Number(a)); + }), + (e = a.extend({}, this.options, c[d])), + "function" == typeof e.stagePadding && + (e.stagePadding = e.stagePadding()), + delete e.responsive, + e.responsiveClass && + this.$element.attr( + "class", + this.$element + .attr("class") + .replace( + new RegExp( + "(" + this.options.responsiveClass + "-)\\S+\\s", + "g" + ), + "$1" + d + ) + )) + : (e = a.extend({}, this.options)), + this.trigger("change", { property: { name: "settings", value: e } }), + (this._breakpoint = d), + (this.settings = e), + this.invalidate("settings"), + this.trigger("changed", { + property: { name: "settings", value: this.settings }, + }); + }), + (e.prototype.optionsLogic = function () { + this.settings.autoWidth && + ((this.settings.stagePadding = !1), (this.settings.merge = !1)); + }), + (e.prototype.prepare = function (b) { + var c = this.trigger("prepare", { content: b }); + return ( + c.data || + (c.data = a("<" + this.settings.itemElement + "/>") + .addClass(this.options.itemClass) + .append(b)), + this.trigger("prepared", { content: c.data }), + c.data + ); + }), + (e.prototype.update = function () { + for ( + var b = 0, + c = this._pipe.length, + d = a.proxy(function (a) { + return this[a]; + }, this._invalidated), + e = {}; + b < c; + + ) + (this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && + this._pipe[b].run(e), + b++; + (this._invalidated = {}), !this.is("valid") && this.enter("valid"); + }), + (e.prototype.width = function (a) { + switch ((a = a || e.Width.Default)) { + case e.Width.Inner: + case e.Width.Outer: + return this._width; + default: + return ( + this._width - 2 * this.settings.stagePadding + this.settings.margin + ); + } + }), + (e.prototype.refresh = function () { + this.enter("refreshing"), + this.trigger("refresh"), + this.setup(), + this.optionsLogic(), + this.$element.addClass(this.options.refreshClass), + this.update(), + this.$element.removeClass(this.options.refreshClass), + this.leave("refreshing"), + this.trigger("refreshed"); + }), + (e.prototype.onThrottledResize = function () { + b.clearTimeout(this.resizeTimer), + (this.resizeTimer = b.setTimeout( + this._handlers.onResize, + this.settings.responsiveRefreshRate + )); + }), + (e.prototype.onResize = function () { + return ( + !!this._items.length && + this._width !== this.$element.width() && + !!this.isVisible() && + (this.enter("resizing"), + this.trigger("resize").isDefaultPrevented() + ? (this.leave("resizing"), !1) + : (this.invalidate("width"), + this.refresh(), + this.leave("resizing"), + void this.trigger("resized"))) + ); + }), + (e.prototype.registerEventHandlers = function () { + a.support.transition && + this.$stage.on( + a.support.transition.end + ".owl.core", + a.proxy(this.onTransitionEnd, this) + ), + !1 !== this.settings.responsive && + this.on(b, "resize", this._handlers.onThrottledResize), + this.settings.mouseDrag && + (this.$element.addClass(this.options.dragClass), + this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), + this.$stage.on( + "dragstart.owl.core selectstart.owl.core", + function () { + return !1; + } + )), + this.settings.touchDrag && + (this.$stage.on( + "touchstart.owl.core", + a.proxy(this.onDragStart, this) + ), + this.$stage.on( + "touchcancel.owl.core", + a.proxy(this.onDragEnd, this) + )); + }), + (e.prototype.onDragStart = function (b) { + var d = null; + 3 !== b.which && + (a.support.transform + ? ((d = this.$stage + .css("transform") + .replace(/.*\(|\)| /g, "") + .split(",")), + (d = { + x: d[16 === d.length ? 12 : 4], + y: d[16 === d.length ? 13 : 5], + })) + : ((d = this.$stage.position()), + (d = { + x: this.settings.rtl + ? d.left + + this.$stage.width() - + this.width() + + this.settings.margin + : d.left, + y: d.top, + })), + this.is("animating") && + (a.support.transform ? this.animate(d.x) : this.$stage.stop(), + this.invalidate("position")), + this.$element.toggleClass( + this.options.grabClass, + "mousedown" === b.type + ), + this.speed(0), + (this._drag.time = new Date().getTime()), + (this._drag.target = a(b.target)), + (this._drag.stage.start = d), + (this._drag.stage.current = d), + (this._drag.pointer = this.pointer(b)), + a(c).on( + "mouseup.owl.core touchend.owl.core", + a.proxy(this.onDragEnd, this) + ), + a(c).one( + "mousemove.owl.core touchmove.owl.core", + a.proxy(function (b) { + var d = this.difference(this._drag.pointer, this.pointer(b)); + a(c).on( + "mousemove.owl.core touchmove.owl.core", + a.proxy(this.onDragMove, this) + ), + (Math.abs(d.x) < Math.abs(d.y) && this.is("valid")) || + (b.preventDefault(), + this.enter("dragging"), + this.trigger("drag")); + }, this) + )); + }), + (e.prototype.onDragMove = function (a) { + var b = null, + c = null, + d = null, + e = this.difference(this._drag.pointer, this.pointer(a)), + f = this.difference(this._drag.stage.start, e); + this.is("dragging") && + (a.preventDefault(), + this.settings.loop + ? ((b = this.coordinates(this.minimum())), + (c = this.coordinates(this.maximum() + 1) - b), + (f.x = ((((f.x - b) % c) + c) % c) + b)) + : ((b = this.settings.rtl + ? this.coordinates(this.maximum()) + : this.coordinates(this.minimum())), + (c = this.settings.rtl + ? this.coordinates(this.minimum()) + : this.coordinates(this.maximum())), + (d = this.settings.pullDrag ? (-1 * e.x) / 5 : 0), + (f.x = Math.max(Math.min(f.x, b + d), c + d))), + (this._drag.stage.current = f), + this.animate(f.x)); + }), + (e.prototype.onDragEnd = function (b) { + var d = this.difference(this._drag.pointer, this.pointer(b)), + e = this._drag.stage.current, + f = (d.x > 0) ^ this.settings.rtl ? "left" : "right"; + a(c).off(".owl.core"), + this.$element.removeClass(this.options.grabClass), + ((0 !== d.x && this.is("dragging")) || !this.is("valid")) && + (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), + this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), + this.invalidate("position"), + this.update(), + (this._drag.direction = f), + (Math.abs(d.x) > 3 || new Date().getTime() - this._drag.time > 300) && + this._drag.target.one("click.owl.core", function () { + return !1; + })), + this.is("dragging") && + (this.leave("dragging"), this.trigger("dragged")); + }), + (e.prototype.closest = function (b, c) { + var e = -1, + f = 30, + g = this.width(), + h = this.coordinates(); + return ( + this.settings.freeDrag || + a.each( + h, + a.proxy(function (a, i) { + return ( + "left" === c && b > i - f && b < i + f + ? (e = a) + : "right" === c && b > i - g - f && b < i - g + f + ? (e = a + 1) + : this.op(b, "<", i) && + this.op(b, ">", h[a + 1] !== d ? h[a + 1] : i - g) && + (e = "left" === c ? a + 1 : a), + -1 === e + ); + }, this) + ), + this.settings.loop || + (this.op(b, ">", h[this.minimum()]) + ? (e = b = this.minimum()) + : this.op(b, "<", h[this.maximum()]) && (e = b = this.maximum())), + e + ); + }), + (e.prototype.animate = function (b) { + var c = this.speed() > 0; + this.is("animating") && this.onTransitionEnd(), + c && (this.enter("animating"), this.trigger("translate")), + a.support.transform3d && a.support.transition + ? this.$stage.css({ + transform: "translate3d(" + b + "px,0px,0px)", + transition: + this.speed() / 1e3 + + "s" + + (this.settings.slideTransition + ? " " + this.settings.slideTransition + : ""), + }) + : c + ? this.$stage.animate( + { left: b + "px" }, + this.speed(), + this.settings.fallbackEasing, + a.proxy(this.onTransitionEnd, this) + ) + : this.$stage.css({ left: b + "px" }); + }), + (e.prototype.is = function (a) { + return this._states.current[a] && this._states.current[a] > 0; + }), + (e.prototype.current = function (a) { + if (a === d) return this._current; + if (0 === this._items.length) return d; + if (((a = this.normalize(a)), this._current !== a)) { + var b = this.trigger("change", { + property: { name: "position", value: a }, + }); + b.data !== d && (a = this.normalize(b.data)), + (this._current = a), + this.invalidate("position"), + this.trigger("changed", { + property: { name: "position", value: this._current }, + }); + } + return this._current; + }), + (e.prototype.invalidate = function (b) { + return ( + "string" === a.type(b) && + ((this._invalidated[b] = !0), + this.is("valid") && this.leave("valid")), + a.map(this._invalidated, function (a, b) { + return b; + }) + ); + }), + (e.prototype.reset = function (a) { + (a = this.normalize(a)) !== d && + ((this._speed = 0), + (this._current = a), + this.suppress(["translate", "translated"]), + this.animate(this.coordinates(a)), + this.release(["translate", "translated"])); + }), + (e.prototype.normalize = function (a, b) { + var c = this._items.length, + e = b ? 0 : this._clones.length; + return ( + !this.isNumeric(a) || c < 1 + ? (a = d) + : (a < 0 || a >= c + e) && + (a = ((((a - e / 2) % c) + c) % c) + e / 2), + a + ); + }), + (e.prototype.relative = function (a) { + return (a -= this._clones.length / 2), this.normalize(a, !0); + }), + (e.prototype.maximum = function (a) { + var b, + c, + d, + e = this.settings, + f = this._coordinates.length; + if (e.loop) f = this._clones.length / 2 + this._items.length - 1; + else if (e.autoWidth || e.merge) { + if ((b = this._items.length)) + for ( + c = this._items[--b].width(), d = this.$element.width(); + b-- && !((c += this._items[b].width() + this.settings.margin) > d); + + ); + f = b + 1; + } else + f = e.center ? this._items.length - 1 : this._items.length - e.items; + return a && (f -= this._clones.length / 2), Math.max(f, 0); + }), + (e.prototype.minimum = function (a) { + return a ? 0 : this._clones.length / 2; + }), + (e.prototype.items = function (a) { + return a === d + ? this._items.slice() + : ((a = this.normalize(a, !0)), this._items[a]); + }), + (e.prototype.mergers = function (a) { + return a === d + ? this._mergers.slice() + : ((a = this.normalize(a, !0)), this._mergers[a]); + }), + (e.prototype.clones = function (b) { + var c = this._clones.length / 2, + e = c + this._items.length, + f = function (a) { + return a % 2 == 0 ? e + a / 2 : c - (a + 1) / 2; + }; + return b === d + ? a.map(this._clones, function (a, b) { + return f(b); + }) + : a.map(this._clones, function (a, c) { + return a === b ? f(c) : null; + }); + }), + (e.prototype.speed = function (a) { + return a !== d && (this._speed = a), this._speed; + }), + (e.prototype.coordinates = function (b) { + var c, + e = 1, + f = b - 1; + return b === d + ? a.map( + this._coordinates, + a.proxy(function (a, b) { + return this.coordinates(b); + }, this) + ) + : (this.settings.center + ? (this.settings.rtl && ((e = -1), (f = b + 1)), + (c = this._coordinates[b]), + (c += ((this.width() - c + (this._coordinates[f] || 0)) / 2) * e)) + : (c = this._coordinates[f] || 0), + (c = Math.ceil(c))); + }), + (e.prototype.duration = function (a, b, c) { + return 0 === c + ? 0 + : Math.min(Math.max(Math.abs(b - a), 1), 6) * + Math.abs(c || this.settings.smartSpeed); + }), + (e.prototype.to = function (a, b) { + var c = this.current(), + d = null, + e = a - this.relative(c), + f = (e > 0) - (e < 0), + g = this._items.length, + h = this.minimum(), + i = this.maximum(); + this.settings.loop + ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), + (a = c + e), + (d = ((((a - h) % g) + g) % g) + h) !== a && + d - e <= i && + d - e > 0 && + ((c = d - e), (a = d), this.reset(c))) + : this.settings.rewind + ? ((i += 1), (a = ((a % i) + i) % i)) + : (a = Math.max(h, Math.min(i, a))), + this.speed(this.duration(c, a, b)), + this.current(a), + this.isVisible() && this.update(); + }), + (e.prototype.next = function (a) { + (a = a || !1), this.to(this.relative(this.current()) + 1, a); + }), + (e.prototype.prev = function (a) { + (a = a || !1), this.to(this.relative(this.current()) - 1, a); + }), + (e.prototype.onTransitionEnd = function (a) { + if ( + a !== d && + (a.stopPropagation(), + (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0)) + ) + return !1; + this.leave("animating"), this.trigger("translated"); + }), + (e.prototype.viewport = function () { + var d; + return ( + this.options.responsiveBaseElement !== b + ? (d = a(this.options.responsiveBaseElement).width()) + : b.innerWidth + ? (d = b.innerWidth) + : c.documentElement && c.documentElement.clientWidth + ? (d = c.documentElement.clientWidth) + : console.warn("Can not detect viewport width."), + d + ); + }), + (e.prototype.replace = function (b) { + this.$stage.empty(), + (this._items = []), + b && (b = b instanceof jQuery ? b : a(b)), + this.settings.nestedItemSelector && + (b = b.find("." + this.settings.nestedItemSelector)), + b + .filter(function () { + return 1 === this.nodeType; + }) + .each( + a.proxy(function (a, b) { + (b = this.prepare(b)), + this.$stage.append(b), + this._items.push(b), + this._mergers.push( + 1 * + b + .find("[data-merge]") + .addBack("[data-merge]") + .attr("data-merge") || 1 + ); + }, this) + ), + this.reset( + this.isNumeric(this.settings.startPosition) + ? this.settings.startPosition + : 0 + ), + this.invalidate("items"); + }), + (e.prototype.add = function (b, c) { + var e = this.relative(this._current); + (c = c === d ? this._items.length : this.normalize(c, !0)), + (b = b instanceof jQuery ? b : a(b)), + this.trigger("add", { content: b, position: c }), + (b = this.prepare(b)), + 0 === this._items.length || c === this._items.length + ? (0 === this._items.length && this.$stage.append(b), + 0 !== this._items.length && this._items[c - 1].after(b), + this._items.push(b), + this._mergers.push( + 1 * + b + .find("[data-merge]") + .addBack("[data-merge]") + .attr("data-merge") || 1 + )) + : (this._items[c].before(b), + this._items.splice(c, 0, b), + this._mergers.splice( + c, + 0, + 1 * + b + .find("[data-merge]") + .addBack("[data-merge]") + .attr("data-merge") || 1 + )), + this._items[e] && this.reset(this._items[e].index()), + this.invalidate("items"), + this.trigger("added", { content: b, position: c }); + }), + (e.prototype.remove = function (a) { + (a = this.normalize(a, !0)) !== d && + (this.trigger("remove", { content: this._items[a], position: a }), + this._items[a].remove(), + this._items.splice(a, 1), + this._mergers.splice(a, 1), + this.invalidate("items"), + this.trigger("removed", { content: null, position: a })); + }), + (e.prototype.preloadAutoWidthImages = function (b) { + b.each( + a.proxy(function (b, c) { + this.enter("pre-loading"), + (c = a(c)), + a(new Image()) + .one( + "load", + a.proxy(function (a) { + c.attr("src", a.target.src), + c.css("opacity", 1), + this.leave("pre-loading"), + !this.is("pre-loading") && + !this.is("initializing") && + this.refresh(); + }, this) + ) + .attr( + "src", + c.attr("src") || c.attr("data-src") || c.attr("data-src-retina") + ); + }, this) + ); + }), + (e.prototype.destroy = function () { + this.$element.off(".owl.core"), + this.$stage.off(".owl.core"), + a(c).off(".owl.core"), + !1 !== this.settings.responsive && + (b.clearTimeout(this.resizeTimer), + this.off(b, "resize", this._handlers.onThrottledResize)); + for (var d in this._plugins) this._plugins[d].destroy(); + this.$stage.children(".cloned").remove(), + this.$stage.unwrap(), + this.$stage.children().contents().unwrap(), + this.$stage.children().unwrap(), + this.$stage.remove(), + this.$element + .removeClass(this.options.refreshClass) + .removeClass(this.options.loadingClass) + .removeClass(this.options.loadedClass) + .removeClass(this.options.rtlClass) + .removeClass(this.options.dragClass) + .removeClass(this.options.grabClass) + .attr( + "class", + this.$element + .attr("class") + .replace( + new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), + "" + ) + ) + .removeData("owl.carousel"); + }), + (e.prototype.op = function (a, b, c) { + var d = this.settings.rtl; + switch (b) { + case "<": + return d ? a > c : a < c; + case ">": + return d ? a < c : a > c; + case ">=": + return d ? a <= c : a >= c; + case "<=": + return d ? a >= c : a <= c; + } + }), + (e.prototype.on = function (a, b, c, d) { + a.addEventListener + ? a.addEventListener(b, c, d) + : a.attachEvent && a.attachEvent("on" + b, c); + }), + (e.prototype.off = function (a, b, c, d) { + a.removeEventListener + ? a.removeEventListener(b, c, d) + : a.detachEvent && a.detachEvent("on" + b, c); + }), + (e.prototype.trigger = function (b, c, d, f, g) { + var h = { item: { count: this._items.length, index: this.current() } }, + i = a.camelCase( + a + .grep(["on", b, d], function (a) { + return a; + }) + .join("-") + .toLowerCase() + ), + j = a.Event( + [b, "owl", d || "carousel"].join(".").toLowerCase(), + a.extend({ relatedTarget: this }, h, c) + ); + return ( + this._supress[b] || + (a.each(this._plugins, function (a, b) { + b.onTrigger && b.onTrigger(j); + }), + this.register({ type: e.Type.Event, name: b }), + this.$element.trigger(j), + this.settings && + "function" == typeof this.settings[i] && + this.settings[i].call(this, j)), + j + ); + }), + (e.prototype.enter = function (b) { + a.each( + [b].concat(this._states.tags[b] || []), + a.proxy(function (a, b) { + this._states.current[b] === d && (this._states.current[b] = 0), + this._states.current[b]++; + }, this) + ); + }), + (e.prototype.leave = function (b) { + a.each( + [b].concat(this._states.tags[b] || []), + a.proxy(function (a, b) { + this._states.current[b]--; + }, this) + ); + }), + (e.prototype.register = function (b) { + if (b.type === e.Type.Event) { + if ( + (a.event.special[b.name] || (a.event.special[b.name] = {}), + !a.event.special[b.name].owl) + ) { + var c = a.event.special[b.name]._default; + (a.event.special[b.name]._default = function (a) { + return !c || + !c.apply || + (a.namespace && -1 !== a.namespace.indexOf("owl")) + ? a.namespace && a.namespace.indexOf("owl") > -1 + : c.apply(this, arguments); + }), + (a.event.special[b.name].owl = !0); + } + } else + b.type === e.Type.State && + (this._states.tags[b.name] + ? (this._states.tags[b.name] = this._states.tags[b.name].concat( + b.tags + )) + : (this._states.tags[b.name] = b.tags), + (this._states.tags[b.name] = a.grep( + this._states.tags[b.name], + a.proxy(function (c, d) { + return a.inArray(c, this._states.tags[b.name]) === d; + }, this) + ))); + }), + (e.prototype.suppress = function (b) { + a.each( + b, + a.proxy(function (a, b) { + this._supress[b] = !0; + }, this) + ); + }), + (e.prototype.release = function (b) { + a.each( + b, + a.proxy(function (a, b) { + delete this._supress[b]; + }, this) + ); + }), + (e.prototype.pointer = function (a) { + var c = { x: null, y: null }; + return ( + (a = a.originalEvent || a || b.event), + (a = + a.touches && a.touches.length + ? a.touches[0] + : a.changedTouches && a.changedTouches.length + ? a.changedTouches[0] + : a), + a.pageX + ? ((c.x = a.pageX), (c.y = a.pageY)) + : ((c.x = a.clientX), (c.y = a.clientY)), + c + ); + }), + (e.prototype.isNumeric = function (a) { + return !isNaN(parseFloat(a)); + }), + (e.prototype.difference = function (a, b) { + return { x: a.x - b.x, y: a.y - b.y }; + }), + (a.fn.owlCarousel = function (b) { + var c = Array.prototype.slice.call(arguments, 1); + return this.each(function () { + var d = a(this), + f = d.data("owl.carousel"); + f || + ((f = new e(this, "object" == typeof b && b)), + d.data("owl.carousel", f), + a.each( + [ + "next", + "prev", + "to", + "destroy", + "refresh", + "replace", + "add", + "remove", + ], + function (b, c) { + f.register({ type: e.Type.Event, name: c }), + f.$element.on( + c + ".owl.carousel.core", + a.proxy(function (a) { + a.namespace && + a.relatedTarget !== this && + (this.suppress([c]), + f[c].apply(this, [].slice.call(arguments, 1)), + this.release([c])); + }, f) + ); + } + )), + "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c); + }); + }), + (a.fn.owlCarousel.Constructor = e); +})(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (b) { + (this._core = b), + (this._interval = null), + (this._visible = null), + (this._handlers = { + "initialized.owl.carousel": a.proxy(function (a) { + a.namespace && this._core.settings.autoRefresh && this.watch(); + }, this), + }), + (this._core.options = a.extend({}, e.Defaults, this._core.options)), + this._core.$element.on(this._handlers); + }; + (e.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }), + (e.prototype.watch = function () { + this._interval || + ((this._visible = this._core.isVisible()), + (this._interval = b.setInterval( + a.proxy(this.refresh, this), + this._core.settings.autoRefreshInterval + ))); + }), + (e.prototype.refresh = function () { + this._core.isVisible() !== this._visible && + ((this._visible = !this._visible), + this._core.$element.toggleClass("owl-hidden", !this._visible), + this._visible && + this._core.invalidate("width") && + this._core.refresh()); + }), + (e.prototype.destroy = function () { + var a, c; + b.clearInterval(this._interval); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (c in Object.getOwnPropertyNames(this)) + "function" != typeof this[c] && (this[c] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (b) { + (this._core = b), + (this._loaded = []), + (this._handlers = { + "initialized.owl.carousel change.owl.carousel resized.owl.carousel": + a.proxy(function (b) { + if ( + b.namespace && + this._core.settings && + this._core.settings.lazyLoad && + ((b.property && "position" == b.property.name) || + "initialized" == b.type) + ) { + var c = this._core.settings, + e = (c.center && Math.ceil(c.items / 2)) || c.items, + f = (c.center && -1 * e) || 0, + g = + (b.property && b.property.value !== d + ? b.property.value + : this._core.current()) + f, + h = this._core.clones().length, + i = a.proxy(function (a, b) { + this.load(b); + }, this); + for ( + c.lazyLoadEager > 0 && + ((e += c.lazyLoadEager), + c.loop && ((g -= c.lazyLoadEager), e++)); + f++ < e; + + ) + this.load(h / 2 + this._core.relative(g)), + h && a.each(this._core.clones(this._core.relative(g)), i), + g++; + } + }, this), + }), + (this._core.options = a.extend({}, e.Defaults, this._core.options)), + this._core.$element.on(this._handlers); + }; + (e.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }), + (e.prototype.load = function (c) { + var d = this._core.$stage.children().eq(c), + e = d && d.find(".owl-lazy"); + !e || + a.inArray(d.get(0), this._loaded) > -1 || + (e.each( + a.proxy(function (c, d) { + var e, + f = a(d), + g = + (b.devicePixelRatio > 1 && f.attr("data-src-retina")) || + f.attr("data-src") || + f.attr("data-srcset"); + this._core.trigger("load", { element: f, url: g }, "lazy"), + f.is("img") + ? f + .one( + "load.owl.lazy", + a.proxy(function () { + f.css("opacity", 1), + this._core.trigger( + "loaded", + { element: f, url: g }, + "lazy" + ); + }, this) + ) + .attr("src", g) + : f.is("source") + ? f + .one( + "load.owl.lazy", + a.proxy(function () { + this._core.trigger( + "loaded", + { element: f, url: g }, + "lazy" + ); + }, this) + ) + .attr("srcset", g) + : ((e = new Image()), + (e.onload = a.proxy(function () { + f.css({ + "background-image": 'url("' + g + '")', + opacity: "1", + }), + this._core.trigger( + "loaded", + { element: f, url: g }, + "lazy" + ); + }, this)), + (e.src = g)); + }, this) + ), + this._loaded.push(d.get(0))); + }), + (e.prototype.destroy = function () { + var a, b; + for (a in this.handlers) this._core.$element.off(a, this.handlers[a]); + for (b in Object.getOwnPropertyNames(this)) + "function" != typeof this[b] && (this[b] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.Lazy = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (c) { + (this._core = c), + (this._previousHeight = null), + (this._handlers = { + "initialized.owl.carousel refreshed.owl.carousel": a.proxy(function ( + a + ) { + a.namespace && this._core.settings.autoHeight && this.update(); + }, + this), + "changed.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.settings.autoHeight && + "position" === a.property.name && + this.update(); + }, this), + "loaded.owl.lazy": a.proxy(function (a) { + a.namespace && + this._core.settings.autoHeight && + a.element.closest("." + this._core.settings.itemClass).index() === + this._core.current() && + this.update(); + }, this), + }), + (this._core.options = a.extend({}, e.Defaults, this._core.options)), + this._core.$element.on(this._handlers), + (this._intervalId = null); + var d = this; + a(b).on("load", function () { + d._core.settings.autoHeight && d.update(); + }), + a(b).resize(function () { + d._core.settings.autoHeight && + (null != d._intervalId && clearTimeout(d._intervalId), + (d._intervalId = setTimeout(function () { + d.update(); + }, 250))); + }); + }; + (e.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }), + (e.prototype.update = function () { + var b = this._core._current, + c = b + this._core.settings.items, + d = this._core.settings.lazyLoad, + e = this._core.$stage.children().toArray().slice(b, c), + f = [], + g = 0; + a.each(e, function (b, c) { + f.push(a(c).height()); + }), + (g = Math.max.apply(null, f)), + g <= 1 && d && this._previousHeight && (g = this._previousHeight), + (this._previousHeight = g), + this._core.$stage + .parent() + .height(g) + .addClass(this._core.settings.autoHeightClass); + }), + (e.prototype.destroy = function () { + var a, b; + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) + "function" != typeof this[b] && (this[b] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (b) { + (this._core = b), + (this._videos = {}), + (this._playing = null), + (this._handlers = { + "initialized.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.register({ + type: "state", + name: "playing", + tags: ["interacting"], + }); + }, this), + "resize.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.settings.video && + this.isInFullScreen() && + a.preventDefault(); + }, this), + "refreshed.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.is("resizing") && + this._core.$stage.find(".cloned .owl-video-frame").remove(); + }, this), + "changed.owl.carousel": a.proxy(function (a) { + a.namespace && + "position" === a.property.name && + this._playing && + this.stop(); + }, this), + "prepared.owl.carousel": a.proxy(function (b) { + if (b.namespace) { + var c = a(b.content).find(".owl-video"); + c.length && + (c.css("display", "none"), this.fetch(c, a(b.content))); + } + }, this), + }), + (this._core.options = a.extend({}, e.Defaults, this._core.options)), + this._core.$element.on(this._handlers), + this._core.$element.on( + "click.owl.video", + ".owl-video-play-icon", + a.proxy(function (a) { + this.play(a); + }, this) + ); + }; + (e.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }), + (e.prototype.fetch = function (a, b) { + var c = (function () { + return a.attr("data-vimeo-id") + ? "vimeo" + : a.attr("data-vzaar-id") + ? "vzaar" + : "youtube"; + })(), + d = + a.attr("data-vimeo-id") || + a.attr("data-youtube-id") || + a.attr("data-vzaar-id"), + e = a.attr("data-width") || this._core.settings.videoWidth, + f = a.attr("data-height") || this._core.settings.videoHeight, + g = a.attr("href"); + if (!g) throw new Error("Missing video URL."); + if ( + ((d = g.match( + /(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/ + )), + d[3].indexOf("youtu") > -1) + ) + c = "youtube"; + else if (d[3].indexOf("vimeo") > -1) c = "vimeo"; + else { + if (!(d[3].indexOf("vzaar") > -1)) + throw new Error("Video URL not supported."); + c = "vzaar"; + } + (d = d[6]), + (this._videos[g] = { type: c, id: d, width: e, height: f }), + b.attr("data-video", g), + this.thumbnail(a, this._videos[g]); + }), + (e.prototype.thumbnail = function (b, c) { + var d, + e, + f, + g = + c.width && c.height + ? "width:" + c.width + "px;height:" + c.height + "px;" + : "", + h = b.find("img"), + i = "src", + j = "", + k = this._core.settings, + l = function (c) { + (e = '
    '), + (d = k.lazyLoad + ? a("
    ", { class: "owl-video-tn " + j, srcType: c }) + : a("
    ", { + class: "owl-video-tn", + style: "opacity:1;background-image:url(" + c + ")", + })), + b.after(d), + b.after(e); + }; + if ( + (b.wrap(a("
    ", { class: "owl-video-wrapper", style: g })), + this._core.settings.lazyLoad && ((i = "data-src"), (j = "owl-lazy")), + h.length) + ) + return l(h.attr(i)), h.remove(), !1; + "youtube" === c.type + ? ((f = "//img.youtube.com/vi/" + c.id + "/hqdefault.jpg"), l(f)) + : "vimeo" === c.type + ? a.ajax({ + type: "GET", + url: "//vimeo.com/api/v2/video/" + c.id + ".json", + jsonp: "callback", + dataType: "jsonp", + success: function (a) { + (f = a[0].thumbnail_large), l(f); + }, + }) + : "vzaar" === c.type && + a.ajax({ + type: "GET", + url: "//vzaar.com/api/videos/" + c.id + ".json", + jsonp: "callback", + dataType: "jsonp", + success: function (a) { + (f = a.framegrab_url), l(f); + }, + }); + }), + (e.prototype.stop = function () { + this._core.trigger("stop", null, "video"), + this._playing.find(".owl-video-frame").remove(), + this._playing.removeClass("owl-video-playing"), + (this._playing = null), + this._core.leave("playing"), + this._core.trigger("stopped", null, "video"); + }), + (e.prototype.play = function (b) { + var c, + d = a(b.target), + e = d.closest("." + this._core.settings.itemClass), + f = this._videos[e.attr("data-video")], + g = f.width || "100%", + h = f.height || this._core.$stage.height(); + this._playing || + (this._core.enter("playing"), + this._core.trigger("play", null, "video"), + (e = this._core.items(this._core.relative(e.index()))), + this._core.reset(e.index()), + (c = a( + '' + )), + c.attr("height", h), + c.attr("width", g), + "youtube" === f.type + ? c.attr( + "src", + "//www.youtube.com/embed/" + + f.id + + "?autoplay=1&rel=0&v=" + + f.id + ) + : "vimeo" === f.type + ? c.attr("src", "//player.vimeo.com/video/" + f.id + "?autoplay=1") + : "vzaar" === f.type && + c.attr( + "src", + "//view.vzaar.com/" + f.id + "/player?autoplay=true" + ), + a(c) + .wrap('
    ') + .insertAfter(e.find(".owl-video")), + (this._playing = e.addClass("owl-video-playing"))); + }), + (e.prototype.isInFullScreen = function () { + var b = + c.fullscreenElement || + c.mozFullScreenElement || + c.webkitFullscreenElement; + return b && a(b).parent().hasClass("owl-video-frame"); + }), + (e.prototype.destroy = function () { + var a, b; + this._core.$element.off("click.owl.video"); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) + "function" != typeof this[b] && (this[b] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.Video = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (b) { + (this.core = b), + (this.core.options = a.extend({}, e.Defaults, this.core.options)), + (this.swapping = !0), + (this.previous = d), + (this.next = d), + (this.handlers = { + "change.owl.carousel": a.proxy(function (a) { + a.namespace && + "position" == a.property.name && + ((this.previous = this.core.current()), + (this.next = a.property.value)); + }, this), + "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": + a.proxy(function (a) { + a.namespace && (this.swapping = "translated" == a.type); + }, this), + "translate.owl.carousel": a.proxy(function (a) { + a.namespace && + this.swapping && + (this.core.options.animateOut || this.core.options.animateIn) && + this.swap(); + }, this), + }), + this.core.$element.on(this.handlers); + }; + (e.Defaults = { animateOut: !1, animateIn: !1 }), + (e.prototype.swap = function () { + if ( + 1 === this.core.settings.items && + a.support.animation && + a.support.transition + ) { + this.core.speed(0); + var b, + c = a.proxy(this.clear, this), + d = this.core.$stage.children().eq(this.previous), + e = this.core.$stage.children().eq(this.next), + f = this.core.settings.animateIn, + g = this.core.settings.animateOut; + this.core.current() !== this.previous && + (g && + ((b = + this.core.coordinates(this.previous) - + this.core.coordinates(this.next)), + d + .one(a.support.animation.end, c) + .css({ left: b + "px" }) + .addClass("animated owl-animated-out") + .addClass(g)), + f && + e + .one(a.support.animation.end, c) + .addClass("animated owl-animated-in") + .addClass(f)); + } + }), + (e.prototype.clear = function (b) { + a(b.target) + .css({ left: "" }) + .removeClass("animated owl-animated-out owl-animated-in") + .removeClass(this.core.settings.animateIn) + .removeClass(this.core.settings.animateOut), + this.core.onTransitionEnd(); + }), + (e.prototype.destroy = function () { + var a, b; + for (a in this.handlers) this.core.$element.off(a, this.handlers[a]); + for (b in Object.getOwnPropertyNames(this)) + "function" != typeof this[b] && (this[b] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.Animate = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + var e = function (b) { + (this._core = b), + (this._call = null), + (this._time = 0), + (this._timeout = 0), + (this._paused = !0), + (this._handlers = { + "changed.owl.carousel": a.proxy(function (a) { + a.namespace && "settings" === a.property.name + ? this._core.settings.autoplay + ? this.play() + : this.stop() + : a.namespace && + "position" === a.property.name && + this._paused && + (this._time = 0); + }, this), + "initialized.owl.carousel": a.proxy(function (a) { + a.namespace && this._core.settings.autoplay && this.play(); + }, this), + "play.owl.autoplay": a.proxy(function (a, b, c) { + a.namespace && this.play(b, c); + }, this), + "stop.owl.autoplay": a.proxy(function (a) { + a.namespace && this.stop(); + }, this), + "mouseover.owl.autoplay": a.proxy(function () { + this._core.settings.autoplayHoverPause && + this._core.is("rotating") && + this.pause(); + }, this), + "mouseleave.owl.autoplay": a.proxy(function () { + this._core.settings.autoplayHoverPause && + this._core.is("rotating") && + this.play(); + }, this), + "touchstart.owl.core": a.proxy(function () { + this._core.settings.autoplayHoverPause && + this._core.is("rotating") && + this.pause(); + }, this), + "touchend.owl.core": a.proxy(function () { + this._core.settings.autoplayHoverPause && this.play(); + }, this), + }), + this._core.$element.on(this._handlers), + (this._core.options = a.extend({}, e.Defaults, this._core.options)); + }; + (e.Defaults = { + autoplay: !1, + autoplayTimeout: 5e3, + autoplayHoverPause: !1, + autoplaySpeed: !1, + }), + (e.prototype._next = function (d) { + (this._call = b.setTimeout( + a.proxy(this._next, this, d), + this._timeout * (Math.round(this.read() / this._timeout) + 1) - + this.read() + )), + this._core.is("interacting") || + c.hidden || + this._core.next(d || this._core.settings.autoplaySpeed); + }), + (e.prototype.read = function () { + return new Date().getTime() - this._time; + }), + (e.prototype.play = function (c, d) { + var e; + this._core.is("rotating") || this._core.enter("rotating"), + (c = c || this._core.settings.autoplayTimeout), + (e = Math.min(this._time % (this._timeout || c), c)), + this._paused + ? ((this._time = this.read()), (this._paused = !1)) + : b.clearTimeout(this._call), + (this._time += (this.read() % c) - e), + (this._timeout = c), + (this._call = b.setTimeout(a.proxy(this._next, this, d), c - e)); + }), + (e.prototype.stop = function () { + this._core.is("rotating") && + ((this._time = 0), + (this._paused = !0), + b.clearTimeout(this._call), + this._core.leave("rotating")); + }), + (e.prototype.pause = function () { + this._core.is("rotating") && + !this._paused && + ((this._time = this.read()), + (this._paused = !0), + b.clearTimeout(this._call)); + }), + (e.prototype.destroy = function () { + var a, b; + this.stop(); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) + "function" != typeof this[b] && (this[b] = null); + }), + (a.fn.owlCarousel.Constructor.Plugins.autoplay = e); + })(window.Zepto || window.jQuery, window, document), + (function (a, b, c, d) { + "use strict"; + var e = function (b) { + (this._core = b), + (this._initialized = !1), + (this._pages = []), + (this._controls = {}), + (this._templates = []), + (this.$element = this._core.$element), + (this._overrides = { + next: this._core.next, + prev: this._core.prev, + to: this._core.to, + }), + (this._handlers = { + "prepared.owl.carousel": a.proxy(function (b) { + b.namespace && + this._core.settings.dotsData && + this._templates.push( + '
    ' + + a(b.content) + .find("[data-dot]") + .addBack("[data-dot]") + .attr("data-dot") + + "
    " + ); + }, this), + "added.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.settings.dotsData && + this._templates.splice(a.position, 0, this._templates.pop()); + }, this), + "remove.owl.carousel": a.proxy(function (a) { + a.namespace && + this._core.settings.dotsData && + this._templates.splice(a.position, 1); + }, this), + "changed.owl.carousel": a.proxy(function (a) { + a.namespace && "position" == a.property.name && this.draw(); + }, this), + "initialized.owl.carousel": a.proxy(function (a) { + a.namespace && + !this._initialized && + (this._core.trigger("initialize", null, "navigation"), + this.initialize(), + this.update(), + this.draw(), + (this._initialized = !0), + this._core.trigger("initialized", null, "navigation")); + }, this), + "refreshed.owl.carousel": a.proxy(function (a) { + a.namespace && + this._initialized && + (this._core.trigger("refresh", null, "navigation"), + this.update(), + this.draw(), + this._core.trigger("refreshed", null, "navigation")); + }, this), + }), + (this._core.options = a.extend({}, e.Defaults, this._core.options)), + this.$element.on(this._handlers); + }; + (e.Defaults = { + nav: !1, + navText: [ + '', + '', + ], + navSpeed: !1, + navElement: 'button type="button" role="presentation"', + navContainer: !1, + navContainerClass: "owl-nav", + navClass: ["owl-prev", "owl-next"], + slideBy: 1, + dotClass: "owl-dot", + dotsClass: "owl-dots", + dots: !0, + dotsEach: !1, + dotsData: !1, + dotsSpeed: !1, + dotsContainer: !1, + }), + (e.prototype.initialize = function () { + var b, + c = this._core.settings; + (this._controls.$relative = ( + c.navContainer + ? a(c.navContainer) + : a("
    ").addClass(c.navContainerClass).appendTo(this.$element) + ).addClass("disabled")), + (this._controls.$previous = a("<" + c.navElement + ">") + .addClass(c.navClass[0]) + .html(c.navText[0]) + .prependTo(this._controls.$relative) + .on( + "click", + a.proxy(function (a) { + this.prev(c.navSpeed); + }, this) + )), + (this._controls.$next = a("<" + c.navElement + ">") + .addClass(c.navClass[1]) + .html(c.navText[1]) + .appendTo(this._controls.$relative) + .on( + "click", + a.proxy(function (a) { + this.next(c.navSpeed); + }, this) + )), + c.dotsData || + (this._templates = [ + a('