Showing results for Zero Background PNG
GitHub Repo
https://github.com/rramatchandran/big-o-performance-java
rramatchandran/big-o-performance-java
# big-o-performance A simple html app to demonstrate performance costs of data structures. - Clone the project - Navigate to the root of the project in a termina or command prompt - Run 'npm install' - Run 'npm start' - Go to the URL specified in the terminal or command prompt to try out the app. # This app was created from the Create React App NPM. Below are instructions from that project. Below you will find some information on how to perform common tasks. You can find the most recent version of this guide [here](https://github.com/facebookincubator/create-react-app/blob/master/template/README.md). ## Table of Contents - [Updating to New Releases](#updating-to-new-releases) - [Sending Feedback](#sending-feedback) - [Folder Structure](#folder-structure) - [Available Scripts](#available-scripts) - [npm start](#npm-start) - [npm run build](#npm-run-build) - [npm run eject](#npm-run-eject) - [Displaying Lint Output in the Editor](#displaying-lint-output-in-the-editor) - [Installing a Dependency](#installing-a-dependency) - [Importing a Component](#importing-a-component) - [Adding a Stylesheet](#adding-a-stylesheet) - [Post-Processing CSS](#post-processing-css) - [Adding Images and Fonts](#adding-images-and-fonts) - [Adding Bootstrap](#adding-bootstrap) - [Adding Flow](#adding-flow) - [Adding Custom Environment Variables](#adding-custom-environment-variables) - [Integrating with a Node Backend](#integrating-with-a-node-backend) - [Proxying API Requests in Development](#proxying-api-requests-in-development) - [Deployment](#deployment) - [Now](#now) - [Heroku](#heroku) - [Surge](#surge) - [GitHub Pages](#github-pages) - [Something Missing?](#something-missing) ## Updating to New Releases Create React App is divided into two packages: * `create-react-app` is a global command-line utility that you use to create new projects. * `react-scripts` is a development dependency in the generated projects (including this one). You almost never need to update `create-react-app` itself: it’s delegates all the setup to `react-scripts`. When you run `create-react-app`, it always creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. To update an existing project to a new version of `react-scripts`, [open the changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md), find the version you’re currently on (check `package.json` in this folder if you’re not sure), and apply the migration instructions for the newer versions. In most cases bumping the `react-scripts` version in `package.json` and running `npm install` in this folder should be enough, but it’s good to consult the [changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md) for potential breaking changes. We commit to keeping the breaking changes minimal so you can upgrade `react-scripts` painlessly. ## Sending Feedback We are always open to [your feedback](https://github.com/facebookincubator/create-react-app/issues). ## Folder Structure After creation, your project should look like this: ``` my-app/ README.md index.html favicon.ico node_modules/ package.json src/ App.css App.js index.css index.js logo.svg ``` For the project to build, **these files must exist with exact filenames**: * `index.html` is the page template; * `favicon.ico` is the icon you see in the browser tab; * `src/index.js` is the JavaScript entry point. You can delete or rename the other files. You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack. You need to **put any JS and CSS files inside `src`**, or Webpack won’t see them. You can, however, create more top-level directories. They will not be included in the production build so you can use them for things like documentation. ## Available Scripts In the project directory, you can run: ### `npm start` Runs the app in the development mode.<br> Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.<br> You will also see any lint errors in the console. ### `npm run build` Builds the app for production to the `build` folder.<br> It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes.<br> Your app is ready to be deployed! ### `npm run eject` **Note: this is a one-way operation. Once you `eject`, you can’t go back!** If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. ## Displaying Lint Output in the Editor >Note: this feature is available with `react-scripts@0.2.0` and higher. Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. You would need to install an ESLint plugin for your editor first. >**A note for Atom `linter-eslint` users** >If you are using the Atom `linter-eslint` plugin, make sure that **Use global ESLint installation** option is checked: ><img src="http://i.imgur.com/yVNNHJM.png" width="300"> Then make sure `package.json` of your project ends with this block: ```js { // ... "eslintConfig": { "extends": "./node_modules/react-scripts/config/eslint.js" } } ``` Projects generated with `react-scripts@0.2.0` and higher should already have it. If you don’t need ESLint integration with your editor, you can safely delete those three lines from your `package.json`. Finally, you will need to install some packages *globally*: ```sh npm install -g eslint babel-eslint eslint-plugin-react eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-flowtype ``` We recognize that this is suboptimal, but it is currently required due to the way we hide the ESLint dependency. The ESLint team is already [working on a solution to this](https://github.com/eslint/eslint/issues/3458) so this may become unnecessary in a couple of months. ## Installing a Dependency The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: ``` npm install --save <library-name> ``` ## Importing a Component This project setup supports ES6 modules thanks to Babel. While you can still use `require()` and `module.exports`, we encourage you to use [`import` and `export`](http://exploringjs.com/es6/ch_modules.html) instead. For example: ### `Button.js` ```js import React, { Component } from 'react'; class Button extends Component { render() { // ... } } export default Button; // Don’t forget to use export default! ``` ### `DangerButton.js` ```js import React, { Component } from 'react'; import Button from './Button'; // Import a component from another file class DangerButton extends Component { render() { return <Button color="red" />; } } export default DangerButton; ``` Be aware of the [difference between default and named exports](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281). It is a common source of mistakes. We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use `export default Button` and `import Button from './Button'`. Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like. Learn more about ES6 modules: * [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) * [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) * [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) ## Adding a Stylesheet This project setup uses [Webpack](https://webpack.github.io/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: ### `Button.css` ```css .Button { padding: 20px; } ``` ### `Button.js` ```js import React, { Component } from 'react'; import './Button.css'; // Tell Webpack that Button.js uses these styles class Button extends Component { render() { // You can use them as regular CSS styles return <div className="Button" />; } } ``` **This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-ui-engineering/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. In development, expressing dependencies this way allows your styles to be reloaded on the fly as you edit them. In production, all CSS files will be concatenated into a single minified `.css` file in the build output. If you are concerned about using Webpack-specific semantics, you can put all your CSS right into `src/index.css`. It would still be imported from `src/index.js`, but you could always remove that import if you later migrate to a different build tool. ## Post-Processing CSS This project setup minifies your CSS and adds vendor prefixes to it automatically through [Autoprefixer](https://github.com/postcss/autoprefixer) so you don’t need to worry about it. For example, this: ```css .App { display: flex; flex-direction: row; align-items: center; } ``` becomes this: ```css .App { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } ``` There is currently no support for preprocessors such as Less, or for sharing variables across CSS files. ## Adding Images and Fonts With Webpack, using static assets like images and fonts works similarly to CSS. You can **`import` an image right in a JavaScript module**. This tells Webpack to include that image in the bundle. Unlike CSS imports, importing an image or a font gives you a string value. This value is the final image path you can reference in your code. Here is an example: ```js import React from 'react'; import logo from './logo.png'; // Tell Webpack this JS file uses this image console.log(logo); // /logo.84287d09.png function Header() { // Import result is the URL of your image return <img src={logo} alt="Logo" />; } export default function Header; ``` This works in CSS too: ```css .Logo { background-image: url(./logo.png); } ``` Webpack finds all relative module references in CSS (they start with `./`) and replaces them with the final paths from the compiled bundle. If you make a typo or accidentally delete an important file, you will see a compilation error, just like when you import a non-existent JavaScript module. The final filenames in the compiled bundle are generated by Webpack from content hashes. If the file content changes in the future, Webpack will give it a different name in production so you don’t need to worry about long-term caching of assets. Please be advised that this is also a custom feature of Webpack. **It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images). However it may not be portable to some other environments, such as Node.js and Browserify. If you prefer to reference static assets in a more traditional way outside the module system, please let us know [in this issue](https://github.com/facebookincubator/create-react-app/issues/28), and we will consider support for this. ## Adding Bootstrap You don’t have to use [React Bootstrap](https://react-bootstrap.github.io) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: Install React Bootstrap and Bootstrap from NPM. React Bootstrap does not include Bootstrap CSS so this needs to be installed as well: ``` npm install react-bootstrap --save npm install bootstrap@3 --save ``` Import Bootstrap CSS and optionally Bootstrap theme CSS in the ```src/index.js``` file: ```js import 'bootstrap/dist/css/bootstrap.css'; import 'bootstrap/dist/css/bootstrap-theme.css'; ``` Import required React Bootstrap components within ```src/App.js``` file or your custom component files: ```js import { Navbar, Jumbotron, Button } from 'react-bootstrap'; ``` Now you are ready to use the imported React Bootstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/gaearon/85d8c067f6af1e56277c82d19fd4da7b/raw/6158dd991b67284e9fc8d70b9d973efe87659d72/App.js) redone using React Bootstrap. ## Adding Flow Flow typing is currently [not supported out of the box](https://github.com/facebookincubator/create-react-app/issues/72) with the default `.flowconfig` generated by Flow. If you run it, you might get errors like this: ```js node_modules/fbjs/lib/Deferred.js.flow:60 60: Promise.prototype.done.apply(this._promise, arguments); ^^^^ property `done`. Property not found in 495: declare class Promise<+R> { ^ Promise. See lib: /private/tmp/flow/flowlib_34952d31/core.js:495 node_modules/fbjs/lib/shallowEqual.js.flow:29 29: return x !== 0 || 1 / (x: $FlowIssue) === 1 / (y: $FlowIssue); ^^^^^^^^^^ identifier `$FlowIssue`. Could not resolve name src/App.js:3 3: import logo from './logo.svg'; ^^^^^^^^^^^^ ./logo.svg. Required module not found src/App.js:4 4: import './App.css'; ^^^^^^^^^^^ ./App.css. Required module not found src/index.js:5 5: import './index.css'; ^^^^^^^^^^^^^ ./index.css. Required module not found ``` To fix this, change your `.flowconfig` to look like this: ```ini [libs] ./node_modules/fbjs/flow/lib [options] esproposal.class_static_fields=enable esproposal.class_instance_fields=enable module.name_mapper='^\(.*\)\.css$' -> 'react-scripts/config/flow/css' module.name_mapper='^\(.*\)\.\(jpg\|png\|gif\|eot\|otf\|webp\|svg\|ttf\|woff\|woff2\|mp4\|webm\)$' -> 'react-scripts/config/flow/file' suppress_type=$FlowIssue suppress_type=$FlowFixMe ``` Re-run flow, and you shouldn’t get any extra issues. If you later `eject`, you’ll need to replace `react-scripts` references with the `<PROJECT_ROOT>` placeholder, for example: ```ini module.name_mapper='^\(.*\)\.css$' -> '<PROJECT_ROOT>/config/flow/css' module.name_mapper='^\(.*\)\.\(jpg\|png\|gif\|eot\|otf\|webp\|svg\|ttf\|woff\|woff2\|mp4\|webm\)$' -> '<PROJECT_ROOT>/config/flow/file' ``` We will consider integrating more tightly with Flow in the future so that you don’t have to do this. ## Adding Custom Environment Variables >Note: this feature is available with `react-scripts@0.2.3` and higher. Your project can consume variables declared in your environment as if they were declared locally in your JS files. By default you will have `NODE_ENV` defined for you, and any other environment variables starting with `REACT_APP_`. These environment variables will be defined for you on `process.env`. For example, having an environment variable named `REACT_APP_SECRET_CODE` will be exposed in your JS as `process.env.REACT_APP_SECRET_CODE`, in addition to `process.env.NODE_ENV`. These environment variables can be useful for displaying information conditionally based on where the project is deployed or consuming sensitive data that lives outside of version control. First, you need to have environment variables defined, which can vary between OSes. For example, let's say you wanted to consume a secret defined in the environment inside a `<form>`: ```jsx render() { return ( <div> <small>You are running this application in <b>{process.env.NODE_ENV}</b> mode.</small> <form> <input type="hidden" defaultValue={process.env.REACT_APP_SECRET_CODE} /> </form> </div> ); } ``` The above form is looking for a variable called `REACT_APP_SECRET_CODE` from the environment. In order to consume this value, we need to have it defined in the environment: ### Windows (cmd.exe) ```cmd set REACT_APP_SECRET_CODE=abcdef&&npm start ``` (Note: the lack of whitespace is intentional.) ### Linux, OS X (Bash) ```bash REACT_APP_SECRET_CODE=abcdef npm start ``` > Note: Defining environment variables in this manner is temporary for the life of the shell session. Setting permanent environment variables is outside the scope of these docs. With our environment variable defined, we start the app and consume the values. Remember that the `NODE_ENV` variable will be set for you automatically. When you load the app in the browser and inspect the `<input>`, you will see its value set to `abcdef`, and the bold text will show the environment provided when using `npm start`: ```html <div> <small>You are running this application in <b>development</b> mode.</small> <form> <input type="hidden" value="abcdef" /> </form> </div> ``` Having access to the `NODE_ENV` is also useful for performing actions conditionally: ```js if (process.env.NODE_ENV !== 'production') { analytics.disable(); } ``` ## Integrating with a Node Backend Check out [this tutorial](https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/) for instructions on integrating an app with a Node backend running on another port, and using `fetch()` to access it. You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo). ## Proxying API Requests in Development >Note: this feature is available with `react-scripts@0.2.3` and higher. People often serve the front-end React app from the same host and port as their backend implementation. For example, a production setup might look like this after the app is deployed: ``` / - static server returns index.html with React app /todos - static server returns index.html with React app /api/todos - server handles any /api/* requests using the backend implementation ``` Such setup is **not** required. However, if you **do** have a setup like this, it is convenient to write requests like `fetch('/api/todos')` without worrying about redirecting them to another host or port during development. To tell the development server to proxy any unknown requests to your API server in development, add a `proxy` field to your `package.json`, for example: ```js "proxy": "http://localhost:4000", ``` This way, when you `fetch('/api/todos')` in development, the development server will recognize that it’s not a static asset, and will proxy your request to `http://localhost:4000/api/todos` as a fallback. Conveniently, this avoids [CORS issues](http://stackoverflow.com/questions/21854516/understanding-ajax-cors-and-security-considerations) and error messages like this in development: ``` Fetch API cannot load http://localhost:4000/api/todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. ``` Keep in mind that `proxy` only has effect in development (with `npm start`), and it is up to you to ensure that URLs like `/api/todos` point to the right thing in production. You don’t have to use the `/api` prefix. Any unrecognized request will be redirected to the specified `proxy`. Currently the `proxy` option only handles HTTP requests, and it won’t proxy WebSocket connections. If the `proxy` option is **not** flexible enough for you, alternatively you can: * Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). * Use [environment variables](#adding-custom-environment-variables) to inject the right server host and port into your app. ## Deployment By default, Create React App produces a build assuming your app is hosted at the server root. To override this, specify the `homepage` in your `package.json`, for example: ```js "homepage": "http://mywebsite.com/relativepath", ``` This will let Create React App correctly infer the root path to use in the generated HTML file. ### Now See [this example](https://github.com/xkawi/create-react-app-now) for a zero-configuration single-command deployment with [now](https://zeit.co/now). ### Heroku Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack). You can find instructions in [Deploying React with Zero Configuration](https://blog.heroku.com/deploying-react-with-zero-configuration). ### Surge Install the Surge CLI if you haven't already by running `npm install -g surge`. Run the `surge` command and log in you or create a new account. You just need to specify the *build* folder and your custom domain, and you are done. ```sh email: email@domain.com password: ******** project path: /path/to/project/build size: 7 files, 1.8 MB domain: create-react-app.surge.sh upload: [====================] 100%, eta: 0.0s propagate on CDN: [====================] 100% plan: Free users: email@domain.com IP Address: X.X.X.X Success! Project is published and running at create-react-app.surge.sh ``` Note that in order to support routers that use html5 `pushState` API, you may want to rename the `index.html` in your build folder to `200.html` before deploying to Surge. This [ensures that every URL falls back to that file](https://surge.sh/help/adding-a-200-page-for-client-side-routing). ### GitHub Pages >Note: this feature is available with `react-scripts@0.2.0` and higher. Open your `package.json` and add a `homepage` field: ```js "homepage": "http://myusername.github.io/my-app", ``` **The above step is important!** Create React App uses the `homepage` field to determine the root URL in the built HTML file. Now, whenever you run `npm run build`, you will see a cheat sheet with a sequence of commands to deploy to GitHub pages: ```sh git commit -am "Save local changes" git checkout -B gh-pages git add -f build git commit -am "Rebuild website" git filter-branch -f --prune-empty --subdirectory-filter build git push -f origin gh-pages git checkout - ``` You may copy and paste them, or put them into a custom shell script. You may also customize them for another hosting provider. Note that GitHub Pages doesn't support routers that use the HTML5 `pushState` history API under the hood (for example, React Router using `browserHistory`). This is because when there is a fresh page load for a url like `http://user.github.io/todomvc/todos/42`, where `/todos/42` is a frontend route, the GitHub Pages server returns 404 because it knows nothing of `/todos/42`. If you want to add a router to a project hosted on GitHub Pages, here are a couple of solutions: * You could switch from using HTML5 history API to routing with hashes. If you use React Router, you can switch to `hashHistory` for this effect, but the URL will be longer and more verbose (for example, `http://user.github.io/todomvc/#/todos/42?_k=yknaj`). [Read more](https://github.com/reactjs/react-router/blob/master/docs/guides/Histories.md#histories) about different history implementations in React Router. * Alternatively, you can use a trick to teach GitHub Pages to handle 404 by redirecting to your `index.html` page with a special redirect parameter. You would need to add a `404.html` file with the redirection code to the `build` folder before deploying your project, and you’ll need to add code handling the redirect parameter to `index.html`. You can find a detailed explanation of this technique [in this guide](https://github.com/rafrex/spa-github-pages). ## Something Missing? If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebookincubator/create-react-app/issues) or [contribute some!](https://github.com/facebookincubator/create-react-app/edit/master/template/README.md)
GitHub Repo
https://github.com/hitters999/background-remover
hitters999/background-remover
Remove image backgrounds instantly with AI-powered precision. Upload any image and download a clean PNG with transparent background. Zero cost, unlimited usage, ultra HD quality. Powered by advanced AI and deployed on Vercel.
GitHub Repo
https://github.com/benjiaminhanks2/stylee.css
benjiaminhanks2/stylee.css
body{background:#fff;color:#303c42;font-size:14px;font-family:'Lato',Helvetica,Arial,sans-serif;line-height:20px;cursor:default;-webkit-font-smoothing:antialiased;opacity:0}body.loaded{background:url(../img/bg-pattern.png) repeat 0 0;opacity:1;-webkit-transition:opacity .3s ease-in;-moz-transition:opacity .3s ease-in;-o-transition:opacity .3s ease-in;transition:opacity .3s ease-in}#main-wrapper{overflow:hidden}#page-content{-webkit-box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1);box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1)}.page-content,.page-sidebar{padding-top:30px;padding-bottom:30px}a{color:#2aadde;text-decoration:none;cursor:pointer}.loaded a{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out}a:hover,a:focus{color:#1D8EB8;text-decoration:underline}a:focus{outline:none}img{max-width:100%;height:auto;vertical-align:middle}p{margin:0 0 10px}.page-content p{margin:0 0 20px}small,.small{font-size:85%}cite{font-style:normal}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}abbr[title],abbr[data-original-title]{border-bottom:1px dotted #ced6da;cursor:help}address{margin-bottom:20px;font-style:normal;line-height:24px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #ced6da}hr.primary{border-top-color:#2aadde}.css-table{display:table}.css-table-cell{display:table-cell;vertical-align:middle}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline > li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline > li:first-child{padding-left:0}.white-container{margin-bottom:30px;padding:20px 30px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.stars{display:block;margin:0;padding:0;list-style:none}.stars:before,.stars:after{display:table;content:' '}.stars:after{clear:both}.stars > li{display:block;float:left;color:inherit;padding:0 2px;cursor:pointer}.stars > li:first-child{padding-left:0}.stars > li:last-child{padding-right:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:inherit;text-transform:uppercase;font-weight:700;font-family:'Roboto Condensed',sans-serif;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{color:#BDBDBD;font-weight:400;line-height:1;text-transform:none}h1,h2,h3{margin-top:30px;margin-bottom:15px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:30px;margin-bottom:15px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:32px}h2,.h2{font-size:28px}h3,.h3{font-size:24px}h4,.h4{font-size:20px}h5,.h5{font-size:18px}h6,.h6{font-size:16px}.title-lines{position:relative;display:block;overflow:hidden;width:100%;height:auto;text-align:center}.title-lines h1,.title-lines h2,.title-lines h3,.title-lines h4,.title-lines h5,.title-lines h6{position:relative;display:inline-block;padding:0 30px;margin-bottom:30px}.title-lines h1:before,.title-lines h1:after,.title-lines h2:before,.title-lines h2:after,.title-lines h3:before,.title-lines h3:after,.title-lines h4:before,.title-lines h4:after,.title-lines h5:before,.title-lines h5:after,.title-lines h6:before,.title-lines h6:after{position:absolute;top:50%;display:block;margin-top:-3px;width:1000px;height:9px;background:url(../img/title-bg.png) repeat 0 0;content:'';vertical-align:middle}.title-lines h1:before,.title-lines h2:before,.title-lines h3:before,.title-lines h4:before,.title-lines h5:before,.title-lines h6:before{left:100%}.title-lines h1:after,.title-lines h2:after,.title-lines h3:after,.title-lines h4:after,.title-lines h5:after,.title-lines h6:after{right:100%}.bottom-line{padding-bottom:15px;border-bottom:1px solid #E6E6E6}h1.label,h2.label,h3.label,h4.label,h5.label,h6.label{text-transform:none;font-weight:400}fieldset{margin:0;padding:0;border:0}legend{display:block;margin-bottom:25px;padding:0;padding-bottom:10px;width:100%;border:0;border-bottom:1px solid #e6e6e6;color:inherit;font-size:20px;line-height:inherit}label{display:inline-block;margin-bottom:5px;line-height:24px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:5px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-style:inherit;font-size:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:0}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:5px;color:inherit;vertical-align:middle;line-height:24px}input[type="text"],input[type="email"],input[type="tel"],input[type="date"],textarea,select,.form-control{display:block;padding:4px 15px;width:100%;max-width:100%;min-width:0;height:30px;border:1px solid #e6e6e6;-webkit-border-radius:3px;border-radius:3px;background-image:none;color:inherit;vertical-align:middle;font-size:inherit;line-height:20px}select,select.form-control{padding:4px 5px 4px 15px}.form-control.pull-left,.form-control.pull-right{width:auto}.loaded input[type="text"],.loaded input[type="email"],.loaded input[type="tel"],.loaded input[type="date"],.loaded textarea,.loaded select,.loaded .form-control{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out}input[type="text"]:focus,input[type="email"]:focus,input[type="tel"]:focus,input[type="date"]:focus,textarea:focus,select:focus,.form-control:focus{outline:0;border-color:#bbb}:-moz-placeholder{color:#999}::-moz-placeholder{color:#999;opacity:1}:-ms-input-placeholder{color:#999}::-webkit-input-placeholder{color:#999}select.placeholder{color:#999}input[type="text"][disabled],input[type="email"][disabled],input[type="tel"][disabled],input[type="date"][disabled],textarea[disabled],select[disabled],.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;cursor:not-allowed}textarea,textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;margin-top:10px;margin-bottom:10px;padding-left:20px;min-height:24px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio + .radio,.checkbox + .checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;margin-bottom:0;padding-left:20px;vertical-align:middle;cursor:pointer}.radio-inline + .radio-inline,.checkbox-inline + .checkbox-inline{margin-top:0;margin-left:30px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ced6da}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;overflow:hidden;clip:rect(0 0 0 0);margin:-1px;padding:0;width:1px;height:1px;border:0}.ui-helper-reset{margin:0;padding:0;outline:0;border:0;list-style:none;text-decoration:none;font-size:100%;line-height:24px}.ui-helper-clearfix:before,.ui-helper-clearfix:after{display:table;border-collapse:collapse;content:' '}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:14px;height:14px;-webkit-border-radius:50%;border-radius:50%;background:#1D8EB8;cursor:pointer}.ui-slider .ui-slider-handle:before{position:absolute;top:2px;left:2px;display:block;width:10px;height:10px;border:1px solid #2aadde;-webkit-border-radius:5px;border-radius:5px;content:''}.ui-slider .ui-slider-range{position:absolute;z-index:1;display:block;border:0;background:#2aadde}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:6px;-webkit-border-radius:6px;border-radius:6px}.ui-slider-horizontal .ui-slider-handle{top:-4px;margin-left:-7px}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0;-webkit-border-radius:6px 0 0 6px;border-radius:6px 0 0 6px}.ui-slider-horizontal .ui-slider-range-max{right:0;-webkit-border-radius:0 6px 6px 0;border-radius:0 6px 6px 0}.ui-widget-content{background:#e6e6e6}.ui-widget-content a{-webkit-transition:all 0;-moz-transition:all 0;-o-transition:all 0;transition:all 0}table{margin:30px 0 60px;max-width:100%;width:100%;background-color:transparent}th{text-align:left}table > thead > tr > th,table > tbody > tr > th,table > tfoot > tr > th,table > thead > tr > td,table > tbody > tr > td,table > tfoot > tr > td{padding:13px 15px;border-bottom:1px solid #e7e7e7;vertical-align:top;line-height:24px}table > thead > tr > th{border-bottom:0;background:#2aadde;vertical-align:bottom;color:#fff}table > thead > tr > th:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}table > thead > tr > th:last-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}table > caption + thead > tr:first-child > th,table > colgroup + thead > tr:first-child > th,table > thead:first-child > tr:first-child > th,table > caption + thead > tr:first-child > td,table > colgroup + thead > tr:first-child > td,table > thead:first-child > tr:first-child > td{border-top:0}table > tbody + tbody{border-top:2px solid #e7e7e7}.table-condensed > thead > tr > th,.table-condensed > tbody > tr > th,.table-condensed > tfoot > tr > th,.table-condensed > thead > tr > td,.table-condensed > tbody > tr > td,.table-condensed > tfoot > tr > td{padding:6px}.table-bordered{border:1px solid #e7e7e7}.table-bordered > thead > tr > th,.table-bordered > tbody > tr > th,.table-bordered > tfoot > tr > th,.table-bordered > thead > tr > td,.table-bordered > tbody > tr > td,.table-bordered > tfoot > tr > td{border:1px solid #e7e7e7;background:none}.table-bordered > thead > tr > th{color:inherit}.table-striped > tbody > tr:nth-child(even) > td,.table-striped > tbody > tr:nth-child(even) > th{background-color:rgba(42,173,222,.025)}.table-hover > tbody > tr:hover > td,.table-hover > tbody > tr:hover > th{background-color:rgba(42,173,222,.05)}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.btn{display:inline-block;margin-bottom:0;padding:5px 20px;border:0;-webkit-border-radius:3px;border-radius:3px;background-image:none;color:#fff;vertical-align:middle;text-align:center;white-space:nowrap;font-weight:400;font-size:14px;line-height:20px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.loaded .btn{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out}.btn .fa{margin-right:5px}.btn-icon .fa{margin:0}.btn:hover,.btn:focus{text-decoration:none}.btn:focus{outline:0}.btn:active,.btn.active{outline:0}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{opacity:.65;filter:alpha(opacity=65);cursor:not-allowed;pointer-events:none}.btn-block{display:block;padding-right:0;padding-left:0;width:100%}.btn-block + .btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-default{padding-bottom:3px;border-bottom:2px solid #1797c7;background:#2aadde;color:#fff}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active{outline:0;border-color:#127499;background-color:#1d8eb8;color:#fff}.btn-red{padding-bottom:3px;border-bottom:2px solid #C22F2F;background:#F43A3B;color:#fff}.btn-red:hover,.btn-red:focus,.btn-red:active,.btn-red.active{outline:0;border-color:#992525;background-color:#ee0d0e;color:#fff}.btn-gray{padding-bottom:3px;border-bottom:2px solid #cecece;background:#E7E7E7;color:inherit}.btn-gray:hover,.btn-gray:focus,.btn-gray:active,.btn-gray.active{outline:0;border-color:#bdbdbd;background-color:#d6d6d6;color:inherit}.btn-link:hover,.btn-link:focus,.btn-link:active,.btn-link.active{outline:0}.btn-large{padding-left:30px;padding-right:30px;font-size:18px;line-height:40px;font-weight:700}#header{position:relative;background:#fff}#header a{text-decoration:none}#header .header-top-bar a:hover{color:#2aadde}#header .header-top-bar{padding:0;background:#1a6171;color:#fff}#header .header-top-bar .container{position:relative}#header .header-top-bar .header-login,#header .header-top-bar .header-register,#header .header-top-bar .bookmarks{float:right}#header .header-top-bar .header-login > .btn,#header .header-top-bar .header-register > .btn,#header .header-top-bar .bookmarks{margin-left:25px;padding-right:0;padding-left:0;font-size:12px}#header .header-top-bar .header-language{position:relative;display:block;float:left;margin:0}#header .header-top-bar .header-language > ul{margin:0;padding:0;list-style:none}#header .header-top-bar .header-language > ul > li{float:left}#header .header-top-bar .header-language > ul > li > a{display:block;padding:5px;min-width:30px;color:#fff;text-align:center;font-size:12px;line-height:20px}#header .header-top-bar .header-language > ul > li > a:hover{background:#1fb5ac}#header .header-top-bar .header-language > ul > li.active > a{background:#1fb5ac;color:#fff}#header .header-top-bar .header-login > div,#header .header-top-bar .header-register > div{position:absolute;top:100%;left:0;z-index:9999;display:block;visibility:hidden;margin:0;padding:0;border-top:2px solid #2aadde;list-style:none;opacity:0;-webkit-transform:translateY(25px);-moz-transform:translateY(25px);-ms-transform:translateY(25px);-o-transform:translateY(25px);transform:translateY(25px)}#header .header-top-bar .header-login.active > div,#header .header-top-bar .header-register.active > div{visibility:visible;opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.loaded #header .header-top-bar .header-login > div,.loaded #header .header-top-bar .header-register > div{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out}#header .header-top-bar .header-login > div,#header .header-top-bar .header-register > div{right:0;left:auto;padding:15px;width:275px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#1a6171}#header .header-login > div .btn-link,#header .header-register > div .btn-link{color:#fff}#header .header-login > div .form-control,#header .header-register > div .form-control{margin-bottom:10px;border:0;background:#fff;color:#303c42}#header .header-login > div .form-control:focus,#header .header-register > div .form-control:focus{background:#fff}#header .header-nav-bar{position:relative;width:100%}#header .header-nav-bar .logo{float:left;height:100px}#header .header-nav-bar .primary-nav{float:right;margin:0;padding:0;list-style:none}#header .header-nav-bar .primary-nav > li{position:relative;float:left;margin:0 0 0 25px;-webkit-transition:all .25s ease-in;-moz-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in;color:gray}#header .header-nav-bar .primary-nav > li.active{color:#303C42}#header .header-nav-bar .primary-nav > li:hover{color:#2aadde}#header .header-nav-bar .primary-nav > li:first-child{margin:0}#header .header-nav-bar .primary-nav > li > a{position:relative;display:block;padding:0 5px;border-bottom:3px solid transparent;font-size:16px;line-height:100px;height:100px;color:inherit}#header .header-nav-bar .primary-nav > li.active > a{border-bottom-color:#2aadde}#header .header-nav-bar .primary-nav:hover > li.active > a{border-bottom-color:transparent}#header .header-nav-bar .primary-nav:hover > li:hover > a,#header .header-nav-bar .primary-nav:hover > li.active:hover > a{border-bottom-color:#2aadde}#header .header-nav-bar .primary-nav ul{position:absolute;top:100%;left:0;z-index:9999;visibility:hidden;margin:-3px 0 0;padding:0;border-top:3px solid #2aadde;list-style:none;opacity:0;-webkit-transition:all .25s ease-out .05s;-moz-transition:all .25s ease-out .05s;-o-transition:all .25s ease-out .05s;transition:all .25s ease-out .05s}#header .header-nav-bar .primary-nav li:hover > ul,#header .header-nav-bar .primary-nav li.hover > ul{visibility:visible;opacity:1}#header .header-nav-bar .primary-nav > li > ul ul{top:0;left:100%;padding-left:5px;border-top:0;margin-top:0}#header .header-nav-bar .primary-nav ul > li{position:relative;color:#fff}#header .header-nav-bar .primary-nav ul > li > a{display:block;padding:10px 20px;width:200px;border-bottom:1px solid #1a1a1a;background:#343434;color:inherit;line-height:20px}#header .header-nav-bar .primary-nav ul > li.has-submenu > a{padding:10px 40px 10px 20px}#header .header-nav-bar .primary-nav ul > li:hover > a,#header .header-nav-bar .primary-nav ul > li.hover > a,#header .header-nav-bar .primary-nav ul > li.active > a{background:#2aadde}#header .header-nav-bar .primary-nav > li > ul ul > li:first-child > a{-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}#header .header-nav-bar .primary-nav ul > li:last-child > a{border-bottom:0;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}#header .header-nav-bar .primary-nav > li .submenu-arrow{position:absolute;top:0;right:0;display:block;padding:0;width:40px;height:40px;color:inherit;text-align:center;font-size:10px;line-height:40px;cursor:pointer}#header .header-nav-bar .primary-nav > li .submenu-arrow:before{content:'\f054';font-family:'FontAwesome'}#header .header-nav-bar .primary-nav > li > .submenu-arrow:before{content:'\f078'}#header .header-nav-bar .primary-nav > li.has-submenu{padding-right:15px}#header .header-nav-bar .primary-nav > li > .submenu-arrow{width:20px;height:100px;text-align:right;line-height:100px}#header.header-style-2 .header-nav-bar .primary-nav > li{margin:0;padding:25px 0;border-bottom:3px solid transparent}#header.header-style-2 .header-nav-bar .primary-nav > li > a{padding:5px 20px;border:0;border-right:1px solid #e6e6e6;font-weight:700;font-size:16px;font-family:'Roboto Condensed',sans-serif;line-height:20px;height:auto}#header.header-style-2 .header-nav-bar .primary-nav > li:first-child > a{border-left:1px solid #e6e6e6}#header.header-style-2 .header-nav-bar .primary-nav > li > a > span{position:relative;display:block;padding:0;font-weight:400;font-size:14px;font-family:'Roboto Condensed',sans-serif;line-height:20px}#header.header-style-2 .header-nav-bar .primary-nav > li.active{border-bottom-color:#2aadde}#header.header-style-2 .header-nav-bar .primary-nav:hover > li.active{border-bottom-color:transparent}#header.header-style-2 .header-nav-bar .primary-nav:hover > li:hover,#header.header-style-2 .header-nav-bar .primary-nav:hover > li.active:hover{border-bottom-color:#2aadde}#header .header-map{position:relative;z-index:1;border-bottom:3px solid #2aadde}#header .header-map-container{position:relative;width:100%;height:485px}#header .header-search-bar{position:relative;display:block;padding:15px 0;border-top:1px solid #ebebeb;-webkit-box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1);box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1)}#header .header-search-bar form > .basic-form{position:relative;margin-left:-15px;padding-left:45px}#header .header-search-bar form > .basic-form > div{float:left;padding-left:15px}#header .header-search-bar .hsb-input-1{width:35%}#header .header-search-bar .hsb-text-1{width:5%;text-align:center;line-height:30px}#header .header-search-bar .hsb-container{width:50%}#header .header-search-bar .hsb-container .hsb-input-2,#header .header-search-bar .hsb-container .hsb-select{float:left;width:50%}#header .header-search-bar .hsb-container .hsb-select{padding-left:15px}#header .header-search-bar .hsb-submit{width:10%}#header .header-search-bar .toggle{position:absolute;top:0;left:15px;display:block;float:left;width:30px;height:30px;-webkit-border-radius:3px;border-radius:3px;background:#ebebeb}#header .header-search-bar .toggle:hover,#header .header-search-bar.active .toggle{background:#2aadde}#header .header-search-bar .toggle span{position:absolute;top:9px;left:7px;display:block;width:16px;height:3px;border-bottom:1px solid #d3d3d3;background:#fff}#header .header-search-bar .toggle span:before,#header .header-search-bar .toggle span:after{position:absolute;left:0;display:block;width:100%;height:3px;border-bottom:1px solid #d3d3d3;background:#fff;content:''}#header .header-search-bar .toggle:hover span,#header .header-search-bar .toggle:hover span:before,#header .header-search-bar .toggle:hover span:after,#header .header-search-bar.active .toggle span,#header .header-search-bar.active .toggle span:before,#header .header-search-bar.active .toggle span:after{border-bottom-color:#1D8EB8}#header .header-search-bar .toggle span:before{top:5px}#header .header-search-bar .toggle span:after{top:10px}#header .header-search-bar .advanced-form{position:absolute;top:100%;left:0;z-index:10;display:none;padding:35px 0;width:100%;height:auto;background:rgba(255,255,255,.99);-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.25),inset 0 5px 5px -5px rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.25),inset 0 5px 5px -5px rgba(0,0,0,.1)}#header .header-search-bar .advanced-form .container > div{margin-bottom:20px}#header .header-search-bar .advanced-form .row > label{margin:0;font-weight:700;font-size:16px;font-family:'Roboto Condensed';line-height:30px}#header .header-search-bar .advanced-form .range-slider{position:relative;padding:12px 100px 12px 0}#header .header-search-bar .advanced-form .range-slider .last-value{position:absolute;top:0;right:0;display:block;padding:0;width:80px;text-align:left;font-weight:700;font-size:16px;font-family:'Roboto Condensed';line-height:30px}#header .header-categories ul{margin:0;padding:0;list-style:none}#header .header-categories ul > li{float:left;width:76px}#header .header-categories ul > li > a{display:block;width:100%;height:60px;border-right:1px solid #e7e7e7;background-image:url(../img/categories-icons.png);background-repeat:no-repeat;-webkit-transition:all 0;-moz-transition:all 0;-o-transition:all 0;transition:all 0}#header .header-categories ul > li:first-child > a{border-left:1px solid #e7e7e7}#header .header-categories ul > li.airport-icon > a{background-position:center 0}#header .header-categories ul > li.restaurant-icon > a{background-position:center -60px}#header .header-categories ul > li.shop-icon > a{background-position:center -120px}#header .header-categories ul > li.entertainment-icon > a{background-position:center -180px}#header .header-categories ul > li.real-estate-icon > a{background-position:center -240px}#header .header-categories ul > li.sports-icon > a{background-position:center -300px}#header .header-categories ul > li.cars-icon > a{background-position:center -360px}#header .header-categories ul > li.education-icon > a{background-position:center -420px}#header .header-categories ul > li.garden-icon > a{background-position:center -480px}#header .header-categories ul > li.mechanic-icon > a{background-position:center -540px}#header .header-categories ul > li.offices-icon > a{background-position:center -600px}#header .header-categories ul > li.advertising-icon > a{background-position:center -660px}#header .header-categories ul > li.industry-icon > a{background-position:center -720px}#header .header-categories ul > li.postal-icon > a{background-position:center -780px}#header .header-categories ul > li.libraries-icon > a{background-position:center -840px}#header .header-categories ul > li.airport-icon.active > a,#header .header-categories ul > li.airport-icon > a:hover{background-position:center -900px}#header .header-categories ul > li.restaurant-icon.active > a,#header .header-categories ul > li.restaurant-icon > a:hover{background-position:center -960px}#header .header-categories ul > li.shop-icon.active > a,#header .header-categories ul > li.shop-icon > a:hover{background-position:center -1020px}#header .header-categories ul > li.entertainment-icon.active > a,#header .header-categories ul > li.entertainment-icon > a:hover{background-position:center -1080px}#header .header-categories ul > li.real-estate-icon.active > a,#header .header-categories ul > li.real-estate-icon > a:hover{background-position:center -1140px}#header .header-categories ul > li.sports-icon.active > a,#header .header-categories ul > li.sports-icon > a:hover{background-position:center -1200px}#header .header-categories ul > li.cars-icon.active > a,#header .header-categories ul > li.cars-icon > a:hover{background-position:center -1260px}#header .header-categories ul > li.education-icon.active > a,#header .header-categories ul > li.education-icon > a:hover{background-position:center -1320px}#header .header-categories ul > li.garden-icon.active > a,#header .header-categories ul > li.garden-icon > a:hover{background-position:center -1380px}#header .header-categories ul > li.mechanic-icon.active > a,#header .header-categories ul > li.mechanic-icon > a:hover{background-position:center -1440px}#header .header-categories ul > li.offices-icon.active > a,#header .header-categories ul > li.offices-icon > a:hover{background-position:center -1500px}#header .header-categories ul > li.advertising-icon.active > a,#header .header-categories ul > li.advertising-icon > a:hover{background-position:center -1560px}#header .header-categories ul > li.industry-icon.active > a,#header .header-categories ul > li.industry-icon > a:hover{background-position:center -1620px}#header .header-categories ul > li.postal-icon.active > a,#header .header-categories ul > li.postal-icon > a:hover{background-position:center -1680px}#header .header-categories ul > li.libraries-icon.active > a,#header .header-categories ul > li.libraries-icon > a:hover{background-position:center -1740px}#header .header-page-title{padding:20px 0;background:#1a6171;color:#fff}#header .header-page-title a{color:inherit}#header .header-page-title a:hover{text-decoration:underline}#header .header-page-title h1{float:left;margin:0;font-size:24px;line-height:40px}#header .header-page-title .breadcrumbs{position:relative;display:block;float:right;margin:0;padding:10px 0;list-style:none}#header .header-page-title .breadcrumbs > li{float:left}#header .header-page-title .breadcrumbs > li:after{margin:0 10px;color:#1fb5ac;content:'/'}#header .header-page-title .breadcrumbs > li:last-child:after{display:none}#header .header-page-title .breadcrumbs > li a{display:inline-block;line-height:inherit}#header .header-banner{padding:0;background:#1a6171}.header-slider{width:100%;height:475px;opacity:0;overflow:hidden}.header-slider > .slides > li{position:relative;height:475px}.header-slider > .slides > li > div{width:100%;height:100%;background-position:center;background-size:cover;background-repeat:no-repeat;position:absolute;top:0;left:0}.header-slider .flex-control-nav{bottom:20px}.header-slider .flex-control-nav > li{margin:0 5px}.header-banner-box{position:relative;height:260px;width:100%;background-color:#fff;border-bottom:3px solid #ddd;-webkit-border-radius:3px;border-radius:3px;margin:30px 0;background-repeat:no-repeat}.header-banner-box.register{background-image:url(../img/register-bg.png);background-position:left bottom}.header-banner-box.post-job{background-image:url(../img/post-job-bg.png);background-position:right bottom}.header-banner-box.register .btn{position:absolute;bottom:30px;right:30px;display:block;padding:15px 0;font-size:18px;width:186px;font-weight:700}.header-banner-box.post-job .btn{position:absolute;bottom:30px;left:30px;display:block;padding:15px 0;font-size:18px;width:186px;font-weight:700}.header-banner-box.post-job img{position:absolute;top:30px;left:64px}.header-banner-box.register .counter-container{position:absolute;right:30px;top:30px}.header-banner-box.register .counter{list-style:none;margin:0;padding:0}.header-banner-box.register .counter-container div{position:relative;display:block;text-align:center;overflow:hidden}.header-banner-box.register .counter-container div > span{position:relative;display:inline-block;font-weight:700;margin-top:10px;padding:0 10px}.header-banner-box.register .counter-container div > span:before,.header-banner-box.register .counter-container div > span:after{position:absolute;display:block;width:100px;height:2px;background:#ddd;top:50%;content:''}.header-banner-box.register .counter-container div > span:before{right:100%}.header-banner-box.register .counter-container div > span:after{left:100%}.header-banner-box.register .counter > li{display:block;margin:0;padding:0;width:28px;height:42px;float:left;background:url(../img/counter-bg.png) no-repeat 0 0;line-height:42px;text-align:center;font-size:24px;font-weight:700;color:#444;margin-left:2px}.header-banner-box.register .counter > li.zero{color:#ccc}.header-banner-box.register .counter > li:nth-last-child(3n){margin-left:10px}.header-banner-box.register .counter > li:first-child{margin-left:0}#mobile-search-toggle{display:none;float:right;margin-top:10px;margin-left:25px;padding-right:0;padding-left:0;width:40px}#mobile-search-container{display:none;padding-top:15px}#mobile-menu-toggle{position:relative;display:none;float:right;margin-top:35px;padding:0;width:40px;height:30px;-webkit-border-radius:3px;border-radius:3px;background:#2aadde;line-height:30px}#mobile-menu-toggle span{position:absolute;top:10px;left:10px;display:block;width:20px;height:2px;background:#fff}#mobile-menu-toggle span:before,#mobile-menu-toggle span:after{position:absolute;left:0;display:block;width:100%;height:2px;background:#fff;content:''}#mobile-menu-toggle span:before{top:4px}#mobile-menu-toggle span:after{top:8px}#mobile-menu-container{display:none}#mobile-menu-container .login-register{display:none}#mobile-menu-container .header-login,#mobile-menu-container .header-register{display:none}#footer{position:relative;padding:40px 0 0;background:#e6e6e6;-webkit-box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1);box-shadow:inset 0 5px 5px -5px rgba(0,0,0,.1);color:#666}#footer h6,#footer .widget-title{margin:0 0 15px;padding:0}#footer .logo{margin-bottom:15px}#footer .widget{margin-bottom:30px}#footer .footer-links{margin:0;padding:0;list-style:none}#footer .footer-links a{position:relative;display:block;padding:5px 0;color:inherit;text-decoration:none}#footer .footer-links a:hover{color:#2aadde}#footer .footer-links a:before{position:relative;top:-1px;margin-right:10px;color:#2aadde;content:'\f054';font-size:8px;font-family:'FontAwesome'}#footer .copyright{padding:10px 0;background:#1a6171;color:gray}#footer .copyright p{float:left;margin:0;padding:5px 0}#footer .copyright p a{color:#ccc}#footer .footer-social{float:right;margin:0;padding:0;list-style:none}#footer .footer-social li{float:left;margin-left:10px}#footer .footer-social li a{display:block;width:30px;height:30px;-webkit-border-radius:3px;border-radius:3px;background:#1fb5ac;color:#fff;text-align:center;text-decoration:none;font-size:16px;line-height:30px}#footer .footer-social li a:hover{background:#555;color:#fff}.widget{position:relative;display:block;margin-bottom:30px}.widget:last-child{margin-bottom:0}.widget .widget-title{margin:0 0 20px;padding-bottom:15px;border-bottom:1px solid #e6e6e6}.widget.links-widget{padding:0}.widget.links-widget > ul{list-style:none;margin:0;padding:0}.widget.links-widget > ul > li{position:relative}.widget.links-widget > ul > li > a{display:block;border-bottom:1px solid #e6e6e6;color:inherit;padding:15px 20px;text-decoration:none}.widget.links-widget > ul > li > a:hover,.widget.links-widget > ul > li.active > a{color:#2aadde}.widget.links-widget > ul > li:last-child > a{border-bottom:0}.widget.links-widget > ul > li > a:before{position:relative;top:-1px;margin-right:20px;color:inherit;content:'\f054';font-size:8px;font-family:'FontAwesome'}.filter-list{list-style:none;padding:0;margin:0}.filter-list ul{list-style:none;padding:0 0 0 15px;margin:0;display:none}.filter-list a{position:relative;display:block;padding:5px 0;color:inherit;text-decoration:none}.filter-list a:hover,.filter-list li.active > a{color:#2aadde}.filter-list a > span{color:#999}.filter-list a:before{position:relative;top:-1px;margin-right:10px;color:inherit;content:'\f054';font-size:8px;font-family:'FontAwesome'}.filter-list li.has-submenu > a:before{color:#2aadde}.filter-list li.has-submenu.active > a:before{content:'\f078'}.country-list{list-style:none;padding:0;margin:0}.country-list a{position:relative;display:block;padding:5px 0 5px 30px;color:inherit;text-decoration:none}.country-list a > img{position:absolute;top:3px;left:0}.country-list a:hover{color:#2aadde}.country-list a > span{color:#999}.jobs-filter-widget .range-slider .slider,.compare-price-filter-widget .range-slider .slider{margin-bottom:10px}.jobs-filter-widget .range-slider .first-value,.compare-price-filter-widget .range-slider .first-value{float:left}.jobs-filter-widget .range-slider .last-value,.compare-price-filter-widget .range-slider .last-value{float:right}.jobs-filter-widget .toggle,.compare-price-filter-widget .toggle{display:block;position:relative;width:100%;height:1px;background:#2aadde;text-decoration:none}.jobs-filter-widget .toggle:after,.compare-price-filter-widget .toggle:after{position:relative;top:100%;left:50%;width:30px;height:10px;line-height:10px;content:'\f106';display:block;font-family:'FontAwesome';text-align:center;color:#fff;background:#2aadde;margin-left:-15px;font-size:12px}.jobs-filter-widget .toggle.active:after,.compare-price-filter-widget .toggle.active:after{content:'\f107'}.candidates-single-widget table{margin:0}.candidates-single-widget table > tbody > tr > td{padding:5px 0;border-bottom:0}.candidates-single-widget table > tbody > tr > td:first-child{font-weight:700;padding-right:15px}.candidates-single-widget table .stars{float:right;color:#2aadde}.candidates-single-widget .thumb{margin-top:10px;padding:3px;border:1px solid #E7E7E7}.candidates-single-widget .thumb img{width:100%;height:auto}.latest-jobs-section{position:relative;display:block;margin-bottom:30px}.latest-jobs-section .slides > li .image{position:absolute;top:0;left:0;padding:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.latest-jobs-section .slides > li img{width:80px;height:auto}.latest-jobs-section .slides > li .image .btn{position:absolute;bottom:-5px;left:50%;padding:0;width:24px;height:24px;text-align:center;font-size:12px;line-height:24px}.latest-jobs-section .slides > li .image .fa-search{margin-left:-26px}.latest-jobs-section .slides > li .image .fa-link{margin-left:2px}.latest-jobs-section .slides > li .content{padding-left:110px;min-height:80px}.latest-jobs-section .slides > li .content h6{margin:5px 0 0;text-transform:none}.latest-jobs-section .slides > li .content .location{display:block;margin-bottom:10px;color:#999;font-weight:700;font-size:14px;font-family:'Roboto Condensed',sans-serif}.latest-jobs-section .slides > li .content p{margin:0}.latest-jobs-section .flex-control-nav{position:absolute;top:10px;right:0;width:auto}.our-partners-section{position:relative;display:block;margin-bottom:30px;padding:10px}.our-partners-section ul{margin:0;padding:0;list-style:none}.our-partners-section ul > li{float:left;padding:20px 40px;width:33.1a61711a617133%}.our-partners-section ul > li > .css-table{width:100%;height:80px;text-align:center}.our-partners-section ul > li > .css-table img{display:inline-block;max-width:100%;max-height:80px;width:auto;height:auto}.success-stories-section{position:relative;padding:10px 0;background:#fff;-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.05);box-shadow:0 -1px 0 0 rgba(0,0,0,.05)}.success-stories-section .container{position:relative}.success-stories-section .container > h5{padding-bottom:15px;border-bottom:1px solid #e6e6e6}.success-stories-section .container > div{overflow:hidden;padding:0}.success-stories-section .flexslider{margin-right:-14px;margin-left:-14px}.success-stories-section .slides > li > a{display:block;padding:15px;width:130px}.success-stories-section .slides .thumb{display:block;padding:3px;width:100px;height:auto;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.success-stories-section .slides .thumb img{width:100%;height:auto}.success-stories-section .flex-direction-nav a{top:5px;width:auto;height:30px;color:#e1e1e1;text-align:center;font-size:16px;line-height:30px}.success-stories-section .flex-direction-nav .flex-prev{right:50px;left:auto}.success-stories-section .flex-direction-nav .flex-next{right:14px;left:auto}.success-stories-section .flex-direction-nav .flex-disabled{opacity:.5!important;filter:alpha(opacity=50)}.pricing-tables{position:relative;display:block;margin-right:-10px;margin-left:-10px}.pricing-tables:before,.pricing-tables:after{display:table;content:''}.pricing-tables:after{clear:both}.pricing-tables .white-container{margin-bottom:0}.pricing-tables.tables-2 .pricing-tables-column{width:50%}.pricing-tables.tables-3 .pricing-tables-column{width:33.1a61711a617133%}.pricing-tables.tables-4 .pricing-tables-column{width:25%}.pricing-tables .pricing-tables-column{position:relative;display:block;float:left;margin-bottom:30px;padding:0 10px;width:100%;text-align:center;-webkit-transition:all .25s ease-in;-moz-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}.pricing-tables .pricing-tables-column ul{margin:0;padding:0;list-style:none}.pricing-tables .pricing-tables-column .title{margin:0;padding:0 0 15px;border-bottom:1px solid #e6e6e6}.pricing-tables .pricing-tables-column .price{display:block;border-bottom:1px solid #e6e6e6;color:#2aadde;font-weight:700;font-size:24px;font-family:'Roboto Condensed',sans-serif;line-height:60px}.pricing-tables .pricing-tables-column .features > li{padding:15px 0;border-bottom:1px solid #e6e6e6}.pricing-tables .pricing-tables-column .btn{margin:20px 0 0}.responsive-tabs{position:relative;display:block;margin:0 0 30px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{display:table;content:' '}.nav:after{clear:both}.nav-tabs{border-bottom:3px solid #2aadde;font-size:14px}.nav-tabs > li{float:left}.nav-tabs > li > a{display:block;margin-right:2px;padding:10px 15px 9px;min-width:100px;border:1px solid #ddd;border-bottom:0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#444;background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.1)),to(rgba(0,0,0,.1)));background:-webkit-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:-moz-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:-o-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:linear-gradient(to bottom,rgba(255,255,255,.1),rgba(0,0,0,.1));-webkit-box-shadow:inset 0 1px 0 0 rgba(255,255,255,.3);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.3);color:#303c42;text-align:center;text-decoration:none}.nav-tabs > li.active > a,.nav-tabs > li.active > a:hover,.nav-tabs > li.active > a:focus{border-color:#2aadde;background-color:#2aadde;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.1)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(255,255,255,.1),rgba(0,0,0,0));color:#fff;cursor:default}.responsive-tabs > .tab-content{margin:0;padding:0}.responsive-tabs > .tab-content > .tab-pane{display:none;background:#fff}.responsive-tabs > .tab-content > .active{display:block}.responsive-tabs > .tab-content .tab-pane{padding:30px;border:1px solid #2aadde;border-top:0;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.responsive-tabs > .tab-content.unstyled > .tab-pane,.responsive-tabs > .tab-content > .tab-pane.unstyled{padding-right:0;padding-bottom:0;padding-left:0;border:0}.responsive-tabs > .tab-content > a.acc-link{position:relative;display:none;margin:0;padding:10px 15px 9px;border:1px solid #ddd;border-bottom:0;background:#444;background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.1)),to(rgba(0,0,0,.1)));background:-webkit-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:-moz-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:-o-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,.1));background:linear-gradient(to bottom,rgba(255,255,255,.1),rgba(0,0,0,.1));-webkit-box-shadow:inset 0 1px 0 0 rgba(255,255,255,.3);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.3);color:#303c42;text-decoration:none}.responsive-tabs > .tab-content > .acc-link.first{-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.responsive-tabs > .tab-content > .acc-link.last{border-bottom:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.responsive-tabs > .tab-content > .acc-link.active.last{-webkit-border-radius:0;border-radius:0}.responsive-tabs > .tab-content > .acc-link.active,.responsive-tabs > .tab-content > .acc-link.active:hover,.responsive-tabs > .tab-content > .acc-link.active:focus{border-color:#2aadde;background-color:#2aadde;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.1)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(255,255,255,.1),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(255,255,255,.1),rgba(0,0,0,0));color:#fff;cursor:default}.responsive-tabs.vertical > .tab-content{margin-left:200px;border-left:3px solid #2aadde}.responsive-tabs.vertical > .tab-content > .tab-pane{border:1px solid #ddd;border-left:0}.responsive-tabs.vertical > .nav-tabs{float:left;border:0;border-right:3px solid #2aadde}.responsive-tabs.vertical > .nav-tabs > li{float:none}.responsive-tabs.vertical > .nav-tabs > li > a{margin-right:0;margin-bottom:2px;width:200px;border:1px solid #ddd;border-right:0;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;text-align:left}.responsive-tabs.vertical > .nav-tabs > li:last-child > a{margin-bottom:0}.responsive-tabs.vertical > .nav-tabs > li.active > a,.responsive-tabs.vertical > .nav-tabs > li.active > a:hover,.responsive-tabs.vertical > .nav-tabs > li.active > a:focus{border-color:transparent}.responsive-tabs.vertical > .tab-content.unstyled > .tab-pane,.responsive-tabs.vertical > .tab-content > .tab-pane.unstyled{border:0;padding:0 0 0 30px}.accordion{position:relative;display:block;margin:30px 0 60px}.accordion ul{margin:0;padding:0;border:1px solid #ddd;border-top:0;list-style:none}.accordion ul > li > a{position:relative;display:block;padding:15px 15px 15px 70px;border-top:1px solid #ddd;color:inherit;text-decoration:none;font-weight:700;font-size:16px}.accordion ul > li > a:before{position:absolute;top:0;left:0;display:block;padding-top:2px;width:50px;border-right:1px solid #ddd;content:'\f067';text-align:center;font-size:14px;font-family:'FontAwesome';line-height:48px}.accordion ul > li.active > a:before{content:'\f068'}.accordion ul > li > div{display:none;padding:30px;border-top:1px solid #ddd}.accordion ul > li.active > div{display:block;padding:30px}.alert{position:relative;display:block;margin:30px 0;padding:15px 50px 15px 30px;background:#ddd;color:#fff}.alert.alert-success{background:#a6b746}.alert.alert-info{background:#4696b7}.alert.alert-warning{background:#e0b346}.alert.alert-error{background:#da3a3a}.alert .close{position:absolute;top:15px;right:20px;display:block;width:auto;height:24px;color:#fff;text-decoration:none;line-height:24px}.alert h4,.alert h5,.alert h6{margin:0;line-height:1.5em}.alert p{margin:5px 0 0;font-size:14px}.progress-bar{position:relative;display:block;margin:30px 0}.progress-bar > .progress-bar-title{margin:0 0 10px}.progress-bar > .progress-bar-inner{position:relative;display:block;width:100%;height:10px;-webkit-border-radius:3px;border-radius:3px;background:#e7e7e7}.progress-bar > .progress-bar-inner > span{position:absolute;top:0;left:0;display:block;width:0;height:100%;-webkit-border-radius:3px;border-radius:3px;background:#2aadde;-webkit-transition:width .75s ease-out;-moz-transition:width .75s ease-out;-o-transition:width .75s ease-out;transition:width .75s ease-out}.progress-bar.style-2 > .progress-bar-inner{padding:3px;background:#2aadde}.progress-bar.style-2 > .progress-bar-inner > span{position:relative;top:0;left:0;height:4px;-webkit-border-radius:1px;border-radius:1px;background:#fff}.progress-bar.toggle{padding-left:46px}.progress-bar.toggle > .progress-bar-toggle{position:absolute;top:0;left:0;display:block;padding:9px 0 6px;width:34px;height:37px;border-bottom:2px solid #1797c7;-webkit-border-radius:3px;border-radius:3px;background:#2aadde;color:#fff;text-align:center;text-decoration:none;font-size:14px;font-family:'FontAwesome';line-height:20px}.progress-bar.toggle > .progress-bar-toggle:before{content:'\f067'}.progress-bar.toggle.active > .progress-bar-toggle:before{content:'\f068'}.progress-bar.toggle.active > .progress-bar-toggle,.progress-bar.toggle > .progress-bar-toggle:hover{border-bottom-color:#127499;background:#1d8eb8}.progress-bar.toggle > .progress-bar-content{display:none;padding-top:10px}.progress-bar.toggle.active > .progress-bar-content{display:block}.animated-counter{position:relative;display:block;margin:30px 0 60px;text-align:center}.animated-counter .fa{display:block;font-size:50px;line-height:60px}.animated-counter span{position:relative;display:block;margin-top:5px;margin-bottom:15px;padding-bottom:20px;font-size:30px;line-height:30px}.animated-counter span:before,.animated-counter span:after{position:absolute;bottom:0;left:50%;display:block;margin-left:-75px;width:150px;height:1px;background:#ddd;content:''}.animated-counter span:after{margin-bottom:-2px}.animated-counter h3{margin:0;line-height:1.2em}.progress-circle{position:relative;display:block;margin:30px 0 60px;text-align:center}.progress-circle .loader{position:relative;display:block;margin:0 auto;width:150px;height:150px;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.progress-circle .loader-bg{width:100%;height:100%;border:6px solid #e7e7e7;-webkit-border-radius:50%;border-radius:50%}.progress-circle .spiner-holder-one{position:absolute;top:0;left:0;overflow:hidden;width:75px;height:75px}.progress-circle .spiner-holder-two{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%}.progress-circle .loader-spiner{width:200%;height:200%;border:6px solid #2aadde;-webkit-border-radius:50%;border-radius:50%}.progress-circle .animate-0-25-a{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.progress-circle .animate-25-50-a{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.progress-circle .animate-50-75-a{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.progress-circle .animate-75-100-a{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.progress-circle .animate-0-25-b,.progress-circle .animate-25-50-b,.progress-circle .animate-50-75-b,.progress-circle .animate-75-100-b{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.progress-circle .animate-0-25-a,.progress-circle .animate-0-25-b,.progress-circle .animate-25-50-a,.progress-circle .animate-25-50-b,.progress-circle .animate-50-75-a,.progress-circle .animate-50-75-b,.progress-circle .animate-75-100-a,.progress-circle .animate-75-100-b{-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.progress-circle .text{font-size:30px;line-height:138px}.progress-circle h3{margin:25px 0 0}.our-team-item{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-bottom:30px;border:1px solid #E6E6E6}.our-team-item .img{padding:5px;border-bottom:1px solid #E6E6E6}.our-team-item .img img{width:100%;height:auto}.our-team-item h6{margin:0;text-transform:none;text-align:center;padding:15px}.our-team-item h6 span{display:block;margin-top:5px;color:#d3d3d3}.partners-item{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-bottom:30px;border:1px solid #E6E6E6;padding:5px}.partners-item .img{position:relative}.partners-item .img .overlay{position:absolute;display:block;top:0;left:0;width:100%;height:100%;background:#2aadde;color:#fff;padding:15px;overflow:hidden;opacity:0;visibility:hidden;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.partners-item .img:hover .overlay{opacity:1;visibility:visible}.partners-item .img .overlay h6{margin:0 0 15px}.partners-item .img .overlay p{margin-bottom:10px}.partners-item .img .overlay a{color:inherit}.partners-item .img img{width:100%;height:auto}.partners-item .meta{margin:0;padding-top:5px}.partners-item .meta span{display:block;line-height:30px;float:left}.partners-item .meta .btn{padding-left:0;padding-right:0;width:30px;float:right;margin-left:5px}.candidates-item{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-bottom:30px;padding:20px;position:relative}.candidates-item .thumb{padding:3px;float:left;border:1px solid #E7E7E7;margin-right:20px}.candidates-item .thumb > img{width:80px;height:auto}.candidates-item .title{margin:0;text-transform:none}.candidates-item .title a{color:inherit;text-decoration:none}.candidates-item .meta{display:inline-block;color:gray;margin-bottom:10px}.candidates-item .top-btns{list-style:none;margin:0;padding:0;position:absolute;top:20px;right:20px}.candidates-item .top-btns li{float:left;margin-left:5px}.candidates-item .top-btns li .btn{padding-left:0;padding-right:0;width:30px}.candidates-item .social-icons{position:relative;list-style:none;margin:0;padding:0}.candidates-single-item .social-icons{margin-bottom:20px}.candidates-item .social-icons > li{float:left;margin-right:5px}.candidates-item .social-icons.pull-right > li{float:left;margin-right:0;margin-left:5px}.candidates-item .social-icons > li > span{display:inline-block;line-height:30px;margin-right:5px}.candidates-item .social-icons > li .btn{padding-left:0;padding-right:0;width:30px}.candidates-item .description{margin-bottom:0}.candidates-item .content{display:none;padding-top:20px}.candidates-item.active .read-more{display:none}.candidates-search{padding:20px}.jobs-item{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-bottom:30px;padding:20px;position:relative}.jobs-item .thumb{display:none;padding:3px;float:left;border:1px solid #E7E7E7;margin-right:20px}.jobs-item.with-thumb .thumb,.jobs-single-item .thumb{display:block}.jobs-item .thumb img{width:80px;height:auto}.jobs-item .date{display:inline-block;background:#2aadde;-webkit-border-radius:3px;border-radius:3px;padding:2px;line-height:16px;font-size:14px;text-align:center;font-weight:700;color:#fff;float:left;margin-right:10px}.jobs-item .date > span{display:block;background:#fff;color:#303C42;-webkit-border-radius:2px;border-radius:2px;padding:0 3px}.jobs-item .title{margin:0;text-transform:none}.jobs-item .title a{color:inherit;text-decoration:none}.jobs-item .meta{display:inline-block;color:gray;margin-bottom:10px}.jobs-item.compact .meta{margin-bottom:0}.jobs-item .top-btns{list-style:none;margin:0;padding:0;position:absolute;top:20px;right:20px}.jobs-item .top-btns li{float:left;margin-left:5px}.jobs-item .top-btns li .btn{padding-left:0;padding-right:0;width:30px}.jobs-item .social-icons{position:relative;list-style:none;margin:0;padding:0}.jobs-item .social-icons > li{float:left;margin-right:5px}.jobs-item .social-icons.pull-right > li{float:left;margin-right:0;margin-left:5px}.jobs-item .social-icons > li > span{display:inline-block;line-height:30px;margin-right:5px}.jobs-item .social-icons > li .btn{padding-left:0;padding-right:0;width:30px}.jobs-item .description{margin-bottom:0}.jobs-item.compact .description{display:none}.jobs-item .content{display:none;padding-top:20px}.jobs-item.active .read-more{display:none}.jobs-item .additional-requirements{list-style:none;margin:0;padding:0}.jobs-item .additional-requirements > li{display:block;border-bottom:2px solid #CECECE;background:#E7E7E7;color:inherit;margin:0 5px 5px 0;padding:5px 20px 3px;-webkit-border-radius:3px;border-radius:3px;font-size:14px;line-height:20px;float:left}.jobs-view-toggle{list-style:none;margin:0 15px 0 0;padding:0}.jobs-view-toggle li{float:left;margin-right:5px}.jobs-view-toggle .btn{padding-left:0;padding-right:0;text-align:center;width:30px}.about-candidate-item{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-bottom:30px;padding:20px;position:relative}.about-candidate-item .thumb{padding:3px;float:left;border:1px solid #E7E7E7;margin-right:20px}.about-candidate-item .thumb img{width:80px;height:auto}.about-candidate-item .title{margin:0;text-transform:none}.about-candidate-item .title a{color:inherit;text-decoration:none}.about-candidate-item .meta{display:inline-block;color:gray;margin-bottom:10px}.about-candidate-item p{margin-bottom:0}.about-candidate-item .social-icons{list-style:none;margin:0;padding:0;position:absolute;top:20px;right:20px}.about-candidate-item .social-icons > li{float:left;margin-left:5px}.about-candidate-item .social-icons.pull-right > li{float:left;margin-right:0;margin-left:5px}.about-candidate-item .social-icons > li > span{display:inline-block;line-height:30px;margin-right:5px}.about-candidate-item .social-icons > li .btn{padding-left:0;padding-right:0;width:30px}.about-candidate-item .list-unstyled{margin-bottom:0}.about-candidate-item .btn-default{position:absolute;top:70px;right:20px}.find-job-tabs > .tab-content .tab-pane{padding:0}#contact-page-map,#jobs-page-map,#jobs-single-page-map,#compare-price-map{height:300px;padding:5px}#find-job-map-tab{height:300px}.share-box{position:relative;display:block;padding-left:5px;padding-right:5px;margin-bottom:10px}.share-box > div{border:2px solid #e7e7e7;-webkit-border-radius:3px;border-radius:3px;padding:10px 0;text-align:center;font-weight:700;font-size:18px;margin-bottom:10px;position:relative}.share-box > div:before,.share-box > div:after{position:absolute;display:block;content:'';width:0;height:0;top:100%;left:50%;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent}.share-box > div:before{border-top:7px solid #e7e7e7}.share-box > div:after{border-top:7px solid #fff;margin-top:-3px}.share-box > a{display:block;margin:0;height:30px;line-height:30px;-webkit-border-radius:3px;border-radius:3px;color:#fff;text-decoration:none;font-size:10px;text-align:center}.share-box.facebook > a{background:#4C66A4}.share-box.twitter > a{background:#55ACEE}.share-box.google > a{background:#d34836}.share-box.linkedin > a{background:#4875B4}.share-box.facebook > a:hover{background:#3c5081}.share-box.twitter > a:hover{background:#2795e9}.share-box.google > a:hover{background:#b03626}.share-box.linkedin > a:hover{background:#395d90}.pagination{display:inline-block;overflow:hidden;margin:0;padding:0;border:1px solid #e7e7e7;-webkit-border-radius:3px;border-radius:3px;list-style:none;background:#fff}.pagination:before,.pagination:after{display:table;content:' '}.pagination:after{clear:both}.pagination > li{float:left;border-right:1px solid #e7e7e7}.pagination > li:last-child{border-right:0}.pagination > li > a{display:block;width:30px;height:28px;color:inherit;text-align:center;text-decoration:none;line-height:28px}.pagination > li > a:hover{color:#2aadde}.pagination > li.active > a{background:#efefef;color:inherit;cursor:default}.gm-style img{max-width:none}.gm-style label{display:inline;width:auto}.ullist li.active a,.ullist li a:hover{color:#2aadde!important;background-color:#f5f5f5!important}.row-p5{margin-left:-5px;margin-right:-5px}.boxed-layout #main-wrapper{width:1170px;margin:10px auto;background:#f0f0f0;background:rgba(255,255,255,.5)}.boxed-layout #header .header-categories .container{padding:0}.boxed-layout #header .header-categories ul > li{width:78px}.boxed-layout #header .header-categories ul > li:first-child > a{border-left:0}.boxed-layout #header .header-categories ul > li:last-child > a{border-right:0}.form-steps{list-style:none;margin:0;padding:0}.form-steps > li{position:relative;display:block;background:#eee;border-top:1px solid #ddd;border-bottom:1px solid #ddd;float:left;padding:0;font-size:18px;text-align:center;font-weight:700;color:#888;font-family:'Roboto Condensed',sans-serif;line-height:50px;-webkit-box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.3);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.3)}.form-steps.four > li{width:25%}.form-steps > li:first-child{border-left:1px solid #ddd}.form-steps > li:last-child{border-right:1px solid #ddd}.form-steps.four > li.active,.form-steps.four > li.completed{background:#2aadde;border-top:1px solid #2aadde;border-bottom:1px solid #2aadde;color:#fff}.form-steps.four > li.completed{color:#82cfec}.form-steps > li.active:first-child,.form-steps > li.completed:first-child{border-left-color:#2aadde}.form-steps > li.active:last-child,.form-steps > li.completed:last-child{border-right-color:#2aadde}.form-steps > li:before,.form-steps > li:after{display:block;position:absolute;content:'';top:-1px;width:0;height:0;border-top:26px solid transparent;border-bottom:26px solid transparent;z-index:10}.form-steps > li:before{right:-27px;border-left:26px solid #e0e0e0}.form-steps > li:after{right:-26px;border-left:26px solid #eee}.form-steps > li.active:before,.form-steps > li.completed:before{border-left:26px solid rgba(255,255,255,0.3)}.form-steps > li.active:after,.form-steps > li.completed:after{border-left:26px solid #2aadde}.form-steps > li:last-child:before,.form-steps > li:last-child:after{display:none}.sign-up-form{position:relative;padding:20px 50px}.sign-up-form section .row{margin-bottom:20px}.sign-up-form .bottom-line{margin-top:60px}.sign-up-form .range-slider .slider{margin-bottom:15px}.sign-up-form .range-slider .first-value,.sign-up-form .range-slider .last-value{border:1px solid #e6e6e6;-webkit-border-radius:3px;border-radius:3px;padding:5px 15px}.sign-up-form .range-slider .first-value{float:left}.sign-up-form .range-slider .last-value{float:right}.sign-up-form .day-input,.sign-up-form .month-input,.sign-up-form .year-input{text-align:center;width:50px;padding-left:5px;padding-right:5px;display:inline-block;margin-right:10px}.sign-up-form .year-input{width:80px}.compare-price-product{padding:20px}.compare-price-product .thumb{max-width:200px;border:1px solid #E7E7E7;padding:3px;margin-right:20px}.compare-price-product h3{margin:0}.compare-price-head{background:#1a6171;margin-bottom:20px;font-size:14px;font-weight:700;font-family:'Lato',sans-serif;color:#fff}.compare-price-head .css-table-cell{padding:10px 20px}.compare-price-head .product,.compare-price-item .product{width:100%}.compare-price-head .price,.compare-price-item .price,.compare-price-head .retailer,.compare-price-item .retailer{border-left:1px solid #e6e6e6;min-width:160px;text-align:center}.compare-price-head.grid .price,.compare-price-item.grid .price,.compare-price-head.grid .retailer,.compare-price-item.grid .retailer{border-left:0;min-width:0;text-align:center}.compare-price-item{padding:0;margin-bottom:20px}.compare-price-item.grid{padding:20px}.compare-price-item .css-table-cell{padding:20px}.compare-price-item .price span{display:block;font-size:18px;color:#2aadde;margin-bottom:10px}.compare-price-item.grid .price span{margin-top:20px}.compare-price-item .retailer .thumb{display:inline-block}.compare-price-item .product h6{margin:0 0 10px}.compare-price-item.grid .product h6{text-transform:none;font-size:16px;margin-bottom:20px;text-align:center}.compare-price-item .product p{margin:0}.compare-price-item .image{min-width:80px;padding-right:0}.compare-price-item.grid .image{text-align:center}.compare-price-item .image .thumb{position:relative;border:1px solid #E7E7E7;padding:3px}.compare-price-item.grid .image .thumb{display:inline-block;margin-bottom:20px}.compare-price-item .image .thumb > img{min-width:80px;height:auto}.compare-price-item .image .thumb > div{display:table-cell;position:absolute;width:80px;height:80px;top:3px;left:3px;background:rgba(42,173,222,.9);text-align:center;color:#fff}.compare-price-item .image .thumb > div a{color:inherit;display:inline-block}.compare-price-category{text-align:center}.compare-price-category h6{text-transform:none;font-size:16px;margin:20px 0}.compare-price-category .thumb{position:relative;border:1px solid #E7E7E7;padding:3px;display:inline-block}.compare-price-slider{margin-bottom:30px}.compare-price-slider .slides > li > div{position:absolute;display:block;bottom:0;left:0;background:rgba(77,77,77,.9);color:#fff;padding:20px}.compare-price-slider .slides > li h5{margin-top:0}.compare-price-slider .slides > li p{margin-bottom:0}.m60{margin:60px}.m55{margin:55px}.m50{margin:50px}.m45{margin:45px}.m40{margin:40px}.m35{margin:35px}.m30{margin:30px}.m25{margin:25px}.m20{margin:20px}.m15{margin:15px}.m10{margin:10px}.m5{margin:5px}.m0{margin:0}.mt60{margin-top:60px}.mt55{margin-top:55px}.mt50{margin-top:50px}.mt45{margin-top:45px}.mt40{margin-top:40px}.mt35{margin-top:35px}.mt30{margin-top:30px}.mt25{margin-top:25px}.mt20{margin-top:20px}.mt15{margin-top:15px}.mt10{margin-top:10px}.mt5{margin-top:5px}.mt0{margin-top:0}.mb60{margin-bottom:60px}.mb55{margin-bottom:55px}.mb50{margin-bottom:50px}.mb45{margin-bottom:45px}.mb40{margin-bottom:40px}.mb35{margin-bottom:35px}.mb30{margin-bottom:30px}.mb25{margin-bottom:25px}.mb20{margin-bottom:20px}.mb15{margin-bottom:15px}.mb10{margin-bottom:10px}.mb5{margin-bottom:5px}.mb0{margin-bottom:0}.p60{padding:60px}.p55{padding:55px}.p50{padding:50px}.p45{padding:45px}.p40{padding:40px}.p35{padding:35px}.p30{padding:30px}.p25{padding:25px}.p20{padding:20px}.p15{padding:15px}.p10{padding:10px}.p5{padding:5px}.p0{padding:0}.pt60{padding-top:60px}.pt55{padding-top:55px}.pt50{padding-top:50px}.pt45{padding-top:45px}.pt40{padding-top:40px}.pt35{padding-top:35px}.pt30{padding-top:30px}.pt25{padding-top:25px}.pt20{padding-top:20px}.pt15{padding-top:15px}.pt10{padding-top:10px}.pt5{padding-top:5px}.pt0{padding-top:0}.pb60{padding-bottom:60px}.pb55{padding-bottom:55px}.pb50{padding-bottom:50px}.pb45{padding-bottom:45px}.pb40{padding-bottom:40px}.pb35{padding-bottom:35px}.pb30{padding-bottom:30px}.pb25{padding-bottom:25px}.pb20{padding-bottom:20px}.pb15{padding-bottom:15px}.pb10{padding-bottom:10px}.pb5{padding-bottom:5px}.pb0{padding-bottom:0}
GitHub Repo
https://github.com/ManojKumarPatnaik/Major-project-list
ManojKumarPatnaik/Major-project-list
A list of practical projects that anyone can solve in any programming language (See solutions). These projects are divided into multiple categories, and each category has its own folder. To get started, simply fork this repo. CONTRIBUTING See ways of contributing to this repo. You can contribute solutions (will be published in this repo) to existing problems, add new projects, or remove existing ones. Make sure you follow all instructions properly. Solutions You can find implementations of these projects in many other languages by other users in this repo. Credits Problems are motivated by the ones shared at: Martyr2’s Mega Project List Rosetta Code Table of Contents Numbers Classic Algorithms Graph Data Structures Text Networking Classes Threading Web Files Databases Graphics and Multimedia Security Numbers Find PI to the Nth Digit - Enter a number and have the program generate PI up to that many decimal places. Keep a limit to how far the program will go. Find e to the Nth Digit - Just like the previous problem, but with e instead of PI. Enter a number and have the program generate e up to that many decimal places. Keep a limit to how far the program will go. Fibonacci Sequence - Enter a number and have the program generate the Fibonacci sequence to that number or to the Nth number. Prime Factorization - Have the user enter a number and find all Prime Factors (if there are any) and display them. Next Prime Number - Have the program find prime numbers until the user chooses to stop asking for the next one. Find Cost of Tile to Cover W x H Floor - Calculate the total cost of the tile it would take to cover a floor plan of width and height, using a cost entered by the user. Mortgage Calculator - Calculate the monthly payments of a fixed-term mortgage over given Nth terms at a given interest rate. Also, figure out how long it will take the user to pay back the loan. For added complexity, add an option for users to select the compounding interval (Monthly, Weekly, Daily, Continually). Change Return Program - The user enters a cost and then the amount of money given. The program will figure out the change and the number of quarters, dimes, nickels, pennies needed for the change. Binary to Decimal and Back Converter - Develop a converter to convert a decimal number to binary or a binary number to its decimal equivalent. Calculator - A simple calculator to do basic operators. Make it a scientific calculator for added complexity. Unit Converter (temp, currency, volume, mass, and more) - Converts various units between one another. The user enters the type of unit being entered, the type of unit they want to convert to, and then the value. The program will then make the conversion. Alarm Clock - A simple clock where it plays a sound after X number of minutes/seconds or at a particular time. Distance Between Two Cities - Calculates the distance between two cities and allows the user to specify a unit of distance. This program may require finding coordinates for the cities like latitude and longitude. Credit Card Validator - Takes in a credit card number from a common credit card vendor (Visa, MasterCard, American Express, Discoverer) and validates it to make sure that it is a valid number (look into how credit cards use a checksum). Tax Calculator - Asks the user to enter a cost and either a country or state tax. It then returns the tax plus the total cost with tax. Factorial Finder - The Factorial of a positive integer, n, is defined as the product of the sequence n, n-1, n-2, ...1, and the factorial of zero, 0, is defined as being 1. Solve this using both loops and recursion. Complex Number Algebra - Show addition, multiplication, negation, and inversion of complex numbers in separate functions. (Subtraction and division operations can be made with pairs of these operations.) Print the results for each operation tested. Happy Numbers - A happy number is defined by the following process. Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers. Display an example of your output here. Find the first 8 happy numbers. Number Names - Show how to spell out a number in English. You can use a preexisting implementation or roll your own, but you should support inputs up to at least one million (or the maximum value of your language's default bounded integer type if that's less). Optional: Support for inputs other than positive integers (like zero, negative integers, and floating-point numbers). Coin Flip Simulation - Write some code that simulates flipping a single coin however many times the user decides. The code should record the outcomes and count the number of tails and heads. Limit Calculator - Ask the user to enter f(x) and the limit value, then return the value of the limit statement Optional: Make the calculator capable of supporting infinite limits. Fast Exponentiation - Ask the user to enter 2 integers a and b and output a^b (i.e. pow(a,b)) in O(LG n) time complexity. Classic Algorithms Collatz Conjecture - Start with a number n > 1. Find the number of steps it takes to reach one using the following process: If n is even, divide it by 2. If n is odd, multiply it by 3 and add 1. Sorting - Implement two types of sorting algorithms: Merge sort and bubble sort. Closest pair problem - The closest pair of points problem or closest pair problem is a problem of computational geometry: given n points in metric space, find a pair of points with the smallest distance between them. Sieve of Eratosthenes - The sieve of Eratosthenes is one of the most efficient ways to find all of the smaller primes (below 10 million or so). Graph Graph from links - Create a program that will create a graph or network from a series of links. Eulerian Path - Create a program that will take as an input a graph and output either an Eulerian path or an Eulerian cycle, or state that it is not possible. An Eulerian path starts at one node and traverses every edge of a graph through every node and finishes at another node. An Eulerian cycle is an eulerian Path that starts and finishes at the same node. Connected Graph - Create a program that takes a graph as an input and outputs whether every node is connected or not. Dijkstra’s Algorithm - Create a program that finds the shortest path through a graph using its edges. Minimum Spanning Tree - Create a program that takes a connected, undirected graph with weights and outputs the minimum spanning tree of the graph i.e., a subgraph that is a tree, contains all the vertices, and the sum of its weights is the least possible. Data Structures Inverted index - An Inverted Index is a data structure used to create full-text search. Given a set of text files, implement a program to create an inverted index. Also, create a user interface to do a search using that inverted index which returns a list of files that contain the query term/terms. The search index can be in memory. Text Fizz Buzz - Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”. Reverse a String - Enter a string and the program will reverse it and print it out. Pig Latin - Pig Latin is a game of alterations played in the English language game. To create the Pig Latin form of an English word the initial consonant sound is transposed to the end of the word and an ay is affixed (Ex.: "banana" would yield anana-bay). Read Wikipedia for more information on rules. Count Vowels - Enter a string and the program counts the number of vowels in the text. For added complexity have it report a sum of each vowel found. Check if Palindrome - Checks if the string entered by the user is a palindrome. That is that it reads the same forwards as backward like “racecar” Count Words in a String - Counts the number of individual words in a string. For added complexity read these strings in from a text file and generate a summary. Text Editor - Notepad-style application that can open, edit, and save text documents. Optional: Add syntax highlighting and other features. RSS Feed Creator - Given a link to RSS/Atom Feed, get all posts and display them. Quote Tracker (market symbols etc) - A program that can go out and check the current value of stocks for a list of symbols entered by the user. The user can set how often the stocks are checked. For CLI, show whether the stock has moved up or down. Optional: If GUI, the program can show green up and red down arrows to show which direction the stock value has moved. Guestbook / Journal - A simple application that allows people to add comments or write journal entries. It can allow comments or not and timestamps for all entries. Could also be made into a shoutbox. Optional: Deploy it on Google App Engine or Heroku or any other PaaS (if possible, of course). Vigenere / Vernam / Ceasar Ciphers - Functions for encrypting and decrypting data messages. Then send them to a friend. Regex Query Tool - A tool that allows the user to enter a text string and then in a separate control enter a regex pattern. It will run the regular expression against the source text and return any matches or flag errors in the regular expression. Networking FTP Program - A file transfer program that can transfer files back and forth from a remote web sever. Bandwidth Monitor - A small utility program that tracks how much data you have uploaded and downloaded from the net during the course of your current online session. See if you can find out what periods of the day you use more and less and generate a report or graph that shows it. Port Scanner - Enter an IP address and a port range where the program will then attempt to find open ports on the given computer by connecting to each of them. On any successful connections mark the port as open. Mail Checker (POP3 / IMAP) - The user enters various account information include web server and IP, protocol type (POP3 or IMAP), and the application will check for email at a given interval. Country from IP Lookup - Enter an IP address and find the country that IP is registered in. Optional: Find the Ip automatically. Whois Search Tool - Enter an IP or host address and have it look it up through whois and return the results to you. Site Checker with Time Scheduling - An application that attempts to connect to a website or server every so many minute or a given time and check if it is up. If it is down, it will notify you by email or by posting a notice on the screen. Classes Product Inventory Project - Create an application that manages an inventory of products. Create a product class that has a price, id, and quantity on hand. Then create an inventory class that keeps track of various products and can sum up the inventory value. Airline / Hotel Reservation System - Create a reservation system that books airline seats or hotel rooms. It charges various rates for particular sections of the plane or hotel. For example, first class is going to cost more than a coach. Hotel rooms have penthouse suites which cost more. Keep track of when rooms will be available and can be scheduled. Company Manager - Create a hierarchy of classes - abstract class Employee and subclasses HourlyEmployee, SalariedEmployee, Manager, and Executive. Everyone's pay is calculated differently, research a bit about it. After you've established an employee hierarchy, create a Company class that allows you to manage the employees. You should be able to hire, fire, and raise employees. Bank Account Manager - Create a class called Account which will be an abstract class for three other classes called CheckingAccount, SavingsAccount, and BusinessAccount. Manage credits and debits from these accounts through an ATM-style program. Patient / Doctor Scheduler - Create a patient class and a doctor class. Have a doctor that can handle multiple patients and set up a scheduling program where a doctor can only handle 16 patients during an 8 hr workday. Recipe Creator and Manager - Create a recipe class with ingredients and put them in a recipe manager program that organizes them into categories like desserts, main courses, or by ingredients like chicken, beef, soups, pies, etc. Image Gallery - Create an image abstract class and then a class that inherits from it for each image type. Put them in a program that displays them in a gallery-style format for viewing. Shape Area and Perimeter Classes - Create an abstract class called Shape and then inherit from it other shapes like diamond, rectangle, circle, triangle, etc. Then have each class override the area and perimeter functionality to handle each shape type. Flower Shop Ordering To Go - Create a flower shop application that deals in flower objects and use those flower objects in a bouquet object which can then be sold. Keep track of the number of objects and when you may need to order more. Family Tree Creator - Create a class called Person which will have a name, when they were born, and when (and if) they died. Allow the user to create these Person classes and put them into a family tree structure. Print out the tree to the screen. Threading Create A Progress Bar for Downloads - Create a progress bar for applications that can keep track of a download in progress. The progress bar will be on a separate thread and will communicate with the main thread using delegates. Bulk Thumbnail Creator - Picture processing can take a bit of time for some transformations. Especially if the image is large. Create an image program that can take hundreds of images and converts them to a specified size in the background thread while you do other things. For added complexity, have one thread handling re-sizing, have another bulk renaming of thumbnails, etc. Web Page Scraper - Create an application that connects to a site and pulls out all links, or images, and saves them to a list. Optional: Organize the indexed content and don’t allow duplicates. Have it put the results into an easily searchable index file. Online White Board - Create an application that allows you to draw pictures, write notes and use various colors to flesh out ideas for projects. Optional: Add a feature to invite friends to collaborate on a whiteboard online. Get Atomic Time from Internet Clock - This program will get the true atomic time from an atomic time clock on the Internet. Use any one of the atomic clocks returned by a simple Google search. Fetch Current Weather - Get the current weather for a given zip/postal code. Optional: Try locating the user automatically. Scheduled Auto Login and Action - Make an application that logs into a given site on a schedule and invokes a certain action and then logs out. This can be useful for checking webmail, posting regular content, or getting info for other applications and saving it to your computer. E-Card Generator - Make a site that allows people to generate their own little e-cards and send them to other people. Do not use Flash. Use a picture library and perhaps insightful mottos or quotes. Content Management System - Create a content management system (CMS) like Joomla, Drupal, PHP Nuke, etc. Start small. Optional: Allow for the addition of modules/addons. Web Board (Forum) - Create a forum for you and your buddies to post, administer and share thoughts and ideas. CAPTCHA Maker - Ever see those images with letters numbers when you signup for a service and then ask you to enter what you see? It keeps web bots from automatically signing up and spamming. Try creating one yourself for online forms. Files Quiz Maker - Make an application that takes various questions from a file, picked randomly, and puts together a quiz for students. Each quiz can be different and then reads a key to grade the quizzes. Sort Excel/CSV File Utility - Reads a file of records, sorts them, and then writes them back to the file. Allow the user to choose various sort style and sorting based on a particular field. Create Zip File Maker - The user enters various files from different directories and the program zips them up into a zip file. Optional: Apply actual compression to the files. Start with Huffman Algorithm. PDF Generator - An application that can read in a text file, HTML file, or some other file and generates a PDF file out of it. Great for a web-based service where the user uploads the file and the program returns a PDF of the file. Optional: Deploy on GAE or Heroku if possible. Mp3 Tagger - Modify and add ID3v1 tags to MP3 files. See if you can also add in the album art into the MP3 file’s header as well as other ID3v2 tags. Code Snippet Manager - Another utility program that allows coders to put in functions, classes, or other tidbits to save for use later. Organized by the type of snippet or language the coder can quickly lookup code. Optional: For extra practice try adding syntax highlighting based on the language. Databases SQL Query Analyzer - A utility application in which a user can enter a query and have it run against a local database and look for ways to make it more efficient. Remote SQL Tool - A utility that can execute queries on remote servers from your local computer across the Internet. It should take in a remote host, user name, and password, run the query and return the results. Report Generator - Create a utility that generates a report based on some tables in a database. Generates sales reports based on the order/order details tables or sums up the day's current database activity. Event Scheduler and Calendar - Make an application that allows the user to enter a date and time of an event, event notes, and then schedule those events on a calendar. The user can then browse the calendar or search the calendar for specific events. Optional: Allow the application to create re-occurrence events that reoccur every day, week, month, year, etc. Budget Tracker - Write an application that keeps track of a household’s budget. The user can add expenses, income, and recurring costs to find out how much they are saving or losing over a period of time. Optional: Allow the user to specify a date range and see the net flow of money in and out of the house budget for that time period. TV Show Tracker - Got a favorite show you don’t want to miss? Don’t have a PVR or want to be able to find the show to then PVR it later? Make an application that can search various online TV Guide sites, locate the shows/times/channels and add them to a database application. The database/website then can send you email reminders that a show is about to start and which channel it will be on. Travel Planner System - Make a system that allows users to put together their own little travel itinerary and keep track of the airline/hotel arrangements, points of interest, budget, and schedule. Graphics and Multimedia Slide Show - Make an application that shows various pictures in a slide show format. Optional: Try adding various effects like fade in/out, star wipe, and window blinds transitions. Stream Video from Online - Try to create your own online streaming video player. Mp3 Player - A simple program for playing your favorite music files. Add features you think are missing from your favorite music player. Watermarking Application - Have some pictures you want copyright protected? Add your own logo or text lightly across the background so that no one can simply steal your graphics off your site. Make a program that will add this watermark to the picture. Optional: Use threading to process multiple images simultaneously. Turtle Graphics - This is a common project where you create a floor of 20 x 20 squares. Using various commands you tell a turtle to draw a line on the floor. You have moved forward, left or right, lift or drop the pen, etc. Do a search online for "Turtle Graphics" for more information. Optional: Allow the program to read in the list of commands from a file. GIF Creator A program that puts together multiple images (PNGs, JPGs, TIFFs) to make a smooth GIF that can be exported. Optional: Make the program convert small video files to GIFs as well. Security Caesar cipher - Implement a Caesar cipher, both encoding, and decoding. The key is an integer from 1 to 25. This cipher rotates the letters of the alphabet (A to Z). The encoding replaces each letter with the 1st to 25th next letter in the alphabet (wrapping Z to A). So key 2 encrypts "HI" to "JK", but key 20 encrypts "HI" to "BC". This simple "monoalphabetic substitution cipher" provides almost no security, because an attacker who has the encoded message can either use frequency analysis to guess the key, or just try all 25 keys.
GitHub Repo
https://github.com/webdevarif/jeex-webp
webdevarif/jeex-webp
Automatically convert JPEG/PNG images to WebP & AVIF formats in WordPress. Reduce image file size by up to 80% with zero quality loss. Supports bulk conversion, background processing & automatic upload optimization.
GitHub Repo
https://github.com/BabyJ723/blast-ON
BabyJ723/blast-ON
# Awesome Keycloak [](https://github.com/sindresorhus/awesome) # [<img src="https://www.keycloak.org/resources/images/keycloak_logo_480x108.png">](https://github.com/thomasdarimont/awesome-keycloak) > Carefully curated list of awesome Keycloak resources. A curated list of resources for learning about the Open Source Identity and Access Management solution Keycloak. Contains books, websites, blog posts, links to github Repositories. # Contributing Contributions welcome. Add links through pull requests or create an issue to start a discussion. [Please refer to the contributing guide for details](CONTRIBUTING.md). # Contents * [General](#general) * [Documentation](#docs) * [Keycloak Website](http://www.keycloak.org) * [Current Documentation](http://www.keycloak.org/documentation.html) * [Archived Documentation](http://www.keycloak.org/documentation-archive.html) * [Mailing Lists](#mailing-lists) * [User Mailing List](#user-mailing-list) * [Developer Mailing List](#dev-mailing-list) * [Mailing List Search](#mailing-list-search) * [Books](#books) * [Articles](#articles) * [Talks](#talks) * [Presentations](#presentations) * [Video Playlists](#video-playlists) * [Community Extensions](#community-extensions) * [Integrations](#integrations) * [Themes](#themes) * [Docker](#docker) * [Deployment Examples](#deployment-examples) * [Example Projects](#example-projects) * [Benchmarks](#benchmarks) * [Help](#help) * [Commercial Offerings](#commercial-offerings) * [Miscellaneous](#miscellaneous) # General ## Documentation * [Keycloak Website](http://www.keycloak.org/) * [Current Documentation](http://www.keycloak.org/documentation.html) * [Archived Documentation](http://www.keycloak.org/documentation-archive.html) * [Product Documentation for Red Hat Single Sign-On](https://access.redhat.com/documentation/en/red-hat-single-sign-on/) ## Discussion Groups and Mailing Lists * [Keycloak Users Google Group](https://groups.google.com/forum/#!forum/keycloak-user) * [Keycloak Developers Google Group](https://groups.google.com/forum/#!forum/keycloak-dev) * [Keycloak Discourse Group](https://keycloak.discourse.group/) * [Keycloak Developer Chat](https://keycloak.zulipchat.com) * [Inactive - User Mailing List](https://lists.jboss.org/mailman/listinfo/keycloak-user) * [Inactive - Developer Mailing List](https://lists.jboss.org/mailman/listinfo/keycloak-dev) * [Mailing List Search](http://www.keycloak.org/search) * [Keycloak Subreddit](https://www.reddit.com/r/keycloak) ## Books * [Keycloak - Identity and Access Management for Modern Applications](https://www.packtpub.com/product/keycloak-identity-and-access-management-for-modern-applications/9781800562493) ## Articles * [How to get Keycloak working with Docker](https://www.ivonet.nl/2015/05/23/Keycloak-Docker/) * [Single-Sign-On for Microservices and/or Java EE applications with Keycloak SSO](http://www.n-k.de/2016/06/keycloak-sso-for-microservices.html) * [Keycloak Admin Client(s) - multiple ways to manage your SSO system](http://www.n-k.de/2016/08/keycloak-admin-client.html) * [How to get the AccessToken of Keycloak in Spring Boot and/or Java EE](http://www.n-k.de/2016/05/how-to-get-accesstoken-from-keycloak-springboot-javaee.html) * [JWT authentication with Vert.x, Keycloak and Angular 2](http://paulbakker.io/java/jwt-keycloak-angular2/) * [Authenticating via Kerberos with Keycloak and Windows 2008 Active Directory](http://matthewcasperson.blogspot.de/2015/07/authenticating-via-kerberos-with.html) * [Deploying Keycloak with Ansible](https://adam.younglogic.com/2016/01/deploying-keycloak-via-ansible/) * [Easily secure your Spring Boot applications with Keycloak](https://developers.redhat.com/blog/2017/05/25/easily-secure-your-spring-boot-applications-with-keycloak/) * [How Red Hat re-designed its Single Sign On (SSO) architecture, and why](https://developers.redhat.com/blog/2016/10/04/how-red-hat-re-designed-its-single-sign-on-sso-architecture-and-why/) * [OAuth2, JWT, Open-ID Connect and other confusing things](http://giallone.blogspot.de/2017/06/oath2.html) * [X509 Authentication with Keycloak and JBoss Fuse](https://sjhiggs.github.io/fuse/sso/x509/smartcard/2017/03/29/fuse-hawtio-keycloak.html) * [Running Keycloak on OpenShift 3](https://medium.com/@sbose78/running-keycloak-on-openshift-3-8d195c0daaf6) * [Introducing Keycloak for Identity and Access Management](https://www.thomasvitale.com/introducing-keycloak-identity-access-management/) * [Keycloak Basic Configuration for Authentication and Authorisation](https://www.thomasvitale.com/keycloak-configuration-authentication-authorisation/) * [Keycloak on OpenShift Origin](https://medium.com/@james_devcomb/keycloak-on-openshift-origin-ee81d01dac97) * [Identity Management, One-Time-Passwords and Two-Factor-Auth with Spring Boot and Keycloak](http://www.hascode.com/2017/11/identity-management-one-time-passwords-and-two-factor-auth-with-spring-boot-and-keycloak/) * [Keycloak Identity Brokering with Openshift](https://developers.redhat.com/blog/2017/12/06/keycloak-identity-brokering-openshift/) * [OpenID Connect Identity Brokering with Red Hat Single Sign-On](https://developers.redhat.com/blog/2017/10/18/openid-connect-identity-brokering-red-hat-single-sign/) * [Authentication & user management is hard](https://eclipsesource.com/blogs/2018/01/11/authenticating-reverse-proxy-with-keycloak/) * [Securing Nginx with Keycloak](https://edhull.co.uk/blog/2018-06-06/keycloak-nginx) * [Secure kibana dashboards using keycloak](https://aboullaite.me/secure-kibana-keycloak/) * [Configuring NGINX for OAuth/OpenID Connect SSO with Keycloak/Red Hat SSO](https://developers.redhat.com/blog/2018/10/08/configuring-nginx-keycloak-oauth-oidc/) * [Keycloak Clustering Setup and Configuration Examples](https://github.com/fit2anything/keycloak-cluster-setup-and-configuration) * [MicroProfile JWT with Keycloak](https://kodnito.com/posts/microprofile-jwt-with-keycloak/) * [Keycloak Essentials](https://medium.com/keycloak/keycloak-essentials-86254b2f1872) * [SSO-session failover with Keycloak and AWS S3](https://medium.com/@georgijsr/sso-session-failover-with-keycloak-and-aws-s3-e0b1db985e12) * [KTOR and Keycloak: authentication with OpenId](https://medium.com/slickteam/ktor-and-keycloak-authentication-with-openid-ecd415d7a62e) * [Keycloak: Core concepts of open source identity and access management](https://developers.redhat.com/blog/2019/12/11/keycloak-core-concepts-of-open-source-identity-and-access-management) * [Who am I? Keycloak Impersonation API](https://blog.softwaremill.com/who-am-i-keycloak-impersonation-api-bfe7acaf051a) * [Setup Keycloak Server on Ubuntu 18.04](https://medium.com/@hasnat.saeed/setup-keycloak-server-on-ubuntu-18-04-ed8c7c79a2d9) * [Getting started with Keycloak](https://robferguson.org/blog/2019/12/24/getting-started-with-keycloak/) * [Angular, OpenID Connect and Keycloak](https://robferguson.org/blog/2019/12/29/angular-openid-connect-keycloak/) * [Angular, OAuth 2.0 Scopes and Keycloak](https://robferguson.org/blog/2019/12/31/angular-oauth2-keycloak/) * [Keycloak, Flowable and OpenLDAP](https://robferguson.org/blog/2020/01/03/keycloak-flowable-and-openldap/) * [How to exchange token from an external provider to a keycloak token](https://www.mathieupassenaud.fr/token-exchange-keycloak/) * [Building an Event Listener SPI (Plugin) for Keycloak](https://dev.to/adwaitthattey/building-an-event-listener-spi-plugin-for-keycloak-2044) * [Keycloak user migration – connect your legacy authentication system to Keycloak](https://codesoapbox.dev/keycloak-user-migration/) * [Keycloak Authentication and Authorization in GraphQL](https://medium.com/@darahayes/keycloak-authentication-and-authorization-in-graphql-ad0a1685f7da) * [Kong / Konga / Keycloak: securing API through OIDC](https://github.com/d4rkstar/kong-konga-keycloak) * [KeyCloak: Custom Login theme](https://codehumsafar.wordpress.com/2018/09/11/keycloak-custom-login-theme/) * [Keycloak: Use background color instead of background image in Custom Login theme](https://codehumsafar.wordpress.com/2018/09/21/keycloak-use-background-color-instead-of-background-image-in-custom-login-theme/) * [How to turn off the Keycloak theme cache](https://keycloakthemes.com/blog/how-to-turn-off-the-keycloak-theme-cache) * [How to add a custom field to the Keycloak registration page](https://keycloakthemes.com/blog/how-to-add-custom-field-keycloak-registration-page) * [How to setup Sign in with Google using Keycloak](https://keycloakthemes.com/blog/how-to-setup-sign-in-with-google-using-keycloak) * [How to sign in users on Keycloak using Github](https://keycloakthemes.com/blog/how-to-sign-in-users-on-keycloak-using-github) * [Extending Keycloak SSO Capabilities with IBM Security Verify](https://community.ibm.com/community/user/security/blogs/jason-choi1/2020/06/10/extending-keycloak-sso-capabilities-with-ibm-secur) * [AWS SAML based User Federation using Keycloak](https://medium.com/@karanbir.tech/aws-connect-saml-based-identity-provider-using-keycloak-9b3e6d0111e6) * [AWS user account OpenID federation using Keycloak](https://medium.com/@karanbir.tech/aws-account-openid-federation-using-keycloak-40d22b952a43) * [How to Run Keycloak in HA on Kubernetes](https://blog.sighup.io/keycloak-ha-on-kubernetes/) * [How to create a Keycloak authenticator as a microservice?](https://medium.com/application-security/how-to-create-a-keycloak-authenticator-as-a-microservice-ad332e287b58) * [keycloak.ch | Installing & Running Keycloak](https://keycloak.ch/keycloak-tutorials/tutorial-1-installing-and-running-keycloak/) * [keycloak.ch | Configuring Token Exchange using the CLI](https://keycloak.ch/keycloak-tutorials/tutorial-token-exchange/) * [keycloak.ch | Configuring WebAuthn](https://keycloak.ch/keycloak-tutorials/tutorial-webauthn/) * [keycloak.ch | Configuring a SwissID integration](https://keycloak.ch/keycloak-tutorials/tutorial-swissid/) * [Getting Started with Service Accounts in Keycloak](https://medium.com/@mihirrajdixit/getting-started-with-service-accounts-in-keycloak-c8f6798a0675) * [Building cloud native apps: Identity and Access Management](https://dev.to/lukaszbudnik/building-cloud-native-apps-identity-and-access-management-1e5m) * [X.509 user certificate authentication with Red Hat’s single sign-on technology](https://developers.redhat.com/blog/2021/02/19/x-509-user-certificate-authentication-with-red-hats-single-sign-on-technology) * [Grafana OAuth with Keycloak and how to validate a JWT token](https://janikvonrotz.ch/2020/08/27/grafana-oauth-with-keycloak-and-how-to-validate-a-jwt-token/) * [How to setup a Keycloak server with external MySQL database on AWS ECS Fargate in clustered mode](https://jbjerksetmyr.medium.com/how-to-setup-a-keycloak-server-with-external-mysql-database-on-aws-ecs-fargate-in-clustered-mode-9775d01cd317) * [Extending Keycloak: adding API key authentication](http://www.zakariaamine.com/2019-06-14/extending-keycloak) * [Extending Keycloak: using a custom email sender](http://www.zakariaamine.com/2019-07-14/extending-keycloak2) * [Integrating Keycloak and OPA with Confluent](https://goraft.tech/2021/03/17/integrating-keycloak-and-opa-with-confluent.html) * [UMA 2.0 : User Managed Access - how to use it with bash](https://blog.please-open.it/uma/) ## Talks * [JDD2015 - Keycloak Open Source Identity and Access Management Solution](https://www.youtube.com/watch?v=TuEkj25lbd0) * [2015 Using Tomcat and Keycloak in an iFrame](https://www.youtube.com/watch?v=nF_lw7uIxao) * [2016 You've Got Microservices Now Secure Them](https://www.youtube.com/watch?v=SfVhqf-rMQY) * [2016 Keycloak: Open Source Single Sign On - Sebastian Rose - AOE conf (german)](https://www.youtube.com/watch?v=wbKw0Bwyne4) * [2016 Sécuriser ses applications back et front facilement avec Keycloak (french)](https://www.youtube.com/watch?v=bVidgluUcg0) * [2016 Keycloak and Red Hat Mobile Application Platform](https://www.youtube.com/watch?v=4NBgiHM5aOA) * [2016 Easily secure your Front and back applications with KeyCloak](https://www.youtube.com/watch?v=RGp4HUKikts) * [2017 Easily secure your Spring Boot applications with Keycloak - Part 1](https://developers.redhat.com/video/youtube/vpgRTPFDHAw/) * [2017 Easily secure your Spring Boot applications with Keycloak - Part 2](https://developers.redhat.com/video/youtube/O5ePCWON08Y/) * [2018 How to secure your Spring Apps with Keycloak by Thomas Darimont @ Spring I/O 2018](https://www.youtube.com/watch?v=haHFoeWUj0w) * [2018 DevNation Live | A Deep Dive into Keycloak](https://www.youtube.com/watch?v=ZxpY_zZ52kU) * [2018 IDM Europe: WSO2 Identity Server vs. Keycloak (Dmitry Kann)](https://www.youtube.com/watch?v=hnjBiGsEDoU) * [2018 JPrime|Building an effective identity and access management architecture with Keycloak (Sebastien Blanc)](https://www.youtube.com/watch?v=bMqcGkCvUVQ) * [2018 WJAX| Sichere Spring-Anwendungen mit Keycloak](https://www.youtube.com/watch?v=6Z490EMcafs) * [2019 Spring I/O | Secure your Spring Apps with Keycloak](https://www.youtube.com/watch?v=KrOd5wIkqls) * [2019 DevoxxFR | Maitriser sa gestion de l'identité avec Keycloak (L. Benoit, T. Recloux, S. Blanc)](https://www.youtube.com/watch?v=0cziL__0-K8) * [2019 DevConf | Fine - Grained Authorization with Keycloak SSO (Marek Posolda)](https://www.youtube.com/watch?v=yosg4St0iUw) * [2019 VoxxedDays Minsk | Bilding an effective identity and access management architecture with Keycloak (Sebastien Blanc)](https://www.youtube.com/watch?v=RupQWmYhrLA) * [2019 Single-Sign-On Authentifizierung mit dem Keycloak Identity Provider | jambit CoffeeTalk](https://www.youtube.com/watch?v=dnY6ORaFNY8) * [2020 Keycloak Team | Keycloak Pitch](https://www.youtube.com/watch?v=GZTN_VXjoQw) * [2020 Keycloak Team | Keycloak Overview](https://www.youtube.com/watch?v=duawSV69LDI) * [2020 Please-open.it : oauth2 dans le monde des ops (french)](https://www.youtube.com/watch?v=S-9X50QajmY) ## Presentations * [Keycloak 101](https://stevenolen.github.io/kc101-talk/#1) ## Video Playlists * [Keycloak Identity and Access Management by Łukasz Budnik](https://www.youtube.com/playlist?list=PLPZal7ksxNs0mgScrJxrggEayV-TPZ9sA) * [Keycloak by Niko Köbler](https://www.youtube.com/playlist?list=PLNn3plN7ZiaowUvKzKiJjYfWpp86u98iY) * [Keycloak Playlist by hexaDefence](https://youtu.be/35bflT_zxXA) * [Keycloak Tutorial Series by CodeLens](https://www.youtube.com/watch?v=Lr9WeIMtFow&list=PLeGNmkzI56BTjRxNGxUhh4k30FD_gy0pC) ## Clients * [Official Keycloak Node.js Admin Client](https://github.com/keycloak/keycloak-admin-client/) ("Extremely Experimental") * [Keycloak Node.js TypeScript Admin Client by Canner](https://github.com/Canner/keycloak-admin/) * [Keycloak Go Client by Cloudtrust](https://github.com/cloudtrust/keycloak-client) * [Keycloak Nest.js Admin Client by Relevant Fruit](https://github.com/relevantfruit/nestjs-keycloak-admin) ## Community Extensions * [Keycloak Extensions List](https://www.keycloak.org/extensions.html) * [Keycloak Benchmark Project](https://github.com/keycloak/keycloak-benchmark) * [Keycloak: Link IdP Login with User Provider](https://github.com/ohioit/keycloak-link-idp-with-user) * [Client Owner Manager: Control who can edit a client](https://github.com/cyclone-project/cyclone-client-registration) * [Keyloak Proxy written in Go](https://github.com/gambol99/keycloak-proxy) * [Script based ProtocolMapper extension for SAML](https://github.com/cloudtrust/keycloak-client-mappers) * [Realm export REST resource by Cloudtrust](https://github.com/cloudtrust/keycloak-export) * [Keycloak JDBC Ping Setup by moremagic](https://github.com/moremagic/keycloak-jdbc-ping) * [SMS 2 Factor Authentication for Keycloak via AWS SNS](https://github.com/nickpack/keycloak-sms-authenticator-sns) * [SMS 2 Factor Authentiation for Keycloak via SMS by Alliander](https://github.com/Alliander/keycloak-sms-authenticator) * [Identity Provider for vk.com](https://github.com/mrk08/keycloak-vk) * [CAS Protocol Support](https://github.com/Doccrazy/keycloak-protocol-cas) * [WS-FED Support](https://github.com/cloudtrust/keycloak-wsfed) * [Keycloak Discord Support](https://github.com/wadahiro/keycloak-discord) * [Keycloak Login with User Attribute](https://github.com/cnieg/keycloak-login-attribute) * [zonaut/keycloak-extensions](https://github.com/zonaut/keycloak-extensions) * [leroyguillaume/keycloak-bcrypt](https://github.com/leroyguillaume/keycloak-bcrypt) * [SPI Authenticator in Nodejs](https://www.npmjs.com/package/keycloak-rest-authenticator) * [Have I Been Pwned? Keycloak Password Policy](https://github.com/alexashley/keycloak-password-policy-have-i-been-pwned) * [Keycloak Eventlistener for Google Cloud Pub Sub](https://github.com/acesso-io/keycloak-event-listener-gcpubsub) * [Enforcing Password policy based on attributes of User Groups](https://github.com/sayedcsekuet/keycloak-user-group-based-password-policy) * [Verify Email with Link or Code by hokumski](https://github.com/hokumski/keycloak-verifyemailwithcode) * [Role-based Docker registry authentication](https://github.com/lifs-tools/keycloak-docker-role-mapper) * [SCIM for keycloak](https://github.com/Captain-P-Goldfish/scim-for-keycloak) * [Keycloak Kafka Module](https://github.com/SnuK87/keycloak-kafka) ## Integrations * [Official Keycloak Node.js Connect Adapter](https://github.com/keycloak/keycloak-nodejs-connect) * [Keycloak support for Aurelia](https://github.com/waynepennington/aurelia-keycloak) * [Keycloak OAuth2 Auth for PHP](https://github.com/stevenmaguire/oauth2-keycloak) * [Jenkins Keycloak Authentication Plugin](https://github.com/jenkinsci/keycloak-plugin) * [Meteor Keycloak Accounts](https://github.com/mxab/meteor-keycloak) * [HapiJS Keycloak Auth](https://github.com/felixheck/hapi-auth-keycloak) * [zmartzone mod_auth_openidc for Apache 2.x](https://github.com/zmartzone/mod_auth_openidc) * [Duo Security MFA Authentication for Keycloak](https://github.com/mulesoft-labs/keycloak-duo-spi) * [Extension Keycloak facilitant l'utilisation de FranceConnect](https://github.com/InseeFr/Keycloak-FranceConnect) * [Ambassador Keycloak Support](https://www.getambassador.io/reference/idp-support/keycloak/) * [Keycloak Python Client](https://github.com/akhilputhiry/keycloak-client) * [Keycloak Terraform Provider](https://github.com/mrparkers/terraform-provider-keycloak) * [Keycloak ADFS OpenID Connect](https://www.michaelboeynaems.com/keycloak-ADFS-OIDC.html) * [React/NextJS Keycloak Bindings](https://github.com/panz3r/react-keycloak) * [Keycloak Open-Shift integration](https://github.com/keycloak/openshift-integration) * [Keycloak, Kong and Konga setup scripts (local development)](https://github.com/JaouherK/Kong-konga-Keycloak) * [SSO for Keycloak and Nextcloud with SAML](https://stackoverflow.com/questions/48400812/sso-with-saml-keycloak-and-nextcloud) * [Keycloak Connect GraphQL Adapter for Node.js](https://github.com/aerogear/keycloak-connect-graphql) * [python-keycloak](https://github.com/marcospereirampj/python-keycloak) * [Keycloak and PrivacyId3a docker-compose (local development)](https://github.com/JaouherK/keycloak-privacyIdea) * [Nerzal/gocloak Golang Keycloak API Package](https://github.com/Nerzal/gocloak) * [Apple Social Identity Provider for Keycloak](https://github.com/BenjaminFavre/keycloak-apple-social-identity-provider) ## Quick demo Videos * [Keycloak with istio envoy jwt-auth proxy](https://www.youtube.com/watch?v=wscX7JMfuBI) ## Themes * [Community Keycloak Ionic Theme](https://github.com/lfryc/keycloak-ionic-theme) * [A Keycloak theme based on the AdminLTE UI library](https://github.com/MAXIMUS-DeltaWare/adminlte-keycloak-theme) * [GOV.UK Theme](https://github.com/UKHomeOffice/keycloak-theme-govuk) * [Carbon Design](https://github.com/httpsOmkar/carbon-keycloak-theme) * [Modern](https://keycloakthemes.com/themes/modern) * [Adminlte](https://git.uptic.nl/uptic-public-projects/uptic-keyclock-theme-adminlte) * [keycloakify: Create Keycloak themes using React](https://github.com/InseeFrLab/keycloakify) ## Docker * [Official Keycloak Docker Images](https://github.com/jboss-dockerfiles/keycloak) * [Keycloak Examples as Docker Image](https://hub.docker.com/r/jboss/keycloak-examples) * [Keycloak Maven SDK for managing the entire lifecycle of your extensions with Docker](https://github.com/OpenPj/keycloak-docker-quickstart) ## Kubernetes * [Deprecated Keycloak Helm Chart](https://github.com/codecentric/helm-charts/tree/master/charts/keycloak) * [codecentric Keycloak Helm Chart](https://github.com/codecentric/helm-charts/tree/master/charts/keycloak) * [Import / Export Keycloak Config](https://gist.github.com/unguiculus/19618ef57b1863145262191944565c9d) * [keycloak-operator](https://github.com/keycloak/keycloak-operator) ## Tools * [keycloakmigration: Manage your Keycloak configuration with code](https://github.com/klg71/keycloakmigration) * [tool to autogenerate an OpenAPI Specification for Keycloak's Admin API](https://github.com/ccouzens/keycloak-openapi) * [oidc-bash-client](https://github.com/please-openit/oidc-bash-client) * [louketo-proxy (FKA Gatekeeper)](https://github.com/louketo/louketo-proxy) * [keycloak-config-cli: Configuration as Code for Keycloak](https://github.com/adorsys/keycloak-config-cli) * [Keycloak Pulumi](https://github.com/pulumi/pulumi-keycloak) * [Keycloak on AWS](https://github.com/aws-samples/keycloak-on-aws) * [aws-cdk construct library that allows you to create KeyCloak on AWS in TypeScript or Python](https://github.com/aws-samples/cdk-keycloak) * [keycloak-scanner Python CLI](https://github.com/NeuronAddict/keycloak-scanner) ## Deployment Examples * [Keycloak deployment with CDK on AWS with Fargate](https://github.com/aws-samples/cdk-keycloak) ## Example Projects * [Examples from Keycloak Book: Keycloak - Identity and Access Management for Modern Applications](https://github.com/PacktPublishing/Keycloak-Identity-and-Access-Management-for-Modern-Applications) * [Official Examples](https://github.com/keycloak/keycloak/tree/master/examples) * [Keycloak Quickstarts](https://github.com/keycloak/keycloak-quickstarts) * [Drupal 7.0 with Keycloak](https://gist.github.com/thomasdarimont/17fa146c4fb5440d7fc2ee6322ec392d) * [Securing Realm Resources With Custom Roles](https://github.com/dteleguin/custom-admin-roles) * [BeerCloak: a comprehensive KeyCloak extension example](https://github.com/dteleguin/beercloak) * [KeyCloak Extensions: Securing Realm Resources With Custom Roles](https://github.com/dteleguin/custom-admin-roles) * [Red Hat Single Sign-On Labs](https://github.com/RedHatWorkshops/red-hat-sso) * [Spring Boot Keycloak Tutorial](https://github.com/sebastienblanc/spring-boot-keycloak-tutorial) * [Custom Keycloak Docker Image of Computer Science House of RIT](https://github.com/ComputerScienceHouse/keycloak-docker) * [Example of custom password hash SPI for Keycloak](https://github.com/pavelbogomolenko/keycloak-custom-password-hash) * [Example for a custom http-client-provider with Proxy support](https://github.com/xiaoyvr/custom-http-client-provider) * [Monitor your keycloak with prometheus](https://github.com/larscheid-schmitzhermes/keycloak-monitoring-prometheus) * [Custom User Storage Provider .ear with jboss-cli setup](https://github.com/thomasdarimont/keycloak-user-storage-provider-demo) * [Keycloak - Experimental extensions by Stian Thorgersen/Keycloak](https://github.com/stianst/keycloak-experimental) * [Securing Spring Boot Admin & Actuator Endpoints with Keycloak](https://github.com/thomasdarimont/spring-boot-admin-keycloak-example) * [A Keycloak Mobile Implementation using Angular v4 and Ionic v3](https://github.com/tomjackman/keyonic-v2) * [Example for Securing Apps with Keycloak on Kubernetes](https://github.com/stianst/demo-kubernetes) * [Example for Securing AspDotNet Core Apps with Keycloak](https://github.com/thomasdarimont/kc-dnc-demo) * [Example for passing custom URL parameters to a Keycloak theme for dynamic branding](https://github.com/dteleguin/keycloak-dynamic-branding) * [Angular Webapp secured with Keycloak](https://github.com/CodepediaOrg/bookmarks.dev) * [Keycloak Theme Development Kit](https://github.com/anthonny/kit-keycloak-theme) * [Keycloak Clustering examples](https://github.com/ivangfr/keycloak-clustered) * [Keycloak Last Login Date Event Listener](https://github.com/ThoreKr/keycloak-last-login-event-listener) * [Keycloak Project Example (Customizations, Extensions, Configuration)](https://github.com/thomasdarimont/keycloak-project-example) * [Example of adding API Key authentication to Keycloak](https://github.com/zak905/keycloak-api-key-demo) ## Benchmarks * [Gatling based Benchmark by @rvansa](https://github.com/rvansa/keycloak-benchmark) ## Help * [Keycloak on Stackoverflow](https://stackoverflow.com/questions/tagged/keycloak) ## Commercial Offerings * [Red Hat Single Sign-On](https://access.redhat.com/products/red-hat-single-sign-on) * [INTEGSOFT UNIFIED USER CREDENTIALS WITH KEYCLOAK SSO](https://www.integsoft.cz/en/sso.html#what-is-sso) * [JIRA SSO Plugin by codecentric](https://marketplace.atlassian.com/plugins/de.codecentric.atlassian.oidc.jira-oidc-plugin/server/overview) * [Keycloak Competence Center by Inventage AG](https://keycloak.ch/) * [Keycloak as a Service](https://www.cloud-iam.com) ## Miscellaneous * [Find sites using Keycloak with google](https://www.google.de/search?q=inurl%3Aauth+inurl%3Arealms+inurl%3Aprotocol&oq=inurl%3A&client=ubuntu&sourceid=chrome&ie=UTF-8) * [Keycloak Dev Bookmarks](http://bookmarks.dev/search?q=keycloak) - Use the tag [keycloak](https://www.bookmarks.dev/tagged/keycloak) * [Use fail2ban to block brute-force attacks to keycloak server](https://gist.github.com/drmalex07/3eba8b98d0ac4a1e821e8e721b3e1816) * [Pentest-Report Keycloak 8.0 Audit & Pentest 11.2019 by Cure53](https://cure53.de/pentest-report_keycloak.pdf) * [Keycloak - CNCF Security SIG - Self Assesment](https://docs.google.com/document/d/14IIGliP3BWjdS-0wfOk3l_1AU8kyoSiLUzpPImsz4R0/edit#) # License [](https://creativecommons.org/publicdomain/zero/1.0/) To the extent possible under law, [Thomas Darimont](https://github.com/thomasdarimont) has waived all copyright and related or neighboring rights to this work.
GitHub Repo
https://github.com/ncasias/fb
ncasias/fb
<html lang="en" id="facebook" class="no_svg no_js"> <head><meta charset="utf-8" /><meta name="referrer" content="default" id="meta_referrer" /><script>__DEV__=0;</script><title>Facebook</title><style>._32qa button{opacity:.4}._59ov{height:100%;height:910px;position:relative;top:-10px;width:100%}._5ti_{background-size:cover;height:100%;width:100%}._5tj2{height:900px}._2mm3 ._5a8u .uiBoxGray{background:#fff;margin:0;padding:12px}._2494{height:100vh}._2495{margin-top:-10px;top:10px}body.plugin{background:transparent;font-family:Helvetica, Arial, sans-serif;line-height:1.28;overflow:hidden;-webkit-text-size-adjust:none}.plugin,.plugin button,.plugin input,.plugin label,.plugin select,.plugin td,.plugin textarea{font-size:11px}body{background:#fff;color:#1d2129;direction:ltr;line-height:1.34;margin:0;padding:0;unicode-bidi:embed}body,button,input,label,select,td,textarea{font-family:Helvetica, Arial, sans-serif;font-size:12px}h1,h2,h3,h4,h5,h6{color:#1d2129;font-size:13px;margin:0;padding:0}h1{font-size:14px}h4,h5,h6{font-size:12px}p{margin:1em 0}a{color:#365899;cursor:pointer;text-decoration:none}button{margin:0}a:hover{text-decoration:underline}img{border:0}td,td.label{text-align:left}dd{color:#000}dt{color:#777}ul{list-style-type:none;margin:0;padding:0}abbr{border-bottom:none;text-decoration:none}hr{background:#d9d9d9;border-width:0;color:#d9d9d9;height:1px}.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}.clearfix{zoom:1}.datawrap{word-wrap:break-word}.word_break{display:inline-block}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aero{opacity:.5}.column{float:left}.center{margin-left:auto;margin-right:auto}#facebook .hidden_elem{display:none !important}#facebook .invisible_elem{visibility:hidden}#facebook .accessible_elem{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.direction_ltr{direction:ltr}.direction_rtl{direction:rtl}.text_align_ltr{text-align:left}.text_align_rtl{text-align:right}.pluginFontArial,.pluginFontArial button,.pluginFontArial input,.pluginFontArial label,.pluginFontArial select,.pluginFontArial td,.pluginFontArial textarea{font-family:Arial, sans-serif}.pluginFontLucida,.pluginFontLucida button,.pluginFontLucida input,.pluginFontLucida label,.pluginFontLucida select,.pluginFontLucida td,.pluginFontLucida textarea{font-family:Lucida Grande, sans-serif}.pluginFontSegoe,.pluginFontSegoe button,.pluginFontSegoe input,.pluginFontSegoe label,.pluginFontSegoe select,.pluginFontSegoe td,.pluginFontSegoe textarea{font-family:Segoe UI, sans-serif}.pluginFontTahoma,.pluginFontTahoma button,.pluginFontTahoma input,.pluginFontTahoma label,.pluginFontTahoma select,.pluginFontTahoma td,.pluginFontTahoma textarea{font-family:Tahoma, sans-serif}.pluginFontTrebuchet,.pluginFontTrebuchet button,.pluginFontTrebuchet input,.pluginFontTrebuchet label,.pluginFontTrebuchet select,.pluginFontTrebuchet td,.pluginFontTrebuchet textarea{font-family:Trebuchet MS, sans-serif}.pluginFontVerdana,.pluginFontVerdana button,.pluginFontVerdana input,.pluginFontVerdana label,.pluginFontVerdana select,.pluginFontVerdana td,.pluginFontVerdana textarea{font-family:Verdana, sans-serif}.pluginFontHelvetica,.pluginFontHelvetica button,.pluginFontHelvetica input,.pluginFontHelvetica label,.pluginFontHelvetica select,.pluginFontHelvetica td,.pluginFontHelvetica textarea{font-family:Helvetica, Arial, sans-serif}._51mz{border:0;border-collapse:collapse;border-spacing:0}._5f0n{table-layout:fixed;width:100%}.uiGrid .vTop{vertical-align:top}.uiGrid .vMid{vertical-align:middle}.uiGrid .vBot{vertical-align:bottom}.uiGrid .hLeft{text-align:left}.uiGrid .hCent{text-align:center}.uiGrid .hRght{text-align:right}._51mx:first-child>._51m-{padding-top:0}._51mx:last-child>._51m-{padding-bottom:0}._51mz ._51mw{padding-right:0}._51mz ._51m-:first-child{padding-left:0}._l0a,._l0d{width:100%}._5f0v{outline:none}._3oxt{outline:1px dotted #3b5998;outline-color:invert}.webkit ._3oxt{outline:5px auto #5b9dd9}.win.webkit ._3oxt{outline-color:#e59700}._4qba{font-style:normal}._4qbb,._4qbc,._4qbd{background:none;font-style:normal;padding:0;width:auto}._4qbd{border-bottom:1px solid #f99}._4qbb,._4qbc{border-bottom:1px solid #999}._4qbb:hover,._4qbc:hover,._4qbd:hover{background-color:#fcc;border-top:1px solid #ccc;cursor:help}.uiLayer{outline:none}.inlineBlock{display:inline-block;zoom:1}._2tga{background:#4267b2;border:1px solid #4267b2;color:#fff;cursor:pointer;font-family:Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;-webkit-user-select:none;white-space:nowrap}._2tga.active{background:#4080ff;border:1px solid #4080ff}._2tga._4kae.active,._2tga._4kae.active:hover{background:#577fbc;border:1px solid #577fbc}._2tga._49ve{border-radius:3px;font-size:11px;height:20px;padding:0 0 0 2px}.chrome ._2tga._49ve{padding-bottom:1px}._2tga._3e2a{border-radius:4px;font-size:13px;height:28px;padding:0 4px 0 6px}._2tga._5n6f{border-top-left-radius:0;border-top-right-radius:0}._2tga:hover{background:#365899;border:1px solid #365899}._2tga:active{background:#577fbc;border:1px solid #577fbc}._2tga:focus{outline-color:transparent;outline-style:none}._2tga.active:hover{background:#4080ff;border:1px solid #4080ff}._11qm{background:#fff;border:1px solid #ced0d4;color:#4267b2}._11qm:hover{background:#f6f7f9;border:1px solid #ced0d4}._11qm.active{border:1px solid #4080ff;color:#fff}._3oi2{background:#0084ff;border:1px solid #0084ff;color:#fff}._3oi2:hover{background:#0077e5;border:1px solid #0077e5}._3e2a ._3jn-{position:relative;top:-1px}._3jn-{height:16px;vertical-align:middle;width:16px}._3jn_{background:none;display:none;height:28px;left:-6px;position:absolute;top:-6px;width:28px}@-webkit-keyframes burst{from{background-position:0 0}to{background-position:-616px 0}}._2tga.is_animating ._3jn_{-webkit-animation:burst .24s steps(22) forwards;background:url(https://static.xx.fbcdn.net/rsrc.php/v3/ys/r/B4-pzLJTRP0.png) no-repeat;background-position:0 0;background-size:616px 28px;display:inline-block;zoom:1}._49ve._2tga.is_animating ._3jn_{left:-6px;position:relative;top:-6px}._49vg,._5n2y{vertical-align:middle}._2tga ._5n2y,._2tga.active ._49vg,._2tga.active.is_animating ._5n2y{display:none}._2tga ._49vg,._2tga.active ._5n2y,._2tga.active:hover ._4kag{display:inline-block;zoom:1}#facebook ._2tga span._49vh,#facebook ._2tga span._5n6h,._49vh,._5n6h{font-family:Helvetica, Arial, sans-serif;vertical-align:middle}._49vh{font-weight:bold}._5n6h{font-weight:normal}._5n6j{border-radius:3px;height:20px;line-height:20px}._5n6k{border-radius:4px;height:30px;line-height:30px}._5n6l{background:#fff;border:1px solid #90949c;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;box-sizing:border-box;color:#1d2129;text-align:center;width:100%}._2tga ._1pbq{height:16px;width:16px}.no_svg ._2tga ._1pbq,.svg ._2tga ._1pbs{display:none}._2n-v ._49vh{padding-left:2px}form{margin:0;padding:0}label{cursor:pointer;color:#666;font-weight:bold;vertical-align:middle}label input{font-weight:normal}textarea,.inputtext,.inputpassword{border:1px solid #bdc7d8;margin:0;padding:3px;-webkit-appearance:none;-webkit-border-radius:0}textarea{max-width:100%}select{border:1px solid #bdc7d8;padding:2px}.inputtext,.inputpassword{padding-bottom:4px}.inputtext:invalid,.inputpassword:invalid{box-shadow:none}.inputradio{padding:0;margin:0 5px 0 0;vertical-align:middle}.inputcheckbox{border:0;vertical-align:middle}.inputbutton,.inputsubmit{border-style:solid;border-width:1px;border-color:#dddfe2 #0e1f5b #0e1f5b #d9dfea;background-color:#3b5998;color:#fff;padding:2px 15px 3px 15px;text-align:center}.inputsubmit_disabled{background-color:#999;border-bottom:1px solid #000;border-right:1px solid #666;color:#fff}.inputaux{background:#e9ebee;border-color:#e9ebee #666 #666 #e7e7e7;color:#000}.inputaux_disabled{color:#999}.inputsearch{background:#ffffff url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/unHwF9CkMyM.png) no-repeat left 4px;padding-left:17px}._2phz{padding:4px}._2ph-{padding:8px}._2ph_{padding:12px}._2pi0{padding:16px}._2pi1{padding:20px}._40c7{padding:24px}._2o1j{padding:36px}._2pi2{padding-bottom:4px;padding-top:4px}._2pi3{padding-bottom:8px;padding-top:8px}._2pi4{padding-bottom:12px;padding-top:12px}._2pi5{padding-bottom:16px;padding-top:16px}._2pi6{padding-bottom:20px;padding-top:20px}._2o1k{padding-bottom:24px;padding-top:24px}._2o1l{padding-bottom:36px;padding-top:36px}._2pi7{padding-left:4px;padding-right:4px}._2pi8{padding-left:8px;padding-right:8px}._2pi9{padding-left:12px;padding-right:12px}._2pia{padding-left:16px;padding-right:16px}._2pib{padding-left:20px;padding-right:20px}._2o1m{padding-left:24px;padding-right:24px}._2o1n{padding-left:36px;padding-right:36px}._2pic{padding-top:4px}._2pid{padding-top:8px}._2pie{padding-top:12px}._2pif{padding-top:16px}._2pig{padding-top:20px}._2owm{padding-top:24px}._2pih{padding-right:4px}._2pii{padding-right:8px}._2pij{padding-right:12px}._2pik{padding-right:16px}._2pil{padding-right:20px}._31wk{padding-right:24px}._2phb{padding-right:32px}._2pim{padding-bottom:4px}._2pin{padding-bottom:8px}._2pio{padding-bottom:12px}._2pip{padding-bottom:16px}._2piq{padding-bottom:20px}._2o1p{padding-bottom:24px}._2pir{padding-left:4px}._2pis{padding-left:8px}._2pit{padding-left:12px}._2piu{padding-left:16px}._2piv{padding-left:20px}._2o1q{padding-left:24px}._2o1r{padding-left:36px}._4mr9{-webkit-touch-callout:none;-webkit-user-select:none}._4mra{-webkit-touch-callout:default;-webkit-user-select:auto}._li._li._li{overflow:initial}._42ft{cursor:pointer;display:inline-block;text-decoration:none;white-space:nowrap}._42ft:hover{text-decoration:none}._42ft+._42ft{margin-left:4px}._42fr,._42fs{cursor:default}.textMetrics{border:none;height:1px;overflow:hidden;padding:0;position:absolute;top:-9999999px}.textMetricsInline{white-space:pre}._1f8a{display:inline;float:left}._1f8b{float:left}</style><script>window.ServerJSQueue=function(){var a=[],b,c;return {add:function(d){if(!b){a.push(d);}else typeof d==='function'?d():b.handle(d);},run:function(){if(!window.require)return;var d;c=window.require('ServerJSDefine');for(d=0;d<a.length;d++)if(a[d].define&&typeof a[d]!=='function'){c.handleDefines(a[d].define);delete a[d].define;}b=new (window.require('ServerJS'))();for(d=0;d<a.length;d++)typeof a[d]==='function'?a[d]():b.handle(a[d]);}};}();document.write=function(){};window.onloadRegister_DEPRECATED=function(){};window.onafterloadRegister_DEPRECATED=function(){};window.ServerJSAsyncLoader=function(){var a=false,b=false,c={loaded:1,complete:1},d=function(){},e=document,f=false,g=false;function h(){if(e.readyState in c){e.detachEvent('onreadystatechange',h);d('t_domcontent');}}function i(){if(!g&&window._cavalry&&a&&b){d('t_layout');d('t_onload');d('t_paint');_cavalry.send();g=true;}}function j(){if(!f&&b){f=true;ServerJSQueue.run();}}function k(o,p){if('onreadystatechange' in o){o.onreadystatechange=function(){if(o.readyState in c){o.onreadystatechange=null;p();}};}else if(o.addEventListener){var q=function(){p();o.removeEventListener('load',q,false);};o.addEventListener('load',q,false);}}function l(o){var p=e.createElement("script");if(p.readyState&&p.readyState==="uninitialized"){k(p,function(){b=true;i();});p.src=o;return true;}else if(typeof XMLHttpRequest!=='undefined'){var q=new XMLHttpRequest();if("withCredentials" in q){q.onloadend=function(){b=true;i();};q.open("GET",o,true);q.send(null);return true;}}}function m(){e.onkeydown=e.onmouseover=e.onclick=onfocus=null;ServerJSAsyncLoader.execute();}function n(){if(e.body.offsetWidth===0||e.body.offsetHeight===0)m();}if(window._cavalry){d=function(o){_cavalry.log(o);};if(window.addEventListener){window.addEventListener('DOMContentLoaded',function(){d('t_domcontent');},false);}else if(e.attachEvent)e.attachEvent('onreadystatechange',h);}window.onload=function(){a=true;j();i();};return {ondemandjs:null,run:function(o){this.file=o;this.execute();},load:function(o){this.file=o;if(!l(o)){this.run(o);return;}window.onload=function(){a=true;i();n();};e.onkeydown=e.onmouseover=e.onclick=onfocus=m;},execute:function(o){var p=e.createElement('script');p.src=ServerJSAsyncLoader.file;p.async=true;k(p,function(){b=true;j();o&&o();i();});e.getElementsByTagName('head')[0].appendChild(p);},wakeUp:function(o,p,q){function r(){window.require("Arbiter").inform(o,p,q);}if(f){r();}else this.execute(r);}};}();ServerJSAsyncLoader.load("https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3ibIg4\/yK\/l\/en_US\/JgZzvZF86-w.js");</script><script>ServerJSQueue.add({"require":[["markJSEnabled"],["lowerDomain"]]});</script><script>(function(){var a=document.createElement('div');a.innerHTML='<svg/>';if(a.firstChild&&a.firstChild.namespaceURI==='http://www.w3.org/2000/svg'){var b=document.documentElement;b.className=b.className.replace('no_svg','svg');}})();</script></head><body dir="ltr" class="plugin _4mr9 edge webkit win x1 Locale_en_US"><div class="_li"><div class="pluginSkinLight pluginFontLucida"><div><table class="uiGrid _51mz" cellspacing="0" cellpadding="0"><tbody><tr class="_51mx"><td class="_51m- hCent _51mw"><div><div class="inlineBlock _l0d"><div class="_5n6j _5n6l"><span id="u_0_1">14M</span></div><form rel="async" ajaxify="/plugins/like/connect" method="post" action="/plugins/like/connect" onsubmit="return window.Event && Event.__inlineSubmit && Event.__inlineSubmit(this,event)" id="u_0_0"><input type="hidden" name="fb_dtsg" value="AQG2E3oiL9px:AQF-_ipy3aJ_" autocomplete="off" /><input type="hidden" autocomplete="off" name="href" value="http://www.facebook.com/AppStore" /><input type="hidden" autocomplete="off" name="new_ui" value="true" /><button type="submit" class="inlineBlock _2tga _49ve _5n6f _l0a" title="Like App Store's Page on Facebook" id="u_0_2"><div class=""><span class="_3jn- inlineBlock"><span class="_3jn_"></span><span class="_49vg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="_1pbq" color="#ffffff"><path fill="#ffffff" fill-rule="evenodd" d="M4.55,7 C4.7984,7 5,7.23403636 5,7.52247273 L5,13.4775273 C5,13.7659636 4.7984,14 4.55,14 L2.45,14 C2.2016,14 2,13.7659636 2,13.4775273 L2,7.52247273 C2,7.23403636 2.2016,7 2.45,7 L4.55,7 Z M6.54470232,13.2 C6.24016877,13.1641086 6.01734614,12.8982791 6,12.5737979 C6.01734614,12.5737979 6.01344187,9.66805666 6,8.14398693 C6.01344187,7.61903931 6.10849456,6.68623352 6.39801308,6.27384278 C7.10556287,5.26600749 7.60281698,4.6079584 7.89206808,4.22570082 C8.18126341,3.8435016 8.52813047,3.4708734 8.53777961,3.18572676 C8.55077527,2.80206854 8.53655255,2.79471518 8.53777961,2.35555666 C8.53900667,1.91639814 8.74565444,1.5 9.27139313,1.5 C9.52544997,1.5 9.7301456,1.55690094 9.91922413,1.80084547 C10.2223633,2.15596568 10.4343097,2.71884727 10.4343097,3.60971169 C10.4343097,4.50057612 9.50989975,6.1729303 9.50815961,6.18 C9.50815961,6.18 13.5457098,6.17908951 13.5464084,6.18 C14.1635544,6.17587601 14.5,6.72543196 14.5,7.29718426 C14.5,7.83263667 14.1341135,8.27897346 13.6539433,8.3540827 C13.9452023,8.49286263 14.1544715,8.82364675 14.1544715,9.20555417 C14.1544715,9.68159617 13.8293011,10.0782687 13.3983805,10.1458495 C13.6304619,10.2907572 13.7736931,10.5516845 13.7736931,10.847511 C13.7736931,11.2459343 13.5138356,11.5808619 13.1594388,11.6612236 C13.3701582,11.7991865 13.5063617,12.0543945 13.5063617,12.3429843 C13.5063617,12.7952155 13.1715421,13.1656844 12.7434661,13.2 L6.54470232,13.2 Z"></path></svg><img class="_1pbs inlineBlock img" src="https://static.xx.fbcdn.net/rsrc.php/v3/yn/r/lH1ibRl5GKq.png" alt="" width="16" height="16" /></span><span class="_5n2y"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="_1pbq" color="#ffffff"><path fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M2.808 8.354l3.135 3.195 7.383-7.2"></path></svg><img class="_1pbs inlineBlock img" src="https://static.xx.fbcdn.net/rsrc.php/v3/yy/r/cDyyloiRSzM.png" alt="" width="16" height="16" /></span></span><span class="_49vh _2pi7">Like</span></div></button><input type="hidden" autocomplete="off" name="action" value="like" /><input type="hidden" autocomplete="off" name="nobootload" /><input type="hidden" autocomplete="off" name="iframe_referer" value="https://itunes.apple.com/app/id645704840" /><input type="hidden" autocomplete="off" name="r_ts" value="1499466654" /><input type="hidden" autocomplete="off" name="ref" /><input type="hidden" autocomplete="off" name="app_id" value="116556461780510" /></form></div></div></td></tr></tbody></table></div></div></div><script>function envFlush(a){function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){window.requireLazy(['Env'],b);}else{window.Env=window.Env||{};b(window.Env);}}envFlush({"ajaxpipe_token":"AXgmRqHt78pWs05O"});</script><script>ServerJSQueue.add(function(){requireLazy(["Bootloader"], function(Bootloader) {Bootloader.enableBootload({"css:CSSFade":{"resources":[]},"ExceptionDialog":{"resources":[],"module":1},"React":{"resources":[],"module":1},"AsyncDOM":{"resources":[],"module":1},"ConfirmationDialog":{"resources":[],"module":1},"Dialog":{"resources":[],"module":1},"QuickSandSolver":{"resources":[],"module":1},"ErrorSignal":{"resources":[],"module":1},"ReactDOM":{"resources":[],"module":1},"WebSpeedInteractionsTypedLogger":{"resources":[],"module":1},"LogHistory":{"resources":[],"module":1},"SimpleXUIDialog":{"resources":[],"module":1},"XUIButton.react":{"resources":[],"module":1},"XUIDialogButton.react":{"resources":[],"module":1},"Banzai":{"resources":[],"module":1},"ResourceTimingBootloaderHelper":{"resources":[],"module":1},"TimeSliceHelper":{"resources":[],"module":1},"BanzaiODS":{"resources":[],"module":1},"AsyncSignal":{"resources":[],"module":1},"XLinkshimLogController":{"resources":[],"module":1}});});});</script><script>ServerJSQueue.add({"instances":[["__inst_f1373dba_0_0",["PluginIconButton","__elem_0cdc66ad_0_0","__elem_da4ef9a3_0_0"],[{"__m":"__elem_0cdc66ad_0_0"},false,{"__m":"__elem_da4ef9a3_0_0"},14729088],2]],"elements":[["__elem_835c633a_0_0","u_0_0",1],["__elem_da4ef9a3_0_0","u_0_1",1],["__elem_85b7cbf7_0_0","u_0_0",1],["__elem_0cdc66ad_0_0","u_0_2",1]],"require":[["PluginReturn","syncPlugins",[],[],[]],["WebPixelRatio","startDetecting",[],[1],[]],["PluginConnectButtonWrapIconButton","initializeButton",["__elem_835c633a_0_0","__inst_f1373dba_0_0"],[{"__m":"__elem_835c633a_0_0"},{"__m":"__inst_f1373dba_0_0"},false,true,false,"http:\/\/www.facebook.com\/AppStore","like","like","Like App Store's Page on Facebook","Unlike",false],[]],["__inst_f1373dba_0_0"],["AsyncSignal"],["NavigationMetrics","setPage",[],[{"page":"\/plugins\/like.php","page_type":"widget","page_uri":"https:\/\/www.facebook.com\/plugins\/like.php?app_id=116556461780510&href=http\u00253A\u00252F\u00252Fwww.facebook.com\u00252FAppStore&send=false&layout=box_count&width=85&show_faces=false&action=like&colorscheme=light&font=lucida+grande&height=75&locale=en_US","serverLID":"6440160240911604612"}],[]]],"define":[["PlatformVersions",[],{"LATEST":"v2.9","versions":{"UNVERSIONED":"unversioned","V1_0":"v1.0","V2_0":"v2.0","V2_1":"v2.1","V2_2":"v2.2","V2_3":"v2.3","V2_4":"v2.4","V2_5":"v2.5","V2_6":"v2.6","V2_7":"v2.7","V2_8":"v2.8","V2_9":"v2.9"}},1254],["LinkReactUnsafeHrefConfig",[],{"LinkHrefChecker":null},1182],["BootloaderConfig",[],{"maxJsRetries":2,"jsRetries":[200,500],"jsRetryAbortNum":2,"jsRetryAbortTime":5,"payloadEndpointURI":"https:\/\/www.facebook.com\/ajax\/haste-response\/","assumeNotNonblocking":false,"assumePermanent":false},329],["CSSLoaderConfig",[],{"timeout":5000,"modulePrefix":"BLCSS:"},619],["CurrentCommunityInitialData",[],{},490],["CurrentUserInitialData",[],{"USER_ID":"677522148","ACCOUNT_ID":"677522148","NAME":"Candice Sharp","SHORT_NAME":"Candice"},270],["LinkshimHandlerConfig",[],{"supports_meta_referrer":true,"default_meta_referrer_policy":"default","switched_meta_referrer_policy":"origin","link_react_default_hash":"ATMoKGjkAdoeZofhnwjdPT_C7Vd_hTqABzXG5GLe_rref6E-hLJS0BxQo4FPn1xWaOuyls_BxIqjgkcA8-_YAo0xwqOqmk46lXdMLns4xYOhfvqfj4OwmWoxAsZocvsHAr27WP5KIW0","untrusted_link_default_hash":"ATO9Knz8wtLNlHUWM9qm9a9fER5AhvF-fSpCXo_uACr8CUbX_dJvNR5hO6aC2dHxunfLh03_iwe4rql0aMciH4jpgZoeWUtlTvEp7RiQtQFv2i2C0b5b6y5nmCi5H79PPcaTUImYOP4","linkshim_host":"l.facebook.com","use_rel_no_opener":false,"always_use_https":true,"onion_always_shim":true},27],["DTSGInitialData",[],{"token":"AQG2E3oiL9px:AQF-_ipy3aJ_"},258],["ISB",[],{},330],["LSD",[],{},323],["SiteData",[],{"server_revision":3139682,"client_revision":3139682,"tier":"","push_phase":"C3","pkg_cohort":"PHASED:plugin_like_pkg","pkg_cohort_key":"__pc","haste_site":"www","be_mode":-1,"be_key":"__be","is_rtl":false,"features":"j0","vip":"31.13.73.36"},317],["SprinkleConfig",[],{"param_name":"jazoest"},2111],["AsyncFeatureDeployment",[],{},1765],["CoreWarningGK",[],{"forceWarning":false},725],["UserAgentData",[],{"browserArchitecture":"64","browserFullVersion":"15.15063","browserMinorVersion":15063,"browserName":"Edge","browserVersion":15,"deviceName":"Unknown","engineName":"EdgeHTML","engineVersion":"15.15063","platformArchitecture":"64","platformName":"Windows","platformVersion":"10","platformFullVersion":"10"},527],["ZeroRewriteRules",[],{"rewrite_rules":{},"whitelist":{"\/hr\/r":1,"\/hr\/p":1,"\/zero\/unsupported_browser\/":1,"\/zero\/policy\/optin":1,"\/zero\/optin\/write\/":1,"\/zero\/optin\/legal\/":1,"\/zero\/optin\/free\/":1,"\/about\/privacy\/":1,"\/zero\/toggle\/welcome\/":1,"\/work\/landing":1,"\/work\/login\/":1,"\/work\/email\/":1,"\/ai.php":1,"\/js_dialog_resources\/dialog_descriptions_android.json":1,"\/connect\/jsdialog\/MPlatformAppInvitesJSDialog\/":1,"\/connect\/jsdialog\/MPlatformOAuthShimJSDialog\/":1,"\/connect\/jsdialog\/MPlatformLikeJSDialog\/":1,"\/qp\/interstitial\/":1,"\/qp\/action\/redirect\/":1,"\/qp\/action\/close\/":1,"\/zero\/support\/ineligible\/":1,"\/zero_balance_redirect\/":1,"\/zero_balance_redirect":1,"\/l.php":1,"\/lsr.php":1,"\/ajax\/dtsg\/":1,"\/checkpoint\/block\/":1,"\/exitdsite":1,"\/zero\/balance\/pixel\/":1,"\/zero\/balance\/":1,"\/zero\/balance\/carrier_landing\/":1,"\/tr":1,"\/tr\/":1,"\/sem_campaigns\/sem_pixel_test\/":1,"\/bookmarks\/flyout\/body\/":1,"\/zero\/subno\/":1,"\/confirmemail.php":1}},1478],["BanzaiConfig",[],{"EXPIRY":86400000,"MAX_SIZE":10000,"MAX_WAIT":150000,"RESTORE_WAIT":150000,"blacklist":["time_spent"],"gks":{"boosted_component":true,"boosted_pagelikes":true,"boosted_posts":true,"boosted_website":true,"jslogger":true,"mercury_send_attempt_logging":true,"mercury_send_error_logging":true,"pages_client_logging":true,"platform_oauth_client_events":true,"reactions":true,"useraction":true,"videos":true,"visibility_tracking":true,"graphexplorer":true,"gqls_web_logging":true,"sticker_search_ranking":true}},7],["InteractionTrackerRates",[],{"default":0.01},2343],["AsyncRequestConfig",[],{"retryOnNetworkError":"1","logAsyncRequest":false,"immediateDispatch":false,"useFetchStreamAjaxPipeTransport":false},328],["PromiseUsePolyfillSetImmediateGK",[],{"www_always_use_polyfill_setimmediate":false},2190],["SessionNameConfig",[],{"seed":"0wR1"},757],["ZeroCategoryHeader",[],{},1127],["TrackingConfig",[],{"domain":"https:\/\/pixel.facebook.com"},325],["WebSpeedJSExperiments",[],{"non_blocking_tracker":false,"non_blocking_logger":false,"i10s_io_on_visible":false},2458],["BigPipeExperiments",[],{"link_images_to_pagelets":false},907],["ErrorSignalConfig",[],{"uri":"https:\/\/error.facebook.com\/common\/scribe_endpoint.php"},319],["AdsInterfacesSessionConfig",[],{},2393],["EventConfig",[],{"sampling":{"bandwidth":0,"play":0,"playing":0,"progress":0,"pause":0,"ended":0,"seeked":0,"seeking":0,"waiting":0,"loadedmetadata":0,"canplay":0,"selectionchange":0,"change":0,"timeupdate":2000000,"adaptation":0,"focus":0,"blur":0,"load":0,"error":0,"message":0,"abort":0,"storage":0,"scroll":200000,"mousemove":20000,"mouseover":10000,"mouseout":10000,"mousewheel":1,"MSPointerMove":10000,"keydown":0.1,"click":0.01,"__100ms":0.001,"__default":100000,"__min":1000},"page_sampling_boost":1},1726],["ServerNonce",[],{"ServerNonce":"BLayr_eaIwRtzSiimac1ye"},141],["ReactFiberErrorLoggerConfig",[],{"bugNubClickTargetClassName":null,"enableDialog":false},2115],["TimeSliceInteractionCoinflips",[],{"default_rate":1000,"lite_default_rate":100,"interaction_to_lite_coinflip":{},"interaction_to_coinflip":{"async_request":0,"video_psr":1,"video_stall":25,"snowlift_open_autoclosed":0,"Event":2,"cms_editor":1,"page_messaging_shortlist":1,"ffd_chart_loading":1},"enable_heartbeat":true},1799],["ServiceWorkerBackgroundSyncBanzaiGK",[],{"sw_background_sync_banzai":false},1621],["CookieCoreConfig",[],{"a11y":{},"act":{},"c_user":{},"ddid":{"p":"\/deferreddeeplink\/","t":2419200},"dpr":{},"js_ver":{"t":604800},"locale":{"t":604800},"noscript":{},"presence":{},"sW":{},"sfau":{},"wd":{},"x-referer":{},"x-src":{"t":1}},2104],["FbtLogger",[],{"logger":null},288],["FbtQTOverrides",[],{"overrides":{"1_ecbbda7e90a9e3973827d18083b31d5d":"See Offers"}},551],["FbtResultGK",[],{"shouldReturnFbtResult":true,"inlineMode":"NO_INLINE"},876],["IntlViewerContext",[],{"GENDER":33554432},772],["NumberFormatConfig",[],{"decimalSeparator":".","numberDelimiter":",","minDigitsForThousandsSeparator":4,"switchImplementationGK":true,"standardDecimalPatternInfo":{"primaryGroupSize":3,"secondaryGroupSize":3},"numberingSystemData":null},54],["IntlPhonologicalRules",[],{"meta":{"\/_B\/":"([.,!?\\s]|^)","\/_E\/":"([.,!?\\s]|$)"},"patterns":{"\/\u0001(.*)('|')s\u0001(?:'|')s(.*)\/":"\u0001$1$2s\u0001$3","\/_\u0001([^\u0001]*)\u0001\/":"javascript"}},1496],["ReactGK",[],{"fiberAsyncScheduling":false,"unmountOnBeforeClearCanvas":true},998],["ServiceWorkerBackgroundSyncGK",[],{"background_sync_sw":false},1628]]});</script> <html lang="en" id="facebook" class="no_svg no_js"> <head><meta charset="utf-8" /><meta name="referrer" content="default" id="meta_referrer" /><script>__DEV__=0;</script><title>Facebook</title><style>._32qa button{opacity:.4}._59ov{height:100%;height:910px;position:relative;top:-10px;width:100%}._5ti_{background-size:cover;height:100%;width:100%}._5tj2{height:900px}._2mm3 ._5a8u .uiBoxGray{background:#fff;margin:0;padding:12px}._2494{height:100vh}._2495{margin-top:-10px;top:10px}body.plugin{background:transparent;font-family:Helvetica, Arial, sans-serif;line-height:1.28;overflow:hidden;-webkit-text-size-adjust:none}.plugin,.plugin button,.plugin input,.plugin label,.plugin select,.plugin td,.plugin textarea{font-size:11px}body{background:#fff;color:#1d2129;direction:ltr;line-height:1.34;margin:0;padding:0;unicode-bidi:embed}body,button,input,label,select,td,textarea{font-family:Helvetica, Arial, sans-serif;font-size:12px}h1,h2,h3,h4,h5,h6{color:#1d2129;font-size:13px;margin:0;padding:0}h1{font-size:14px}h4,h5,h6{font-size:12px}p{margin:1em 0}a{color:#365899;cursor:pointer;text-decoration:none}button{margin:0}a:hover{text-decoration:underline}img{border:0}td,td.label{text-align:left}dd{color:#000}dt{color:#777}ul{list-style-type:none;margin:0;padding:0}abbr{border-bottom:none;text-decoration:none}hr{background:#d9d9d9;border-width:0;color:#d9d9d9;height:1px}.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}.clearfix{zoom:1}.datawrap{word-wrap:break-word}.word_break{display:inline-block}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aero{opacity:.5}.column{float:left}.center{margin-left:auto;margin-right:auto}#facebook .hidden_elem{display:none !important}#facebook .invisible_elem{visibility:hidden}#facebook .accessible_elem{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.direction_ltr{direction:ltr}.direction_rtl{direction:rtl}.text_align_ltr{text-align:left}.text_align_rtl{text-align:right}.pluginFontArial,.pluginFontArial button,.pluginFontArial input,.pluginFontArial label,.pluginFontArial select,.pluginFontArial td,.pluginFontArial textarea{font-family:Arial, sans-serif}.pluginFontLucida,.pluginFontLucida button,.pluginFontLucida input,.pluginFontLucida label,.pluginFontLucida select,.pluginFontLucida td,.pluginFontLucida textarea{font-family:Lucida Grande, sans-serif}.pluginFontSegoe,.pluginFontSegoe button,.pluginFontSegoe input,.pluginFontSegoe label,.pluginFontSegoe select,.pluginFontSegoe td,.pluginFontSegoe textarea{font-family:Segoe UI, sans-serif}.pluginFontTahoma,.pluginFontTahoma button,.pluginFontTahoma input,.pluginFontTahoma label,.pluginFontTahoma select,.pluginFontTahoma td,.pluginFontTahoma textarea{font-family:Tahoma, sans-serif}.pluginFontTrebuchet,.pluginFontTrebuchet button,.pluginFontTrebuchet input,.pluginFontTrebuchet label,.pluginFontTrebuchet select,.pluginFontTrebuchet td,.pluginFontTrebuchet textarea{font-family:Trebuchet MS, sans-serif}.pluginFontVerdana,.pluginFontVerdana button,.pluginFontVerdana input,.pluginFontVerdana label,.pluginFontVerdana select,.pluginFontVerdana td,.pluginFontVerdana textarea{font-family:Verdana, sans-serif}.pluginFontHelvetica,.pluginFontHelvetica button,.pluginFontHelvetica input,.pluginFontHelvetica label,.pluginFontHelvetica select,.pluginFontHelvetica td,.pluginFontHelvetica textarea{font-family:Helvetica, Arial, sans-serif}._51mz{border:0;border-collapse:collapse;border-spacing:0}._5f0n{table-layout:fixed;width:100%}.uiGrid .vTop{vertical-align:top}.uiGrid .vMid{vertical-align:middle}.uiGrid .vBot{vertical-align:bottom}.uiGrid .hLeft{text-align:left}.uiGrid .hCent{text-align:center}.uiGrid .hRght{text-align:right}._51mx:first-child>._51m-{padding-top:0}._51mx:last-child>._51m-{padding-bottom:0}._51mz ._51mw{padding-right:0}._51mz ._51m-:first-child{padding-left:0}._l0a,._l0d{width:100%}._5f0v{outline:none}._3oxt{outline:1px dotted #3b5998;outline-color:invert}.webkit ._3oxt{outline:5px auto #5b9dd9}.win.webkit ._3oxt{outline-color:#e59700}._4qba{font-style:normal}._4qbb,._4qbc,._4qbd{background:none;font-style:normal;padding:0;width:auto}._4qbd{border-bottom:1px solid #f99}._4qbb,._4qbc{border-bottom:1px solid #999}._4qbb:hover,._4qbc:hover,._4qbd:hover{background-color:#fcc;border-top:1px solid #ccc;cursor:help}.uiLayer{outline:none}.inlineBlock{display:inline-block;zoom:1}._2tga{background:#4267b2;border:1px solid #4267b2;color:#fff;cursor:pointer;font-family:Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;-webkit-user-select:none;white-space:nowrap}._2tga.active{background:#4080ff;border:1px solid #4080ff}._2tga._4kae.active,._2tga._4kae.active:hover{background:#577fbc;border:1px solid #577fbc}._2tga._49ve{border-radius:3px;font-size:11px;height:20px;padding:0 0 0 2px}.chrome ._2tga._49ve{padding-bottom:1px}._2tga._3e2a{border-radius:4px;font-size:13px;height:28px;padding:0 4px 0 6px}._2tga._5n6f{border-top-left-radius:0;border-top-right-radius:0}._2tga:hover{background:#365899;border:1px solid #365899}._2tga:active{background:#577fbc;border:1px solid #577fbc}._2tga:focus{outline-color:transparent;outline-style:none}._2tga.active:hover{background:#4080ff;border:1px solid #4080ff}._11qm{background:#fff;border:1px solid #ced0d4;color:#4267b2}._11qm:hover{background:#f6f7f9;border:1px solid #ced0d4}._11qm.active{border:1px solid #4080ff;color:#fff}._3oi2{background:#0084ff;border:1px solid #0084ff;color:#fff}._3oi2:hover{background:#0077e5;border:1px solid #0077e5}._3e2a ._3jn-{position:relative;top:-1px}._3jn-{height:16px;vertical-align:middle;width:16px}._3jn_{background:none;display:none;height:28px;left:-6px;position:absolute;top:-6px;width:28px}@-webkit-keyframes burst{from{background-position:0 0}to{background-position:-616px 0}}._2tga.is_animating ._3jn_{-webkit-animation:burst .24s steps(22) forwards;background:url(https://static.xx.fbcdn.net/rsrc.php/v3/ys/r/B4-pzLJTRP0.png) no-repeat;background-position:0 0;background-size:616px 28px;display:inline-block;zoom:1}._49ve._2tga.is_animating ._3jn_{left:-6px;position:relative;top:-6px}._49vg,._5n2y{vertical-align:middle}._2tga ._5n2y,._2tga.active ._49vg,._2tga.active.is_animating ._5n2y{display:none}._2tga ._49vg,._2tga.active ._5n2y,._2tga.active:hover ._4kag{display:inline-block;zoom:1}#facebook ._2tga span._49vh,#facebook ._2tga span._5n6h,._49vh,._5n6h{font-family:Helvetica, Arial, sans-serif;vertical-align:middle}._49vh{font-weight:bold}._5n6h{font-weight:normal}._5n6j{border-radius:3px;height:20px;line-height:20px}._5n6k{border-radius:4px;height:30px;line-height:30px}._5n6l{background:#fff;border:1px solid #90949c;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;box-sizing:border-box;color:#1d2129;text-align:center;width:100%}._2tga ._1pbq{height:16px;width:16px}.no_svg ._2tga ._1pbq,.svg ._2tga ._1pbs{display:none}._2n-v ._49vh{padding-left:2px}form{margin:0;padding:0}label{cursor:pointer;color:#666;font-weight:bold;vertical-align:middle}label input{font-weight:normal}textarea,.inputtext,.inputpassword{border:1px solid #bdc7d8;margin:0;padding:3px;-webkit-appearance:none;-webkit-border-radius:0}textarea{max-width:100%}select{border:1px solid #bdc7d8;padding:2px}.inputtext,.inputpassword{padding-bottom:4px}.inputtext:invalid,.inputpassword:invalid{box-shadow:none}.inputradio{padding:0;margin:0 5px 0 0;vertical-align:middle}.inputcheckbox{border:0;vertical-align:middle}.inputbutton,.inputsubmit{border-style:solid;border-width:1px;border-color:#dddfe2 #0e1f5b #0e1f5b #d9dfea;background-color:#3b5998;color:#fff;padding:2px 15px 3px 15px;text-align:center}.inputsubmit_disabled{background-color:#999;border-bottom:1px solid #000;border-right:1px solid #666;color:#fff}.inputaux{background:#e9ebee;border-color:#e9ebee #666 #666 #e7e7e7;color:#000}.inputaux_disabled{color:#999}.inputsearch{background:#ffffff url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/unHwF9CkMyM.png) no-repeat left 4px;padding-left:17px}._2phz{padding:4px}._2ph-{padding:8px}._2ph_{padding:12px}._2pi0{padding:16px}._2pi1{padding:20px}._40c7{padding:24px}._2o1j{padding:36px}._2pi2{padding-bottom:4px;padding-top:4px}._2pi3{padding-bottom:8px;padding-top:8px}._2pi4{padding-bottom:12px;padding-top:12px}._2pi5{padding-bottom:16px;padding-top:16px}._2pi6{padding-bottom:20px;padding-top:20px}._2o1k{padding-bottom:24px;padding-top:24px}._2o1l{padding-bottom:36px;padding-top:36px}._2pi7{padding-left:4px;padding-right:4px}._2pi8{padding-left:8px;padding-right:8px}._2pi9{padding-left:12px;padding-right:12px}._2pia{padding-left:16px;padding-right:16px}._2pib{padding-left:20px;padding-right:20px}._2o1m{padding-left:24px;padding-right:24px}._2o1n{padding-left:36px;padding-right:36px}._2pic{padding-top:4px}._2pid{padding-top:8px}._2pie{padding-top:12px}._2pif{padding-top:16px}._2pig{padding-top:20px}._2owm{padding-top:24px}._2pih{padding-right:4px}._2pii{padding-right:8px}._2pij{padding-right:12px}._2pik{padding-right:16px}._2pil{padding-right:20px}._31wk{padding-right:24px}._2phb{padding-right:32px}._2pim{padding-bottom:4px}._2pin{padding-bottom:8px}._2pio{padding-bottom:12px}._2pip{padding-bottom:16px}._2piq{padding-bottom:20px}._2o1p{padding-bottom:24px}._2pir{padding-left:4px}._2pis{padding-left:8px}._2pit{padding-left:12px}._2piu{padding-left:16px}._2piv{padding-left:20px}._2o1q{padding-left:24px}._2o1r{padding-left:36px}._4mr9{-webkit-touch-callout:none;-webkit-user-select:none}._4mra{-webkit-touch-callout:default;-webkit-user-select:auto}._li._li._li{overflow:initial}._42ft{cursor:pointer;display:inline-block;text-decoration:none;white-space:nowrap}._42ft:hover{text-decoration:none}._42ft+._42ft{margin-left:4px}._42fr,._42fs{cursor:default}.textMetrics{border:none;height:1px;overflow:hidden;padding:0;position:absolute;top:-9999999px}.textMetricsInline{white-space:pre}._1f8a{display:inline;float:left}._1f8b{float:left}</style><script>window.ServerJSQueue=function(){var a=[],b,c;return {add:function(d){if(!b){a.push(d);}else typeof d==='function'?d():b.handle(d);},run:function(){if(!window.require)return;var d;c=window.require('ServerJSDefine');for(d=0;d<a.length;d++)if(a[d].define&&typeof a[d]!=='function'){c.handleDefines(a[d].define);delete a[d].define;}b=new (window.require('ServerJS'))();for(d=0;d<a.length;d++)typeof a[d]==='function'?a[d]():b.handle(a[d]);}};}();document.write=function(){};window.onloadRegister_DEPRECATED=function(){};window.onafterloadRegister_DEPRECATED=function(){};window.ServerJSAsyncLoader=function(){var a=false,b=false,c={loaded:1,complete:1},d=function(){},e=document,f=false,g=false;function h(){if(e.readyState in c){e.detachEvent('onreadystatechange',h);d('t_domcontent');}}function i(){if(!g&&window._cavalry&&a&&b){d('t_layout');d('t_onload');d('t_paint');_cavalry.send();g=true;}}function j(){if(!f&&b){f=true;ServerJSQueue.run();}}function k(o,p){if('onreadystatechange' in o){o.onreadystatechange=function(){if(o.readyState in c){o.onreadystatechange=null;p();}};}else if(o.addEventListener){var q=function(){p();o.removeEventListener('load',q,false);};o.addEventListener('load',q,false);}}function l(o){var p=e.createElement("script");if(p.readyState&&p.readyState==="uninitialized"){k(p,function(){b=true;i();});p.src=o;return true;}else if(typeof XMLHttpRequest!=='undefined'){var q=new XMLHttpRequest();if("withCredentials" in q){q.onloadend=function(){b=true;i();};q.open("GET",o,true);q.send(null);return true;}}}function m(){e.onkeydown=e.onmouseover=e.onclick=onfocus=null;ServerJSAsyncLoader.execute();}function n(){if(e.body.offsetWidth===0||e.body.offsetHeight===0)m();}if(window._cavalry){d=function(o){_cavalry.log(o);};if(window.addEventListener){window.addEventListener('DOMContentLoaded',function(){d('t_domcontent');},false);}else if(e.attachEvent)e.attachEvent('onreadystatechange',h);}window.onload=function(){a=true;j();i();};return {ondemandjs:null,run:function(o){this.file=o;this.execute();},load:function(o){this.file=o;if(!l(o)){this.run(o);return;}window.onload=function(){a=true;i();n();};e.onkeydown=e.onmouseover=e.onclick=onfocus=m;},execute:function(o){var p=e.createElement('script');p.src=ServerJSAsyncLoader.file;p.async=true;k(p,function(){b=true;j();o&&o();i();});e.getElementsByTagName('head')[0].appendChild(p);},wakeUp:function(o,p,q){function r(){window.require("Arbiter").inform(o,p,q);}if(f){r();}else this.execute(r);}};}();ServerJSAsyncLoader.load("https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3ibIg4\/yK\/l\/en_US\/JgZzvZF86-w.js");</script><script>ServerJSQueue.add({"require":[["markJSEnabled"],["lowerDomain"]]});</script><script>(function(){var a=document.createElement('div');a.innerHTML='<svg/>';if(a.firstChild&&a.firstChild.namespaceURI==='http://www.w3.org/2000/svg'){var b=document.documentElement;b.className=b.className.replace('no_svg','svg');}})();</script></head><body dir="ltr" class="plugin _4mr9 edge webkit win x1 Locale_en_US"><div class="_li"><div class="pluginSkinLight pluginFontLucida"><div><table class="uiGrid _51mz" cellspacing="0" cellpadding="0"><tbody><tr class="_51mx"><td class="_51m- hCent _51mw"><div><div class="inlineBlock _l0d"><div class="_5n6j _5n6l"><span id="u_0_1">30M</span></div><form rel="async" ajaxify="/plugins/like/connect" method="post" action="/plugins/like/connect" onsubmit="return window.Event && Event.__inlineSubmit && Event.__inlineSubmit(this,event)" id="u_0_0"><input type="hidden" name="fb_dtsg" value="AQHwYZe-I023:AQEJH2OagwsB" autocomplete="off" /><input type="hidden" autocomplete="off" name="href" value="http://www.facebook.com/iTunes" /><input type="hidden" autocomplete="off" name="new_ui" value="true" /><button type="submit" class="inlineBlock _2tga _49ve _5n6f _l0a" title="Like iTunes's Page on Facebook" id="u_0_2"><div class=""><span class="_3jn- inlineBlock"><span class="_3jn_"></span><span class="_49vg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="_1pbq" color="#ffffff"><path fill="#ffffff" fill-rule="evenodd" d="M4.55,7 C4.7984,7 5,7.23403636 5,7.52247273 L5,13.4775273 C5,13.7659636 4.7984,14 4.55,14 L2.45,14 C2.2016,14 2,13.7659636 2,13.4775273 L2,7.52247273 C2,7.23403636 2.2016,7 2.45,7 L4.55,7 Z M6.54470232,13.2 C6.24016877,13.1641086 6.01734614,12.8982791 6,12.5737979 C6.01734614,12.5737979 6.01344187,9.66805666 6,8.14398693 C6.01344187,7.61903931 6.10849456,6.68623352 6.39801308,6.27384278 C7.10556287,5.26600749 7.60281698,4.6079584 7.89206808,4.22570082 C8.18126341,3.8435016 8.52813047,3.4708734 8.53777961,3.18572676 C8.55077527,2.80206854 8.53655255,2.79471518 8.53777961,2.35555666 C8.53900667,1.91639814 8.74565444,1.5 9.27139313,1.5 C9.52544997,1.5 9.7301456,1.55690094 9.91922413,1.80084547 C10.2223633,2.15596568 10.4343097,2.71884727 10.4343097,3.60971169 C10.4343097,4.50057612 9.50989975,6.1729303 9.50815961,6.18 C9.50815961,6.18 13.5457098,6.17908951 13.5464084,6.18 C14.1635544,6.17587601 14.5,6.72543196 14.5,7.29718426 C14.5,7.83263667 14.1341135,8.27897346 13.6539433,8.3540827 C13.9452023,8.49286263 14.1544715,8.82364675 14.1544715,9.20555417 C14.1544715,9.68159617 13.8293011,10.0782687 13.3983805,10.1458495 C13.6304619,10.2907572 13.7736931,10.5516845 13.7736931,10.847511 C13.7736931,11.2459343 13.5138356,11.5808619 13.1594388,11.6612236 C13.3701582,11.7991865 13.5063617,12.0543945 13.5063617,12.3429843 C13.5063617,12.7952155 13.1715421,13.1656844 12.7434661,13.2 L6.54470232,13.2 Z"></path></svg><img class="_1pbs inlineBlock img" src="https://static.xx.fbcdn.net/rsrc.php/v3/yn/r/lH1ibRl5GKq.png" alt="" width="16" height="16" /></span><span class="_5n2y"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="_1pbq" color="#ffffff"><path fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M2.808 8.354l3.135 3.195 7.383-7.2"></path></svg><img class="_1pbs inlineBlock img" src="https://static.xx.fbcdn.net/rsrc.php/v3/yy/r/cDyyloiRSzM.png" alt="" width="16" height="16" /></span></span><span class="_49vh _2pi7">Like</span></div></button><input type="hidden" autocomplete="off" name="action" value="like" /><input type="hidden" autocomplete="off" name="nobootload" /><input type="hidden" autocomplete="off" name="iframe_referer" value="https://itunes.apple.com/app/id645704840" /><input type="hidden" autocomplete="off" name="r_ts" value="1499466654" /><input type="hidden" autocomplete="off" name="ref" /><input type="hidden" autocomplete="off" name="app_id" value="161583840592879" /></form></div></div></td></tr></tbody></table></div></div></div><script>function envFlush(a){function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){window.requireLazy(['Env'],b);}else{window.Env=window.Env||{};b(window.Env);}}envFlush({"ajaxpipe_token":"AXgmRqHt78pWs05O"});</script><script>ServerJSQueue.add(function(){requireLazy(["Bootloader"], function(Bootloader) {Bootloader.enableBootload({"css:CSSFade":{"resources":[]},"ExceptionDialog":{"resources":[],"module":1},"React":{"resources":[],"module":1},"AsyncDOM":{"resources":[],"module":1},"ConfirmationDialog":{"resources":[],"module":1},"Dialog":{"resources":[],"module":1},"QuickSandSolver":{"resources":[],"module":1},"ErrorSignal":{"resources":[],"module":1},"ReactDOM":{"resources":[],"module":1},"WebSpeedInteractionsTypedLogger":{"resources":[],"module":1},"LogHistory":{"resources":[],"module":1},"SimpleXUIDialog":{"resources":[],"module":1},"XUIButton.react":{"resources":[],"module":1},"XUIDialogButton.react":{"resources":[],"module":1},"Banzai":{"resources":[],"module":1},"ResourceTimingBootloaderHelper":{"resources":[],"module":1},"TimeSliceHelper":{"resources":[],"module":1},"BanzaiODS":{"resources":[],"module":1},"AsyncSignal":{"resources":[],"module":1},"XLinkshimLogController":{"resources":[],"module":1}});});});</script><script>ServerJSQueue.add({"instances":[["__inst_f1373dba_0_0",["PluginIconButton","__elem_0cdc66ad_0_0","__elem_da4ef9a3_0_0"],[{"__m":"__elem_0cdc66ad_0_0"},false,{"__m":"__elem_da4ef9a3_0_0"},30856989],2]],"elements":[["__elem_835c633a_0_0","u_0_0",1],["__elem_da4ef9a3_0_0","u_0_1",1],["__elem_85b7cbf7_0_0","u_0_0",1],["__elem_0cdc66ad_0_0","u_0_2",1]],"require":[["PluginReturn","syncPlugins",[],[],[]],["WebPixelRatio","startDetecting",[],[1],[]],["PluginConnectButtonWrapIconButton","initializeButton",["__elem_835c633a_0_0","__inst_f1373dba_0_0"],[{"__m":"__elem_835c633a_0_0"},{"__m":"__inst_f1373dba_0_0"},false,true,false,"http:\/\/www.facebook.com\/iTunes","like","like","Like iTunes's Page on Facebook","Unlike",false],[]],["__inst_f1373dba_0_0"],["AsyncSignal"],["NavigationMetrics","setPage",[],[{"page":"\/plugins\/like.php","page_type":"widget","page_uri":"https:\/\/www.facebook.com\/plugins\/like.php?app_id=161583840592879&href=http\u00253A\u00252F\u00252Fwww.facebook.com\u00252FiTunes&send=false&layout=box_count&width=85&show_faces=false&action=like&colorscheme=light&font=lucida+grande&height=75&locale=en_US","serverLID":"6440160240394450582"}],[]]],"define":[["PlatformVersions",[],{"LATEST":"v2.9","versions":{"UNVERSIONED":"unversioned","V1_0":"v1.0","V2_0":"v2.0","V2_1":"v2.1","V2_2":"v2.2","V2_3":"v2.3","V2_4":"v2.4","V2_5":"v2.5","V2_6":"v2.6","V2_7":"v2.7","V2_8":"v2.8","V2_9":"v2.9"}},1254],["LinkReactUnsafeHrefConfig",[],{"LinkHrefChecker":null},1182],["BootloaderConfig",[],{"maxJsRetries":2,"jsRetries":[200,500],"jsRetryAbortNum":2,"jsRetryAbortTime":5,"payloadEndpointURI":"https:\/\/www.facebook.com\/ajax\/haste-response\/","assumeNotNonblocking":false,"assumePermanent":false},329],["LinkshimHandlerConfig",[],{"supports_meta_referrer":true,"default_meta_referrer_policy":"default","switched_meta_referrer_policy":"origin","link_react_default_hash":"ATMCMY2uo_buumOkPjBCnl7fotdPoCUEZrzjmPG8unIM2tPybbkK6SQskR65c0SCXgG-zjtcJ1l-cY30hHTbyMVYoiZPkJ3hAAxsC_wUvTm53jt7MxV0drMz26trCnNexrCJtwTTp2s","untrusted_link_default_hash":"ATON2emR9eXm09vpbd7IuD0-ycq5RCg4JZjYnuDJk0s0-xiWAnXR_B6f-fJ9-AufZBZdwJyqsRdQgeD2OK01AI65ZIMXKzgxffk2x53XbIWXwSDGDIf70qI151iu1Cabp9scUBaWJdc","linkshim_host":"l.facebook.com","use_rel_no_opener":false,"always_use_https":true,"onion_always_shim":true},27],["CSSLoaderConfig",[],{"timeout":5000,"modulePrefix":"BLCSS:"},619],["CurrentCommunityInitialData",[],{},490],["CurrentUserInitialData",[],{"USER_ID":"677522148","ACCOUNT_ID":"677522148","NAME":"Candice Sharp","SHORT_NAME":"Candice"},270],["DTSGInitialData",[],{"token":"AQHwYZe-I023:AQEJH2OagwsB"},258],["ISB",[],{},330],["LSD",[],{},323],["SiteData",[],{"server_revision":3139682,"client_revision":3139682,"tier":"","push_phase":"C3","pkg_cohort":"PHASED:plugin_like_pkg","pkg_cohort_key":"__pc","haste_site":"www","be_mode":-1,"be_key":"__be","is_rtl":false,"features":"j0","vip":"31.13.73.36"},317],["SprinkleConfig",[],{"param_name":"jazoest"},2111],["AsyncFeatureDeployment",[],{},1765],["CoreWarningGK",[],{"forceWarning":false},725],["BanzaiConfig",[],{"EXPIRY":86400000,"MAX_SIZE":10000,"MAX_WAIT":150000,"RESTORE_WAIT":150000,"blacklist":["time_spent"],"gks":{"boosted_component":true,"boosted_pagelikes":true,"boosted_posts":true,"boosted_website":true,"jslogger":true,"mercury_send_attempt_logging":true,"mercury_send_error_logging":true,"pages_client_logging":true,"platform_oauth_client_events":true,"reactions":true,"useraction":true,"videos":true,"visibility_tracking":true,"graphexplorer":true,"gqls_web_logging":true,"sticker_search_ranking":true}},7],["UserAgentData",[],{"browserArchitecture":"64","browserFullVersion":"15.15063","browserMinorVersion":15063,"browserName":"Edge","browserVersion":15,"deviceName":"Unknown","engineName":"EdgeHTML","engineVersion":"15.15063","platformArchitecture":"64","platformName":"Windows","platformVersion":"10","platformFullVersion":"10"},527],["ZeroRewriteRules",[],{"rewrite_rules":{},"whitelist":{"\/hr\/r":1,"\/hr\/p":1,"\/zero\/unsupported_browser\/":1,"\/zero\/policy\/optin":1,"\/zero\/optin\/write\/":1,"\/zero\/optin\/legal\/":1,"\/zero\/optin\/free\/":1,"\/about\/privacy\/":1,"\/zero\/toggle\/welcome\/":1,"\/work\/landing":1,"\/work\/login\/":1,"\/work\/email\/":1,"\/ai.php":1,"\/js_dialog_resources\/dialog_descriptions_android.json":1,"\/connect\/jsdialog\/MPlatformAppInvitesJSDialog\/":1,"\/connect\/jsdialog\/MPlatformOAuthShimJSDialog\/":1,"\/connect\/jsdialog\/MPlatformLikeJSDialog\/":1,"\/qp\/interstitial\/":1,"\/qp\/action\/redirect\/":1,"\/qp\/action\/close\/":1,"\/zero\/support\/ineligible\/":1,"\/zero_balance_redirect\/":1,"\/zero_balance_redirect":1,"\/l.php":1,"\/lsr.php":1,"\/ajax\/dtsg\/":1,"\/checkpoint\/block\/":1,"\/exitdsite":1,"\/zero\/balance\/pixel\/":1,"\/zero\/balance\/":1,"\/zero\/balance\/carrier_landing\/":1,"\/tr":1,"\/tr\/":1,"\/sem_campaigns\/sem_pixel_test\/":1,"\/bookmarks\/flyout\/body\/":1,"\/zero\/subno\/":1,"\/confirmemail.php":1}},1478],["InteractionTrackerRates",[],{"default":0.01},2343],["AsyncRequestConfig",[],{"retryOnNetworkError":"1","logAsyncRequest":false,"immediateDispatch":false,"useFetchStreamAjaxPipeTransport":false},328],["PromiseUsePolyfillSetImmediateGK",[],{"www_always_use_polyfill_setimmediate":false},2190],["SessionNameConfig",[],{"seed":"0Pc3"},757],["ZeroCategoryHeader",[],{},1127],["TrackingConfig",[],{"domain":"https:\/\/pixel.facebook.com"},325],["WebSpeedJSExperiments",[],{"non_blocking_tracker":false,"non_blocking_logger":false,"i10s_io_on_visible":false},2458],["BigPipeExperiments",[],{"link_images_to_pagelets":false},907],["ErrorSignalConfig",[],{"uri":"https:\/\/error.facebook.com\/common\/scribe_endpoint.php"},319],["AdsInterfacesSessionConfig",[],{},2393],["EventConfig",[],{"sampling":{"bandwidth":0,"play":0,"playing":0,"progress":0,"pause":0,"ended":0,"seeked":0,"seeking":0,"waiting":0,"loadedmetadata":0,"canplay":0,"selectionchange":0,"change":0,"timeupdate":2000000,"adaptation":0,"focus":0,"blur":0,"load":0,"error":0,"message":0,"abort":0,"storage":0,"scroll":200000,"mousemove":20000,"mouseover":10000,"mouseout":10000,"mousewheel":1,"MSPointerMove":10000,"keydown":0.1,"click":0.01,"__100ms":0.001,"__default":100000,"__min":1000},"page_sampling_boost":1},1726],["ServerNonce",[],{"ServerNonce":"UNj9CterzN2nknuXmAngdA"},141],["ReactFiberErrorLoggerConfig",[],{"bugNubClickTargetClassName":null,"enableDialog":false},2115],["TimeSliceInteractionCoinflips",[],{"default_rate":1000,"lite_default_rate":100,"interaction_to_lite_coinflip":{},"interaction_to_coinflip":{"async_request":0,"video_psr":1,"video_stall":25,"snowlift_open_autoclosed":0,"Event":2,"cms_editor":1,"page_messaging_shortlist":1,"ffd_chart_loading":1},"enable_heartbeat":true},1799],["ServiceWorkerBackgroundSyncBanzaiGK",[],{"sw_background_sync_banzai":false},1621],["CookieCoreConfig",[],{"a11y":{},"act":{},"c_user":{},"ddid":{"p":"\/deferreddeeplink\/","t":2419200},"dpr":{},"js_ver":{"t":604800},"locale":{"t":604800},"noscript":{},"presence":{},"sW":{},"sfau":{},"wd":{},"x-referer":{},"x-src":{"t":1}},2104],["FbtLogger",[],{"logger":null},288],["FbtQTOverrides",[],{"overrides":{"1_ecbbda7e90a9e3973827d18083b31d5d":"See Offers"}},551],["FbtResultGK",[],{"shouldReturnFbtResult":true,"inlineMode":"NO_INLINE"},876],["IntlViewerContext",[],{"GENDER":33554432},772],["NumberFormatConfig",[],{"decimalSeparator":".","numberDelimiter":",","minDigitsForThousandsSeparator":4,"switchImplementationGK":true,"standardDecimalPatternInfo":{"primaryGroupSize":3,"secondaryGroupSize":3},"numberingSystemData":null},54],["IntlPhonologicalRules",[],{"meta":{"\/_B\/":"([.,!?\\s]|^)","\/_E\/":"([.,!?\\s]|$)"},"patterns":{"\/\u0001(.*)('|')s\u0001(?:'|')s(.*)\/":"\u0001$1$2s\u0001$3","\/_\u0001([^\u0001]*)\u0001\/":"javascript"}},1496],["ReactGK",[],{"fiberAsyncScheduling":false,"unmountOnBeforeClearCanvas":true},998],["ServiceWorkerBackgroundSyncGK",[],{"background_sync_sw":false},1628]]});</script>
GitHub Repo
https://github.com/chhuck/crash-bandicoot-4-about-time-