├── .gitignore
├── public
├── robots.txt
├── favicon.ico
├── logo192.png
├── logo512.png
├── manifest.json
├── static
│ ├── css
│ │ ├── main.0e2988d0.chunk.css
│ │ ├── main.0e2988d0.chunk.css.map
│ │ └── 2.e2dd9b0a.chunk.css
│ └── js
│ │ ├── runtime-main.bb50f6a8.js
│ │ ├── 2.3ea7d454.chunk.js.LICENSE.txt
│ │ ├── runtime-main.bb50f6a8.js.map
│ │ ├── main.29ed5f81.chunk.js
│ │ └── main.29ed5f81.chunk.js.map
├── precache-manifest.c983d65f44d85da6d9268a44c3e7a788.js
├── asset-manifest.json
├── service-worker.js
└── index.html
├── example.env
├── package.json
├── README.md
├── index.js
└── src
└── routes.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .env
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cvmcosta/ltijs-demo-server/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cvmcosta/ltijs-demo-server/HEAD/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cvmcosta/ltijs-demo-server/HEAD/public/logo512.png
--------------------------------------------------------------------------------
/example.env:
--------------------------------------------------------------------------------
1 | DB_HOST=localhost
2 | DB_NAME=ltidb
3 | DB_USER=user
4 | DB_PASS=pass
5 | LTI_KEY=LTIKEY
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ltijs-demo",
3 | "version": "1.0.0",
4 | "description": "Ltijs demo server",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "env DEBUG=provider:* node index.js"
9 | },
10 | "keywords": [
11 | "lti",
12 | "ims",
13 | "ltijs",
14 | "1.3",
15 | "imslti"
16 | ],
17 | "author": "cvmcosta",
18 | "license": "MIT",
19 | "dependencies": {
20 | "dotenv": "^16.0.3",
21 | "express": "^4.18.2",
22 | "ltijs": "^5.9.1"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/public/static/css/main.0e2988d0.chunk.css:
--------------------------------------------------------------------------------
1 | body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root,.MuiContainer-root,body,html{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}.MuiInput-underline:after{border-bottom:#013b6c!important}.polygon{position:fixed;top:0;left:0;width:100%;height:100%}.blank>div{background-color:transparent!important}.main{overflow-y:auto}
2 | /*# sourceMappingURL=main.0e2988d0.chunk.css.map */
--------------------------------------------------------------------------------
/public/precache-manifest.c983d65f44d85da6d9268a44c3e7a788.js:
--------------------------------------------------------------------------------
1 | self.__precacheManifest = (self.__precacheManifest || []).concat([
2 | {
3 | "revision": "e7225c19d0749baca318fff1257f3e43",
4 | "url": "./index.html"
5 | },
6 | {
7 | "revision": "ececcecdc59024ca2bac",
8 | "url": "./static/css/2.e2dd9b0a.chunk.css"
9 | },
10 | {
11 | "revision": "4b48d89ec90c40499c93",
12 | "url": "./static/css/main.0e2988d0.chunk.css"
13 | },
14 | {
15 | "revision": "ececcecdc59024ca2bac",
16 | "url": "./static/js/2.3ea7d454.chunk.js"
17 | },
18 | {
19 | "revision": "ab614938fe7d398190b8a985fec2e1f8",
20 | "url": "./static/js/2.3ea7d454.chunk.js.LICENSE.txt"
21 | },
22 | {
23 | "revision": "4b48d89ec90c40499c93",
24 | "url": "./static/js/main.29ed5f81.chunk.js"
25 | },
26 | {
27 | "revision": "b6d405b37e59947ce6c7",
28 | "url": "./static/js/runtime-main.bb50f6a8.js"
29 | }
30 | ]);
--------------------------------------------------------------------------------
/public/static/css/main.0e2988d0.chunk.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["index.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEE,mCACE,WACF,CAEF,KACE,yEAEF,CAEA,0BACE,+BACF,CAEA,SACE,cAAe,CACf,KAAM,CACN,MAAO,CACP,UAAW,CACX,WACF,CAEA,WACE,sCACF,CACA,MACE,eACF","file":"main.0e2988d0.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n body, #root, html, .MuiContainer-root{\n height: 100%;\n }\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n.MuiInput-underline:after{\n border-bottom: #013b6c !important;\n}\n\n.polygon{\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.blank > div {\n background-color: transparent !important;\n}\n.main{\n overflow-y: auto;\n}"]}
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |

5 |

6 |
7 |
8 |
9 | # Ltijs Demo Server
10 |
11 | > Ltijs v5 demo server
12 |
13 | ### Usage
14 |
15 | - Download or clone the repo
16 |
17 | - Setup `.env` file with the relevant variables
18 |
19 | ```
20 | DB_HOST=localhost
21 | DB_NAME=ltidb
22 | DB_USER=user
23 | DB_PASS=pass
24 | LTI_KEY=LTIKEY
25 | ```
26 | *DB_USER and DB_PASS are not required*
27 |
28 | - Run `npm install`
29 |
30 | - Run `npm start`
31 |
32 | ### React application
33 |
34 | The code for the react application used with this project can be found [here](https://github.com/Cvmcosta/ltijs-demo-client).
--------------------------------------------------------------------------------
/public/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": {
3 | "main.css": "./static/css/main.0e2988d0.chunk.css",
4 | "main.js": "./static/js/main.29ed5f81.chunk.js",
5 | "main.js.map": "./static/js/main.29ed5f81.chunk.js.map",
6 | "runtime-main.js": "./static/js/runtime-main.bb50f6a8.js",
7 | "runtime-main.js.map": "./static/js/runtime-main.bb50f6a8.js.map",
8 | "static/css/2.e2dd9b0a.chunk.css": "./static/css/2.e2dd9b0a.chunk.css",
9 | "static/js/2.3ea7d454.chunk.js": "./static/js/2.3ea7d454.chunk.js",
10 | "static/js/2.3ea7d454.chunk.js.map": "./static/js/2.3ea7d454.chunk.js.map",
11 | "index.html": "./index.html",
12 | "precache-manifest.c983d65f44d85da6d9268a44c3e7a788.js": "./precache-manifest.c983d65f44d85da6d9268a44c3e7a788.js",
13 | "service-worker.js": "./service-worker.js",
14 | "static/css/2.e2dd9b0a.chunk.css.map": "./static/css/2.e2dd9b0a.chunk.css.map",
15 | "static/css/main.0e2988d0.chunk.css.map": "./static/css/main.0e2988d0.chunk.css.map",
16 | "static/js/2.3ea7d454.chunk.js.LICENSE.txt": "./static/js/2.3ea7d454.chunk.js.LICENSE.txt"
17 | },
18 | "entrypoints": [
19 | "static/js/runtime-main.bb50f6a8.js",
20 | "static/css/2.e2dd9b0a.chunk.css",
21 | "static/js/2.3ea7d454.chunk.js",
22 | "static/css/main.0e2988d0.chunk.css",
23 | "static/js/main.29ed5f81.chunk.js"
24 | ]
25 | }
--------------------------------------------------------------------------------
/public/service-worker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Welcome to your Workbox-powered service worker!
3 | *
4 | * You'll need to register this file in your web app and you should
5 | * disable HTTP caching for this file too.
6 | * See https://goo.gl/nhQhGp
7 | *
8 | * The rest of the code is auto-generated. Please don't update this file
9 | * directly; instead, make changes to your Workbox build configuration
10 | * and re-run your build process.
11 | * See https://goo.gl/2aRDsh
12 | */
13 |
14 | importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
15 |
16 | importScripts(
17 | "./precache-manifest.c983d65f44d85da6d9268a44c3e7a788.js"
18 | );
19 |
20 | self.addEventListener('message', (event) => {
21 | if (event.data && event.data.type === 'SKIP_WAITING') {
22 | self.skipWaiting();
23 | }
24 | });
25 |
26 | workbox.core.clientsClaim();
27 |
28 | /**
29 | * The workboxSW.precacheAndRoute() method efficiently caches and responds to
30 | * requests for URLs in the manifest.
31 | * See https://goo.gl/S9QRab
32 | */
33 | self.__precacheManifest = [].concat(self.__precacheManifest || []);
34 | workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
35 |
36 | workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("./index.html"), {
37 |
38 | blacklist: [/^\/_/,/\/[^\/?]+\.[^\/]+$/],
39 | });
40 |
--------------------------------------------------------------------------------
/public/static/js/runtime-main.bb50f6a8.js:
--------------------------------------------------------------------------------
1 | !function(e){function r(r){for(var n,l,i=r[0],a=r[1],f=r[2],c=0,s=[];c {
23 | return res.sendFile(path.join(__dirname, './public/index.html'))
24 | })
25 |
26 | // When receiving deep linking request redirects to deep screen
27 | lti.onDeepLinking(async (token, req, res) => {
28 | return lti.redirect(res, '/deeplink', { newResource: true })
29 | })
30 |
31 | // Setting up routes
32 | lti.app.use(routes)
33 |
34 | // Setup function
35 | const setup = async () => {
36 | await lti.deploy({ port: process.env.PORT })
37 |
38 | /**
39 | * Register platform
40 | */
41 | /* await lti.registerPlatform({
42 | url: 'http://localhost/moodle',
43 | name: 'Platform',
44 | clientId: 'CLIENTID',
45 | authenticationEndpoint: 'http://localhost/moodle/mod/lti/auth.php',
46 | accesstokenEndpoint: 'http://localhost/moodle/mod/lti/token.php',
47 | authConfig: { method: 'JWK_SET', key: 'http://localhost/moodle/mod/lti/certs.php' }
48 | }) */
49 | }
50 |
51 | setup()
52 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 | React App
--------------------------------------------------------------------------------
/public/static/js/2.3ea7d454.chunk.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*
2 | object-assign
3 | (c) Sindre Sorhus
4 | @license MIT
5 | */
6 |
7 | /*!
8 | * Sizzle CSS Selector Engine v2.3.5
9 | * https://sizzlejs.com/
10 | *
11 | * Copyright JS Foundation and other contributors
12 | * Released under the MIT license
13 | * https://js.foundation/
14 | *
15 | * Date: 2020-03-14
16 | */
17 |
18 | /*!
19 | Copyright (c) 2017 Jed Watson.
20 | Licensed under the MIT License (MIT), see
21 | http://jedwatson.github.io/classnames
22 | */
23 |
24 | /*!
25 | * jQuery JavaScript Library v3.5.1
26 | * https://jquery.com/
27 | *
28 | * Includes Sizzle.js
29 | * https://sizzlejs.com/
30 | *
31 | * Copyright JS Foundation and other contributors
32 | * Released under the MIT license
33 | * https://jquery.org/license
34 | *
35 | * Date: 2020-05-04T22:49Z
36 | */
37 |
38 | /**
39 | * A better abstraction over CSS.
40 | *
41 | * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present
42 | * @website https://github.com/cssinjs/jss
43 | * @license MIT
44 | */
45 |
46 | /** @license React v0.19.1
47 | * scheduler.production.min.js
48 | *
49 | * Copyright (c) Facebook, Inc. and its affiliates.
50 | *
51 | * This source code is licensed under the MIT license found in the
52 | * LICENSE file in the root directory of this source tree.
53 | */
54 |
55 | /** @license React v16.12.0
56 | * react-is.production.min.js
57 | *
58 | * Copyright (c) Facebook, Inc. and its affiliates.
59 | *
60 | * This source code is licensed under the MIT license found in the
61 | * LICENSE file in the root directory of this source tree.
62 | */
63 |
64 | /** @license React v16.13.1
65 | * react-dom.production.min.js
66 | *
67 | * Copyright (c) Facebook, Inc. and its affiliates.
68 | *
69 | * This source code is licensed under the MIT license found in the
70 | * LICENSE file in the root directory of this source tree.
71 | */
72 |
73 | /** @license React v16.13.1
74 | * react.production.min.js
75 | *
76 | * Copyright (c) Facebook, Inc. and its affiliates.
77 | *
78 | * This source code is licensed under the MIT license found in the
79 | * LICENSE file in the root directory of this source tree.
80 | */
81 |
82 | /**!
83 | * @fileOverview Kickass library to create and place poppers near their reference elements.
84 | * @version 1.16.1
85 | * @license
86 | * Copyright (c) 2016 Federico Zivolo and contributors
87 | *
88 | * Permission is hereby granted, free of charge, to any person obtaining a copy
89 | * of this software and associated documentation files (the "Software"), to deal
90 | * in the Software without restriction, including without limitation the rights
91 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
92 | * copies of the Software, and to permit persons to whom the Software is
93 | * furnished to do so, subject to the following conditions:
94 | *
95 | * The above copyright notice and this permission notice shall be included in all
96 | * copies or substantial portions of the Software.
97 | *
98 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
99 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
100 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
101 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
102 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
103 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
104 | * SOFTWARE.
105 | */
106 |
--------------------------------------------------------------------------------
/src/routes.js:
--------------------------------------------------------------------------------
1 | const router = require('express').Router()
2 | const path = require('path')
3 |
4 | // Requiring Ltijs
5 | const lti = require('ltijs').Provider
6 |
7 | // Grading route
8 | router.post('/grade', async (req, res) => {
9 | try {
10 | const idtoken = res.locals.token // IdToken
11 | const score = req.body.grade // User numeric score sent in the body
12 | // Creating Grade object
13 | const gradeObj = {
14 | userId: idtoken.user,
15 | scoreGiven: score,
16 | scoreMaximum: 100,
17 | activityProgress: 'Completed',
18 | gradingProgress: 'FullyGraded'
19 | }
20 |
21 | // Selecting linetItem ID
22 | let lineItemId = idtoken.platformContext.endpoint.lineitem // Attempting to retrieve it from idtoken
23 | if (!lineItemId) {
24 | const response = await lti.Grade.getLineItems(idtoken, { resourceLinkId: true })
25 | const lineItems = response.lineItems
26 | if (lineItems.length === 0) {
27 | // Creating line item if there is none
28 | console.log('Creating new line item')
29 | const newLineItem = {
30 | scoreMaximum: 100,
31 | label: 'Grade',
32 | tag: 'grade',
33 | resourceLinkId: idtoken.platformContext.resource.id
34 | }
35 | const lineItem = await lti.Grade.createLineItem(idtoken, newLineItem)
36 | lineItemId = lineItem.id
37 | } else lineItemId = lineItems[0].id
38 | }
39 |
40 | // Sending Grade
41 | const responseGrade = await lti.Grade.submitScore(idtoken, lineItemId, gradeObj)
42 | return res.send(responseGrade)
43 | } catch (err) {
44 | console.log(err.message)
45 | return res.status(500).send({ err: err.message })
46 | }
47 | })
48 |
49 | // Names and Roles route
50 | router.get('/members', async (req, res) => {
51 | try {
52 | const result = await lti.NamesAndRoles.getMembers(res.locals.token)
53 | if (result) return res.send(result.members)
54 | return res.sendStatus(500)
55 | } catch (err) {
56 | console.log(err.message)
57 | return res.status(500).send(err.message)
58 | }
59 | })
60 |
61 | // Deep linking route
62 | router.post('/deeplink', async (req, res) => {
63 | try {
64 | const resource = req.body
65 |
66 | const items = {
67 | type: 'ltiResourceLink',
68 | title: 'Ltijs Demo',
69 | custom: {
70 | name: resource.name,
71 | value: resource.value
72 | }
73 | }
74 |
75 | const form = await lti.DeepLinking.createDeepLinkingForm(res.locals.token, items, { message: 'Successfully Registered' })
76 | if (form) return res.send(form)
77 | return res.sendStatus(500)
78 | } catch (err) {
79 | console.log(err.message)
80 | return res.status(500).send(err.message)
81 | }
82 | })
83 |
84 | // Return available deep linking resources
85 | router.get('/resources', async (req, res) => {
86 | const resources = [
87 | {
88 | name: 'Resource1',
89 | value: 'value1'
90 | },
91 | {
92 | name: 'Resource2',
93 | value: 'value2'
94 | },
95 | {
96 | name: 'Resource3',
97 | value: 'value3'
98 | }
99 | ]
100 | return res.send(resources)
101 | })
102 |
103 | // Get user and context information
104 | router.get('/info', async (req, res) => {
105 | const token = res.locals.token
106 | const context = res.locals.context
107 |
108 | const info = { }
109 | if (token.userInfo) {
110 | if (token.userInfo.name) info.name = token.userInfo.name
111 | if (token.userInfo.email) info.email = token.userInfo.email
112 | }
113 |
114 | if (context.roles) info.roles = context.roles
115 | if (context.context) info.context = context.context
116 |
117 | return res.send(info)
118 | })
119 |
120 | // Wildcard route to deal with redirecting to React routes
121 | router.get('*', (req, res) => res.sendFile(path.join(__dirname, '../public/index.html')))
122 |
123 | module.exports = router
124 |
--------------------------------------------------------------------------------
/public/static/js/runtime-main.bb50f6a8.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.bb50f6a8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \tvar jsonpArray = this[\"webpackJsonpltijs-demo-grade\"] = this[\"webpackJsonpltijs-demo-grade\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
--------------------------------------------------------------------------------
/public/static/js/main.29ed5f81.chunk.js:
--------------------------------------------------------------------------------
1 | (this["webpackJsonpltijs-demo-grade"]=this["webpackJsonpltijs-demo-grade"]||[]).push([[0],{278:function(e,a,t){e.exports=t(313)},283:function(e,a,t){},313:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),c=t(12),o=t.n(c),l=(t(283),t(11)),i=t.n(l),s=t(19),m=t(35),u=t(57),p=t(339),g=t(340),d=t(83),b=t.n(d),f=t(175),h=t(338),v=t(342),E=t(263),w=t.n(E),x=t(264),k=t.n(x),y=t(72),j=t(247),C=t(243),O=t(244),N=t(246),S=t(341),T=t(245),F=t(140),B=(t(294),t(56)),_=t(48),I=Object(f.a)((function(e){return{"@global":{body:{backgroundColor:e.palette.common.white}},paper:{marginTop:e.spacing(0),display:"flex",flexDirection:"column",alignItems:"center",alignContent:"center"},submit:{margin:e.spacing(3,0,2)},logodiv:{marginBottom:e.spacing(8),backgroundColor:"transparent "},logo:{cursor:"pointer",width:"300px",maxWidth:"100%"},logo1:{cursor:"pointer",margin:"auto","@media (max-height: 700px)":{maxWidth:"80%"}},slider:{backgroundColor:"#013b6c"},sliderstyle:{marginTop:e.spacing(3)},margin:{marginTop:e.spacing(4),marginRight:e.spacing(2),marginLeft:e.spacing(2),backgroundColor:"#013b6c"},table1:{marginBottom:e.spacing(4)},table2:{marginTop:e.spacing(4)}}}));function R(){var e=I(),a=Object(_.b)().enqueueSnackbar,t=Object(n.useState)(),c=Object(m.a)(t,2),o=c[0],l=c[1],d=function(){var e=Object(s.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a(t,{variant:"error"});case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}(),f=function(){var e=new URLSearchParams(window.location.search).get("ltik");if(!e)throw new Error("Missing lti key.");return e},E=function(){var e=Object(s.a)(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:window.open("https://cvmcosta.me/ltijs","_blank").focus();case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return Object(n.useEffect)((function(){(function(){var e=Object(s.a)(i.a.mark((function e(){var a;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,B.a.get("/info",{credentials:"include",headers:{Authorization:"Bearer "+f()}}).json();case 3:a=e.sent,l(a),e.next=11;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0),d("Failed trying to retrieve custom parameters! "+e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}})()()}),[]),r.a.createElement(h.a,{component:"main",maxWidth:"sm"},r.a.createElement(p.a,null),r.a.createElement("div",{className:e.paper},r.a.createElement(g.a,{container:!0,className:e.logo},r.a.createElement(g.a,{item:!0,xs:!0,className:e.logo1+" blank"},r.a.createElement(b.a,{className:e.logo,src:"https://raw.githubusercontent.com/Cvmcosta/ltijs/master/docs/logo-300.svg",onClick:E,disableSpinner:!0}))),o?[r.a.createElement(r.a.Fragment,null,o.email||o.name?r.a.createElement(r.a.Fragment,null,r.a.createElement(y.a,{variant:"body1"},"User Info"),r.a.createElement(S.a,{className:e.table1+" animate__animated animate__fadeIn",component:F.a},r.a.createElement(C.a,{"aria-label":"simple table"},r.a.createElement(O.a,null,o.name?r.a.createElement(T.a,{key:"name"},r.a.createElement(N.a,{component:"th",scope:"row"},"Name"),r.a.createElement(N.a,{align:"right"},o.name)):r.a.createElement(r.a.Fragment,null),o.email?r.a.createElement(T.a,{key:"email"},r.a.createElement(N.a,{component:"th",scope:"row"},"Email"),r.a.createElement(N.a,{align:"right"},o.email)):r.a.createElement(r.a.Fragment,null))))):r.a.createElement(r.a.Fragment,null)),r.a.createElement(r.a.Fragment,null,o.roles?r.a.createElement(r.a.Fragment,null,r.a.createElement(y.a,{variant:"body1"},"Roles"),r.a.createElement(S.a,{className:e.table1+" animate__animated animate__fadeIn",component:F.a},r.a.createElement(C.a,{"aria-label":"simple table"},r.a.createElement(O.a,null,o.roles.map((function(e){return r.a.createElement(T.a,{key:"name"},r.a.createElement(N.a,{component:"th",scope:"row"},e))})))))):r.a.createElement(r.a.Fragment,null)),r.a.createElement(r.a.Fragment,null,o.context?r.a.createElement(r.a.Fragment,null,r.a.createElement(y.a,{variant:"body1"},"Context"),r.a.createElement(S.a,{className:e.table1+" animate__animated animate__fadeIn",component:F.a},r.a.createElement(C.a,{"aria-label":"simple table"},r.a.createElement(O.a,null,Object.entries(o.context).map((function(e,a){return r.a.createElement(T.a,{key:"context"+a},r.a.createElement(N.a,{component:"th",scope:"row"},e[0]),r.a.createElement(N.a,{align:"right"},e[1]))})))))):r.a.createElement(r.a.Fragment,null))]:r.a.createElement(r.a.Fragment,null),r.a.createElement(y.a,{variant:"body1"},"Services"),r.a.createElement(g.a,{item:!0,xs:!0},r.a.createElement(j.a,{title:"Grades Service","aria-label":"grades"},r.a.createElement(u.b,{to:{pathname:"/grades",search:document.location.search}},r.a.createElement(v.a,{color:"primary","aria-label":"add",className:e.margin},r.a.createElement(w.a,null)))),r.a.createElement(j.a,{title:"Names and Roles Service","aria-label":"namesandroles"},r.a.createElement(u.b,{to:{pathname:"/namesandroles",search:document.location.search}},r.a.createElement(v.a,{color:"primary","aria-label":"add",className:e.margin},r.a.createElement(k.a,null)))))))}var P=t(343),W=t(144),D=t(145),z=t.n(D),A=t(146),L=t.n(A),M=Object(f.a)((function(e){return{"@global":{body:{backgroundColor:e.palette.common.white}},paper:{marginTop:e.spacing(0),display:"flex",flexDirection:"column",alignItems:"center",alignContent:"center"},submit:{margin:e.spacing(3,0,2)},logodiv:{marginBottom:e.spacing(8),backgroundColor:"transparent "},logo:{cursor:"pointer"},logo1:{cursor:"pointer",margin:"auto","@media (max-height: 700px)":{maxWidth:"80%"}},slider:{backgroundColor:"#013b6c"},sliderstyle:{marginTop:e.spacing(3)},margin:{marginTop:e.spacing(4),backgroundColor:"#013b6c"},table:{marginTop:e.spacing(4)},home:{backgroundColor:"#013b6c",position:"fixed",bottom:"1vh",left:"1vh"}}}));function U(){var e=M(),a=Object(_.b)().enqueueSnackbar,t=Object(n.useState)(70),c=Object(m.a)(t,2),o=c[0],l=c[1],d=function(){var e=new URLSearchParams(window.location.search).get("ltik");if(!e)throw new Error("Missing lti key.");return e},f=function(){var e=Object(s.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a("Grade "+t+" succesfully sent!",{variant:"success"});case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}(),E=function(){var e=Object(s.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a(t,{variant:"error"});case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}(),w=function(){var e=Object(s.a)(i.a.mark((function e(a){var t,n;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o,e.prev=1,a.preventDefault(),n={grade:t},e.next=6,B.a.post("/grade",{credentials:"include",json:n,headers:{Authorization:"Bearer "+d()}});case 6:f(t),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),console.log(e.t0),E("Failed sending grade to platform! "+e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(a){return e.apply(this,arguments)}}(),x=function(){var e=Object(s.a)(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:window.open("https://cvmcosta.me/ltijs","_blank").focus();case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return r.a.createElement(h.a,{component:"main",maxWidth:"xs"},r.a.createElement(p.a,null),r.a.createElement("div",{className:e.paper},r.a.createElement(g.a,{container:!0,className:e.logo},r.a.createElement(g.a,{item:!0,xs:!0,className:e.logo1+" blank"},r.a.createElement(b.a,{className:e.logo,src:"https://raw.githubusercontent.com/Cvmcosta/ltijs/master/docs/logo-300.svg",onClick:x,disableSpinner:!0}))),r.a.createElement(y.a,{variant:"h5",gutterBottom:!0},"Select your grade:"),r.a.createElement(g.a,{container:!0,spacing:2,alignItems:"center"},r.a.createElement(g.a,{item:!0,xs:!0},r.a.createElement(P.a,{value:"number"===typeof o?o:0,onChange:function(e,a){l(a)},"aria-labelledby":"input-slider",color:"primary",classes:{thumbColorPrimary:e.slider,rail:e.slider,track:e.slider},className:e.sliderstyle})),r.a.createElement(g.a,{item:!0},r.a.createElement(W.a,{className:e.input,value:o,margin:"none",onChange:function(e){l(""===e.target.value?"":Number(e.target.value))},onBlur:function(){o<0?l(0):o>100&&l(100)},inputProps:{step:10,min:0,max:100,type:"number","aria-labelledby":"input-slider"}}))),r.a.createElement(v.a,{variant:"extended",color:"primary","aria-label":"add",className:e.margin,onClick:w},r.a.createElement(z.a,{className:e.extendedIcon}),"Submit")),r.a.createElement(u.b,{to:{pathname:"/",search:document.location.search}},r.a.createElement(v.a,{color:"primary","aria-label":"home",className:e.home},r.a.createElement(L.a,null))))}var q=t(147),G=t.n(q),H=Object(f.a)((function(e){return{"@global":{body:{backgroundColor:e.palette.common.white}},paper:{overflow:"hidden",width:"100%",display:"flex",justifyContent:"center"},fab:{marginTop:e.spacing(4)},btnDiv:{display:"flex",justifyContent:"center"},logodiv:{marginBottom:e.spacing(8),backgroundColor:"transparent "},logo:{cursor:"pointer"},margin:{marginTop:e.spacing(4),backgroundColor:"#013b6c"},table:{marginTop:"10%"},home:{backgroundColor:"#013b6c",position:"fixed",bottom:"1vh",left:"1vh"}}}));function J(){var e=H(),a=Object(_.b)().enqueueSnackbar,t=Object(n.useState)(),c=Object(m.a)(t,2),o=c[0],l=c[1],d=function(){var e=new URLSearchParams(window.location.search).get("ltik");if(!e)throw new Error("Missing lti key.");return e},b=function(){var e=Object(s.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a(t,{variant:"error"});case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}();Object(n.useEffect)((function(){(function(){var e=Object(s.a)(i.a.mark((function e(){var a;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,B.a.get("/members",{credentials:"include",headers:{Authorization:"Bearer "+d()}}).json();case 3:a=e.sent,console.log(a),l(a),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(0),console.log(e.t0),b("Failed retrieving members! "+e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}})()()}),[]);return r.a.createElement(h.a,{component:"main",maxWidth:"lg"},r.a.createElement(p.a,null),r.a.createElement("div",{className:e.paper},r.a.createElement(g.a,{container:!0},r.a.createElement(g.a,{item:!0,xs:12,className:e.table},r.a.createElement(G.a,{title:"Members:",data:o,columns:[{name:"name",label:"Name"},{name:"roles",label:"Role"}],options:{filterType:"checkbox",selectableRows:"none",disableToolbarSelect:!0,download:!1,print:!1,searchOpen:!1,viewColumns:!1,filter:!1,selectableRowsOnClick:!1,rowsPerPage:5,responsive:"scrollFullHeight"}})))),r.a.createElement(u.b,{to:{pathname:"/",search:document.location.search}},r.a.createElement(v.a,{color:"primary","aria-label":"home",className:e.home},r.a.createElement(L.a,null))))}var V=t(267),$=t.n(V),K=Object(f.a)((function(e){return{"@global":{body:{backgroundColor:e.palette.common.white}},paper:{overflow:"hidden",width:"100%",display:"flex",justifyContent:"center"},fab:{marginTop:e.spacing(4)},btnDiv:{display:"flex",justifyContent:"center"},logodiv:{marginBottom:e.spacing(8),backgroundColor:"transparent "},logo:{cursor:"pointer"},margin:{marginTop:e.spacing(4),backgroundColor:"#013b6c"},table:{marginTop:"10%"}}}));function Q(){var e=K(),a=Object(_.b)().enqueueSnackbar,t=Object(n.useState)(!1),c=Object(m.a)(t,2),o=c[0],l=c[1],u=Object(n.useState)([]),d=Object(m.a)(u,2),b=d[0],f=d[1],E=Object(n.useState)([]),w=Object(m.a)(E,2),x=w[0],k=w[1],y=function(){var e=new URLSearchParams(window.location.search).get("ltik");if(!e)throw new Error("Missing lti key.");return e},j=function(){var e=Object(s.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a(t,{variant:"error"});case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}();Object(n.useEffect)((function(){(function(){var e=Object(s.a)(i.a.mark((function e(){var a;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,B.a.get("/resources",{credentials:"include",headers:{Authorization:"Bearer "+y()}}).json();case 3:a=e.sent,f(a),e.next=11;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0),j("Failed retrieving example resources! "+e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}})()()}),[]);var C=function(){var e=Object(s.a)(i.a.mark((function e(){var a;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!1!==o){e.next=4;break}return j("Please select a resource."),e.abrupt("return");case 4:return e.next=6,B.a.post("/deeplink",{credentials:"include",json:b[o],headers:{Authorization:"Bearer "+y()}}).text();case 6:a=e.sent,$()("body").append(a),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(0),console.log(e.t0),j("Failed creating deep link! "+e.t0);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(){return e.apply(this,arguments)}}(),O={filterType:"checkbox",selectableRows:"single",disableToolbarSelect:!0,download:!1,print:!1,searchOpen:!1,search:!1,viewColumns:!1,filter:!1,selectableRowsOnClick:!0,onRowsSelect:function(e,a){l(e[0].dataIndex),k(a.map((function(e){return e.dataIndex})))},rowsSelected:x,rowsPerPage:5,responsive:"scrollFullHeight"};return r.a.createElement(h.a,{component:"main",maxWidth:"lg"},r.a.createElement(p.a,null),r.a.createElement("div",{className:e.paper},r.a.createElement(g.a,{container:!0},r.a.createElement(g.a,{item:!0,xs:12,className:e.table},r.a.createElement(G.a,{title:"Example custom resources:",data:b,columns:[{name:"name",label:"Name"},{name:"value",label:"Value"}],options:O}),r.a.createElement(g.a,{item:!0,xs:!0,className:e.btnDiv},r.a.createElement(v.a,{variant:"extended",color:"primary","aria-label":"add",className:e.fab,onClick:C},r.a.createElement(z.a,{className:e.extendedIcon}),"Submit"))))))}var X=Object(f.a)((function(e){return{"@global":{body:{backgroundColor:e.palette.common.white}},paper:{marginTop:e.spacing(0),display:"flex",flexDirection:"column",alignItems:"center",alignContent:"center"},submit:{margin:e.spacing(3,0,2)},logodiv:{marginBottom:e.spacing(8),backgroundColor:"transparent "},logo:{cursor:"pointer"},logo1:{cursor:"pointer",margin:"auto","@media (max-height: 700px)":{maxWidth:"80%"}},slider:{backgroundColor:"#013b6c"},sliderstyle:{marginTop:e.spacing(3)},margin:{marginTop:e.spacing(4),backgroundColor:"#013b6c"},table:{marginTop:e.spacing(4)},home:{backgroundColor:"#013b6c",position:"fixed",bottom:"1vh",left:"1vh"},maindiv:{display:"flex",flexDirection:"column",justifyContent:"center"}}}));function Y(){var e=X(),a=function(){var e=Object(s.a)(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:window.open("https://cvmcosta.me/ltijs","_blank").focus();case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return r.a.createElement(h.a,{className:e.maindiv,component:"main",maxWidth:"xs"},r.a.createElement(p.a,null),r.a.createElement("div",{className:e.paper},r.a.createElement(g.a,{container:!0,className:e.logo},r.a.createElement(g.a,{item:!0,xs:!0,className:e.logo1+" blank"},r.a.createElement(b.a,{className:e.logo,src:"https://raw.githubusercontent.com/Cvmcosta/ltijs/master/docs/logo-300.svg",onClick:a,disableSpinner:!0})))))}var Z=t(21);function ee(){return r.a.createElement(u.a,null,r.a.createElement(Z.c,null,r.a.createElement(Z.a,{exact:!0,path:"/"},r.a.createElement(R,null)),r.a.createElement(Z.a,{path:"/grades"},r.a.createElement(U,null)),r.a.createElement(Z.a,{path:"/namesandroles"},r.a.createElement(J,null)),r.a.createElement(Z.a,{path:"/deeplink"},r.a.createElement(Q,null)),r.a.createElement(Z.a,{path:"/nolti"},r.a.createElement(Y,null))))}Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(r.a.createElement(_.a,{maxSnack:3,anchorOrigin:{vertical:"top",horizontal:"center"}},r.a.createElement(ee,null)),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[278,1,2]]]);
2 | //# sourceMappingURL=main.29ed5f81.chunk.js.map
--------------------------------------------------------------------------------
/public/static/js/main.29ed5f81.chunk.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["pages/home.js","pages/grades.js","pages/namesandroles.js","pages/deeplink.js","pages/landingPage.js","App.js","serviceWorker.js","index.js"],"names":["useStyles","makeStyles","theme","body","backgroundColor","palette","common","white","paper","marginTop","spacing","display","flexDirection","alignItems","alignContent","submit","margin","logodiv","marginBottom","logo","cursor","width","maxWidth","logo1","slider","sliderstyle","marginRight","marginLeft","table1","table2","App","classes","enqueueSnackbar","useSnackbar","useState","info","setInfo","errorPrompt","message","a","variant","getLtik","ltik","URLSearchParams","window","location","search","get","Error","ltijs","open","focus","useEffect","ky","credentials","headers","Authorization","json","launchInfo","console","log","getInfo","Container","component","CssBaseline","className","Grid","container","item","xs","src","onClick","disableSpinner","email","name","Typography","TableContainer","Paper","Table","aria-label","TableBody","TableRow","key","TableCell","scope","align","roles","map","role","context","Object","entries","value","i","Tooltip","title","to","pathname","document","Fab","color","table","home","position","bottom","left","setValue","successPrompt","grade","e","preventDefault","post","gutterBottom","Slider","onChange","event","newValue","aria-labelledby","thumbColorPrimary","rail","track","Input","input","target","Number","onBlur","inputProps","step","min","max","type","extendedIcon","overflow","justifyContent","fab","btnDiv","dataset","setDataset","members","fetchMembers","data","columns","label","options","filterType","selectableRows","disableToolbarSelect","download","print","searchOpen","viewColumns","filter","selectableRowsOnClick","rowsPerPage","responsive","resource","setResource","selected","setSelected","resources","fetchResources","text","form","$","append","onRowsSelect","selResource","allRows","dataIndex","row","rowsSelected","maindiv","exact","path","Boolean","hostname","match","ReactDOM","render","maxSnack","anchorOrigin","vertical","horizontal","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.29ed5f81.chunk.js","sourcesContent":["import React, { useState, useEffect } from 'react'\nimport {\n Link\n} from 'react-router-dom'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport Image from 'material-ui-image'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Container from '@material-ui/core/Container'\n\nimport Fab from '@material-ui/core/Fab'\nimport GradeIcon from '@material-ui/icons/Grade'\nimport PersonIcon from '@material-ui/icons/Person'\nimport Typography from '@material-ui/core/Typography'\nimport Tooltip from '@material-ui/core/Tooltip'\n\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableRow from '@material-ui/core/TableRow'\nimport Paper from '@material-ui/core/Paper'\nimport 'animate.css'\nimport ky from 'ky'\n\nimport { useSnackbar } from 'notistack'\n\nconst useStyles = makeStyles(theme => ({\n '@global': {\n body: {\n backgroundColor: theme.palette.common.white\n }\n },\n paper: {\n marginTop: theme.spacing(0),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n alignContent: 'center'\n },\n submit: {\n margin: theme.spacing(3, 0, 2)\n },\n logodiv: {\n marginBottom: theme.spacing(8),\n backgroundColor: 'transparent '\n },\n logo: {\n cursor: 'pointer',\n width: '300px',\n maxWidth: '100%'\n },\n logo1: {\n cursor: 'pointer',\n margin: 'auto',\n '@media (max-height: 700px)': {\n maxWidth: '80%'\n }\n },\n slider: {\n backgroundColor: '#013b6c'\n },\n sliderstyle: {\n marginTop: theme.spacing(3)\n },\n margin: {\n marginTop: theme.spacing(4),\n marginRight: theme.spacing(2),\n marginLeft: theme.spacing(2),\n backgroundColor: '#013b6c'\n },\n table1: {\n marginBottom: theme.spacing(4)\n },\n table2: {\n marginTop: theme.spacing(4)\n }\n}))\n\nexport default function App () {\n const classes = useStyles()\n const { enqueueSnackbar } = useSnackbar()\n const [info, setInfo] = useState()\n\n const errorPrompt = async (message) => {\n enqueueSnackbar(message, { variant: 'error' })\n }\n\n const getLtik = () => {\n const searchParams = new URLSearchParams(window.location.search)\n const ltik = searchParams.get('ltik')\n if (!ltik) throw new Error('Missing lti key.')\n return ltik\n }\n\n const ltijs = async () => {\n const win = window.open('https://cvmcosta.me/ltijs', '_blank')\n win.focus()\n }\n\n useEffect(() => {\n const getInfo = async () => {\n try {\n const launchInfo = await ky.get('/info', { credentials: 'include', headers: { Authorization: 'Bearer ' + getLtik() } }).json()\n setInfo(launchInfo)\n } catch (err) {\n console.log(err)\n errorPrompt('Failed trying to retrieve custom parameters! ' + err)\n }\n }\n getInfo()\n }, [])\n\n return (\n \n \n \n\n
\n \n \n \n \n {info ? [\n <>{ info.email || info.name\n ? <>\n
User Info\n
\n \n \n { info.name\n ? \n \n Name\n \n {info.name}\n \n : <>> }\n { info.email\n ? \n \n Email\n \n {info.email}\n \n : <>> }\n \n
\n > : <>>}>,\n <>\n { info.roles\n ? <>\n
Roles\n
\n \n \n { info.roles.map(role => (\n \n \n {role}\n \n \n )) }\n \n
\n \n > : <>> }\n >,\n <>\n { info.context\n ? <>\n
Context\n
\n \n \n { Object.entries(info.context).map((value, i) => (\n \n \n {value[0]}\n \n \n {value[1]}\n \n \n ))}\n \n
\n \n > : <>> }\n >\n ] : <>>}\n\n
Services\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n )\n}\n","import React, { useState } from 'react'\nimport {\n Link\n} from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport Image from 'material-ui-image'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Container from '@material-ui/core/Container'\nimport Slider from '@material-ui/core/Slider'\nimport Input from '@material-ui/core/Input'\n\nimport Fab from '@material-ui/core/Fab'\nimport NavigationIcon from '@material-ui/icons/Navigation'\nimport HomeIcon from '@material-ui/icons/Home'\nimport ky from 'ky'\n\nimport { useSnackbar } from 'notistack'\n\nconst useStyles = makeStyles(theme => ({\n '@global': {\n body: {\n backgroundColor: theme.palette.common.white\n }\n },\n paper: {\n marginTop: theme.spacing(0),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n alignContent: 'center'\n },\n submit: {\n margin: theme.spacing(3, 0, 2)\n },\n logodiv: {\n marginBottom: theme.spacing(8),\n backgroundColor: 'transparent '\n },\n logo: {\n cursor: 'pointer'\n },\n logo1: {\n cursor: 'pointer',\n margin: 'auto',\n '@media (max-height: 700px)': {\n maxWidth: '80%'\n }\n },\n slider: {\n backgroundColor: '#013b6c'\n },\n sliderstyle: {\n marginTop: theme.spacing(3)\n },\n margin: {\n marginTop: theme.spacing(4),\n backgroundColor: '#013b6c'\n },\n table: {\n marginTop: theme.spacing(4)\n },\n home: {\n backgroundColor: '#013b6c',\n position: 'fixed',\n bottom: '1vh',\n left: '1vh'\n }\n}))\n\nexport default function App () {\n const classes = useStyles()\n const { enqueueSnackbar } = useSnackbar()\n const [value, setValue] = useState(70)\n\n const handleSliderChange = (event, newValue) => {\n setValue(newValue)\n }\n\n const handleInputChange = event => {\n setValue(event.target.value === '' ? '' : Number(event.target.value))\n }\n\n const getLtik = () => {\n const searchParams = new URLSearchParams(window.location.search)\n const ltik = searchParams.get('ltik')\n if (!ltik) throw new Error('Missing lti key.')\n return ltik\n }\n\n const handleBlur = () => {\n if (value < 0) {\n setValue(0)\n } else if (value > 100) {\n setValue(100)\n }\n }\n\n const successPrompt = async (grade) => {\n enqueueSnackbar('Grade ' + grade + ' succesfully sent!', { variant: 'success' })\n }\n\n const errorPrompt = async (message) => {\n enqueueSnackbar(message, { variant: 'error' })\n }\n\n const submit = async e => {\n const grade = value\n try {\n e.preventDefault()\n const body = {\n grade: grade\n }\n\n await ky.post('/grade', { credentials: 'include', json: body, headers: { Authorization: 'Bearer ' + getLtik() } })\n successPrompt(grade)\n } catch (err) {\n console.log(err)\n errorPrompt('Failed sending grade to platform! ' + err)\n }\n }\n\n const ltijs = async () => {\n const win = window.open('https://cvmcosta.me/ltijs', '_blank')\n win.focus()\n }\n\n return (\n \n \n \n\n \n \n \n \n \n \n Select your grade:\n \n \n \n \n \n \n \n \n \n \n \n Submit\n \n
\n {/* \n \n */}\n \n \n \n \n \n \n )\n}\n","import React, { useState, useEffect } from 'react'\nimport {\n Link\n} from 'react-router-dom'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Container from '@material-ui/core/Container'\n\nimport MUIDataTable from 'mui-datatables'\nimport HomeIcon from '@material-ui/icons/Home'\nimport Fab from '@material-ui/core/Fab'\nimport ky from 'ky'\n\nimport { useSnackbar } from 'notistack'\n\nconst useStyles = makeStyles(theme => ({\n '@global': {\n body: {\n backgroundColor: theme.palette.common.white\n }\n },\n paper: {\n overflow: 'hidden',\n width: '100%',\n display: 'flex',\n justifyContent: 'center'\n },\n fab: {\n marginTop: theme.spacing(4)\n },\n btnDiv: {\n display: 'flex',\n justifyContent: 'center'\n },\n logodiv: {\n marginBottom: theme.spacing(8),\n backgroundColor: 'transparent '\n },\n logo: {\n cursor: 'pointer'\n },\n margin: {\n marginTop: theme.spacing(4),\n backgroundColor: '#013b6c'\n },\n table: {\n marginTop: '10%'\n },\n home: {\n backgroundColor: '#013b6c',\n position: 'fixed',\n bottom: '1vh',\n left: '1vh'\n }\n}))\n\nexport default function App () {\n const classes = useStyles()\n const { enqueueSnackbar } = useSnackbar()\n const [dataset, setDataset] = useState()\n\n const getLtik = () => {\n const searchParams = new URLSearchParams(window.location.search)\n const ltik = searchParams.get('ltik')\n if (!ltik) throw new Error('Missing lti key.')\n return ltik\n }\n\n const errorPrompt = async (message) => {\n enqueueSnackbar(message, { variant: 'error' })\n }\n\n // Retrieves resource dataset\n useEffect(() => {\n const fetchMembers = async () => {\n try {\n const members = await ky.get('/members', { credentials: 'include', headers: { Authorization: 'Bearer ' + getLtik() } }).json()\n console.log(members)\n setDataset(members)\n } catch (err) {\n console.log(err)\n errorPrompt('Failed retrieving members! ' + err)\n }\n }\n fetchMembers()\n }, [])\n\n // Configuring data table\n const columns = [\n {\n name: 'name',\n label: 'Name'\n },\n {\n name: 'roles',\n label: 'Role'\n }\n ]\n\n const options = {\n filterType: 'checkbox',\n selectableRows: 'none',\n disableToolbarSelect: true,\n download: false,\n print: false,\n searchOpen: false,\n viewColumns: false,\n filter: false,\n selectableRowsOnClick: false,\n rowsPerPage: 5,\n responsive: 'scrollFullHeight'\n }\n\n return (\n \n \n \n \n \n \n \n \n
\n {/* \n \n */}\n \n \n \n \n \n \n )\n}\n","import React, { useState, useEffect } from 'react'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Container from '@material-ui/core/Container'\n\nimport MUIDataTable from 'mui-datatables'\nimport Fab from '@material-ui/core/Fab'\nimport ky from 'ky'\nimport NavigationIcon from '@material-ui/icons/Navigation'\nimport $ from 'jquery'\n\nimport { useSnackbar } from 'notistack'\n\nconst useStyles = makeStyles(theme => ({\n '@global': {\n body: {\n backgroundColor: theme.palette.common.white\n }\n },\n paper: {\n overflow: 'hidden',\n width: '100%',\n display: 'flex',\n justifyContent: 'center'\n },\n fab: {\n marginTop: theme.spacing(4)\n },\n btnDiv: {\n display: 'flex',\n justifyContent: 'center'\n },\n logodiv: {\n marginBottom: theme.spacing(8),\n backgroundColor: 'transparent '\n },\n logo: {\n cursor: 'pointer'\n },\n margin: {\n marginTop: theme.spacing(4),\n backgroundColor: '#013b6c'\n },\n table: {\n marginTop: '10%'\n }\n}))\n\nexport default function App () {\n const classes = useStyles()\n const { enqueueSnackbar } = useSnackbar()\n const [resource, setResource] = useState(false)\n const [dataset, setDataset] = useState([])\n const [selected, setSelected] = useState([])\n\n const getLtik = () => {\n const searchParams = new URLSearchParams(window.location.search)\n const ltik = searchParams.get('ltik')\n if (!ltik) throw new Error('Missing lti key.')\n return ltik\n }\n\n const errorPrompt = async (message) => {\n enqueueSnackbar(message, { variant: 'error' })\n }\n\n // Retrieves resource dataset\n useEffect(() => {\n const fetchResources = async () => {\n try {\n const resources = await ky.get('/resources', { credentials: 'include', headers: { Authorization: 'Bearer ' + getLtik() } }).json()\n setDataset(resources)\n } catch (err) {\n console.log(err)\n errorPrompt('Failed retrieving example resources! ' + err)\n }\n }\n fetchResources()\n }, [])\n\n // Submits resource to deep linking endpoint\n const submit = async () => {\n try {\n if (resource === false) {\n errorPrompt('Please select a resource.')\n return\n }\n const form = await ky.post('/deeplink', { credentials: 'include', json: dataset[resource], headers: { Authorization: 'Bearer ' + getLtik() } }).text()\n $('body').append(form)\n } catch (err) {\n console.log(err)\n errorPrompt('Failed creating deep link! ' + err)\n }\n }\n\n // Configuring data table\n const columns = [\n {\n name: 'name',\n label: 'Name'\n },\n {\n name: 'value',\n label: 'Value'\n }\n ]\n\n const options = {\n filterType: 'checkbox',\n selectableRows: 'single',\n disableToolbarSelect: true,\n download: false,\n print: false,\n searchOpen: false,\n search: false,\n viewColumns: false,\n filter: false,\n selectableRowsOnClick: true,\n onRowsSelect: (selResource, allRows) => { setResource(selResource[0].dataIndex); setSelected(allRows.map(row => row.dataIndex)) },\n rowsSelected: selected,\n rowsPerPage: 5,\n responsive: 'scrollFullHeight'\n }\n\n return (\n \n \n \n \n \n \n \n \n \n Submit\n \n \n \n \n
\n {/* \n \n */}\n \n )\n}\n","import React from 'react'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport Image from 'material-ui-image'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Container from '@material-ui/core/Container'\n\nconst useStyles = makeStyles(theme => ({\n '@global': {\n body: {\n backgroundColor: theme.palette.common.white\n }\n },\n paper: {\n marginTop: theme.spacing(0),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n alignContent: 'center'\n },\n submit: {\n margin: theme.spacing(3, 0, 2)\n },\n logodiv: {\n marginBottom: theme.spacing(8),\n backgroundColor: 'transparent '\n },\n logo: {\n cursor: 'pointer'\n },\n logo1: {\n cursor: 'pointer',\n margin: 'auto',\n '@media (max-height: 700px)': {\n maxWidth: '80%'\n }\n },\n slider: {\n backgroundColor: '#013b6c'\n },\n sliderstyle: {\n marginTop: theme.spacing(3)\n },\n margin: {\n marginTop: theme.spacing(4),\n backgroundColor: '#013b6c'\n },\n table: {\n marginTop: theme.spacing(4)\n },\n home: {\n backgroundColor: '#013b6c',\n position: 'fixed',\n bottom: '1vh',\n left: '1vh'\n },\n maindiv: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n }\n}))\n\nexport default function App () {\n const classes = useStyles()\n\n const ltijs = async () => {\n const win = window.open('https://cvmcosta.me/ltijs', '_blank')\n win.focus()\n }\n\n return (\n \n \n \n\n \n \n \n \n \n
\n {/* \n \n */}\n \n )\n}\n","import React from 'react'\nimport Home from './pages/home'\nimport Grades from './pages/grades'\nimport NamesAndRoles from './pages/namesandroles'\nimport DeepLink from './pages/deeplink'\nimport LandingPage from './pages/landingPage'\n\nimport {\n BrowserRouter as Router,\n Switch,\n Route\n} from 'react-router-dom'\n\nexport default function App () {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register (config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW (swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker (swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\nimport { SnackbarProvider } from 'notistack'\n\nReactDOM.render(\n, document.getElementById('root'))\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}
--------------------------------------------------------------------------------
/public/static/css/2.e2dd9b0a.chunk.css:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * animate.css - https://animate.style/
4 | * Version - 4.1.0
5 | * Licensed under the MIT license - http://opensource.org/licenses/MIT
6 | *
7 | * Copyright (c) 2020 Animate.css
8 | */:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:1s;animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:1;animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:2;animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:3;animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:1s;animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:2s;animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:3s;animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:4s;animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:5s;animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:.5s;animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*0.8);animation-duration:.8s;animation-duration:calc(var(--animate-duration)*0.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:2s;animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:3s;animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:1.3s;animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:.75s;animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:.75s;animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:.75s;animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:.75s;animation-duration:calc(var(--animate-duration)*0.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:2s;animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
9 | /*# sourceMappingURL=2.e2dd9b0a.chunk.css.map */
--------------------------------------------------------------------------------