From bd77c0ba5f69f160d94b7a4f17154515ccb584a3 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Tue, 4 Apr 2017 22:34:18 +0430 Subject: [PATCH] web version --- .gitignore | 44 ++ game.py | 37 +- record.py | 22 + web/floppybird | 1 + web/package.json | 17 + web/server.js | 28 + web/static/LICENSE | 176 +++++++ web/static/README.md | 51 ++ web/static/assets/bird.png | Bin 0 -> 282 bytes web/static/assets/ceiling.png | Bin 0 -> 110 bytes web/static/assets/font_big.psd | Bin 0 -> 35884 bytes web/static/assets/font_big_0.png | Bin 0 -> 121 bytes web/static/assets/font_big_1.png | Bin 0 -> 130 bytes web/static/assets/font_big_2.png | Bin 0 -> 126 bytes web/static/assets/font_big_3.png | Bin 0 -> 125 bytes web/static/assets/font_big_4.png | Bin 0 -> 133 bytes web/static/assets/font_big_5.png | Bin 0 -> 126 bytes web/static/assets/font_big_6.png | Bin 0 -> 126 bytes web/static/assets/font_big_7.png | Bin 0 -> 131 bytes web/static/assets/font_big_8.png | Bin 0 -> 125 bytes web/static/assets/font_big_9.png | Bin 0 -> 125 bytes web/static/assets/font_small.psd | Bin 0 -> 27956 bytes web/static/assets/font_small_0.png | Bin 0 -> 99 bytes web/static/assets/font_small_1.png | Bin 0 -> 110 bytes web/static/assets/font_small_2.png | Bin 0 -> 96 bytes web/static/assets/font_small_3.png | Bin 0 -> 90 bytes web/static/assets/font_small_4.png | Bin 0 -> 112 bytes web/static/assets/font_small_5.png | Bin 0 -> 94 bytes web/static/assets/font_small_6.png | Bin 0 -> 92 bytes web/static/assets/font_small_7.png | Bin 0 -> 94 bytes web/static/assets/font_small_8.png | Bin 0 -> 101 bytes web/static/assets/font_small_9.png | Bin 0 -> 100 bytes web/static/assets/land.png | Bin 0 -> 278 bytes web/static/assets/medal_bronze.png | Bin 0 -> 354 bytes web/static/assets/medal_gold.png | Bin 0 -> 284 bytes web/static/assets/medal_platinum.png | Bin 0 -> 337 bytes web/static/assets/medal_silver.png | Bin 0 -> 340 bytes web/static/assets/pipe-down.png | Bin 0 -> 456 bytes web/static/assets/pipe-up.png | Bin 0 -> 421 bytes web/static/assets/pipe.png | Bin 0 -> 161 bytes web/static/assets/replay.png | Bin 0 -> 596 bytes web/static/assets/scoreboard.png | Bin 0 -> 2895 bytes web/static/assets/sky.png | Bin 0 -> 4483 bytes web/static/assets/sounds/sfx_die.ogg | Bin 0 -> 18942 bytes web/static/assets/sounds/sfx_hit.ogg | Bin 0 -> 15670 bytes web/static/assets/sounds/sfx_point.ogg | Bin 0 -> 13235 bytes web/static/assets/sounds/sfx_swooshing.ogg | Bin 0 -> 13697 bytes web/static/assets/sounds/sfx_wing.ogg | Bin 0 -> 7728 bytes web/static/assets/splash.png | Bin 0 -> 1689 bytes web/static/assets/thumb.png | Bin 0 -> 12814 bytes web/static/aylien.png | Bin 0 -> 4004 bytes web/static/css/main.css | 399 ++++++++++++++ web/static/css/reset.css | 2 + web/static/font-awesome.min.css | 4 + web/static/game.js | 46 ++ web/static/index.html | 81 +++ web/static/js/buzz.min.js | 11 + web/static/js/jquery.min.js | 6 + web/static/js/jquery.transit.min.js | 9 + web/static/js/main.js | 578 +++++++++++++++++++++ web/static/main.htm | 25 + web/static/main_files/aylien.png | Bin 0 -> 4004 bytes web/static/main_files/befea5cf35.css | 21 + web/static/main_files/befea5cf35.js | 15 + web/static/main_files/socket.js | 3 + web/static/main_files/style.css | 36 ++ web/static/style.css | 61 +++ 67 files changed, 1671 insertions(+), 2 deletions(-) create mode 100644 record.py create mode 160000 web/floppybird create mode 100644 web/package.json create mode 100644 web/server.js create mode 100644 web/static/LICENSE create mode 100644 web/static/README.md create mode 100644 web/static/assets/bird.png create mode 100644 web/static/assets/ceiling.png create mode 100644 web/static/assets/font_big.psd create mode 100644 web/static/assets/font_big_0.png create mode 100644 web/static/assets/font_big_1.png create mode 100644 web/static/assets/font_big_2.png create mode 100644 web/static/assets/font_big_3.png create mode 100644 web/static/assets/font_big_4.png create mode 100644 web/static/assets/font_big_5.png create mode 100644 web/static/assets/font_big_6.png create mode 100644 web/static/assets/font_big_7.png create mode 100644 web/static/assets/font_big_8.png create mode 100644 web/static/assets/font_big_9.png create mode 100644 web/static/assets/font_small.psd create mode 100644 web/static/assets/font_small_0.png create mode 100644 web/static/assets/font_small_1.png create mode 100644 web/static/assets/font_small_2.png create mode 100644 web/static/assets/font_small_3.png create mode 100644 web/static/assets/font_small_4.png create mode 100644 web/static/assets/font_small_5.png create mode 100644 web/static/assets/font_small_6.png create mode 100644 web/static/assets/font_small_7.png create mode 100644 web/static/assets/font_small_8.png create mode 100644 web/static/assets/font_small_9.png create mode 100644 web/static/assets/land.png create mode 100644 web/static/assets/medal_bronze.png create mode 100644 web/static/assets/medal_gold.png create mode 100644 web/static/assets/medal_platinum.png create mode 100644 web/static/assets/medal_silver.png create mode 100644 web/static/assets/pipe-down.png create mode 100644 web/static/assets/pipe-up.png create mode 100644 web/static/assets/pipe.png create mode 100644 web/static/assets/replay.png create mode 100644 web/static/assets/scoreboard.png create mode 100644 web/static/assets/sky.png create mode 100644 web/static/assets/sounds/sfx_die.ogg create mode 100644 web/static/assets/sounds/sfx_hit.ogg create mode 100644 web/static/assets/sounds/sfx_point.ogg create mode 100644 web/static/assets/sounds/sfx_swooshing.ogg create mode 100644 web/static/assets/sounds/sfx_wing.ogg create mode 100644 web/static/assets/splash.png create mode 100644 web/static/assets/thumb.png create mode 100644 web/static/aylien.png create mode 100644 web/static/css/main.css create mode 100644 web/static/css/reset.css create mode 100644 web/static/font-awesome.min.css create mode 100644 web/static/game.js create mode 100644 web/static/index.html create mode 100644 web/static/js/buzz.min.js create mode 100644 web/static/js/jquery.min.js create mode 100644 web/static/js/jquery.transit.min.js create mode 100644 web/static/js/main.js create mode 100644 web/static/main.htm create mode 100644 web/static/main_files/aylien.png create mode 100644 web/static/main_files/befea5cf35.css create mode 100644 web/static/main_files/befea5cf35.js create mode 100644 web/static/main_files/socket.js create mode 100644 web/static/main_files/style.css create mode 100644 web/static/style.css diff --git a/.gitignore b/.gitignore index f3fb0e7..84c5907 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,47 @@ ENV/ # Rope project settings .ropeproject +#### joe made this: http://goel.io/joe +#### node #### +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + diff --git a/game.py b/game.py index 6686f47..e196916 100644 --- a/game.py +++ b/game.py @@ -1,5 +1,6 @@ import numpy as np import random +from copy import copy GRAVITY = 2 FRICTION = 0.9 @@ -12,6 +13,9 @@ class Game(): self.wall = self.create_wall() self.lost = False self.score = 0; + self.record = False + + self.states = [] def update(self): self.bird.update() @@ -21,7 +25,8 @@ class Game(): if (self.wall.x + self.wall.width) < self.width / 2: self.wall = self.create_wall() self.score += 10 - print("\033[32m+\033[0m", end='') + if not self.record: + print("\033[32m+\033[0m", end='') if self.intercept(self.bird, self.wall): self.lost = True @@ -34,6 +39,28 @@ class Game(): # our evolution strategy won't start with zero reward self.score += 0.1 + if self.record: + rec = { 'width': self.width, + 'height': self.height, + 'lost': self.lost, + 'score': round(self.score, 2), + + + 'bird': { + 'x': self.bird.x, + 'y': self.bird.y, + }, + + 'wall': { + 'x': self.wall.x, + 'gate': { + 'y': self.wall.gate.y, + 'height': self.wall.gate.height + } + } + } + self.states.append(rec) + # create a wall, the wall is between the 15%-65% of the screen def create_wall(self): return Wall(self.width - WALL_WIDTH, self.height * (0.15 + np.random.random() * 0.5) ) @@ -93,7 +120,7 @@ class dotdict(dict): # limit the game to 1000 frames while training, sometimes a game might take # too long to finish after a while of training MAX_FRAMES = 10000 -def play(fn, step=None): +def play(fn, step=None, record=False): game = Game(250, 200) frame = 0 @@ -102,6 +129,9 @@ def play(fn, step=None): if step: return step(game, lambda: show_update(fn, game)) + if record: + game.record = True + while not game.lost and frame < MAX_FRAMES: frame += 1 # input of the model: bird x, bird y, distance to next wall, height of wall's entrance @@ -113,6 +143,9 @@ def play(fn, step=None): game.update() + if record: + return game.states + return game.score def show_update(fn, game): diff --git a/record.py b/record.py new file mode 100644 index 0000000..d113810 --- /dev/null +++ b/record.py @@ -0,0 +1,22 @@ +from es import EvolutionStrategy +import numpy as np +from game import Game, play +from win import Window, GAME_SPEED +import gi +from gi.repository import Gtk, GLib, Gdk +from os import path +import os +import time +import json + +es = EvolutionStrategy(fn=play, noisep=50, sigma=0.1, alpha=0.001, layer_sizes=[[4, 500], [500, 1]], input_size=4) +load = path.join(path.dirname(__file__), 'load.npy') + +# if load.npy exists, load the parameters from it +if path.exists(load): + es.layers = np.load(load) + +states = play(es.forward, record=True) + +print(json.dumps(states)) + diff --git a/web/floppybird b/web/floppybird new file mode 160000 index 0000000..c5bffc4 --- /dev/null +++ b/web/floppybird @@ -0,0 +1 @@ +Subproject commit c5bffc45e7baeced4b9a660325c624c81e11dbe7 diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..09e436b --- /dev/null +++ b/web/package.json @@ -0,0 +1,17 @@ +{ + "name": "web", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "compression": "^1.6.2", + "express": "^4.15.2", + "socket.io": "^1.7.3" + } +} diff --git a/web/server.js b/web/server.js new file mode 100644 index 0000000..fee7836 --- /dev/null +++ b/web/server.js @@ -0,0 +1,28 @@ +var express = require('express'), + app = express(), + server = require('http').Server(app), + io = require('socket.io')(server) + exec = require('child_process').exec + compression = require('compression') + path = require('path'); + + +server.listen(8088); +app.use(express.static(__dirname + '/static')) +app.use(compression()) +app.use('/assets/', express.static(__dirname + '/../assets/')) + + +var record = path.resolve(__dirname, '../record.py'); +app.get('/play', function(request, response) { + var child = exec('python3 ' + record, { maxBuffer: 1024 * 5000 }, function(err, out, stderr) { + if (err || stderr) { + console.log(err || stderr) + response.send(err || stderr); + return; + } + }); + + child.stdout.pipe(response); +}); + diff --git a/web/static/LICENSE b/web/static/LICENSE new file mode 100644 index 0000000..2bb9ad2 --- /dev/null +++ b/web/static/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/web/static/README.md b/web/static/README.md new file mode 100644 index 0000000..2b86a21 --- /dev/null +++ b/web/static/README.md @@ -0,0 +1,51 @@ +Floppy Bird +========= +Initially, I wanted to try recreating Flappy Bird in HTML5, using a canvas and recycling the assets from the old game. + +What I did instead is something way more primitive. This project uses nothing but good ol' div's for all the objects and graphics, will scale perfectly on almost any screen (mobile and desktop), is terribly unoptimized, laggy, and isn't nearly as fast as it would've been if I had just used a canvas instead. But here it is! + +Live App +------------ +Check out a live preview of it over here: +http://nebez.github.io/floppybird/ + +Cool Stuff +--------- +*Some cool things other people have done with the code. Let me know about your projects and I'll link it here* +https://wanderingstan.github.io/handybird/ - **[@wanderinstan](https://github.com/wanderingstan)** - Real hand gestures to play Flappy Bird, using doppler effect and microphone. +http://www.hhcc.com/404 - **[Hill Holiday](http://www.hhcc.com/)** using it for their 404 +http://heart-work.se/duvchi - Floppy bird, modified, and used as a promotional campaign for an album release +https://www.progressivewebflap.com/ - **[@jsonthor](https://twitter.com/jsonthor)** turned Floppy Bird into a PWA! +https://github.com/rukmal/FlappyLeapBird - **[Rukmal](http://rukmal.me/)** integrated LeapMotion Controller functionality! Check out his website, he's done some cool stuff. +http://chrisbeaumont.github.io/floppybird/ - **[@chrisbeaumont](https://github.com/chrisbeaumont)** made an awesome auto-pilot, check it out +http://www.lobe.io/flappy-math-saga/- **[@tikwid](https://github.com/tikwid)** made a really cool version designed to teach you times tables. really cool. +http://dota2.cyborgmatt.com/flappydota/ - flappy dota, this one is really cool. +http://tippy.gochiusa.net/ - Japanese anime inspired floppybird. +http://emdigital.ru/wiki — floppybird on **[EyeMedia Instagram Marketing Agency](http://emdigital.ru/)** website. + +Credits +------ +**[@aregowe](https://github.com/aregowe)** for optimizing all the assets + +Notice +===== +The assets powering the visual element of the game have all been extracted directly from the Flappy Bird android game. I have only done the coding, not designed the visual elements. +I do not own the assets, nor do I have explicit permission to use them from their creator. They are the work and copyright of original creator Dong Nguyen and .GEARS games (http://www.dotgears.com/). +I took this Tweet (https://twitter.com/dongatory/status/431060041009856512 / http://i.imgur.com/AcyWyqf.png) by Dong Nguyen, the creator of the game, as an open invitation to reuse the game concept and assets in an open source project. There is no ill intention to steal the game, or claim it as my own. This is merely a recreation for fun. +If the copyright holder would like for the assets to be removed, let me know! + + +License +===== +Copyright 2014 Nebez Briefkani + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/web/static/assets/bird.png b/web/static/assets/bird.png new file mode 100644 index 0000000000000000000000000000000000000000..213c7383f0a970b1b8361239dcdcfb5aee559a6d GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^N-ry=KC!a;N%kzsFjs63@2jOpGDM?5~%~?a>uH5xrO9(~Z;K zmTTP&XNq6q`W6@Wu4!$bcx>g0$4~EPd*|ruZ(ZE@NPG2o~^aVPI3p(T%;s$lz)2vh&Wg%R)f444$rjF6*2U FngB2h8%zKI literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big.psd b/web/static/assets/font_big.psd new file mode 100644 index 0000000000000000000000000000000000000000..1fb7ddf10051c3f3cbfd0f9ca22e2366f4e2292b GIT binary patch literal 35884 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 aUBEnl^Qyo}Up=0KL_J;oT-G@yGywqAe=Jl0 literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_2.png b/web/static/assets/font_big_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c541ee157a185d3eccac42bae408bca3c291326 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^5!N0$xeT7JelF{r5}E*w*(!hl literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_5.png b/web/static/assets/font_big_5.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac9c8a3b91db04d933e374cf5a90a7c9d71e620 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^5RIGRa+6VrxU$jBjEW_9{E& a@-W=!>n~aJ*vS-VAcLo?pUXO@geCyIR4Fh3 literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_6.png b/web/static/assets/font_big_6.png new file mode 100644 index 0000000000000000000000000000000000000000..4b18cf147fb607ebc0d1e120e91e532b39d5391a GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^5$91{TyMSfefCmelF{r5}E*@@hD;d literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_7.png b/web/static/assets/font_big_7.png new file mode 100644 index 0000000000000000000000000000000000000000..de96aa38cc657eb7afbfa378a954c5ebe608cb68 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^5mdKI;Vst0J#+_tpET3 literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_8.png b/web/static/assets/font_big_8.png new file mode 100644 index 0000000000000000000000000000000000000000..cb7809499abebcce2f2d3512ee581eb632363e6a GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^5hpdnHf~y WJQJzgYAOsgkHOQ`&t;ucLK6T)@FqF{ literal 0 HcmV?d00001 diff --git a/web/static/assets/font_big_9.png b/web/static/assets/font_big_9.png new file mode 100644 index 0000000000000000000000000000000000000000..4723fe5efff7e19a92fb10243e666139cf4229f6 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^5`3C Y%*xw!WX58bcA$9-p00i_>zopr027cU^#A|> literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small.psd b/web/static/assets/font_small.psd new file mode 100644 index 0000000000000000000000000000000000000000..772c2e3b21a990e88727092c4230fd20568d5784 GIT binary patch literal 27956 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 literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_1.png b/web/static/assets/font_small_1.png new file mode 100644 index 0000000000000000000000000000000000000000..14e23d8e80687f525dd970cf51fd0653b63926da GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH#0(_UE{oO!Db4_&5ZC|z{{xvovhIDqKaj;( z666=m;PC858jvIG>Eal|F*7-Vr!;}#v5%6Wi!H;CFpj?l^K#|^r5QY3{an^LB{Ts5 D)KMO@ literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_2.png b/web/static/assets/font_small_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d7427844bae6cf07c406445bc4f438a47ce79710 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq|`lK978nDCnqE%{P0&&3uaby u*vS?%qe?2{J-d$35!TlN9qe6~g%}=(`yEi}a&Q7_VeoYIb6Mw<&;$T4HW}Xl literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_3.png b/web/static/assets/font_small_3.png new file mode 100644 index 0000000000000000000000000000000000000000..da7ec2809a9b7250b2012d2a3624660163baf559 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq!c|}978nDCnqE%{P0&&3uaby o*vS?%qe{x{uS2K2hMzaXkqo~B*$1|q1}bLoboFyt=akR{0H7`y(*OVf literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_4.png b/web/static/assets/font_small_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2ebd7d26bfd97e210c2bed46e2d8bed6c64d8017 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq|7~C978nDC#NJN{5bExl%NuQ z`2T-_+Mb>s4Xz7E+nd;&J_5`D86i7TjOWuqnVrxkHh^Ae0{2X45)#@)78&qol`;+002iCb^rhX literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_6.png b/web/static/assets/font_small_6.png new file mode 100644 index 0000000000000000000000000000000000000000..33db0efb866f7e155ee1d25de5aa130f8db585ab GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq?A2f978nDCnqE%{P0&&3uaby qu;o>;&gA&f_)99|Is2@osthlGMr~0Rp1KUEoWax8&t;ucLK6VeIT?Te literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_7.png b/web/static/assets/font_small_7.png new file mode 100644 index 0000000000000000000000000000000000000000..808fad9f97f9a14de2feef012bc8af87bfea45fd GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq*Og!978nDCnqE%{P0&&3uaby s*vS?%LrbclF_70K`@l34k4p>;Za=PT@;vQs18QLKboFyt=akR{0QglInE(I) literal 0 HcmV?d00001 diff --git a/web/static/assets/font_small_8.png b/web/static/assets/font_small_8.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb457f7068696dbe1808f3f9ace0ecde195574e GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq;x!8978nDC#NJN{5bExl%NuQ z`2YVOUk#0nf;^dhnAk2H)x2)-ioHfEW7;%^oJ>LW0r8dsldQ+_$Oy{$Pd?SpdtoOS3j3^P6nnWj-I)61Z}*}X4DWyn_ISEDhE&XXd(M&baDWKI!H5;DQDF3Iy1)tB5B%Ie`P2NX z=R6L$Q}0o{;Qi|JSI^n=?CO91E#1-l)17}BFD|z&ozGHxXTz7~1?Q!w)$x@uAHH)c#ho~=nn=@S3j3^P65P+KUL<6<5NN2QS$OhVD?PJ>$E`N3={bkHC~CZr}POCv9MCFts4SsHc0&gO<) zDCmc;4A{ElvT*OxT@Tzrv=2*AI^L3!=j8{>TY#Dx+1zODrne;K`RDoag0h&| AtN;K2 literal 0 HcmV?d00001 diff --git a/web/static/assets/medal_gold.png b/web/static/assets/medal_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fd25089057107278846c5daa9873c627b2c797 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u#3?$#IayJ4}LIFM@u0VS4BKOCKL*IT%{C_+C z|NsBh7RPFVqKqX$e!&b5&u*jvIXgUE978nD_g+58%dE)b5*Ss$efdy+V$_U((I*+F zX=wL6dMtgCBl%cFXlSVEz0xPER6OGjPFyX-@PqT*o_q= z?aA`#)g{9ORfQS%idh5X1e-!mNAEu~_xg+{wQ1)+-(xt>kf$?g!CfD5GcTc=QNE9+ zxi4h7xvi{!o~-Aly>fc{K4?rz@tX8zy8Y(olTzQ#S#NXd-@0Xc&A**lT$b?vPn+`j g19gd~>;FCC_cfk)wO|WtJJ1gdp00i_>zopr09#jh7ytkO literal 0 HcmV?d00001 diff --git a/web/static/assets/medal_platinum.png b/web/static/assets/medal_platinum.png new file mode 100644 index 0000000000000000000000000000000000000000..39c57d9d45a68dea5e4196bc384862eb50490cbd GIT binary patch literal 337 zcmV-X0j~auP)!g>y@1gI<^@}*dg9lAwG}Kh3$X>E0#B_`7TgQk8+>YwX~EIqMtxDpH{Ud1?<-e@M_=9Z zfh`0DYn^CI+2iVi?ImDCjU8^#xEXDU7Hz${U^M)&AqPPjJlqOwS}Ox?C$g8EJ$_Vp zx)sWTQER9-oeE)*{?}Xv%!U=Upy-CoykG=Z3-G30KfQZd28=eevjrgFWjpZ0gS`c? jy!|WE@ZkTKP-lDrPA4U-*#x+V00000NkvXXu0mjf1!R!6 literal 0 HcmV?d00001 diff --git a/web/static/assets/medal_silver.png b/web/static/assets/medal_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..f3630de9e8167800b1a8b38bc9750b75a143e011 GIT binary patch literal 340 zcmV-a0jvIrP)6N24hdrPFak;{ literal 0 HcmV?d00001 diff --git a/web/static/assets/pipe-down.png b/web/static/assets/pipe-down.png new file mode 100644 index 0000000000000000000000000000000000000000..5b60698a7c0c92c33122fb4dd38123b9256c4059 GIT binary patch literal 456 zcmV;(0XP1MP)Vkk+6c~WudWq9ZeBSg)2B-S9$%gX;Do|V24+gJ;uuy7CFXxh$s1Hi_`o2Cu?r;qLa=f=iO7e3dy_q4`()7$U#{nwFe zNYxg*pOP09KNYLB(Z0l|IbBXi3lgMDw${pAt^0$pCshS&$U&k) z4r;=LbibI=Vy>!bZbRli6k(|o&`P?~=gO0a?9^Tct*OMnW7beyb#hm)OprHm-*J+RiT*)w!K(+?><; yd1t?QDfUfgee0fY-8^Q7`K(li=6`+uyL|)g%(XTHdLfLhXVk)@Gse{C-D7M5|>(L`2Jl;6kyPOXys&+wF*m$ajLRZzaBw zc&}rpxN!l!;MPUB?#DihTQBHzzH2+#x7GbWZzj&r_0^>?5ts>#%#;yjV!d&H!a%5q z^VJaBj`co3QE%%wwMfp+Lzrlzpgm??H@=+P;XE1YQ;&F<dGYB z=RjphGsAK1azPp>)ih@_k0TO0#1(FE)euGQQfx*eu$ti#v52XGbyZ}qABd?MqEWSv zq^4oTHK+~F_*%RShRm`u)F++`nqo$t8OA6ZOI-}(J_Jx13J0>OVVfGTNhnGmeFLXd z=6u01m#ycJw3pYn`cL7sUGD3)GIWZq_m=Q~4v)Y8>IFh&ef)f5k__zu>;<@u1P*{~ P00000NkvXXu0mjfU{S)S literal 0 HcmV?d00001 diff --git a/web/static/assets/pipe.png b/web/static/assets/pipe.png new file mode 100644 index 0000000000000000000000000000000000000000..f541b15e5ac4caeb1e911401e022c6af8dce3a2c GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^CP2){!3HEJp6~q%q%u5R978y+C;$2X-=3MHC90}H zlFjx1ff`3UIRjmWr9UfoF0A1=d-^QvvYk6E4w$f8OV9ZC@w51hf4|mdKI;Vst0G--I6#xJL literal 0 HcmV?d00001 diff --git a/web/static/assets/replay.png b/web/static/assets/replay.png new file mode 100644 index 0000000000000000000000000000000000000000..3773e23560b27fa2516a8a5aa20eecc81d1d592a GIT binary patch literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^#X#)F!3-o%Xhoj_Qc(duA+A80YG8#&h=u#LeY4-b zef#UzuRCS0a)3rlmIV0)GcYnSv#_#raB}hR3kV7ci%H4KD=4XIXrBGI*Oq~Sae}9d zV@O2n+ncxZS`jYgl4+NdP|<3vT5D*@F|C4;wN0&=(F~t=u$(; z>}dPXwPy`C=Sq5~7S$cGS+wY6W!|#=vsS-c{Ve;}O3T@Hui_2tZ9ZN8^LO7I-}$va zXW8xkWcv3=jBmW5|K<2I=WS+9|7jGzZ2iu^tkYGu?9l1|e}0GBzqf07>vw<7dArZQ zBPVXR6vLjo1>d{V&l?}uC*K7WFi)Oy_+J&Lh|O)wS}72eb$6c3+NB~*m(o9P+VO1JG*!h?U(Mt{M-1FDV}&>Q#>qdQzwzvU c`}6;px?QhLJX&*C8I(3WUHx3vIVCg!0K-e}fB*mh literal 0 HcmV?d00001 diff --git a/web/static/assets/scoreboard.png b/web/static/assets/scoreboard.png new file mode 100644 index 0000000000000000000000000000000000000000..71064f042cdd521b7030a95fa17bdb112e60d26d GIT binary patch literal 2895 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 literal 0 HcmV?d00001 diff --git a/web/static/assets/sounds/sfx_die.ogg b/web/static/assets/sounds/sfx_die.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a980e921e6512272ff209b00b405f3b81403784b GIT binary patch literal 18942 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 literal 0 HcmV?d00001 diff --git a/web/static/assets/sounds/sfx_hit.ogg b/web/static/assets/sounds/sfx_hit.ogg new file mode 100644 index 0000000000000000000000000000000000000000..72d821a6c798a893244016ed0d10c9770a754d24 GIT binary patch literal 15670 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 G^8Wy&N0OZY literal 0 HcmV?d00001 diff --git a/web/static/assets/sounds/sfx_point.ogg b/web/static/assets/sounds/sfx_point.ogg new file mode 100644 index 0000000000000000000000000000000000000000..efb2d99461eb69dd52222098455345ff6a89e8aa GIT binary patch literal 13235 zcmbWe1yoes_b_~B=oD#{7t!A%dTQeAbIM)9Eh zJ-r>>eUJvUMmh3;W&UsHI+P(Y@;?O`iGq;4zmp7;3h958t7LyCl7R26+`TSH8hX27 zF1b5e>`#x;!N^L>NXx(rgEe)!aNf_=<%*x1n~N_FnH@#(cd(fHDGL;!hAlGsm^MOR zqB#Ie05}NZ7?WLfaD^#(*r4k1Eoopv;Vo#?9+jPxTsSea%NJeMy8L!6{UN_ss56M0R%`U(7Ma2^N97`Bd+fEf`-fD z#w-f&_spXI&*f^J=JNl(@E6{Q0zBkp$5pP5tAd&)f*s!CRQnu$1E5UtCgN@0@>)Lf z9X`tN((=`Ko1)+SNB_XTLO{e00A7Zx?JCz>$PE*Tes2X!AC*BLgF(m&gd_j=627l5 zkPyE6u4x_wYPrPo`)nb=X*u(#PtpHf33iCd`-REu%UtPJWXv2Vma=B`x5k=fiPV>- zXYEVyQqQ5EP?osPj5cCMU#3rw4t-|f-&zoJ7F9**2iSIKGMlme(0SO;{X-^I=@%KPr78^i6gi2S3OF?TdxaKG}#B zrkLpB3jbOZ6e`9!@g(J;eItoZ_wK|ML#z1jf?E{qJ;?q3zg@jcT*k~o@Om#RVJfF$ zZf0)jf7$w;-?!Q*yU%_jgCQe>x9vHi|F>fO$8rEPn#g^dOmVy=(~%uA9({ymGPvAlsPo85ahzkYTX)1!9%3NHQTE(889Uus;= z)`nQu{9`bG&1PiK@4s0NVj}#C2|u-y$p6c7h}eX&;|T&fNrKi%!a-?nv6-bAIn$;2 zwExR;F2oh5#}&uKO~xc(W7FJYGt27pFLhS_e*XWw{$n{>-h%LgmZRw{_}?t2MTYAX zw5G@61}lGQRCx~>>Z{4|-vt0bOCr7Az8^6*kr*&h7%-7AH&gk)TMT?VAaBqw4;h;Z zz#-@gac!BAMoA~n=+0`ow_~U(D93S;oXMZ#r_g2px3FHAf ztU)}z$r^Vjmy}^NK{3KVcJ(|yF*M;g3d9Qr@#rioC;bYNH(=$9ODc-x@0ByiagEbA zHP0*i2h0@7+y`^8WunkcmQ6o*{#JAT-9KQ_%=1fMYWTiEvllcpHOO?$l<$_0&G%3@ z7wVQX{}(J(H&-$BwJVx_uHWxhUnzbnP31iVOaB8x+_ZCw%ivh|Om}8Y(`Y%O>1KF#aR9U*~|yh zN{b{+&8;V%Kc=^4H#e`zD7*A8NC~muFNBh^8Uu5e43AFP!Bm$wkN*KnA@~e}01!}A zfB;xJ@sNcm0v3RqV^(R9Z5@xq4Ok2koUAil;{5X6GADwNo-@xY>68sw4NT4L2K|sk;(rwA zm${BZpT~JpTv0MUaV+X-hYzRmTa*>z{b`v=mHE>Dj7;XXL|KFoRO^R z)VM+>W&or|VV2~eeh4e?ECdp1VX!Mmfgww$P(4Ow5|i@5B#OzY=OnhUutcUElagd| z(b(zMNvu%er~He25Y(;E98^a@n|PBlGhL60HqJt`(i8~F=$88ELeMG2WIe?u{?R9F zp|32=wko<6C!Jy5WkUz>7rX#CQGMPoGCBWI3ltX`1i@&pu8U-4Onil$PF*rL6HSmL z%`8r)oy&<4q7HL5Dn2;DWOf7-GGEV0>ia$k5ZA~)#g23zCiTf|r!Gb6JfB-K6WK5+ zK_d!&MDwT!CygjVBNKEPoUhV-ZYfgUkEG?B#P~9*i#iM_0{Oq z2TxwUAKm9eJ@+kP}fZOeB&IrszV_e0ok&@j(!aXx)Ad#ylgFnRFjU zB>Ex!3P1ik0)kK+kX3(QM5dVhTZ8>zLj3QD6lO?D6l@cUWY(n?dXQp5i;Tb(Mw+O@ z#2IQ$VTzG1E-wWV5A{bKyAKK>@m>gt`9kn5e37Dy%|rSXrXY=}`!7s%X&?-FhBU#- z-}`Nb>Y*G7Z317rr3CtuJg#2 zU<;E>7F3=YnRwvZhlBNmo_w&m*f=??CyHzTdTl|mHpxU^f*m+8{{VzKhgUPyBAQO& zkOgSq2#x0yy}I^a8vnDi`L8{W3MAiPAM z>hLCq`>0C*;TISqbC8EyR%%DA{`;BYmZj~B?wAN?RHNqh%5e6J3M zGu>c{#IREt;n9p|>VCu?Q~p6IGR2yz1owKdP=i1idXExfF1St{S5j8Rt81Lr*3~~_ zWMT$m1T0KI6@Vl*41Z>ZVglox1Bpy`4<<1uv!t-XECvrZGe{piK%@U|V-XmQ{=1dM zpGRH-fNW)vw^jL{Mfp+xlmPGR0i@HF6{VzTlGnTH@~oV@c^UcHg~SFx%gD$GL-I%N zcNVT3cgDPq#rAzj{W4}O-f&ivfz74R%k`m>rY=r6?=+>{-3D@OOx%;YME1N$$NZE= zC#Cyc7nHoYI%Xw8<9YjgdOBqM9Gv`OZhy{Xk00RCvmR)#zVE7E%s3F=uOQk0DD=nZ}T7~#mr?=%Y&O(N~654|5> zt6^`Jh<3=V=|AD_mVuEd{$oydJ7X{$fa`YgwyR+WCwESu#8e+z=#tsm)=675=Um*; zt^UCg^U3OL<_6nDU0JPIYmy6trh~9QQ+_@_{&)B~85#dWy^?HxY+ZKJ^f@uhil29q zZZI-s$hMxwKELG{?yOx@A&(ke=b@v-3!g?&Vtg@rN|e(-@7Xu$6PUOt=|PH1{Hfi& z(sONkF+A*5=D+n$4S%mYJ{VvZnyFLWVYl$qf{_3eRIIN-%~tmIlNe z2THIejt4C-p1VC$eLmdNENVHQLv`&N^>QxlFM(@qSvj|faVK#S@5WO*MN8xJahdS)rin!7#ni_($`zjM(T~(t*>88!ZiRGjrIdz;7ti&^!2`UfYulvA1>UAw&3*{j3Y~ma{QbaEyn~=3 zf1el%W5&izO#z;|9|83KOl7$!LSn(==iC58K7Qw@5NOc_ct1iS3R8wMV%$F!prv4q zG^v*f6*e=5MmQCn<(zj?1DdbA?7aA|WLW9%?38-~UlB=H;qHFl0e}a?h_~QxB9F+n zi97pUx|Xfq7MZQ@J3R9VbOsoH5K0xb@TYN5d&{LciGdu|#x}1(_ZWf7#yEo*50FBI;33Lt#1!>G zJ@e-2BNGtiDX*E)WymD_xj)MaT31fO9yXcXkbKbh_3K{}VUwOq0K7BZ#Za2xzkg+` zJY}2}!hpaFT6(llU{9DkyT^X@;K0&P)Ca!DzeoKq4DIFLE;$nz4E#oasrJ=e{su3~ zqExb$rNil1GNZdRuh}jGG1N`2vcpX33~(D_^ByJ7O6!o6F1f#IjQFCLkD@Tjygv18 zD#$W2v(?8RJgy$iqz-v=ZCh$|3U0HNg#HLIpJ&6&#Jqc2(uYE_9zggy#G90nadJp; zoLQ0{qWKytlR-G7Axv(xpD+o9wjHJY{Po+3?DsMqTs~cSucj|wt|$uU>iD@7sLXSx z<0>Z$OaIx$@$}|h*@FPD5%u$U!pOpU;7(}A)tC7Ki;|YTt(gV@w3N$lP9Y_|{q^hD z8b!%x2G4VUI{#_PR|%BdZ5WzTno86)eJUrjUsRm@X7)Q%e1p@seX({3c64;)k2u2( z3*>fLvVy{y%=CoQ4lmV-{ZUU_!fmE9Sx?HzxWiuRT1e@T=VVc-gKWo84+>BKWS;Od z{Y3^@6tib~0mm@q_ct$gdiM-l4L5ySO;6rvj2dE?v>Q`Y(@>lHeIrj?@z1?!4jU{$!8>QP=U1PHP~Q-KK5Q{6P79IBaPB5pc^9a#a9OH#6cpSXivM!~IBtAWvp zZ$KYJVip-N42Xza+)ag$qeWs~@p zS&)K-g~gNxR135vyk~-L0ATdrN5(|RFuc~J$?dpdq)y}Fm{flzRS?98@QcyC7W|-( z%L6f+Q+q0e&%lT}JdpbENjZng;nh0UBDiv7^r`e}$TRS0Yt6|?;q>|J>L<02o>?)l zF|qZ-X6cM#D6nb&SBF1UM=O+{e`W!}ZJNINZ*xk!q0I<@diZeg_v$qbS}N)6>MZa^ z+jzPM)$_>$O+0WGVtVtDHmX~LcBD%=9qg!DP~OVPI!lwD^^O3Rb~ZS{rL_}4m7_bv zyg87Rw^pScEwZq~UjL=)OVyCT4bpb5UT?<7L?<10b|6qQOyrfJOHq=wh|8Oq?Z~6YqZHweAUyxyd+2FKKgO|L6<6}QGiUeB&f%l5K{q8rKa zXN(@S4qF@nc;Y4)EgFkybEOY7IdnQMDkCh22!wGwQHy^a!YPMI9Bm(EQWmy|o6? z4Fi*PK#)fFQIyev7CxW>c-Ff@D)#i%Quat^s7y9zREH*-7@NI$a&|Xymrt++()>Xa zZpCVF&bF0N0}O`ql4`(~C;R|X&2q1j65u!U><$6~Ukfz`nI6uKE!d*=GikBAi*Syx zvp5!E3-<Jzn*;9q8rF+1<-}OjIYwOQ90Yg{t8E^!`6HVBn{0 zSiJiVK3<^+Y}z1P1F95KjF{L`%)~D;0ju%7=iy7$A%|cq~2IG4n^Tnyg+rbYtMFv?!dxcn4zVq zs2b5IYxC>w^3Gy^b8u(Ax;fDY$bKDBr3?<%ffGc05Bz`zEe=}2FsAJ!-h@c;XwV|* z08%i=nKjzBYs9D#!0GqU^rtwahSd*HqB;y!j6m-F2*RW6v^kwDu+nmmtmWx+u_+j} z{775ZC#ec(;SK~M^gNz8^@_9??0;`yoQJc^RjoGEnOCet%}vyeAO8a2=hkkv4i|;O z9h*b-Ma2cEJCrA26h$y11Ja!2OxggE8`GO?cv2}vzS*;okWYk+14UUekw7bIavK=Ou;QA(|IB_&>X2p!Cj$*?Ap24o2 zYa47=mi8LnT@^j%D19XK`;K>W;rir!=M_}ABp`m0|Lo*V1KHFYh)DB@wJFRdBl0M~ z_(5%cWJ=%&*6=t3e`)Ra_`ONo zm-REnUk{;&2@0Qo*FrbOM1Qn+{QxCY{=4Sph<`ML3icn=-p~Uh%7Zrvo{Q%lo#FDJ z&my1-k2tgzYRSq@^6BOIfkq%E%)v;?mXJS60o z&8(hlTJ{W|VemrnF6N>3+PikPmZeu!wPyjKz=&Q7Q@E@w;u?+aXfs_d|69X-#ixWgyxZb9^(L zme$B@!vaOb;VIUCs+yY_V&{MQ<)!6|R?-p23JA2+LeDVju(_vPs zpZ7B2Xo2n8%X_j&1zb^ww-zZjX-9_(%l_>(BacsgntXZ0@}Ra&I03#=qdne2x-Qx& zvFAsUScp=o^gZv?Kw8?{YM&faQ&DX!^}N%Jtqt{@->yz(f_SBZPwD`1sQo@dOEmC{R91PM*IXI>4_ZzRoyg zxx}t0rTrkS;dSlCzD$VZXkJY^(!9Ms`&LjBw^zoE=a${q zch}yXE8Lk=TYW-HJ=VA%xfOY#N;7nz04F`_L5$E{xDJ6C7=eJNI3lcr7%PP%$P*vv zibar^ms*(lRhzPOu8QaBPKpTsyTXxM?c^sxBK*+MKqG#pKARlz8Bkbz6*(JG+oc{$)^j$Hi-hG9dvyY2Fqpes z|G@?NXq7MqNrDg`AU$0eZHXY$=Oh3fFCe6OBjE=;2piasRrpoh@Q7N_M8&RDws+Oz zoAlZMS`8uYH#-P5M-i_@RxP4o3>m8@I|9 z40~!8e_dM^qZ$}3}XYaLH8K5m@g_$cs>xm;)*I3hxhJpb=e7lDV&IwKQx1H7)jTTnBFeCMOjj>alpIi@!hc3IQ0GuAAF9Pvx`O{JiYaID0mF)B=| zrQiU?3lwqd94k4N15Az`4n&)c{>)!oIKiYz(MdAjO{JsP-bo;Z1wAA!4IWtBYd;c4 z2knE$wJVG?!e8<-Zf6@OX>2P{Cz-kZbtw0bcz^H8?@I~j8%#X2)+#6%_E_dv0KS^} zB8dTfNTl|!;YburhG-adb$e;RCwNn}7>#7b0Gv908zBbxFHiZ90SAVU+Z`51g0D`D zc*bk7zxet_`t2H&1PE+GQJ8HIw`^%W2gfT|%dSk3E};5|%Q)N6C>vDh)-etWv^>}< z-59qFZSeX*W*O9FzcO4hzM^t2v~=EbxN#tyZ~fe1)s4LX<5G?|-6-_1IU*b_{u1@Y zk=}b`Z{zskFBV99VT_?db#=8rc9`DUs(gOJ4rMStSY%KE@E$_^JY+!5&gKbQq7}0a zM2aaWW=I;rzGcoIf$@0(14;xmzySUwn|w-Ud=+gXS}Qw1;hfy%+RKigA9F9UchzX? z4G5GQU!@cff3yG9sY`^ov2i^|b!PIuR_CN8#U+J=W{%;orZuDDuv2Hbr`l?-ZMCp0 zZv3$#4ODjAurZpCqFr=dxP2s){2=~RxJkIk_@@BFPSc=Yp97!xp{6*(0N`<@? z4pIdx#vuy%lnjvDoM$dEu#sac7u11T)M6yigrp&v19hyiIeD5!1S>8bB&*X&e~;iMHjAChzT7lIpyX|8Z39$DmnC z{PL4_v5#S-$%l)2&kcuaw?{nvL{(|y>7JDtd42!=GuCj4&J5BSva7c8FfS@}eim=b zz&QwmyP62;Ykghq*iJjS%N?c9@kq`vZg~P8I>B9?!PksXJSJHK5A}`pLb(J38+<$J zjoLp}YB|Fj(hk5MvqfhI(*5o5jBT}Ox4;~?we^CIJF!C?imbBpcO+@X6l~xi;P5qk zq0CH_`1DUk5e@im;N+w?T6LItnJ-X_)jE~6cGNc8BC;_ZC85L$BOIY(}B`OB@n zfZ9|Ww0ZrDt9G;?6d}2JSNqW3=H^?;JZE)X&#ta2(xf(dq0ZIXsY}wWpN**+-tr?k zi?SC?Wb%D7d{JK{fnYLn;)faY&(}h*2Zx4}5TY@t8g6tVJ}Byra+!oM<+%X;y-CHn z)`u^~zpWR^)u|;%Q5;3O6J8$>tz2KX4;*{G_fxv*n>3&w>Ug*lS3J{vDEQI%2a-*k zYqV?TWNw6vHDg>{QE0F{^uO z_`NhB_h+y{p*^VZ+=DVMN8?mWu9fbCM8q#gb#1vM@Srd@<&e=HJ9z-yl(IRPZj0Km;A4^PL&;PLcN<>igs zrKEFn2XV^K7bwCGEVEIAT{1_w2Nb`&!V`^ zGS5jzC|<7r-L!jlq-RY{XE|N(y2u3sQ<8r1o{Z z;zqawMn%m<@aVW_v|R1NM-KO7Y`U+_eRV#!evwyAWhtw`+g`0by!`sey_{NgW_Yd* zz?Ue!iaTK>&Iu941ht!yTrHG)pY5aiEyC7$`}amhrmY7Sfpow}&zs#ACLv+ZgP$LH zze|v(t+_t@A(<5wDXb>0r=7iZM9CBr{ZsYwTu|=kFsT56d+U@F%vSglpgAAJjnAC- zdhmH;)P7_urSpD8&aBsWeO*!#@67kWHL=OZcY8v$k2aW;d|1}QPG4Jp{=kB_QN{Zz zVXK7jJCqhc{xt37?kpE?EHple_@*Ws#U~?KFR}dMpB*`G;p2r%^pI&eO;`tT2-#Sy-?cPec_J`9-au*ur#0!>d*F*P;I)1RJt=z0} z->mr5_S0?R_wMi9)1C41cMb37ri^6=AIbT+Q1FpX_1?X+IQSbLRP|Xi%hEd~Mu8zJ z!I`g2uIwG}%z9?+MOB@g9Wuu7C9AgBH+++OhO9d9`d5vD2juCLgeNABp^PbGd-2Pt z>p2Q$s-%_p<{!C}+}s~k$19xHwn^(!{Y$;;=U5MCU=I$1A%}*75(?0Ah*1ZO9*&=R zaGx8Ks3Qy`DCW9_V^GSbQk}5#wVW?}`!Uou0Uqtauo^9P;tmFoTL|oR@=i@rk0wj1 ztZG!5PyEhQx)QY8@%K9bxVZgj-IGJ4D=cU$`E4C(`DzP(oN}Oscs{kOD9^L=G3xm7oB;6?42ca z)t{_h_Ld*jqUr)FDJG%BK(vt=M@*9?@-69cqJ)=J$7 z;LOP~{Dv zqw2NlT7Bq&P7fX-4Bovm`UWs#l5vnX_)E6k*B@DH-S?z>MKV~Q>f7Js6O2dfT53)L zcj%uOr^&&TSQd($a0#FfQY$y_Y!H$xa(PvGG#L#Ox}K|9ZM|qfcnVK6uD>G5p9KVT zHCt#x^Gsy32vsTJ?ub&6loxRU}<*^_*}X z4%1@9Pdt`vO=5M~!8DxjZ?xvWa6*oB{y>AGXUG%oOtLUHTB{dfE2MEXuz!}e?zRtuF?FR-;tK<9fqyf{}v zd!wX<9~G+bOKoo@qWLHMO&HaeUSQqcwN9G5XUKX@Eto1YR(1hgsn+@i_ff4@!yhl7 z_F6oSK{0=4g&v#uzAUeF@`Swk_|*3X<-MiWZx0d5nc!(rC^G@=RcR4%2>$MnK;8Bv z)oE?SX1F1wXZL-Oiyh;U=r;K+A3bR;QvRZc@ZX)bWaIa5Y z!Qq3O*RF`1_!7LV{G8;{Jn!byp5U#tbth+fjpK5h*kdkIh@0)ERDB+}-bU3v5O;tz zUIcyR(G^@5hCn$CcuJ41*?BvBzn5QJ;96PVJS&+C{D(@wr$fpp=J6NKr0r=XETGC! z5L7$H(adysPub9`MYz)Yll0Ek$lmzTot03jv|A5i%f6vJs=wz|umh$GU3JMsWtLV7 zjV$s9&PlP*)Jp0TEhnEYwg9e+ww;6RmKKgxo<5PfvVZ^SpKJPj&mb;x|HX)ZYwHXCs**>?Ty-xCh< zfBzQ&IpKiZ05(e8IC9cOQV3-0a9EpE^v{lVV_#wf$X+1 z{7;-R_%5pww?`z_-Rk0*&0wRKXbHgQq}W`moLdpZ3gw zdX1z%-*_sg*5k=1-oD+G>U5W0->Y2?d)Hl5aUh)S#dKQ*o9AP{HHIYx$8J9dfpdQS zeu-yF_ohghhI4;%3PtgvBiqBBG3J|WT|$!jWB2-(2J45bg4}QM2Bj;r6kRG09PQQ< zcYoXPUYmZdS@oRZ>fB_|N+U;yX;bSRf9LSu4TjBU)2(Q0>u5}HO3!Z^Z`<8aAxa3{ zJ!PHskxQmJs4U=2$lIWlGq~-fvq!1dkBvsBp9O{5h699{P{@Q!@RJz*=hnnn;o8RN`9)Fkl@NDwbWvL-O=0xB6 z^rCbcvGX@Z-?%mfDh(ff;}8`t=QekY>e#WZ!xP_XOD8{yR^IWE%rWOU=cd~n|I-i4 zeM(p#^GfU3+Npo9p+VEyA&#+&{d!`)l5U!cE+JPxZw1G5m==Bg7O1Bn%c%QoXR-3e z%EQ{Whu@YqNP8n!#b@nV1&2dw_1b(?rv3P&awlJ}PugGDt*qE~3phP5C?F7fi;T&Q zl(YTk*JJf(mn3s}bA7n?HtwXD9(}m5Sa&g_zG}c3-W|32n7OU*>rw*o jb`CXxmM#<~>}+3r#vj+#%1#QF`1lNo3>6pCwov^a23P9d literal 0 HcmV?d00001 diff --git a/web/static/assets/sounds/sfx_swooshing.ogg b/web/static/assets/sounds/sfx_swooshing.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f483cd6c5f0efd82559d550b6d74f296a45b79b4 GIT binary patch literal 13697 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 literal 0 HcmV?d00001 diff --git a/web/static/assets/splash.png b/web/static/assets/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..5107974f26d73fc90aa6c0ca964128333b6029ce GIT binary patch literal 1689 zcmd6o=~t2o6vjzh&=L^TTtUrTG3$(u8)}qf25OR(Sw?1ND}@O`p*Xo{D72-O^-3FCJ9`I54A#lnWz}jocMnf5 zZ=BECu!{Bl5Qx#~s0czl>&n!X<0<8M%lr^4i_4T>C}!1+uGYrU;E^<)t||1&!NUr| zn^K}=>3ZMz_)B7tA-QVj&YIww_P3QcX)B*MDQY%dDp*RC4~*~KezdOH7*psdc=e2~ z&`6L*77MM7kpYi#a_Wa@V2nV1>TNZ6qt1h)WH|C1Tn~lW6wrz5Z01M%-C#Hv3WtZyFR?=Eu3(7xfeBXA<%RU^Q=oKX-{Yl%>=VR~A&p3-}I&p9~*kIksGva5ZUEr-s9@aD2hz76^g9)bbWG9 z_w+7gdrGGWveGqF)xzAe*?)#W2i z?U^+>szmST8s3jt5Vj=GqQ<_hPg)hke>l@%B`{O7pdLqg?CrqM}+u-1GyREHIEl>qU~L<*tQyG z$huNqTB_ScY>j&U-Br)9jiofi?RT!S1kfsmuV#U>3lx%dd zvkzztv3vW+__s4lz+I_Ym3+TkTq{)p6FUW&V)yiI_ib23BilBhfNOQ!56s{$d=d0N}>?Hwi0Xsl)q)-XBn*NDVu!Jq4@M5wzq z%l&V}A;B=$lKRkDpp#JF&{g*?Fgh8DH0hsWK6=qSI_lvPp}$U(4aQK(?9%#GN)7%q z%#eM6*T*l8PRQA(tgf4!J7JKc5z761mT;RB=Y7`}GTb+A?1XGqGyL_BE zyW1h)k|NQfk9(S?uu~y&+*_o_WK}_7Laae-HkEYmTYD`CQ#xR>sk#P_z0|{>{X~&q zEs#B^U)TE`Cs)T}dF6AT9XAjL%>gq#DgMiQEdM?3LwN+|vsjx*x4*x!Tp zV^@t!4{|edPrxN%j@tM3s*2u0u-{Zw(IY)T03~_hsjr*IhggHP3onhe3C?)os{gt( z$~rdFX|YeFtN#U_s1?Wm%>yj8-FAP?M1T51gGt5)RIWpl0Z@w>akWpwBC?WaLYi^c z?cy~p%!>s@!w5a!1+cxW=*c!KRfSNBCgGE1DoUPQP^{(wXIL|9Cw_|t@Ll>K5%j7r z^Dt|IU)F(-#o@+OcdN%o;_fIAD%~c3%U$gslX2{tIoudgPj@WU+ZX005xM%1Efb>EnL`5%%qh5I<@ACP>aQ zI&J`fjQ!t$0kU)P0pPuojkvh7vbB@Dlbf}ZGgww!9PI4sWNBk>0RUfC^VF==)sAol z?>4W+7BjMuXgJM6ZFrq}i zUq;v?D~=B>iH!aQ{o`9=x7c}iF!|E7By?DPmDf0p(2IzYF2kY16@*eL_7QVCbYyV& z&mOZ#@Ow&U00XhnoXqW+0tUDb5D;J>??vbaV7|;DBLcmjb9z~cBVN&u#j^Bag2G^W z-IG4aBL?9BB0lkAWq^njOi*4XwHi^1^^KSU{#6yN(X>^ z0pn2$iZ4J|7JwslsU>j1P>XR$|K_Qz27xw8UddoRL?#ymEiLAcv{SNp3^?2-uqN3e z%>CY31nj|_=-XEl08p6p;mz8s=Py%ewNq2v@y%#POvgR&ujHntyD$6GRn8&+@W(x1 z=7o`^kuZoKKFHyvmBKWI$Lkl;E*Q92Ii; zBrX{?)o69Fh78H2pernIguYaJ68|W`9`Y34Db1D|+@K;jkJ2RGR>4CUCRL35+uWTk zI{~*a=eO%mLcv(>qQl=+*66DVLgFK=y?^l$I0o%mnTH3&etcp?N--P%L0*kgHB4Bq zSq;|_bz?UD!wZBJEZK|14e}BLn|u_N(N@q_T$ZT-6H{_xt|IXu!G)>x(~zfB$p55n z$9x#XH)Usw(3WAOSj0-eX2I}{6d&ZF#EKGUr)f)smHqKeeHLq0YSvMe;)t;_hf{`- zB4upV+^zwEH{9Q2o~ek-w|li6TGd~+as>Mr`<(mm7Mbj# z8YS7P8x=+Bm|O|EVl_q0s&y(671*2}*}RjXxU%x4HN|Ojgw}Z0cQ$o@-PW zjY!R^lD{J2yH$mgy70FEo#!ZcodJabCGl@6g+GjTJBPu@W(1927|HBVtHM2kxdy3! zOs@EO(syJ&lXS!gey=Rz73YxS&}vk@O0^V5*v)jg&vjQsI;1VnxC)5g#5t$ip(85e zRA^(f(6{@Zo{_FyB~ztRC4JJxU3*rZSJoxjp#u#@6CIJG(WjBNN|<_=cc`|awo(4R z9QU&z-%Ty^ce_%eq7DhK9>;P>W`4I}P`-jw`KEW*;Ulp>%d`5k!(;i4G>SHSBMK$_ z8p;&Dzz~;k_D+aDfC#IVf|goU58Xd40=o&Oi)#TMsEq2s&lw+2+DW)h^i1mUA&H}o89S*nO1Eb>GD*H3S$OUPvc3af}O5#evR!xT# zEM_c8S~W}cEu~)H?@Z3|gl>gg3wDKe1$Z{uH+76AczRn#TgH_JobrvnZixp{yqdrI zyv_jSK~ykSa8bdc!FsUJdmlfto_JxtHH+JZl{3-U!Zy(lq6r~2A^UwbWY(jni8W+* zhnZ7JQ#NQ{l>`1R{zfo4Fo_umK%w~>@l`8aINmu@n{b9LgUf4XUEFO;;!z@9Vl&5z zO^LUTNsfzN=sUBmz$#BWXS?t)v!%|&f_9#^ti3!jFEf2Dx1)Xc*3;Ql#7^E0@~$sl zCd;USvv<){|Mk~$+)8FFM!s|rg-FFussBVV=qqqzsV=d-sN&yy_mlKnk+aNj&qOYZ z>(hT!yp*B;?2~+&)XC*dImA)QxZf5=Q<>PQfU2;O!e%YQ(sR7p;%mdpkYh{>%f~c?F}udZ>UTO!@0-QS{;KQJF3}@2SXpRU_Dn|o z;!Us0XP7*jX#BO7$dh|s@Op;TkM$?Hxinl}i-|=0psU)Jw?V+gd+q)1hj$F&n();E zts82&Z2?S?j4kE2{?E%%?49EsqX1nez3}(!XaMWS}{suB`q< z-O~Jdc5^Ga#*#5fyVeofEZ$bqBhcDuQ9d>`$uF$_P5oN^QJotyyU}E_bniF=A@c3K zhb(}2Djlj*qJtI({H7~Wz zFObX%s;ed}GMq@GjgWS~m^Y#N`g}P&i9??;YJCZQXrD6~j?GKU z^ABKtST|lPZuUJio7%EPcRFv!aQ`za`5JS`-^o9vf7$AO*|4^ct<|cPUB_qSaO{38 z@RBm8G}4jVkzL!SZ`TI#>1y(|ygMSw=b75L?()9CeO+A0=M~)Oy7F%FWmpRWhn_Iedw&8$n`!G8^%eo4AXKo@_P zkd-hVjv9WF|4E3KcSqRu`RJ)!eA;}PIv?+)_+`8n50@q2e&J+kY9@20DC06CrN_aq z^!d2=grIJ1xPSO#_t+N>Hp6R8=vklFx);fL$rifOo*y`n_SO2~$Bo+Wa%c)cO3Et; zF7xWijDuNZc?+owH$Hr%|`*dzYU= zx>{KzSTYDkU#ghU8C-Hn*Ti4ZCWtF(C2~XONeBc>&o*C=@mm=f}j2NU*Qi0 zG9{WZxgJy8@U|2Bbs7e2)$DFHx-N^lcHh&I5#^HH79TNYC$PyJ%gO4|iwIic*d{Gc z{YU+@9fyW9_tVnvHod|bYL=nf;?_;8!^$t(mWmubFC9z>`VOP$cl{$TM$hB_p6GN9 zgOB^h{%RGfu4~W_8I=AXB)UVcw6#k8{~#_}l{j8$a{qgwgV3k#)T;hZvM{`#e}Jw8 z`o)6uGe3x{rLJS;_^JZuZW4}1N8WTu=cL+Witi-zlj{`kNiLIQe3pDtOm5?1s(cdS zuVLO#PX3DAjbXjRY6p32)E?NI?Xqaa!udXild9G-i!uU9?j-0)_KaRrk&jT*g z_39A7?x^c((N`i#;q+Z&^7q!Qh1Mn8gKL7jf>(@v_Fo@RH0l9w3)eYmeAp3Z3n-pZ z%mLohh~dB2m#xALO*|Qwo(v8%6#5UT;}|jXfL<^@OlL4qOSwQ_EF-G5emY82@we>pIEIb5fXi-iM1)m1%Pv%c^0j8(pGj-tg+*Jmtq4HUaG=&g?=D-}WDkAOn%@IUkY->F_nGZtR9jiaT`gf{zd@=J}^`us{ z(qjv2#x_CLz|0UibiGAH+-IV#+AfiwtO6tK5e*sS?)Wz|K&7L0(f{OJ%soL+p>**% zDoPhhA0;WSG30->{O9Is%dRtRa|}E-j_kViO*?LNn(xC`?kb3a7ZDlRF|z)Q0S<%h z!$Ouy<$Sv^SUN0>7M=BRZ4|D2}Qk7>lNlI&X{=31j36ir( z)_%hDZK{3eCG}k$(Uyk#n_cR2>vNhSi@VKs`5k%b=6NE`Bf|8A^fh5DM+9yt@oy8o?n ziU}Kp0qZv7i9VVWJ(fLG_t$9iyXyM6UKaWprMzmqE5qp^27wv4Diu4)tvR&ARoykh07EcnJc$+E3ss_a~-4cmW=KyI`Y!t5! zmqDjvTpIjUSJ>+KLn|taZqeRBFM^=+Hy~tz{L5`hz+M6Kp6q6;2F8} zIGudd`0MmKayqq%HD^1J>MU1zqRnI+`$j+PKs{IUj-_!CPD z-KuNY)0E;|ya+6XX(lR=uBwtffD%+%uEG$-s7@RGL3zl(V* z7>Q-kmAZGR_5HD)dVyvOYS`ax*_9S3YO+-Rr&9F)E>r(=ktB_Y#E=|ai>qv|zLrSw zl3dsQ6jKrANyOt+q)%VC^kFL+iXHL^GnUS$v$|TjG0HQ9sF7We#Pf`krl2SZ^IN4S zzv_C+r@taIg`6OBg7l2ZQaZlCk9f@4Z8>GCeHSGw_q8JMHgch;B1FEl5IvRvHdgpW z5fIPe(WA%JmD@GMTUQ@;uw~7rN`o$K`0i|_Bk(+{pws8-)ORLW_I3J|z=BR2BSfsO z)d^E4rc`obBD-qN-GlJzDxflJf@Mao(HuX_%1FTDbiUCST>-Kp%%)uTx)S(2ciw%& z-IN{b)H8`JUx7XfaX~>B2W>JaMMDp8Ii9y8E*G=hU8p7|RMO9uRdPPDip}(vR_^QZ zWY8p#J|M6>A3&nI9u9ggSCrzMh)~mx)7psY0?*UZd;}kNoYK7@saXUlC_yqzT|3?0 z;;KJ}KP#at7*w3&+vcwFa_S4!2mW2L8fl>P+toXNy|$tw(4xMITPzrom zq6#~IdN7*EAU<9g%F0?HYAj9r@N!L~Qe%r))#@Zwf@TTAEq?stPt#IL%BwB-GSM96 zAIb_`Eif=3pgYJNX@KemXsWTKr*E@UT|*vhWJseRaG$ z-?dUS_R>J@-02>}k<`}dE2VRL3DN%&xTSr2($fqTFZYxQ$3R(?cgoNA-5-&!+;~BF zy)a6Mb)X>Mx)`r%5`KbgJxvQgVn;sp1>So}D}5~J=4{&i9ZW?!F(fY_5GDnuQ)WyD z$)QH);E}F-V(q+@BBWXAzg+2?twGn4$86AB5^KjvOK0ge>%K9_T0W2Ss5MQdY_dmf zd$NaPoQ+R8xV(g(8~7biOrHt6{_Bk@5r!V+SU%FnllJ{iRBiGOd@6TB@ai;+n4BeX zQ!A$~p7!@V&**lyH?_ho+uHux*x;AHs#VpxU*X~A_;Mcj6naV?4Z*MDh$e$fj9nfG~`t_%1Mc5)2WJ^z)Ci~40w(IE6)3JwJ`>B8SPUfAn$ zzb+6ue0?+Y@Kx|_l21OZ`t(_L93}yn610-m<#L@nFRdGyoTXk<_fD_ITPo0%I^qp} zl|xQ*`K#Gq6#_w&aEOM@s2AM^m&5P!`FyE#WJPoDHD8D~t!{jt|8YpSB%H5$InQdt z8AEGHup_9gmczxOAagy;x zTVbb!BLH*?NzDHAIu?BUvkF~G$IDiLQ8W(o#{hJE_QYvk{sq3uR_cF8n+H(h;ywzw z*h5xPJD=0}pVJd>rUSzQZZcFzMUu(Kf5xl21kNXKeOFzbRa@AdUW?~qoa7Cse2tdLgv^{A?3d$dfl75 zk{5V}Twlf=Of(&hu0YS2t<_@W&O(t%roe6rht|zZT}Wc zl{fx8%m7K4h^thmi!b2`)Vy+;=QJ4tcU#D7P;BC3CV9%)NTnrXkeTDxUf~5)8r1!o zIL*4-ir3W&XUoce5H+(QYjbscylkt|s?#6Str6Xomb>;F+)Xp*$(FYMLyL=m(fi4( ziH(Po0G->uF-orOHMNp{==o1n7G4H962H=!chSYm)NIGmJ`ag5K?W=~G850yakb6x z!7k059FkBkA&R;LsKZmL;Ngq=o^hw!-lXtzNh3##y?Nzc{hWzAqV$YF_`_}{sWg!Y zz`pDq#k|&cyIlKkZ2Cf4$P(ei$5DOg8I#)l;P7EYxT*)bS}C~HeI511KJpJ`R0;CZ zdK!W6!Smk@21m!>+t^YTVy87i+Ol~yh=2Xa7~D!F#jN7d;6=rw;_{;YW1@jT@Po@w zdPGdI7b-*18}jhYzENJ3%|stUsX0MtaT3|!57)9*;ePOfEXD zmOF!)bw)2>n(4*r13z%c=8l|3m3pA8Q#OjI<-}b40j^ksGa6bFX22?78bPGPdaju9 zvc&VSNN&`5jF&EMVeEXqcRyyfc1N1M?DbE?-}>Lv(NfRr25D?s`JFwFuNMe65ytn) zkN#1(ZazY9GNWEV@!}mPb5Q^Z97lzr=rcJXM+GW)E%;t%y_zg1Id}y(85z&Uve?-f-(Ffd)FtB9nN>?QyAr$x{O(tk7>vA5o}Nog#ZL>hDi8ClHOTRx{~P&$nmqO z1rA*hkiA=>5<)C60i~(blvGxdatSma&ZE`u;&b*t;3)9>}nq6&540B`pQnce#NZnM_^>@e<^>513SdEp*DuB8gswiRn2F>;Bu zR<8w48ti$|g&Tp;K-^sD$Zp{Enx#7qS+AX7{mu)b1jtfuwe-BJ^YYkkk|iJj3UL7g zgD7Z>!4HZV`&g z!ld-(Izm;SGW$my&QiiQU3+9hb$d}m%~JDw8NXO&iH8o7ka({;#>fJ-<2jfr$Ps+~ zrR?3t$!S6;9ZLsi&6TrMR_3JN5pXs;ByXiStzS@*RyutyU$BuhQPY~r%A5LDr|52Q zTpnJ#8?U;)HBU2XHLuVd6yfctMS|*uYFP95fyd$ z!i4es+b0fI!1^1Z=Yn3E%zfSJqZc5!S1zsr|i$!H>Ns_L56-p|_=`u4m zc4wf`a#PH29r6m*byAXx&GBxe7O%U@^|Th|VQgqb?PRytDGn#Kj76TkZJw@{s4p|96n_3M}BT^Y2l6kMma_u^(3Ni*hF z6xvwi+E~-iR2?CsqqRQxv=_!WQX>dQ%g82v2-J7QGqmlpglg5Q8oxi>jo56Tz+KL$ zef*h98A6KbtJd7#&HQ5Kt5@zxvm0k$KVdQ6qKgYAi|oay#4}*rgynGN&7{qv{l%WAT$Z{leCL{&p$ikBFmJmFGN;bJDMF5Cf#QN zd?b@2+=_b~P`#9rZW4vu8NczV+E%?E9Wy_d@XkzAoEU%q!m1xwb_LmC;2UDIL_;k( z{^^8sQkmU<#Z#`y)N7GREIZ@5L#V{#A1^NbGJW@e=Z0u#hc-;?Y5(aop5WT@=>>{C{ z;B47d_fyt|Ujp4~Xe5P6Ggoyz5W|2hyt47o52u?{P?~`m3jD3F6(GB4>@Tz@(a=S= zzc61|Xp}~0#A!3wSc7Qg(21vZCIkw$N693p2=GNp;#~=V%j;rlf)960HoI=9sQtRm zLFh7A9DK2OicxOM-Kbg8h=_*JZ90fjbmzIFSp`jT^^DZ??}OZ<2c=1^mVdY_VV4D+@P7-63#g&2I_Hj%D&M< z?mR8O%@}KCf2q|Za@jFa5H*R!8^dLOsR!m)GP7bFBmmYJM9Qt`-r#rS zu$I(fh!1)HF)q>eJJ@Yg&=Jbjv$BK;IkEiU6Wc6Q) zL9TnTY{Qwf(ZHt$TnR7&axVp97#STbQ1F1!*~A=89K?7tF+u!Bd@;&}Kxh*#*@R;J zZ-~n{K4lPN=hJ`GEAI^yjOZM0#s*P-&dSP4;e<=HBxq!nKY$~@WjX(2GnqpNxjTcU zkpE=!`19Q*Wsrn2nAzhSj$7j&|E51370w1HS)n;6Hy$06cOlzfs1|0`h%+73(Eo)kvV#Ue{1bAGEJ%< ztI>acbweh3V;!+*L3m@vpzKM)cv3?(voTef76;W)%Qt;i{52{W_W^320AXukGM zMVxuI^MO`vh9`n~&wgwLQ;iG2=peQU59CT?F^WK*acWWNE~23bQMwML#IjiS@f}U! zk&&+Jjf`GHLx%_JhXQVB7TMm@#IPf>wuon*vxf!Om!GX$w2o**cVf&$({~|)9GUzq zgJkG=Gk9$wD5CQwTI<4J=IPt?>|Ob7-)An0ER0oMBZA4rDZ{I|!i{Srt+d!cR!kqn zxj|NK{FGuCmgLm$(~;`QCB!HNMJrWnT7_}S%W?uw^>2;i^CwC$-qSBRGT4zyg2{i? z-E_Yfp_II3SL)e|k`WEKayS>ciTw7X=Z$uyWaJ%Xanei8J3UHjIs`hVEjcRK5mUC+ zPi3sc;ap$}~0X3B4AWkz)MezQ#VqdEG%Vo%aZrOw^Y5j*b!sG&Q z74L-|_V@sCi!>)$FD1IG#pXJhDw>Lwd*gq>pU6+LR@U;89XAawbA46rma#`}m#u%D z)74^$bd4Y#3xeEdpEeFvtPE?Qn#c;J8M^IpCLY?&6&~fNW%zqXk3~liQgx>L^ntwg zaRQ(4lc&Un@XO5w>>SW!esStrxMXJgV|*n~kioQj$u9AYLRu|+%~vP2R%P;eXus_Z zPtQ3s(WX>fw(a<~qTOk0Fc3eA1$@%o+Oh(I@BqY(5C=#jG+}O8-YHYt9Jd2ninxI* z>e&!^x4O^IR$ndXIy#KT`TeuWMh7j%J~0g=JgtXwdBA(ubu}2cbVP6e4-WoDh9Bq5 zG|)eI9UIZuBjN(as3FF_L-th|CaQuJ=P-b-3B>|8WMX{5CY`0(@+9z8~ zfHEYEw9!fYVOD*htYV&B@ZA|04l%ML=I0fb*VKuRZ}iq@mD4r4hth@7Ywnh)=;8+c zJt)uZpLY_h>Bbc;?%o{bpypT(3PCLaaWDwKkc85NQZyN?>ALPhvn~&hR6;U{l?;Xr z<5!pzmXn-Hr`y4joPu$lA|QuzWd%ApP)w3Kmx8zk87FcxDjS2cu0AM)W8_j;ntC$h zhq$F@(k3?9BQ0hNFqp-X_2OfZ9YM6bJ)T%jv2EnGLw6k`L6IoDaIo~@tD^Z^2SR+f zLxytcux5H+K^1)Ld7XQN>sO>fsG$4N%pCmsMKG$W$Mx#uX}MdsY31Zld@5VT?kj-q zokv)N)7JBtqZQ~Z=)4|EqM6e!b76F$7+psA2KqO3;j|s{`y_i}i<{u_{x8hGJY_py zydZV=6@t`GL0C`OTo1_+q^f^c&5sFVxE+cQhF#6FXUS1BbEHcf#efkVL?-TYXXR-r zwYX$JIjzp#;KBl%5iri|r~RIyB&Q^MHQ=j{5+F=*ifj9FW-E1-+M1s(cXEn9?^dHn z(nI}Sr}1ZMMawkSBb55aA(21YKMH6Mjic^`$0vL1vI1j88|+1WMiO9Omj|&d>u~W` z;ox)0pMeJ~8k1$QDA9SC`fe3iXB>JI@BY~agJpDpFX?G00~S~7nN`}h@7UmZOxr#- zmK5KC_CC^etkrIued&RyA-RbGe~HA~V{BeI4xU*SlR^RZ*O@XMe>l=S3+xchtg zf+u}id5AUHAMP`ulTnv))Jaq+q*m`VgRP&J()t-jFT_$iE+sGogpc3;5L+UA zrSx@N<({3I?Bq;?vXiTxqaI>30!I!5E2C9&=;zISN8~*rB#g*?YTSa#nVwJDcD`!c z-EC^H=t5KrZtGO-p=T*KueH!V1FUa6`1|WJ*u*!VO9F%b(npLV!^QwMiKF1aqU5u> zy7mGQR3em($lh2_B637q&G`DQd;)GScsGo!q@|4@z^8OrA91VC-qn{B6r zx9w}Ivw5t3{FG4BQl?+43&@+&A2j?OrNioANKQUHN#D~bIJw&M?9}7;ceKd5mD9zK z9o>WfX4p8GYNE-zmg%Gv^eqL8mR&x9oa$fV1aI)AyPOrXjN<^9=QoV;m>bzfEw%rY ztC0IN3ctJN@}5-JQe11wU4x6(TJ_^^V`J$BNM+80MDbB7UmSA_geNb8!_K#xrW~OJB_hN#Xba(!@n1&n1-= zxR9Xjfh4?m|Kk-UmTgN0hl81CY9%CrFHU)gAl#p!d(ii=`vYNy3 z4$njZOoDyQIxC(2&?we+2yY)Oo%}%($R!LbI9LQ66a`{cKmCYq%$*ULWn&>JM<<2> zW_N7mBmcioEoYDDq^5L_2oBCdu0%Jv8b+C-BV`a3B*<_oM=|gvHY29GVBQ`C1I0&) zVBI#mg3e8?IdaaK&-NGDaZR_5ClBpesf-UE->|x zpV+6vproP@2Y=kQXHLQ=7yBomUPHn!@CTcq8dYMdeH0B1h1Jch@c8YJ8*R~ULcdCr z{IHs9K~5HAu}hpAp|q^FNyXxP;LqVmWTvU9yBRSNQEF))tD|f4IN?j0uFGUL;mUEl z3B|~sY-Yo0!9M3b7xGpTp2y;KSABPvf;Ad4Pw{x5ei_Fw7E~f>l*-NFz?V@5b<6HH zqxg;s{0f(0)h^!R*CvP__42V?eK9kmjURIk8&Y^V)$dFdLqviTVG!~0Bcw?%OTYtL z$cEIDL9*iRP|(@Xt+=%$#1b(EBNCxsg}$KWdKdWm*c@c7@J=%>5}Lhr1x7WVipy{) zg;7qvbr%k2P9U872iR0!2;F1&jm8OG8usPE^@l1YSLa}j^3er*VpzqT?ooSL`fTOP zTp%CBkh{UJ!kc{Xs*dTPp%leRr;Nl{mHaE#<-eADG9MQFQPakDDR?rWALT70pwlo+ zZO8Gx&b3t^j}i?UDmu84evDZ~cjjJFSyPevSCTg3)%+aVT9rQ4q#yORUX;?V?4^L zl!R8gc(!a-q80ts%KARSryM&wv|3F>f1vp%JOP)~V`@JTsA?hN2Sj_~^YfM#{^)qj>}q zv3@b{sO6Ge|Dvg=cr4s6C~1>pY+64CMV?qK-STARAYu|c1?xz+Ty(+f0Tv-;cr2d; ztmk0#mG0#jz4z#WF*Ay8yBp9~GB#lhz%~>*ilb5Cm2}jb7}noHmJI$R z@Yj?jw!g&%oszpN;crLI9;b0%g!D$`kBW|QHp+jYxsxBrPkz0YT9$J zfe{I*o^FHXD2nTps5sRATaIPFQ%&A0rLj?4+os!>SXtt_a)WRmKF%upwV$LMOh6sxU=rj9&v*ZlbJ;+WE7tE9;U9 zd`WiZJTZD&=G36z(!u2VpW-e8G+_1?r7!C|a2p9*5&VLtYV&QD9sE=^f%OCMmTu<+ z?ZL(|b0z{0&T3mrF`XOr_@Mvnf#@`OTmsNgrAWVqqk*BD>dIgYfu{eMezDygiB?#&4C`gST%xnKl#W^Y# zP)~s}8t8aAoeu^1#6Khu-J!1EBY$;NVt`b+?ZVC~Sw!=;&#n_^#Ej>(H;zr6bfrd;A3HdF=aabdk4vS%TfcP_!~QNDkv=`Q2;F#!2eO7QCZtyRyiw3FnpR3OxMlMF=62;X5RbvF zoUl1OP0iJ$hLwyj6j4^Q@zUu(h z``MeA#Xb^Pd2N~fx^lHGI!!hZg!4JwG>#YiR@tZHB*$%jBr_=u)$4jK41D^Hlvv*i z;HILGi!I=AXTD1+9c%ZPZ-NY+Qg2mpk7Kl7Wx$$~8#>#37~`-&JYfj+7pNhj;2C~p6GoZ`+0zzo2{-qVyuG(wl;B%zvWx^hH~pPjZTY} zwbp{H*B|Z={u=`F-R9oArNr|_+vY)ucspqPb8~(4cafLTj^YWE1M2Gq!!H6vvXWSus{2VdwrU8JRSVS zw!}Z`tne=K8PhMQmH2AkEr5NV->-U1r6_tWOAv87C1-l%6@)^bN^VV^wcz&@@vB=t zI@sMqTwm|#_j52GjZP1f&>!0qNW!7~SNZEVZZWGjG`e1Ly<4cEpNE4w5VmFo<7HW{ zT@OQvZb-R5ztU)3w@_|99~%8lz2BUiHkjKE;YN6V4Fr5(IX(YEx-Z`v?f_XyMTuH5 HE(dC%~0Kmx#vjU80arFI5L(fE-o@TK-{KU54mkVRzuegZ^_rY3ErXA?t zNvqp;pDaLbmpZND0@sqM7IlqvTKs6Q{8zr^o9BKw;a#Kway}IfZ}oJ@1lUs z#j6oUfERQhY(riPC^ze|C!hRw{L;rG`U?vXsG{+t0I$}MWn;V@&S;FXm6Qa%fBG*g z67ce=5ZVmDm_wo@a>IY#9>CHBsI>re_c$QOqLiKBbARB;1$7#-ST(mOozISe!%i%Z zZJ=6Q=c;!j{1RoW%Xr)vEkC7^_5Nk{aE3Siz}@3=RAw4wX2KEV4=U5Mq_&uAn6Bgx zfkUuVaRvzx!#>G{@{k>v<~8gcPkWZR305vC5AEZ#YKXEzZ$JS#jV4t=xK_4k(noIO zT_-0x33PFBUp8E@`{6t?Ij7%#(>_6_n+rf)IzFM*OaCV;j&64R%k21g_cXQ8?dEAp zelhlj(H?uf_Dg(qwCGV{k;q*3jEI?z5Kzn4BxT<2%qItOHm5*uFNoybC<1FFAm_cS z?GT2>AVfA?RoKMj;^HC;tcWu(85`XRmqnfZ2|3@E*P0C~cI!V`sq`s-Lj9)p?R-Hk zb5%~Rz^c~;GU1kGHT>SWv6{3zoQ*{g zY>`Ud7{Ra>xo%Cy3+A#WnIW(4veYAFQl^n1nCnD%ky}7ayCl76=J8h99gN8_MDU5;n~oy05y-(0>FV-&@R?F4lDG3bqUcto-;-=WO;e-=O78)_B&@~}~*ixGu29iVp zZa{*yr%&)pZEvP+wOFiZU5@aO|B$F7^)Z!JpR4uoJK-7SXUtM$`6)u(Cbl~bLNg>Y z`7`>vZp`HUos265UZB=M3jz;D3~kF@T%ugUPJhz!o5R4*OpBxkF%&(%htw#lFrFKt z8`3a9DLx#=M$-gshA63kAHg4Mz2#))F5o7m{6Zw5ieCmAk7iI`qspcneCgjyZp-SO zDFZX$WK5ffkC&59Fd5vbit~%`D?Uj_a_^)UextGn1xbF4M`fboF{GGzgVC>ds}6lUnt@y} zE-S7ggVG65#jz&GgQzzec9X45{!OxT_;bAXG^EQ2CnUDGP7b!PCkO{FhmduKb?`dV zy5RtfG|J{Hk-fdx07E}R3&VlY1LMy|=luCbc}4_AZ;UtJ23H>$Cm81&dsep_+Ergv zJ5;+HyBUU*BRdb?Helo!EcQOfcu07oJUK=OoowXP zp;JGSh)LT=EqrJjZlgGX2Mc12u*6s$EF#qXTJL)OGU+ma>?MI54l@r! z96t?T4mWI!Y^WTY9X}$8kIq&rQhVL^j;lw!*Qd@Qf8AFgv<6aBXR=_zT6eGZeeF)| z!7T4AWVZIh&vzFK(^FY)=5`@H$*!ADEd!W^{b+2i!cthuwL4)R>}?N0tWGRNvQDyX zKX<=3PiUomT`Mt;|wg>F^uWN+ZMq<>*n$ThIZXUW0|?b1tu?S5fSi72Ek5;o*ltNScySFgZ$KEAc) z*Y>X$=VuU<3Q{GsdkVaS|D8UOTb7fKYthWP>7Dh;y4rR^BVD0py6!6HJ>4(d{oJfN zVWZF=Q$BADz=qE&kUq2X_vW4CbuIBd3l6@BY^GGSRb*8vB7C*JXGs<9r&;DI-nS;H z#upI>i=R0nonjnVh6;w`hh0aw?RlJvDfyui(N76;?qNaU(Z~- z*&?A

Cm;=HO=vMwrL#O(=Wwt>$TBM>X%hnmxpK5z{%-{e?$!_ZP&B?il>jZWz9q zRd`S{S>rh!h!wDUbC`1CUUl7cXrFqT}6W!u%u)mf(2yS0|eBU37w6(R4lCs%whmoJ!iCM}Vt zmHguM#B1FS-J6@~hGo0L{wMwUVWQ_YrX+P0t#@3XPRPz?ElN$XEG>q!Z>c)Px@ioi zWGS)8SNS$>WFA#DPL@wbS2~RfDoFU7_&r~>nERMEQa%#0`D0{hD}HMmONm;UQ0qw8 z{Df^Aweb1mchoqzPGkDmbPgkH>AvT^<#O?Dr83L1e{ou|vi;0$1SfmBc~;DF$RHE2 zuzA^cH$ob-SP=03cKVNb3n2|*tjDp3(#H({&Ax@tpCo>pEcGvngq0kY9F>0QnJd-~ z^I-8|mX+L-Gce|>M|6CR{wcAj(D>VpiaU5VSv$oLWV16L#*D0_)KdFEKQ zW!h&IpdcM~)8kpxaf;9pLl*+ z>TAE7|1CTv-0HMz4c6bkobuc0y_3@|fR}Uphl+gM`tMr_^@2a~1ppG7e*psW3K#$Y zp8%oy$S4rBSE%Ght54f^kUu*d!$69FbWL<~hjOmb%sh6rD^wT!BN(p+-{hf$nB!{) zE2%()ka@~CyCWltOW(^MKPC+t8o@dRIw@281#N!z4a*fAJWV=YB&kQy@E$G52C&eu z0lB`)0Fm+r)V@7*5%k|hoUkOj?KZ$_-rC*Jq{i%=%GNbdsJ-1PUaoF^buYOCndZ&M ziXVQyZE}V8yNcIgkOrMuU>;s4(5ubuBhP>R9{2s`1oHwBfL?E(uUBg>%rFj%3B-uaR`Fbn*|bsTJtRC4M9QtzbCuVw8~MrwDiqM6 z=hh)YBX(uVAV4Jv4G*M~^EtCV7(E#sM+3H|mP_UZb^h$`g@Q!m?rCHK%YHViQ9w>_ zGKVJM)h6n#0w8Vsski`{r#UkB0q%w$FR6h7VPpYkQq+faQ6wXRq8ni@S76n`lF<8& ze`iqs>~WY(*>XA4x6#AX;CJ6-UuB*4oSPK9T_g?(cUCZSB3G^#5oa10UmRHr8vFIi=vW?^jGYx<(a82^t%|tCIwD8kf1f1hzKFD%F8y{&7iF!0$N5kOS~~wZ+5^ zv<3B4Q30)*eq>a@!snGKBD6l24KwL#iS}{YJ8#KC=)8gqe|xNIV-6{Cexj~xF!cu8 zu!t|Ps%I|~z{!)T;rYvWPX@C+@W3&no!JSf$V=B8Qh_BrhNxst1duu>dZ+@B zs%WHh0&sVR!219}DF=cYD3>DrObJAerEx+5gS!NlMCeCb@N@`JMTRE=>16ZcM1av# zF%k4&Yf9O4PLQ%|PbUdTl;|EJ9bo%lvm6clD-RW;qGb(X8YLO}8E>fPEjo57PH25O zW+#%J(NOR>wzMMLS8pxy(7%rf>o5OQ3uz9JBx)uxP@gfNRxJihsF5fCN`u= zDmCdCzt9IqL8xXqGOg67BjDK(kR9zpIy4J-q*ix{Q$bqC+uOw!JI;y(#G zJe|@Jg_!z}LEtg@9-Vq+K=!GX?=hq#D5lUd0`O~V-`IdEACt;q!JsX_(BWYk^akVe vV0`e{&&#}g9$;8v_kli{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/web/static/game.js b/web/static/game.js new file mode 100644 index 0000000..43b3800 --- /dev/null +++ b/web/static/game.js @@ -0,0 +1,46 @@ +var canvas = document.getElementById('canvas'), + c = canvas.getContext('2d'), + birdie = document.getElementById('birdie'), + socket = io(); + +var JUMP_SPEED = 7 +var bird = { + x: 0, + y: 0, +} + +WALL_WIDTH = 30 +GATE_HEIGHT = 60 +var wall = { + x: 0, + gate: { + y: 0, + height: GATE_HEIGHT + }, + width: WALL_WIDTH, +} + +var game = { + width: 250, + height: 200, + lost: false, + score: 0, +} + +socket.on('game', function() { + +}); + +(function loop() { + requestAnimationFrame(function() { + + loop(); + }); +}) + + +function draw() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + + ctx.draw +} diff --git a/web/static/index.html b/web/static/index.html new file mode 100644 index 0000000..5878148 --- /dev/null +++ b/web/static/index.html @@ -0,0 +1,81 @@ + + + Playing Flappy Bird using Evolution Strategies + + + + + + + + + + + + + + + + + + + + + + + +

+

Playing Flappy Bird using Evolution Strategies

+
+ +
+
+
+
+
+ +
+ +
+ +
+ +
+
+
+
+
replay
+
+ + +
+
+
+
+
+ + +
+
+ +
+ + + +
+ + + + + + + diff --git a/web/static/js/buzz.min.js b/web/static/js/buzz.min.js new file mode 100644 index 0000000..556ce76 --- /dev/null +++ b/web/static/js/buzz.min.js @@ -0,0 +1,11 @@ + // ---------------------------------------------------------------------------- + // Buzz, a Javascript HTML5 Audio library + // v1.1.0 - released 2013-08-15 13:18 + // Licensed under the MIT license. + // http://buzz.jaysalvat.com/ + // ---------------------------------------------------------------------------- + // Copyright (C) 2010-2013 Jay Salvat + // http://jaysalvat.com/ + // ---------------------------------------------------------------------------- + +(function(t,n,e){"undefined"!=typeof module&&module.exports?module.exports=e():"function"==typeof n.define&&n.define.amd?define(t,[],e):n[t]=e()})("buzz",this,function(){var t={defaults:{autoplay:!1,duration:5e3,formats:[],loop:!1,placeholder:"--",preload:"metadata",volume:80,document:document},types:{mp3:"audio/mpeg",ogg:"audio/ogg",wav:"audio/wav",aac:"audio/aac",m4a:"audio/x-m4a"},sounds:[],el:document.createElement("audio"),sound:function(n,e){function i(t){for(var n=[],e=t.length-1,i=0;e>=i;i++)n.push({start:t.start(i),end:t.end(i)});return n}function u(t){return t.split(".").pop()}function s(n,e){var i=r.createElement("source");i.src=e,t.types[u(e)]&&(i.type=t.types[u(e)]),n.appendChild(i)}e=e||{};var r=e.document||t.defaults.document,o=0,a=[],h={},l=t.isSupported();if(this.load=function(){return l?(this.sound.load(),this):this},this.play=function(){return l?(this.sound.play(),this):this},this.togglePlay=function(){return l?(this.sound.paused?this.sound.play():this.sound.pause(),this):this},this.pause=function(){return l?(this.sound.pause(),this):this},this.isPaused=function(){return l?this.sound.paused:null},this.stop=function(){return l?(this.setTime(0),this.sound.pause(),this):this},this.isEnded=function(){return l?this.sound.ended:null},this.loop=function(){return l?(this.sound.loop="loop",this.bind("ended.buzzloop",function(){this.currentTime=0,this.play()}),this):this},this.unloop=function(){return l?(this.sound.removeAttribute("loop"),this.unbind("ended.buzzloop"),this):this},this.mute=function(){return l?(this.sound.muted=!0,this):this},this.unmute=function(){return l?(this.sound.muted=!1,this):this},this.toggleMute=function(){return l?(this.sound.muted=!this.sound.muted,this):this},this.isMuted=function(){return l?this.sound.muted:null},this.setVolume=function(t){return l?(0>t&&(t=0),t>100&&(t=100),this.volume=t,this.sound.volume=t/100,this):this},this.getVolume=function(){return l?this.volume:this},this.increaseVolume=function(t){return this.setVolume(this.volume+(t||1))},this.decreaseVolume=function(t){return this.setVolume(this.volume-(t||1))},this.setTime=function(t){if(!l)return this;var n=!0;return this.whenReady(function(){n===!0&&(n=!1,this.sound.currentTime=t)}),this},this.getTime=function(){if(!l)return null;var n=Math.round(100*this.sound.currentTime)/100;return isNaN(n)?t.defaults.placeholder:n},this.setPercent=function(n){return l?this.setTime(t.fromPercent(n,this.sound.duration)):this},this.getPercent=function(){if(!l)return null;var n=Math.round(t.toPercent(this.sound.currentTime,this.sound.duration));return isNaN(n)?t.defaults.placeholder:n},this.setSpeed=function(t){return l?(this.sound.playbackRate=t,this):this},this.getSpeed=function(){return l?this.sound.playbackRate:null},this.getDuration=function(){if(!l)return null;var n=Math.round(100*this.sound.duration)/100;return isNaN(n)?t.defaults.placeholder:n},this.getPlayed=function(){return l?i(this.sound.played):null},this.getBuffered=function(){return l?i(this.sound.buffered):null},this.getSeekable=function(){return l?i(this.sound.seekable):null},this.getErrorCode=function(){return l&&this.sound.error?this.sound.error.code:0},this.getErrorMessage=function(){if(!l)return null;switch(this.getErrorCode()){case 1:return"MEDIA_ERR_ABORTED";case 2:return"MEDIA_ERR_NETWORK";case 3:return"MEDIA_ERR_DECODE";case 4:return"MEDIA_ERR_SRC_NOT_SUPPORTED";default:return null}},this.getStateCode=function(){return l?this.sound.readyState:null},this.getStateMessage=function(){if(!l)return null;switch(this.getStateCode()){case 0:return"HAVE_NOTHING";case 1:return"HAVE_METADATA";case 2:return"HAVE_CURRENT_DATA";case 3:return"HAVE_FUTURE_DATA";case 4:return"HAVE_ENOUGH_DATA";default:return null}},this.getNetworkStateCode=function(){return l?this.sound.networkState:null},this.getNetworkStateMessage=function(){if(!l)return null;switch(this.getNetworkStateCode()){case 0:return"NETWORK_EMPTY";case 1:return"NETWORK_IDLE";case 2:return"NETWORK_LOADING";case 3:return"NETWORK_NO_SOURCE";default:return null}},this.set=function(t,n){return l?(this.sound[t]=n,this):this},this.get=function(t){return l?t?this.sound[t]:this.sound:null},this.bind=function(t,n){if(!l)return this;t=t.split(" ");for(var e=this,i=function(t){n.call(e,t)},u=0;t.length>u;u++){var s=t[u],r=s;s=r.split(".")[0],a.push({idx:r,func:i}),this.sound.addEventListener(s,i,!0)}return this},this.unbind=function(t){if(!l)return this;t=t.split(" ");for(var n=0;t.length>n;n++)for(var e=t[n],i=e.split(".")[0],u=0;a.length>u;u++){var s=a[u].idx.split(".");(a[u].idx==e||s[1]&&s[1]==e.replace(".",""))&&(this.sound.removeEventListener(i,a[u].func,!0),a.splice(u,1))}return this},this.bindOnce=function(t,n){if(!l)return this;var e=this;return h[o++]=!1,this.bind(t+"."+o,function(){h[o]||(h[o]=!0,n.call(e)),e.unbind(t+"."+o)}),this},this.trigger=function(t){if(!l)return this;t=t.split(" ");for(var n=0;t.length>n;n++)for(var e=t[n],i=0;a.length>i;i++){var u=a[i].idx.split(".");if(a[i].idx==e||u[0]&&u[0]==e.replace(".","")){var s=r.createEvent("HTMLEvents");s.initEvent(u[0],!1,!0),this.sound.dispatchEvent(s)}}return this},this.fadeTo=function(n,e,i){function u(){setTimeout(function(){n>s&&n>o.volume?(o.setVolume(o.volume+=1),u()):s>n&&o.volume>n?(o.setVolume(o.volume-=1),u()):i instanceof Function&&i.apply(o)},r)}if(!l)return this;e instanceof Function?(i=e,e=t.defaults.duration):e=e||t.defaults.duration;var s=this.volume,r=e/Math.abs(s-n),o=this;return this.play(),this.whenReady(function(){u()}),this},this.fadeIn=function(t,n){return l?this.setVolume(0).fadeTo(100,t,n):this},this.fadeOut=function(t,n){return l?this.fadeTo(0,t,n):this},this.fadeWith=function(t,n){return l?(this.fadeOut(n,function(){this.stop()}),t.play().fadeIn(n),this):this},this.whenReady=function(t){if(!l)return null;var n=this;0===this.sound.readyState?this.bind("canplay.buzzwhenready",function(){t.call(n)}):t.call(n)},l&&n){for(var d in t.defaults)t.defaults.hasOwnProperty(d)&&(e[d]=e[d]||t.defaults[d]);if(this.sound=r.createElement("audio"),n instanceof Array)for(var c in n)n.hasOwnProperty(c)&&s(this.sound,n[c]);else if(e.formats.length)for(var f in e.formats)e.formats.hasOwnProperty(f)&&s(this.sound,n+"."+e.formats[f]);else s(this.sound,n);e.loop&&this.loop(),e.autoplay&&(this.sound.autoplay="autoplay"),this.sound.preload=e.preload===!0?"auto":e.preload===!1?"none":e.preload,this.setVolume(e.volume),t.sounds.push(this)}},group:function(t){function n(){for(var n=e(null,arguments),i=n.shift(),u=0;t.length>u;u++)t[u][i].apply(t[u],n)}function e(t,n){return t instanceof Array?t:Array.prototype.slice.call(n)}t=e(t,arguments),this.getSounds=function(){return t},this.add=function(n){n=e(n,arguments);for(var i=0;n.length>i;i++)t.push(n[i])},this.remove=function(n){n=e(n,arguments);for(var i=0;n.length>i;i++)for(var u=0;t.length>u;u++)if(t[u]==n[i]){t.splice(u,1);break}},this.load=function(){return n("load"),this},this.play=function(){return n("play"),this},this.togglePlay=function(){return n("togglePlay"),this},this.pause=function(t){return n("pause",t),this},this.stop=function(){return n("stop"),this},this.mute=function(){return n("mute"),this},this.unmute=function(){return n("unmute"),this},this.toggleMute=function(){return n("toggleMute"),this},this.setVolume=function(t){return n("setVolume",t),this},this.increaseVolume=function(t){return n("increaseVolume",t),this},this.decreaseVolume=function(t){return n("decreaseVolume",t),this},this.loop=function(){return n("loop"),this},this.unloop=function(){return n("unloop"),this},this.setTime=function(t){return n("setTime",t),this},this.set=function(t,e){return n("set",t,e),this},this.bind=function(t,e){return n("bind",t,e),this},this.unbind=function(t){return n("unbind",t),this},this.bindOnce=function(t,e){return n("bindOnce",t,e),this},this.trigger=function(t){return n("trigger",t),this},this.fade=function(t,e,i,u){return n("fade",t,e,i,u),this},this.fadeIn=function(t,e){return n("fadeIn",t,e),this},this.fadeOut=function(t,e){return n("fadeOut",t,e),this}},all:function(){return new t.group(t.sounds)},isSupported:function(){return!!t.el.canPlayType},isOGGSupported:function(){return!!t.el.canPlayType&&t.el.canPlayType('audio/ogg; codecs="vorbis"')},isWAVSupported:function(){return!!t.el.canPlayType&&t.el.canPlayType('audio/wav; codecs="1"')},isMP3Supported:function(){return!!t.el.canPlayType&&t.el.canPlayType("audio/mpeg;")},isAACSupported:function(){return!!t.el.canPlayType&&(t.el.canPlayType("audio/x-m4a;")||t.el.canPlayType("audio/aac;"))},toTimer:function(t,n){var e,i,u;return e=Math.floor(t/3600),e=isNaN(e)?"--":e>=10?e:"0"+e,i=n?Math.floor(t/60%60):Math.floor(t/60),i=isNaN(i)?"--":i>=10?i:"0"+i,u=Math.floor(t%60),u=isNaN(u)?"--":u>=10?u:"0"+u,n?e+":"+i+":"+u:i+":"+u},fromTimer:function(t){var n=(""+t).split(":");return n&&3==n.length&&(t=3600*parseInt(n[0],10)+60*parseInt(n[1],10)+parseInt(n[2],10)),n&&2==n.length&&(t=60*parseInt(n[0],10)+parseInt(n[1],10)),t},toPercent:function(t,n,e){var i=Math.pow(10,e||0);return Math.round(100*t/n*i)/i},fromPercent:function(t,n,e){var i=Math.pow(10,e||0);return Math.round(n/100*t*i)/i}};return t}); \ No newline at end of file diff --git a/web/static/js/jquery.min.js b/web/static/js/jquery.min.js new file mode 100644 index 0000000..da41706 --- /dev/null +++ b/web/static/js/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("