Version Description
- Updated the player to version 7.0.2.
Download this release
Release Info
Developer | naa986 |
Plugin | Easy Video Player |
Version | 1.1.5 |
Comparing to | |
See all releases |
Code changes from version 1.1.4 to 1.1.5
- easy-video-player.php +27 -19
- lib/embed.min.js +0 -1
- lib/flowplayer.js +9391 -2049
- lib/flowplayer.min.js +6 -3
- lib/flowplayer.swf +0 -0
- lib/flowplayerhls.swf +0 -0
- lib/skin/all-skins.css +0 -700
- lib/skin/functional.css +0 -232
- lib/skin/icons/flowplayer.eot +0 -0
- lib/skin/icons/flowplayer.svg +98 -0
- lib/skin/icons/flowplayer.ttf +0 -0
- lib/skin/icons/flowplayer.woff +0 -0
- lib/skin/icons/flowplayer.woff2 +0 -0
- lib/skin/img/black.png +0 -0
- lib/skin/img/black@x2.png +0 -0
- lib/skin/img/black_rtl.png +0 -0
- lib/skin/img/black_rtl@x2.png +0 -0
- lib/skin/img/flowplayer.png +0 -0
- lib/skin/img/flowplayer@2x.png +0 -0
- lib/skin/img/play_black.png +0 -0
- lib/skin/img/play_black@x2.png +0 -0
- lib/skin/img/play_black_rtl.png +0 -0
- lib/skin/img/play_black_rtl@x2.png +0 -0
- lib/skin/img/play_white.png +0 -0
- lib/skin/img/play_white@x2.png +0 -0
- lib/skin/img/play_white_rtl.png +0 -0
- lib/skin/img/play_white_rtl@x2.png +0 -0
- lib/skin/img/playful_black.png +0 -0
- lib/skin/img/playful_black@x2.png +0 -0
- lib/skin/img/playful_black_rtl.png +0 -0
- lib/skin/img/playful_black_rtl@x2.png +0 -0
- lib/skin/img/playful_white.png +0 -0
- lib/skin/img/playful_white@x2.png +0 -0
- lib/skin/img/playful_white_rtl.png +0 -0
- lib/skin/img/playful_white_rtl@x2.png +0 -0
- lib/skin/img/white.png +0 -0
- lib/skin/img/white@x2.png +0 -0
- lib/skin/img/white_rtl.png +0 -0
- lib/skin/img/white_rtl@x2.png +0 -0
- lib/skin/minimalist.css +0 -232
- lib/skin/playful.css +0 -236
- lib/skin/skin.css +1010 -0
- readme.txt +8 -3
easy-video-player.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Easy Video Player
|
4 |
-
Version: 1.1.
|
5 |
Plugin URI: http://noorsplugin.com/wordpress-video-plugin/
|
6 |
Author: naa986
|
7 |
Author URI: http://noorsplugin.com/
|
@@ -17,7 +17,7 @@ if (!class_exists('EASY_VIDEO_PLAYER')) {
|
|
17 |
|
18 |
class EASY_VIDEO_PLAYER {
|
19 |
|
20 |
-
var $plugin_version = '1.1.
|
21 |
|
22 |
function __construct() {
|
23 |
define('EASY_VIDEO_PLAYER_VERSION', $this->plugin_version);
|
@@ -26,7 +26,7 @@ if (!class_exists('EASY_VIDEO_PLAYER')) {
|
|
26 |
|
27 |
function plugin_includes() {
|
28 |
if (is_admin()) {
|
29 |
-
add_filter('plugin_action_links', array(
|
30 |
}
|
31 |
add_action('plugins_loaded', array($this, 'plugins_loaded_handler'));
|
32 |
add_action('wp_enqueue_scripts', 'easy_video_player_enqueue_scripts');
|
@@ -109,7 +109,7 @@ function easy_video_player_enqueue_scripts() {
|
|
109 |
}
|
110 |
wp_register_script('flowplayer-js', $plugin_url . '/lib/flowplayer.min.js');
|
111 |
wp_enqueue_script('flowplayer-js');
|
112 |
-
wp_register_style('flowplayer-css', $plugin_url . '/lib/skin/
|
113 |
wp_enqueue_style('flowplayer-css');
|
114 |
}
|
115 |
}
|
@@ -128,19 +128,19 @@ function easy_video_player_header() {
|
|
128 |
|
129 |
function evp_embed_video_handler($atts) {
|
130 |
extract(shortcode_atts(array(
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
//check if mediaelement template is specified
|
145 |
if($template=='mediaelement'){
|
146 |
$attr = array();
|
@@ -189,6 +189,7 @@ function evp_embed_video_handler($atts) {
|
|
189 |
else{
|
190 |
$muted = "";
|
191 |
}
|
|
|
192 |
$player = "fp" . uniqid();
|
193 |
$color = '';
|
194 |
if (!empty($poster)) {
|
@@ -200,10 +201,11 @@ function evp_embed_video_handler($atts) {
|
|
200 |
if (!empty($width)) {
|
201 |
$size_attr = "max-width: {$width}px;max-height: auto;";
|
202 |
}
|
|
|
203 |
$class_array = array('flowplayer', 'minimalist');
|
204 |
if(!empty($class)){
|
205 |
$shortcode_class_array = array_map('trim', explode(' ', $class));
|
206 |
-
$shortcode_class_array = array_filter( $shortcode_class_array, 'strlen' );
|
207 |
$shortcode_class_array = array_values($shortcode_class_array);
|
208 |
if(in_array("functional", $shortcode_class_array) || in_array("playful", $shortcode_class_array)){
|
209 |
$class_array = array_diff($class_array, array('minimalist'));
|
@@ -214,6 +216,12 @@ function evp_embed_video_handler($atts) {
|
|
214 |
}
|
215 |
|
216 |
$classes = implode(" ", $class_array);
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
$styles = <<<EOT
|
218 |
<style>
|
219 |
#$player {
|
@@ -224,7 +232,7 @@ function evp_embed_video_handler($atts) {
|
|
224 |
EOT;
|
225 |
|
226 |
$output = <<<EOT
|
227 |
-
<div id="$player" data-ratio="$ratio" class="{$
|
228 |
<video{$video_id}{$autoplay}{$loop}{$muted}>
|
229 |
<source type="video/mp4" src="$url"/>
|
230 |
</video>
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Easy Video Player
|
4 |
+
Version: 1.1.5
|
5 |
Plugin URI: http://noorsplugin.com/wordpress-video-plugin/
|
6 |
Author: naa986
|
7 |
Author URI: http://noorsplugin.com/
|
17 |
|
18 |
class EASY_VIDEO_PLAYER {
|
19 |
|
20 |
+
var $plugin_version = '1.1.5';
|
21 |
|
22 |
function __construct() {
|
23 |
define('EASY_VIDEO_PLAYER_VERSION', $this->plugin_version);
|
26 |
|
27 |
function plugin_includes() {
|
28 |
if (is_admin()) {
|
29 |
+
add_filter('plugin_action_links', array($this, 'easy_video_player_plugin_action_links'), 10, 2);
|
30 |
}
|
31 |
add_action('plugins_loaded', array($this, 'plugins_loaded_handler'));
|
32 |
add_action('wp_enqueue_scripts', 'easy_video_player_enqueue_scripts');
|
109 |
}
|
110 |
wp_register_script('flowplayer-js', $plugin_url . '/lib/flowplayer.min.js');
|
111 |
wp_enqueue_script('flowplayer-js');
|
112 |
+
wp_register_style('flowplayer-css', $plugin_url . '/lib/skin/skin.css');
|
113 |
wp_enqueue_style('flowplayer-css');
|
114 |
}
|
115 |
}
|
128 |
|
129 |
function evp_embed_video_handler($atts) {
|
130 |
extract(shortcode_atts(array(
|
131 |
+
'url' => '',
|
132 |
+
'width' => '',
|
133 |
+
'height' => '',
|
134 |
+
'ratio' => '0.417',
|
135 |
+
'autoplay' => 'false',
|
136 |
+
'poster' => '',
|
137 |
+
'loop' => '',
|
138 |
+
'muted' => '',
|
139 |
+
'preload' => 'metadata',
|
140 |
+
'video_id' => '',
|
141 |
+
'class' => '',
|
142 |
+
'template' => '',
|
143 |
+
), $atts));
|
144 |
//check if mediaelement template is specified
|
145 |
if($template=='mediaelement'){
|
146 |
$attr = array();
|
189 |
else{
|
190 |
$muted = "";
|
191 |
}
|
192 |
+
|
193 |
$player = "fp" . uniqid();
|
194 |
$color = '';
|
195 |
if (!empty($poster)) {
|
201 |
if (!empty($width)) {
|
202 |
$size_attr = "max-width: {$width}px;max-height: auto;";
|
203 |
}
|
204 |
+
/*
|
205 |
$class_array = array('flowplayer', 'minimalist');
|
206 |
if(!empty($class)){
|
207 |
$shortcode_class_array = array_map('trim', explode(' ', $class));
|
208 |
+
$shortcode_class_array = array_filter( $shortcode_class_array, 'strlen' ); //remove NULL, FALSE and Empty Strings (""), but leave values of 0 (zero)
|
209 |
$shortcode_class_array = array_values($shortcode_class_array);
|
210 |
if(in_array("functional", $shortcode_class_array) || in_array("playful", $shortcode_class_array)){
|
211 |
$class_array = array_diff($class_array, array('minimalist'));
|
216 |
}
|
217 |
|
218 |
$classes = implode(" ", $class_array);
|
219 |
+
*/
|
220 |
+
|
221 |
+
if(!empty($class)){
|
222 |
+
$class = " ".$class;
|
223 |
+
}
|
224 |
+
|
225 |
$styles = <<<EOT
|
226 |
<style>
|
227 |
#$player {
|
232 |
EOT;
|
233 |
|
234 |
$output = <<<EOT
|
235 |
+
<div id="$player" data-ratio="$ratio" class="flowplayer{$class}">
|
236 |
<video{$video_id}{$autoplay}{$loop}{$muted}>
|
237 |
<source type="video/mp4" src="$url"/>
|
238 |
</video>
|
lib/embed.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
!function(){function e(e,t,n){if(e)return n(e);if(window.fp5ecc[t])return window.fp5ecc[t].push(n);window.fp5ecc[t]=[n];var r=document.createElement("script");r.onload=r.onreadystatechange=function(){var e=r.readyState;if(void 0===e||/complete|loaded/.test(e))for(var n=window.fp5ecc[t],i=0;i<n.length;i++)n[i]()},r.async=!0,r.src=t,a.insertBefore(r,a.firstChild)}function t(e){if(!window.fp5ecssc[e]){window.fp5ecssc[e]=!0;var t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.href=e,a.insertBefore(t,a.firstChild)}}for(var n,r=document.getElementsByTagName("script"),i=document.createElement("div"),o=0;o<r.length;o++)if(-1!==r[o].innerHTML.indexOf("<video")){n=r[o],n.parentNode.insertBefore(i,n),n.parentNode.removeChild(n);break}var a=document.getElementsByTagName("head")[0],c="//releases.flowplayer.org/5.5.0/commercial",f=n.getAttribute("data-library")||c+"/flowplayer.min.js",d=n.getAttribute("data-swf")||c+"/flowplayer.swf",s=n.getAttribute("data-skin")||c+"/skin/minimalist.css",l="//www.google-analytics.com/ga.js",u="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";window.fp5ecc=window.fp5ecc||{},window.fp5ecssc=window.fp5ecssc||{};var p="undefined"!=typeof jQuery?jQuery().jquery:"",w=p.split("."),m="undefined"!=typeof $&&jQuery!=$;e(Number(w[0])>=1&&Number(w[1])>=7,u,function(r){var o;!r&&m&&(o=jQuery.noConflict());var a=!r&&""!==p;e("undefined"!=typeof _gat,l,function(){e("undefined"!=typeof flowplayer,f,function(e){e||t(s),o=o||jQuery;var r=o(n),c=r.attr("src"),l=o(r.html().replace(/^[ \t\n\r]+/gm,"").replace(/[ \n\t\r]+$/gm,""));o(i).replaceWith(l),l.find(":not(video, source)").remove(),l.flowplayer({swf:d,e:1}),l.data("flowplayer").conf.embed={library:f,swf:d,script:c},a&&o.noConflict(!0)})})})}();
|
|
lib/flowplayer.js
CHANGED
@@ -1,2685 +1,10027 @@
|
|
1 |
/*!
|
2 |
|
3 |
-
Flowplayer
|
4 |
|
5 |
*/
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
var b = $.browser = {},
|
20 |
-
ua = navigator.userAgent.toLowerCase(),
|
21 |
-
match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
22 |
-
/(safari)[ \/]([\w.]+)/.exec(ua) ||
|
23 |
-
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
24 |
-
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
25 |
-
/(msie) ([\w.]+)/.exec(ua) ||
|
26 |
-
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || [];
|
27 |
-
|
28 |
-
if (match[1]) {
|
29 |
-
b[match[1]] = true;
|
30 |
-
b.version = match[2] || "0";
|
31 |
-
}
|
32 |
|
33 |
-
|
|
|
|
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
}
|
41 |
-
});
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
};
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
59 |
} else {
|
60 |
-
|
61 |
-
$(".flowplayer.is-error .fp-message").remove();
|
62 |
-
});
|
63 |
}
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
window.localStorage.flowplayerTestStorage = "test";
|
71 |
-
supportLocalStorage = true;
|
72 |
}
|
73 |
-
}
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
|
|
|
|
|
|
|
|
|
78 |
|
79 |
-
|
|
|
|
|
80 |
|
81 |
-
|
|
|
|
|
82 |
|
83 |
-
|
|
|
|
|
|
|
84 |
|
85 |
-
|
|
|
|
|
|
|
86 |
|
87 |
-
|
|
|
|
|
88 |
|
89 |
-
defaults: {
|
90 |
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
-
|
94 |
-
|
|
|
|
|
|
|
|
|
95 |
|
96 |
-
// first engine to try
|
97 |
-
engine: 'html5',
|
98 |
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
103 |
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
111 |
|
112 |
-
|
|
|
|
|
113 |
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
-
|
|
|
|
|
117 |
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
|
122 |
-
|
|
|
|
|
123 |
|
124 |
-
|
125 |
-
|
|
|
|
|
126 |
|
127 |
-
|
128 |
-
|
|
|
|
|
|
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
136 |
|
137 |
-
// player exceptions
|
138 |
-
'Unsupported video',
|
139 |
-
'Skin not found',
|
140 |
-
'SWF file not found',
|
141 |
-
'Subtitles not found',
|
142 |
-
'Invalid RTMP URL',
|
143 |
-
'Unsupported video format. Try installing Adobe Flash.'
|
144 |
-
],
|
145 |
-
errorUrls: ['','','','','','','','','','',
|
146 |
-
'http://get.adobe.com/flashplayer/'
|
147 |
-
],
|
148 |
-
playlist: [],
|
149 |
-
|
150 |
-
hlsFix: isSafari && safariVersion < 8
|
151 |
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
|
154 |
-
|
|
|
|
|
|
|
155 |
|
156 |
-
// keep track of players
|
157 |
-
var playerCount = 1;
|
158 |
-
|
159 |
-
// jQuery plugin
|
160 |
-
$.fn.flowplayer = function(opts, callback) {
|
161 |
-
|
162 |
-
if (typeof opts == 'string') opts = { swf: opts }
|
163 |
-
if ($.isFunction(opts)) { callback = opts; opts = {} }
|
164 |
-
|
165 |
-
return !opts && this.data("flowplayer") || this.each(function() {
|
166 |
-
|
167 |
-
// private variables
|
168 |
-
var root = $(this).addClass("is-loading"),
|
169 |
-
conf = $.extend({}, flowplayer.defaults, flowplayer.conf, opts, root.data()),
|
170 |
-
videoTag = $("video", root).addClass("fp-engine").removeAttr("controls"),
|
171 |
-
urlResolver = videoTag.length ? new URLResolver(videoTag) : null,
|
172 |
-
storage = {},
|
173 |
-
lastSeekPosition,
|
174 |
-
engine;
|
175 |
-
|
176 |
-
if (conf.playlist.length) { // Create initial video tag if called without
|
177 |
-
var preload = conf.preload || videoTag.attr('preload'), placeHolder;
|
178 |
-
if (videoTag.length) videoTag.replaceWith(placeHolder = $('<p />'));
|
179 |
-
videoTag = $('<video />').addClass('fp-engine');
|
180 |
-
placeHolder ? placeHolder.replaceWith(videoTag) : root.prepend(videoTag);
|
181 |
-
if (flowplayer.support.video) videoTag.attr('preload', preload);
|
182 |
-
if (typeof conf.playlist[0] === 'string') videoTag.attr('src', conf.playlist[0]);
|
183 |
-
else {
|
184 |
-
$.each(conf.playlist[0], function(i, plObj) {
|
185 |
-
for (var type in plObj) {
|
186 |
-
if (plObj.hasOwnProperty(type)) {
|
187 |
-
videoTag.append($('<source />').attr({type: 'video/' + type, src: plObj[type]}));
|
188 |
-
}
|
189 |
-
}
|
190 |
-
});
|
191 |
-
}
|
192 |
-
urlResolver = new URLResolver(videoTag);
|
193 |
|
194 |
-
|
|
|
|
|
195 |
|
196 |
-
|
197 |
-
|
198 |
-
|
|
|
|
|
199 |
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
-
|
203 |
-
storage = supportLocalStorage ? window.localStorage : storage;
|
204 |
-
} catch(e) {}
|
205 |
|
206 |
-
|
207 |
-
|
|
|
208 |
|
209 |
-
|
|
|
|
|
210 |
|
211 |
-
|
212 |
-
|
|
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
currentSpeed: 1,
|
217 |
-
volumeLevel: typeof conf.volume === "undefined" ? storage.volume * 1 : conf.volume,
|
218 |
-
video: {},
|
219 |
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
ready: false,
|
228 |
-
splash: false,
|
229 |
-
rtl: isRTL,
|
230 |
|
231 |
-
|
232 |
-
|
|
|
|
|
233 |
|
234 |
-
|
235 |
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
239 |
|
240 |
-
|
241 |
-
|
242 |
-
|
|
|
243 |
|
244 |
-
|
245 |
-
|
|
|
246 |
|
247 |
-
|
248 |
-
if ($.isFunction(video)) callback = video;
|
249 |
-
if (callback) root.one("ready", callback);
|
250 |
-
} else {
|
251 |
-
api.loading = false;
|
252 |
-
}
|
253 |
-
}
|
254 |
|
255 |
-
return api;
|
256 |
-
},
|
257 |
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
},
|
265 |
|
266 |
-
resume: function() {
|
267 |
|
268 |
-
|
269 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
|
271 |
-
|
272 |
-
if (api.finished) {
|
273 |
-
api.trigger("resume", [api]);
|
274 |
-
api.finished = false;
|
275 |
-
}
|
276 |
-
}
|
277 |
|
278 |
-
|
279 |
-
|
|
|
|
|
280 |
|
281 |
-
|
282 |
-
return api.ready ? api.paused ? api.resume() : api.pause() : api.load();
|
283 |
-
},
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
seek(true) -> 10% forward
|
288 |
-
seek(false) -> 10% backward
|
289 |
-
*/
|
290 |
-
seek: function(time, callback) {
|
291 |
-
if (api.ready && !api.live) {
|
292 |
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
if (
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
api.seeking = false;
|
305 |
-
root.toggleClass("is-seeking", api.seeking); // remove loading indicator
|
306 |
-
}
|
307 |
}
|
308 |
-
return
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
310 |
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
*/
|
318 |
-
seekTo: function(position, fn) {
|
319 |
-
var time = position === undefined ? lastSeekPosition : api.video.duration * 0.1 * position;
|
320 |
-
return api.seek(time, fn);
|
321 |
-
},
|
322 |
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
storage.volume = !isNaN(storage.volume) ? storage.volume : conf.volume; // make sure storage has volume
|
327 |
-
api.volume(flag ? 0 : storage.volume, true);
|
328 |
-
api.trigger("mute", flag);
|
329 |
-
return api;
|
330 |
-
},
|
331 |
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
if (!skipStore) storage.volume = level;
|
336 |
-
engine.volume(level);
|
337 |
-
}
|
338 |
|
339 |
-
|
340 |
-
|
|
|
341 |
|
342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
|
344 |
-
|
|
|
|
|
345 |
|
346 |
-
|
347 |
-
if (typeof val == "boolean") {
|
348 |
-
val = conf.speeds[$.inArray(api.currentSpeed, conf.speeds) + (val ? 1 : -1)] || api.currentSpeed;
|
349 |
-
}
|
350 |
|
351 |
-
|
352 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
}
|
|
|
354 |
|
355 |
-
|
356 |
-
},
|
357 |
|
|
|
|
|
358 |
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
|
|
365 |
}
|
366 |
-
return api;
|
367 |
-
},
|
368 |
|
369 |
-
|
370 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
api.stop();
|
377 |
-
}
|
378 |
-
}
|
379 |
-
return api;
|
380 |
-
},
|
381 |
|
382 |
-
|
383 |
-
if (flag === undefined) flag = !api.disabled;
|
384 |
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
}
|
389 |
-
return api;
|
390 |
-
}
|
391 |
-
|
392 |
-
};
|
393 |
|
394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
|
|
|
|
|
396 |
|
397 |
-
|
398 |
-
$.each(['bind', 'one', 'unbind'], function(i, key) {
|
399 |
-
api[key] = function(type, fn) {
|
400 |
-
root[key](type, fn);
|
401 |
-
return api;
|
402 |
-
};
|
403 |
-
});
|
404 |
|
405 |
-
|
406 |
-
root.trigger(event, [api, arg]);
|
407 |
-
return api;
|
408 |
-
};
|
409 |
|
|
|
410 |
|
411 |
-
|
412 |
-
if (!root.data('flowplayer')) { // Only bind once
|
413 |
-
root.bind("boot", function() {
|
414 |
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
|
|
|
|
|
|
419 |
});
|
420 |
|
421 |
-
//
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
if (conf.live || root.hasClass('is-live')) {
|
430 |
-
api.live = conf.live = true;
|
431 |
-
root.addClass('is-live');
|
432 |
-
}
|
433 |
|
434 |
-
//
|
435 |
-
|
436 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
});
|
438 |
|
439 |
-
// 1. use the configured engine
|
440 |
-
engine = flowplayer.engine[conf.engine];
|
441 |
-
if (engine) engine = engine(api, root);
|
442 |
-
|
443 |
-
if (engine.pick(urlResolver.initialSources)) {
|
444 |
-
api.engine = conf.engine;
|
445 |
-
|
446 |
-
// 2. failed -> try another
|
447 |
-
} else {
|
448 |
-
$.each(flowplayer.engine, function(name, impl) {
|
449 |
-
if (name != conf.engine) {
|
450 |
-
engine = this(api, root);
|
451 |
-
if (engine.pick(urlResolver.initialSources)) {
|
452 |
-
api.engine = name;
|
453 |
-
return false;
|
454 |
-
}
|
455 |
-
}
|
456 |
-
});
|
457 |
-
}
|
458 |
|
459 |
-
|
460 |
-
|
|
|
461 |
|
462 |
-
|
463 |
-
if (!api.engine) return api.trigger("error", { code: flowplayer.support.flashVideo ? 5 : 10 });
|
464 |
|
465 |
-
|
466 |
-
|
|
|
|
|
467 |
|
468 |
-
|
469 |
-
if (conf.disabled) api.disable();
|
470 |
|
471 |
-
|
472 |
-
|
473 |
|
474 |
-
|
475 |
-
|
|
|
|
|
476 |
|
|
|
477 |
|
478 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
479 |
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
var api = $(this).data("flowplayer");
|
484 |
-
if (api.conf.splash) api.unload();
|
485 |
-
});
|
486 |
-
}
|
487 |
|
488 |
-
|
489 |
-
root.addClass("is-loading");
|
490 |
-
api.loading = true;
|
491 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
|
493 |
-
|
494 |
-
|
495 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
|
497 |
-
|
498 |
-
root.removeClass("is-loading");
|
499 |
-
api.loading = false;
|
500 |
-
}
|
501 |
|
502 |
-
|
503 |
-
else notLoading();
|
504 |
|
505 |
-
|
506 |
-
if (api.muted) api.mute(true);
|
507 |
-
else api.volume(api.volumeLevel);
|
508 |
|
509 |
-
|
|
|
510 |
|
511 |
-
var hlsFix = api.conf.hlsFix && /mpegurl/i.exec(video.type);
|
512 |
-
root.toggleClass('hls-fix', !!hlsFix);
|
513 |
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
|
|
|
519 |
|
520 |
-
|
521 |
-
var is_ready = e.type == "ready";
|
522 |
-
root.toggleClass("is-splash", !is_ready).toggleClass("is-ready", is_ready);
|
523 |
-
api.ready = is_ready;
|
524 |
-
api.splash = !is_ready;
|
525 |
|
|
|
|
|
|
|
526 |
|
527 |
-
|
528 |
-
|
529 |
|
|
|
|
|
|
|
530 |
|
531 |
-
|
532 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
|
534 |
-
|
535 |
-
api.volumeLevel = Math.round(level * 100) / 100;
|
536 |
-
if (!api.muted) storage.volume = level;
|
537 |
-
else if (level) api.mute(false);
|
538 |
|
|
|
|
|
|
|
|
|
539 |
|
540 |
-
|
541 |
-
|
542 |
-
root.toggleClass("is-seeking", api.seeking);
|
543 |
|
544 |
-
|
|
|
545 |
|
546 |
-
|
547 |
-
|
|
|
|
|
|
|
|
|
|
|
548 |
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
if (video) {
|
553 |
-
api.paused = !video.duration || !conf.autoplay && (conf.preload != 'none');
|
554 |
-
}
|
555 |
-
}
|
556 |
|
557 |
-
|
558 |
-
api.playing = !api.paused;
|
559 |
|
560 |
-
|
561 |
-
root.toggleClass("is-paused", api.paused).toggleClass("is-playing", api.playing);
|
562 |
|
563 |
-
// sanity check
|
564 |
-
if (!api.load.ed) api.pause();
|
565 |
|
566 |
-
|
567 |
-
|
|
|
|
|
|
|
568 |
|
569 |
-
}).bind("error", function() {
|
570 |
-
videoTag.remove();
|
571 |
-
});
|
572 |
-
}
|
573 |
|
574 |
-
// boot
|
575 |
-
root.trigger("boot", [api, root]).data("flowplayer", api);
|
576 |
|
577 |
-
|
|
|
|
|
578 |
|
579 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
|
581 |
-
|
|
|
582 |
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
|
|
|
|
|
|
|
|
590 |
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
IS_IE = browser.msie || /Trident\/7/.test(UA),
|
596 |
-
IS_IPAD = /iPad|MeeGo/.test(UA) && !/CriOS/.test(UA),
|
597 |
-
IS_IPAD_CHROME = /iPad/.test(UA) && /CriOS/.test(UA),
|
598 |
-
IS_IPHONE = /iP(hone|od)/i.test(UA) && !/iPad/.test(UA),
|
599 |
-
IS_ANDROID = /Android/.test(UA) && !/Firefox/.test(UA),
|
600 |
-
IS_ANDROID_FIREFOX = /Android/.test(UA) && /Firefox/.test(UA),
|
601 |
-
IS_SILK = /Silk/.test(UA),
|
602 |
-
IS_WP = /IEMobile/.test(UA),
|
603 |
-
WP_VER = IS_WP ? parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(UA)[1], 10) : 0,
|
604 |
-
IE_MOBILE_VER = IS_WP ? parseFloat(/IEMobile\/(\d+\.\d+)/.exec(UA)[1], 10) : 0,
|
605 |
-
IPAD_VER = IS_IPAD ? parseIpadVersion(UA) : 0,
|
606 |
-
ANDROID_VER = IS_ANDROID ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
|
607 |
-
$.extend(s, {
|
608 |
-
subtitles: !!video.addTextTrack,
|
609 |
-
fullscreen: typeof document.webkitCancelFullScreen == 'function' && !/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(UA) ||
|
610 |
-
document.mozFullScreenEnabled ||
|
611 |
-
typeof document.exitFullscreen == 'function' ||
|
612 |
-
typeof document.msExitFullscreen == 'function',
|
613 |
-
inlineBlock: !(IS_IE && browser.version < 8),
|
614 |
-
touch: ('ontouchstart' in window),
|
615 |
-
dataload: !IS_IPAD && !IS_IPHONE && !IS_WP,
|
616 |
-
zeropreload: !IS_IE && !IS_ANDROID, // IE supports only preload=metadata
|
617 |
-
volume: !IS_IPAD && !IS_ANDROID && !IS_IPHONE && !IS_SILK && !IS_IPAD_CHROME,
|
618 |
-
cachedVideoTag: !IS_IPAD && !IS_IPHONE && !IS_IPAD_CHROME && !IS_WP,
|
619 |
-
firstframe: !IS_IPHONE && !IS_IPAD && !IS_ANDROID && !IS_SILK && !IS_IPAD_CHROME && !IS_WP && !IS_ANDROID_FIREFOX,
|
620 |
-
inlineVideo: !IS_IPHONE && (!IS_WP || (WP_VER >= 8.1 && IE_MOBILE_VER >= 11)) && (!IS_ANDROID || ANDROID_VER >= 3),
|
621 |
-
hlsDuration: !IS_ANDROID && (!browser.safari || IS_IPAD || IS_IPHONE || IS_IPAD_CHROME),
|
622 |
-
seekable: !IS_IPAD && !IS_IPAD_CHROME
|
623 |
-
});
|
624 |
|
625 |
-
//
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
|
|
631 |
|
632 |
-
|
633 |
-
if (ver.length && !ver[0]) ver = ver.slice(1);
|
634 |
|
635 |
-
|
636 |
-
|
|
|
|
|
637 |
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
s.video && video.canPlayType('video/mp4');
|
642 |
-
} catch (e) {
|
643 |
-
s.video = false;
|
644 |
-
}
|
645 |
|
646 |
-
|
647 |
-
|
648 |
-
|
|
|
|
|
649 |
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
})
|
|
|
|
|
654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
|
|
|
656 |
|
657 |
-
|
658 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
659 |
|
660 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
661 |
|
662 |
-
|
663 |
-
|
664 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
|
666 |
-
|
667 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
668 |
|
669 |
-
|
670 |
-
|
|
|
671 |
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
|
|
679 |
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
};
|
684 |
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
});
|
689 |
|
690 |
-
|
691 |
-
$.each(opts, function(key, value) {
|
692 |
-
tag += '<param name="' + key + '" value="'+ value +'"/>';
|
693 |
-
});
|
694 |
|
695 |
-
|
|
|
|
|
|
|
696 |
|
697 |
-
|
698 |
-
|
|
|
699 |
|
|
|
|
|
|
|
700 |
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
__flash_savedUnloadHandler = __flash_unloadHandler = function() {};
|
705 |
-
});
|
706 |
-
}
|
707 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
708 |
|
709 |
-
|
|
|
|
|
|
|
|
|
|
|
710 |
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
716 |
|
717 |
-
|
718 |
|
719 |
-
|
720 |
-
//
|
721 |
-
|
722 |
-
if (VENDOR == "webkit" || IS_SAFARI) {
|
723 |
-
var flashvars = $("object param[name='flashvars']", root),
|
724 |
-
flashprops = (flashvars.attr("value") || '').split("&");
|
725 |
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
flashprops[i] = "url=" + player.video.url;
|
730 |
-
flashvars.attr({value: flashprops.join("&")});
|
731 |
-
return false;
|
732 |
-
}
|
733 |
-
});
|
734 |
}
|
|
|
735 |
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
var fs = player.isFullscreen,
|
745 |
-
truefs = fs && FS_SUPPORT,
|
746 |
-
ie7 = !flowplayer.support.inlineBlock,
|
747 |
-
screenW = fs ? (truefs ? screen.width : win.width()) : origW,
|
748 |
-
screenH = fs ? (truefs ? screen.height : win.height()) : origH,
|
749 |
-
|
750 |
-
// default values for fullscreen-exit without flashfit
|
751 |
-
hmargin = 0,
|
752 |
-
vmargin = 0,
|
753 |
-
objwidth = ie7 ? origW : '',
|
754 |
-
objheight = ie7 ? origH : '',
|
755 |
-
|
756 |
-
aspectratio, dataratio;
|
757 |
-
|
758 |
-
if (player.conf.flashfit || e.type === "fullscreen") {
|
759 |
-
aspectratio = player.video.width / player.video.height,
|
760 |
-
dataratio = player.video.height / player.video.width,
|
761 |
-
objheight = Math.max(dataratio * screenW),
|
762 |
-
objwidth = Math.max(aspectratio * screenH);
|
763 |
-
objheight = objheight > screenH ? objwidth * dataratio : objheight;
|
764 |
-
objheight = Math.min(Math.round(objheight), screenH);
|
765 |
-
objwidth = objwidth > screenW ? objheight * aspectratio : objwidth;
|
766 |
-
objwidth = Math.min(Math.round(objwidth), screenW);
|
767 |
-
vmargin = Math.max(Math.round((screenH + vmargin - objheight) / 2), 0);
|
768 |
-
hmargin = Math.max(Math.round((screenW + hmargin - objwidth) / 2), 0);
|
769 |
}
|
|
|
770 |
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
});
|
777 |
-
}
|
778 |
-
};
|
779 |
|
|
|
|
|
780 |
|
781 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
782 |
|
783 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
784 |
|
785 |
-
|
786 |
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
|
791 |
-
|
792 |
-
|
793 |
-
|
|
|
794 |
}
|
795 |
-
|
796 |
-
},
|
797 |
|
798 |
-
|
|
|
|
|
|
|
799 |
|
800 |
-
|
801 |
-
return url.replace(/&/g, '%26').replace(/&/g, '%26').replace(/=/g, '%3D');
|
802 |
-
}
|
803 |
|
804 |
-
|
805 |
-
url = escapeURL(video.src);
|
806 |
-
is_absolute = /^https?:/.test(url);
|
807 |
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
};
|
816 |
-
if (flowplayer.support.video &&
|
817 |
-
html5Tag.prop('autoplay') &&
|
818 |
-
hasSupportedSource(video.sources)) html5Tag.one('timeupdate', removeTag);
|
819 |
-
else removeTag();
|
820 |
|
821 |
-
|
822 |
-
|
823 |
|
824 |
-
|
825 |
-
api.__play(url);
|
826 |
|
827 |
-
|
|
|
828 |
|
829 |
-
|
830 |
-
|
831 |
|
832 |
-
|
833 |
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
};
|
839 |
-
if (root.data("origin")) {
|
840 |
-
opts.origin = root.data("origin");
|
841 |
-
}
|
842 |
|
843 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
844 |
|
845 |
-
|
846 |
-
$.each(['key', 'autoplay', 'preload', 'rtmp', 'subscribe', 'live', 'loop', 'debug', 'splash', 'poster', 'rtmpt'], function(i, key) {
|
847 |
-
if (conf.hasOwnProperty(key)) opts[key] = conf[key];
|
848 |
-
});
|
849 |
-
// bufferTime might be 0
|
850 |
-
if (conf.bufferTime !== undefined) opts.bufferTime = conf.bufferTime;
|
851 |
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
|
|
856 |
|
857 |
-
|
858 |
-
|
|
|
|
|
|
|
|
|
859 |
|
860 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
861 |
|
862 |
-
|
863 |
|
864 |
-
|
865 |
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
if (
|
870 |
-
return
|
871 |
}
|
872 |
-
|
873 |
-
}, 5000);
|
874 |
|
875 |
-
// detect disabled flash
|
876 |
-
setTimeout(function() {
|
877 |
-
if (typeof api.PercentLoaded === 'undefined') {
|
878 |
-
root.trigger('flashdisabled', [player]);
|
879 |
-
}
|
880 |
-
}, 1000);
|
881 |
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
if (!status) return;
|
886 |
|
887 |
-
|
|
|
|
|
888 |
|
889 |
-
|
890 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
891 |
|
892 |
-
|
893 |
-
video.buffered = true;
|
894 |
-
player.trigger("buffered");
|
895 |
-
}
|
896 |
|
897 |
-
}, 250);
|
898 |
|
899 |
-
|
900 |
-
|
|
|
|
|
901 |
|
902 |
-
|
|
|
903 |
|
904 |
-
|
905 |
|
906 |
-
|
907 |
|
908 |
-
// RTMP sends a lot of finish events in vain
|
909 |
-
// case "finish": if (conf.rtmp) return;
|
910 |
-
case "ready": arg = $.extend(video, arg); break;
|
911 |
-
case "click": event.flash = true; break;
|
912 |
-
case "keydown": event.which = arg; break;
|
913 |
-
case "seek": video.time = arg; break;
|
914 |
-
}
|
915 |
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
}
|
920 |
|
921 |
-
|
922 |
|
923 |
-
|
924 |
|
925 |
-
|
|
|
|
|
|
|
|
|
926 |
|
927 |
-
|
928 |
-
|
|
|
|
|
|
|
929 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
930 |
|
931 |
-
|
932 |
-
api && api.__unload && api.__unload();
|
933 |
-
delete $[callbackId];
|
934 |
-
$("object", root).remove();
|
935 |
-
api = 0;
|
936 |
-
player.unbind('ready', readyCallback).unbind('ready fullscreen fullscreen-exit', fullscreenCallback);
|
937 |
-
clearInterval(api.pollInterval);
|
938 |
-
}
|
939 |
|
940 |
-
|
|
|
|
|
|
|
|
|
941 |
|
942 |
-
|
943 |
|
944 |
-
|
945 |
-
|
946 |
-
|
|
|
|
|
947 |
|
948 |
-
if (name == 'seek' && player.video.time && !player.paused) {
|
949 |
-
player.trigger("beforeseek");
|
950 |
-
}
|
951 |
|
952 |
-
|
953 |
-
api["__" + name]();
|
954 |
|
955 |
-
|
956 |
-
|
957 |
-
|
|
|
|
|
|
|
|
|
|
|
958 |
|
959 |
-
|
960 |
-
} catch (e) {
|
961 |
-
if (typeof api["__" + name] === 'undefined') { //flash lost it's methods
|
962 |
-
return root.trigger('flashdisabled', [player]);
|
963 |
-
}
|
964 |
-
throw e;
|
965 |
-
}
|
966 |
-
};
|
967 |
|
968 |
-
|
969 |
|
970 |
-
|
|
|
971 |
|
972 |
-
|
|
|
|
|
|
|
|
|
973 |
|
|
|
974 |
|
975 |
-
|
976 |
|
977 |
-
|
978 |
-
var
|
979 |
|
980 |
-
// fired
|
981 |
-
ended: 'finish',
|
982 |
-
pause: 'pause',
|
983 |
-
play: 'resume',
|
984 |
-
progress: 'buffer',
|
985 |
-
timeupdate: 'progress',
|
986 |
-
volumechange: 'volume',
|
987 |
-
ratechange: 'speed',
|
988 |
-
//seeking: 'beforeseek',
|
989 |
-
seeked: 'seek',
|
990 |
-
// abort: 'resume',
|
991 |
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
996 |
|
997 |
-
|
998 |
-
// load: 0,
|
999 |
-
// emptied: 0,
|
1000 |
-
// empty: 0,
|
1001 |
-
error: 'error',
|
1002 |
-
dataunavailable: 'error'
|
1003 |
|
1004 |
-
|
1005 |
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
}
|
1010 |
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
|
|
|
|
|
|
|
|
1014 |
|
1015 |
-
function
|
1016 |
-
|
1017 |
-
|
1018 |
-
return !!VIDEO.canPlayType(type).replace("no", '');
|
1019 |
-
}
|
1020 |
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
}
|
1027 |
|
1028 |
-
var videoTagCache;
|
1029 |
-
var createVideoTag = function(video) {
|
1030 |
-
if (videoTagCache) {
|
1031 |
-
return videoTagCache.attr({type: getType(video.type), src: video.src});
|
1032 |
}
|
1033 |
-
return (videoTagCache = $("<video/>", {
|
1034 |
-
src: video.src,
|
1035 |
-
type: getType(video.type),
|
1036 |
-
'class': 'fp-engine',
|
1037 |
-
'autoplay': 'autoplay',
|
1038 |
-
preload: 'none',
|
1039 |
-
'x-webkit-airplay': 'allow'
|
1040 |
-
}));
|
1041 |
-
}
|
1042 |
|
1043 |
-
|
1044 |
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
conf = player.conf,
|
1049 |
-
self,
|
1050 |
-
timer,
|
1051 |
-
api,
|
1052 |
-
volumeLevel;
|
1053 |
|
1054 |
-
|
|
|
|
|
|
|
|
|
1055 |
|
1056 |
-
pick: function(sources) {
|
1057 |
-
if (support.video) {
|
1058 |
-
if (conf.videoTypePreference) {
|
1059 |
-
var mp4source = findFromSourcesByType(sources, conf.videoTypePreference);
|
1060 |
-
if (mp4source) return mp4source;
|
1061 |
-
}
|
1062 |
-
for (var i = 0, source; i < sources.length; i++) {
|
1063 |
-
if (canPlay(sources[i].type)) return sources[i];
|
1064 |
-
}
|
1065 |
-
}
|
1066 |
-
},
|
1067 |
|
1068 |
-
load: function(video) {
|
1069 |
|
1070 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1071 |
|
1072 |
-
|
|
|
|
|
1073 |
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
});
|
1079 |
-
}
|
1080 |
|
1081 |
-
|
|
|
|
|
1082 |
|
1083 |
-
|
|
|
|
|
1084 |
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1089 |
|
1090 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1091 |
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1098 |
|
1099 |
-
|
1100 |
-
if (player.video.src && video.src != player.video.src) {
|
1101 |
-
videoTag.attr("autoplay", "autoplay");
|
1102 |
-
api.src = video.src;
|
1103 |
|
1104 |
-
|
1105 |
-
|
|
|
|
|
|
|
1106 |
|
1107 |
-
|
1108 |
-
player.trigger("ready", video).trigger("pause").one("ready", function() {
|
1109 |
-
root.trigger("resume", [player]);
|
1110 |
-
});
|
1111 |
|
1112 |
-
|
1113 |
-
player.one("ready", function() {
|
1114 |
-
root.trigger("pause", [player]);
|
1115 |
-
});
|
1116 |
-
}
|
1117 |
-
}
|
1118 |
|
1119 |
-
|
1120 |
|
1121 |
-
|
|
|
|
|
|
|
1122 |
|
1123 |
-
|
1124 |
-
if (conf.preload != 'none' && video.type != "mpegurl" || !support.zeropreload || !support.dataload) api.load();
|
1125 |
-
if (conf.splash) api.load();
|
1126 |
-
},
|
1127 |
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
|
|
|
|
|
|
|
|
1131 |
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
|
|
|
|
|
|
|
|
|
|
1135 |
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1139 |
|
1140 |
-
|
1141 |
-
try {
|
1142 |
-
var pausedState = player.paused;
|
1143 |
-
api.currentTime = time;
|
1144 |
-
if (pausedState) api.pause();
|
1145 |
-
} catch (ignored) {}
|
1146 |
-
},
|
1147 |
|
1148 |
-
|
1149 |
-
|
1150 |
-
if (api) {
|
1151 |
-
api.volume = level;
|
1152 |
-
}
|
1153 |
-
},
|
1154 |
|
1155 |
-
|
1156 |
-
|
1157 |
-
if (!support.cachedVideoTag) videoTagCache = null;
|
1158 |
-
timer = clearInterval(timer);
|
1159 |
-
api = 0;
|
1160 |
-
}
|
1161 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1162 |
};
|
1163 |
|
1164 |
-
function
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
}
|
1176 |
-
} catch (er) {
|
1177 |
-
// Most likely: https://bugzilla.mozilla.org/show_bug.cgi?id=208427
|
1178 |
-
}
|
1179 |
-
});
|
1180 |
|
1181 |
-
|
|
|
|
|
|
|
|
|
1182 |
|
1183 |
-
|
1184 |
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
}
|
1192 |
-
}, 10000);
|
1193 |
-
}
|
1194 |
|
1195 |
-
|
1196 |
|
1197 |
-
|
1198 |
-
|
1199 |
|
1200 |
-
|
|
|
1201 |
|
1202 |
-
|
|
|
1203 |
|
1204 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1205 |
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
|
1214 |
-
|
1215 |
-
arg.seekable = !conf.live && /mpegurl/i.test(video ? (video.type || '') : '') && api.duration || api.seekable && api.seekable.end(null);
|
1216 |
|
1217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1218 |
|
1219 |
-
// buffer
|
1220 |
-
timer = timer || setInterval(function() {
|
1221 |
|
1222 |
-
|
1223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1224 |
|
1225 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1226 |
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1230 |
|
1231 |
-
} else if (!arg.buffered) {
|
1232 |
-
arg.buffered = true;
|
1233 |
-
player.trigger("buffer", e).trigger("buffered", e);
|
1234 |
-
clearInterval(timer);
|
1235 |
-
timer = 0;
|
1236 |
-
}
|
1237 |
-
}
|
1238 |
|
1239 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1240 |
|
1241 |
-
|
1242 |
-
var durationChanged = function() {
|
1243 |
-
arg.duration = api.duration;
|
1244 |
-
try {
|
1245 |
-
arg.seekable = api.seekable && api.seekable.end(null);
|
1246 |
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
}
|
1254 |
|
1255 |
-
|
1256 |
|
1257 |
-
|
|
|
|
|
1258 |
|
1259 |
-
|
1260 |
|
1261 |
-
|
1262 |
-
arg = Math.max(api.currentTime, 0);
|
1263 |
-
break;
|
1264 |
|
1265 |
-
|
1266 |
-
return;
|
1267 |
-
}
|
1268 |
|
|
|
1269 |
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
|
|
1273 |
|
1274 |
-
|
1275 |
-
arg = round(api.volume);
|
1276 |
-
break;
|
1277 |
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
}
|
1285 |
-
|
|
|
|
|
1286 |
|
1287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1288 |
|
1289 |
-
|
|
|
|
|
1290 |
|
1291 |
-
|
|
|
1292 |
|
1293 |
-
|
1294 |
|
1295 |
-
|
1296 |
-
|
|
|
|
|
1297 |
|
1298 |
-
function
|
|
|
|
|
|
|
1299 |
|
1300 |
-
|
1301 |
-
|
1302 |
-
suffix = src.split(TYPE_RE)[1];
|
1303 |
-
|
1304 |
-
type = /mpegurl/i.test(type) ? "mpegurl" : type.replace("video/", "");
|
1305 |
-
|
1306 |
-
return { src: src, suffix: suffix || type, type: type || suffix };
|
1307 |
-
}
|
1308 |
|
1309 |
-
|
1310 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1311 |
|
1312 |
-
|
1313 |
-
|
|
|
|
|
|
|
|
|
|
|
1314 |
|
1315 |
-
|
1316 |
-
|
1317 |
-
sources.push(parseSource($(this)));
|
1318 |
});
|
1319 |
|
1320 |
-
|
1321 |
|
1322 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1323 |
|
1324 |
-
|
1325 |
-
|
1326 |
|
1327 |
-
|
|
|
|
|
|
|
1328 |
|
1329 |
-
|
1330 |
-
var type, ret = $.extend({}, el);
|
1331 |
-
$.each(el, function(key, value) { type = key; });
|
1332 |
-
ret.type = type;
|
1333 |
-
ret.src = el[type];
|
1334 |
-
delete ret[type];
|
1335 |
-
return ret;
|
1336 |
-
})};
|
1337 |
|
1338 |
-
|
|
|
|
|
|
|
|
|
1339 |
|
1340 |
-
|
|
|
|
|
|
|
|
|
1341 |
|
1342 |
-
|
1343 |
-
if (source.type != 'flash') {
|
1344 |
-
video.sources.push({
|
1345 |
-
type: source.type,
|
1346 |
-
src: video.src.replace(TYPE_RE, "." + source.suffix + "$2")
|
1347 |
-
});
|
1348 |
-
}
|
1349 |
-
});
|
1350 |
-
}
|
1351 |
|
1352 |
-
|
1353 |
-
};
|
1354 |
|
1355 |
-
|
1356 |
-
|
|
|
|
|
|
|
|
|
1357 |
|
1358 |
-
//
|
1359 |
-
|
1360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1361 |
|
1362 |
-
|
1363 |
-
$.throttle = function(fn, delay) {
|
1364 |
-
var locked;
|
1365 |
|
1366 |
-
|
1367 |
-
if (!locked) {
|
1368 |
-
fn.apply(this, arguments);
|
1369 |
-
locked = 1;
|
1370 |
-
setTimeout(function () { locked = 0; }, delay);
|
1371 |
-
}
|
1372 |
-
};
|
1373 |
-
};
|
1374 |
|
|
|
1375 |
|
1376 |
-
|
|
|
1377 |
|
1378 |
-
|
|
|
|
|
|
|
|
|
1379 |
|
1380 |
-
|
|
|
|
|
1381 |
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
/* exit from fullscreen can mess this up.*/
|
1402 |
-
// vertical = height > width;
|
1403 |
-
|
1404 |
-
size = vertical ? height : width;
|
1405 |
-
max = toDelta(maxValue);
|
1406 |
-
},
|
1407 |
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
api.value = value;
|
1412 |
-
}
|
1413 |
-
},
|
1414 |
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
pageX = e.originalEvent.touches[0].pageX;
|
1419 |
-
}
|
1420 |
-
var delta = vertical ? e.pageY - offset.top : pageX - offset.left;
|
1421 |
-
delta = Math.max(0, Math.min(max || size, delta));
|
1422 |
|
1423 |
-
|
1424 |
-
if (vertical) value = 1 - value;
|
1425 |
-
if (rtl) value = 1 - value;
|
1426 |
-
return move(value, 0, true);
|
1427 |
-
},
|
1428 |
|
1429 |
-
move = function(value, speed) {
|
1430 |
-
if (speed === undefined) { speed = 0; }
|
1431 |
-
if (value > 1) value = 1;
|
1432 |
|
1433 |
-
|
|
|
|
|
|
|
1434 |
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1443 |
|
1444 |
-
|
1445 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1446 |
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1450 |
|
1451 |
-
/* public */
|
1452 |
-
api = {
|
1453 |
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
|
|
|
|
|
|
|
|
|
|
1457 |
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
|
|
1461 |
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
|
|
|
|
|
|
|
|
1467 |
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
}
|
1473 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1474 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1475 |
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
|
|
1481 |
|
1482 |
-
|
1483 |
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
|
1501 |
-
}
|
1502 |
|
1503 |
});
|
1504 |
|
1505 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1506 |
|
1507 |
-
};
|
1508 |
|
1509 |
-
|
1510 |
-
|
1511 |
-
return val >= 10 ? val : "0" + val;
|
1512 |
-
}
|
1513 |
|
1514 |
-
|
1515 |
-
function
|
|
|
|
|
|
|
1516 |
|
1517 |
-
|
|
|
|
|
1518 |
|
1519 |
-
|
1520 |
-
|
|
|
|
|
|
|
|
|
|
|
1521 |
|
1522 |
-
sec = sec - (min * 60);
|
1523 |
|
1524 |
-
|
1525 |
-
min -= h * 60;
|
1526 |
-
return h + ":" + zeropad(min) + ":" + zeropad(sec);
|
1527 |
-
}
|
1528 |
|
1529 |
-
return zeropad(min) + ":" + zeropad(sec);
|
1530 |
}
|
1531 |
|
1532 |
-
flowplayer(function(api, root) {
|
1533 |
-
|
1534 |
-
var conf = api.conf,
|
1535 |
-
support = flowplayer.support,
|
1536 |
-
hovertimer;
|
1537 |
-
root.find('.fp-ratio,.fp-ui').remove();
|
1538 |
-
root.addClass("flowplayer").append('\
|
1539 |
-
<div class="ratio"/>\
|
1540 |
-
<div class="ui">\
|
1541 |
-
<div class="waiting"><em/><em/><em/></div>\
|
1542 |
-
<a class="fullscreen"/>\
|
1543 |
-
<a class="unload"/>\
|
1544 |
-
<p class="speed"/>\
|
1545 |
-
<div class="controls">\
|
1546 |
-
<a class="play"></a>\
|
1547 |
-
<div class="timeline">\
|
1548 |
-
<div class="buffer"/>\
|
1549 |
-
<div class="progress"/>\
|
1550 |
-
</div>\
|
1551 |
-
<div class="volume">\
|
1552 |
-
<a class="mute"></a>\
|
1553 |
-
<div class="volumeslider">\
|
1554 |
-
<div class="volumelevel"/>\
|
1555 |
-
</div>\
|
1556 |
-
</div>\
|
1557 |
-
</div>\
|
1558 |
-
<div class="time">\
|
1559 |
-
<em class="elapsed">00:00</em>\
|
1560 |
-
<em class="remaining"/>\
|
1561 |
-
<em class="duration">00:00</em>\
|
1562 |
-
</div>\
|
1563 |
-
<div class="message"><h2/><p/></div>\
|
1564 |
-
</div>'.replace(/class="/g, 'class="fp-')
|
1565 |
-
);
|
1566 |
-
|
1567 |
-
function find(klass) {
|
1568 |
-
return $(".fp-" + klass, root);
|
1569 |
-
}
|
1570 |
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
|
|
1581 |
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
volumeApi = volumeSlider.data("api"),
|
1590 |
-
noToggle = root.is(".fixed-controls, .no-toggle");
|
1591 |
|
1592 |
-
|
|
|
|
|
|
|
1593 |
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
if (!parseInt(origRatio, 10)) ratio.css("paddingTop", val * 100 + "%");
|
1598 |
-
}
|
1599 |
-
if (!support.inlineBlock) $("object", root).height(root.height());
|
1600 |
}
|
1601 |
|
1602 |
-
function
|
1603 |
-
|
1604 |
}
|
1605 |
|
1606 |
-
// loading...
|
1607 |
-
if (!support.animation) waiting.html("<p>loading …</p>");
|
1608 |
|
1609 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1610 |
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1614 |
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1618 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1619 |
|
1620 |
-
|
|
|
|
|
1621 |
|
1622 |
-
|
|
|
|
|
|
|
1623 |
|
1624 |
-
|
|
|
1625 |
|
1626 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1627 |
|
1628 |
-
|
1629 |
-
|
1630 |
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1634 |
|
1635 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1636 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1637 |
|
1638 |
-
|
1639 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1640 |
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
|
1646 |
-
if (!video.seekable && support.seekable) timelineApi.max(max);
|
1647 |
-
if (max < 1) buffer.css("width", (max * 100) + "%");
|
1648 |
-
else buffer.css({ width: '100%' });
|
1649 |
|
1650 |
-
|
1651 |
-
speed.text(val + "x").addClass("fp-hilite");
|
1652 |
-
setTimeout(function() { speed.removeClass("fp-hilite") }, 1000);
|
1653 |
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
|
|
1657 |
|
1658 |
-
|
1659 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1660 |
|
1661 |
-
|
1662 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1663 |
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
|
|
|
|
|
|
1667 |
|
1668 |
-
|
1669 |
-
remaining.html("-" + format(duration - time));
|
1670 |
|
1671 |
-
|
1672 |
-
|
|
|
|
|
1673 |
|
1674 |
-
|
1675 |
-
elapsed.html(format(0));
|
1676 |
-
timelineApi.slide(0, 100);
|
1677 |
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
|
|
|
|
1682 |
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
|
|
1686 |
|
1687 |
-
|
1688 |
-
|
|
|
1689 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1690 |
|
1691 |
-
|
1692 |
-
var flag = api.disabled;
|
1693 |
-
timelineApi.disable(flag);
|
1694 |
-
volumeApi.disable(flag);
|
1695 |
-
root.toggleClass("is-disabled", api.disabled);
|
1696 |
|
1697 |
-
|
1698 |
-
|
1699 |
|
1700 |
-
}).bind("error", function(e, api, error) {
|
1701 |
-
root.removeClass("is-loading").addClass("is-error");
|
1702 |
|
1703 |
-
|
1704 |
-
|
1705 |
-
api.error = true;
|
1706 |
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1712 |
|
|
|
|
|
|
|
1713 |
|
1714 |
-
|
1715 |
-
}).bind("mouseenter mouseleave", function(e) {
|
1716 |
-
if (noToggle) return;
|
1717 |
|
1718 |
-
|
1719 |
-
|
1720 |
|
1721 |
-
|
1722 |
-
|
|
|
|
|
1723 |
|
1724 |
-
|
|
|
|
|
|
|
|
|
|
|
1725 |
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1730 |
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
}, 100);
|
1737 |
|
1738 |
-
|
1739 |
-
|
1740 |
-
clearInterval(hovertimer);
|
1741 |
-
}
|
1742 |
|
|
|
|
|
|
|
|
|
|
|
1743 |
|
1744 |
-
|
1745 |
-
|
|
|
1746 |
|
1747 |
-
|
1748 |
-
root.addClass("is-mouseover").removeClass("is-mouseout");
|
1749 |
-
}
|
1750 |
|
1751 |
-
|
1752 |
-
|
1753 |
-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1769 |
});
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
|
|
|
|
|
|
|
|
|
|
1773 |
});
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1779 |
|
1780 |
-
// poster -> background image
|
1781 |
-
if (conf.poster) root.css("backgroundImage", "url(" + conf.poster + ")");
|
1782 |
|
1783 |
-
|
1784 |
-
|
|
|
|
|
|
|
|
|
1785 |
|
1786 |
-
|
1787 |
-
|
|
|
|
|
|
|
|
|
|
|
1788 |
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
|
|
|
|
1794 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1795 |
}
|
1796 |
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1801 |
|
1802 |
-
|
|
|
1803 |
|
1804 |
-
|
1805 |
-
|
1806 |
-
find(key).click(function() {
|
1807 |
-
api[key]();
|
1808 |
-
});
|
1809 |
-
});
|
1810 |
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
|
|
|
|
|
|
1815 |
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
});
|
1824 |
|
1825 |
-
hover(noToggle);
|
1826 |
|
1827 |
-
});
|
1828 |
|
1829 |
-
|
1830 |
-
focusedRoot,
|
1831 |
-
IS_HELP = "is-help";
|
1832 |
|
1833 |
-
// keyboard. single global listener
|
1834 |
-
$(document).bind("keydown.fp", function(e) {
|
1835 |
|
1836 |
-
|
1837 |
-
|
1838 |
-
key = e.which,
|
1839 |
-
conf = el && el.conf;
|
1840 |
|
1841 |
-
|
|
|
|
|
1842 |
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1848 |
|
1849 |
-
|
1850 |
-
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
|
|
|
|
|
|
1854 |
|
1855 |
-
|
|
|
|
|
|
|
1856 |
|
1857 |
-
|
|
|
1858 |
|
1859 |
-
|
1860 |
-
|
1861 |
-
if (key == 39) el.speed(true);
|
1862 |
-
else if (key == 37) el.speed(false);
|
1863 |
-
return;
|
1864 |
-
}
|
1865 |
|
1866 |
-
|
1867 |
-
|
1868 |
|
1869 |
-
|
1870 |
-
case 38: case 75: el.volume(el.volumeLevel + 0.15); break; // volume up
|
1871 |
-
case 40: case 74: el.volume(el.volumeLevel - 0.15); break; // volume down
|
1872 |
-
case 39: case 76: el.seeking = true; el.seek(true); break; // forward
|
1873 |
-
case 37: case 72: el.seeking = true; el.seek(false); break; // backward
|
1874 |
-
case 190: el.seekTo(); break; // to last seek position
|
1875 |
-
case 32: el.toggle(); break; // spacebar
|
1876 |
-
case 70: conf.fullscreen && el.fullscreen(); break; // toggle fullscreen
|
1877 |
-
case 77: el.mute(); break; // mute
|
1878 |
-
case 81: el.unload(); break; // unload/stop
|
1879 |
-
}
|
1880 |
|
|
|
|
|
|
|
1881 |
}
|
1882 |
|
1883 |
-
|
1884 |
-
|
1885 |
-
flowplayer(function(api, root) {
|
1886 |
|
1887 |
-
|
1888 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1889 |
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
});
|
1895 |
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1899 |
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
|
|
|
|
|
|
|
|
1908 |
</div>\
|
1909 |
-
<div class="fp-
|
1910 |
-
|
1911 |
-
|
|
|
1912 |
</div>\
|
1913 |
-
<
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
|
|
|
|
|
|
1917 |
</div>\
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1925 |
}
|
1926 |
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1930 |
|
1931 |
-
|
|
|
|
|
1932 |
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
-
|
1937 |
-
FS_SUPPORT = flowplayer.support.fullscreen,
|
1938 |
-
FS_NATIVE_SUPPORT = typeof document.exitFullscreen == 'function',
|
1939 |
-
ua = navigator.userAgent.toLowerCase(),
|
1940 |
-
IS_SAFARI = /(safari)[ \/]([\w.]+)/.exec(ua) && !/(chrome)[ \/]([\w.]+)/.exec(ua);
|
1941 |
|
|
|
|
|
|
|
|
|
1942 |
|
1943 |
-
|
1944 |
-
$(document).bind("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange", function(e) {
|
1945 |
-
var el = $(document.webkitCurrentFullScreenElement || document.mozFullScreenElement || document.fullscreenElement || document.msFullscreenElement || e.target);
|
1946 |
-
if (el.length && !FULL_PLAYER) {
|
1947 |
-
FULL_PLAYER = el.trigger(FS_ENTER, [el]);
|
1948 |
-
} else {
|
1949 |
-
FULL_PLAYER.trigger(FS_EXIT, [FULL_PLAYER]);
|
1950 |
-
FULL_PLAYER = null;
|
1951 |
-
}
|
1952 |
|
1953 |
-
|
|
|
|
|
|
|
|
|
1954 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1955 |
|
1956 |
-
|
|
|
1957 |
|
1958 |
-
if (
|
1959 |
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
|
1964 |
-
|
|
|
|
|
1965 |
|
1966 |
-
|
|
|
|
|
1967 |
|
1968 |
-
|
1969 |
|
1970 |
-
|
1971 |
|
1972 |
-
|
1973 |
|
1974 |
-
if (
|
1975 |
-
fsResume = {apply: true, pos: player.video.time, play: player.playing};
|
1976 |
|
1977 |
-
|
|
|
1978 |
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
if (typeof r[fName] === 'function') {
|
1983 |
-
r[fName](Element.ALLOW_KEYBOARD_INPUT);
|
1984 |
-
if (IS_SAFARI && !document.webkitCurrentFullScreenElement && !document.mozFullScreenElement) { // Element.ALLOW_KEYBOARD_INPUT not allowed
|
1985 |
-
r[fName]();
|
1986 |
-
}
|
1987 |
-
return false;
|
1988 |
-
}
|
1989 |
-
});
|
1990 |
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
return false;
|
1996 |
-
}
|
1997 |
-
});
|
1998 |
-
}
|
1999 |
|
2000 |
-
|
2001 |
-
|
|
|
2002 |
}
|
|
|
2003 |
|
2004 |
-
return player;
|
2005 |
-
};
|
2006 |
|
2007 |
-
|
|
|
|
|
|
|
2008 |
|
2009 |
-
|
2010 |
-
|
2011 |
-
|
2012 |
-
|
2013 |
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017 |
|
2018 |
-
|
2019 |
-
|
2020 |
-
if (!FS_SUPPORT && player.engine === "html5") {
|
2021 |
-
oldOpacity = root.css('opacity') || '';
|
2022 |
-
root.css('opacity', 0);
|
2023 |
-
}
|
2024 |
-
root.removeClass("is-fullscreen");
|
2025 |
-
if (!FS_SUPPORT && player.engine === "html5") setTimeout(function() { root.css('opacity', oldOpacity); });
|
2026 |
-
player.isFullscreen = false;
|
2027 |
-
win.scrollTop(scrollTop);
|
2028 |
|
2029 |
-
|
2030 |
-
|
2031 |
-
var fsreset = function () {
|
2032 |
-
if (!fsResume.play && !player.conf.live) {
|
2033 |
-
player.pause();
|
2034 |
-
} else {
|
2035 |
-
player.resume();
|
2036 |
-
}
|
2037 |
-
$.extend(fsResume, {pos: 0, play: false});
|
2038 |
-
};
|
2039 |
|
2040 |
-
|
2041 |
-
|
2042 |
-
|
2043 |
-
|
2044 |
-
player.seek(fsResume.pos, fsreset);
|
2045 |
-
} else {
|
2046 |
-
fsreset();
|
2047 |
-
}
|
2048 |
}
|
2049 |
-
|
2050 |
-
|
2051 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2052 |
|
|
|
|
|
|
|
|
|
2053 |
|
2054 |
-
|
|
|
|
|
|
|
2055 |
|
2056 |
-
|
2057 |
-
|
2058 |
|
2059 |
-
// getters
|
2060 |
-
function els() {
|
2061 |
-
return $(conf.query, root);
|
2062 |
-
}
|
2063 |
|
2064 |
-
function
|
2065 |
-
|
2066 |
-
|
|
|
|
|
2067 |
|
|
|
|
|
2068 |
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
player.conf.playlist[i].toString() :
|
2077 |
-
$.map(player.conf.playlist[i], function(item) { return $.extend({}, item); })
|
2078 |
-
);
|
2079 |
-
return player;
|
2080 |
-
};
|
2081 |
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
current = current === player.conf.playlist.length - 1 ? 0 : current + 1;
|
2087 |
-
player.play(current);
|
2088 |
}
|
2089 |
-
return player;
|
2090 |
-
};
|
2091 |
|
2092 |
-
player.prev = function(e) {
|
2093 |
-
e && e.preventDefault();
|
2094 |
-
var current = player.video.index;
|
2095 |
-
if (current != -1) {
|
2096 |
-
current = current === 0 ? player.conf.playlist.length - 1 : current - 1;
|
2097 |
-
player.play(current);
|
2098 |
-
}
|
2099 |
-
return player;
|
2100 |
-
};
|
2101 |
|
2102 |
-
|
2103 |
-
|
|
|
|
|
|
|
2104 |
|
2105 |
-
|
2106 |
-
|
2107 |
|
2108 |
-
|
2109 |
-
|
2110 |
-
if (next < player.conf.playlist.length || conf.loop) {
|
2111 |
-
next = next === player.conf.playlist.length ? 0 : next;
|
2112 |
-
root.removeClass('is-finished');
|
2113 |
-
setTimeout(function() { // Let other finish callbacks fire first
|
2114 |
-
player.play(next);
|
2115 |
-
});
|
2116 |
|
2117 |
-
|
2118 |
-
} else {
|
2119 |
-
root.addClass("is-playing"); // show play button
|
2120 |
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
});
|
2128 |
-
}
|
2129 |
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
if (!plEl.length) {
|
2135 |
-
plEl = $('<div class="fp-playlist"></div>');
|
2136 |
-
var cntrls = $('.fp-next,.fp-prev', root);
|
2137 |
-
if (!cntrls.length) $('video', root).after(plEl);
|
2138 |
-
else cntrls.eq(0).before(plEl);
|
2139 |
-
}
|
2140 |
-
plEl.empty();
|
2141 |
-
$.each(player.conf.playlist, function(i, item) {
|
2142 |
-
var href;
|
2143 |
-
if (typeof item === 'string') {
|
2144 |
-
href = item;
|
2145 |
-
} else {
|
2146 |
-
for (var key in item[0]) {
|
2147 |
-
if (item[0].hasOwnProperty(key)) {
|
2148 |
-
href = item[0][key];
|
2149 |
-
break;
|
2150 |
-
}
|
2151 |
}
|
2152 |
-
}
|
2153 |
-
plEl.append($('<a />').attr({
|
2154 |
-
href: href,
|
2155 |
-
'data-index': i
|
2156 |
-
}));
|
2157 |
-
});
|
2158 |
-
}
|
2159 |
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
var src = $(this).attr('href');
|
2165 |
-
$(this).attr('data-index', player.conf.playlist.length);
|
2166 |
-
player.conf.playlist.push(src);
|
2167 |
-
});
|
2168 |
}
|
2169 |
|
2170 |
-
/* click -> play */
|
2171 |
-
root.on("click", conf.query, function(e) {
|
2172 |
-
e.preventDefault();
|
2173 |
-
var el = $(e.target).closest(conf.query);
|
2174 |
-
var toPlay = Number(el.attr('data-index'));
|
2175 |
-
if (toPlay != -1) {
|
2176 |
-
player.play(toPlay);
|
2177 |
-
}
|
2178 |
-
});
|
2179 |
|
2180 |
-
|
2181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2182 |
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2192 |
|
2193 |
-
|
2194 |
-
video.index = api.video.index = index;
|
2195 |
-
video.is_last = api.video.is_last = is_last;
|
2196 |
|
2197 |
-
|
2198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2199 |
|
|
|
|
|
2200 |
|
2201 |
-
|
2202 |
-
|
2203 |
-
active().toggleClass(klass);
|
2204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2205 |
});
|
|
|
2206 |
|
|
|
|
|
2207 |
}
|
2208 |
|
2209 |
-
if
|
2210 |
-
|
2211 |
-
|
2212 |
}
|
2213 |
|
|
|
|
|
|
|
|
|
2214 |
|
2215 |
-
|
|
|
|
|
2216 |
|
2217 |
-
|
|
|
|
|
|
|
2218 |
|
2219 |
-
|
|
|
|
|
2220 |
|
2221 |
-
|
2222 |
|
2223 |
-
|
|
|
|
|
|
|
2224 |
|
2225 |
-
|
2226 |
-
root[0].className = root[0].className.replace(CUE_RE, " ");
|
2227 |
-
if (index >= 0) root.addClass("cue" + index);
|
2228 |
-
}
|
2229 |
|
2230 |
-
|
|
|
|
|
|
|
2231 |
|
2232 |
-
|
2233 |
-
if (lastTime && time - lastTime < 0.015) return lastTime = time;
|
2234 |
-
lastTime = time;
|
2235 |
|
2236 |
-
var cues = player.cuepoints || [];
|
2237 |
|
2238 |
-
|
2239 |
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
|
2245 |
-
|
2246 |
-
|
2247 |
-
setClass(i);
|
2248 |
-
root.trigger("cuepoint", [player, cue]);
|
2249 |
-
}
|
2250 |
|
2251 |
-
|
|
|
|
|
|
|
|
|
2252 |
|
2253 |
-
|
2254 |
-
}).bind("unload seek", setClass);
|
2255 |
|
2256 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2257 |
|
2258 |
-
|
|
|
|
|
|
|
2259 |
|
2260 |
-
|
2261 |
-
$(".fp-cuepoint", root).remove();
|
2262 |
|
2263 |
-
|
|
|
|
|
|
|
2264 |
|
2265 |
-
var cues = player.cuepoints || [],
|
2266 |
-
duration = player.video.duration,
|
2267 |
-
timeline = $(".fp-timeline", root).css("overflow", "visible");
|
2268 |
|
2269 |
-
|
|
|
|
|
|
|
|
|
2270 |
|
2271 |
-
|
2272 |
-
|
|
|
|
|
|
|
2273 |
|
2274 |
-
var el = $("<a/>").addClass("fp-cuepoint fp-cuepoint" + i)
|
2275 |
-
.css("left", (time / duration * 100) + "%");
|
2276 |
|
2277 |
-
|
2278 |
-
player.seek(time);
|
2279 |
|
2280 |
-
|
2281 |
-
|
2282 |
-
|
|
|
|
|
|
|
|
|
2283 |
|
2284 |
-
});
|
2285 |
|
2286 |
-
|
|
|
|
|
2287 |
|
2288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2289 |
|
2290 |
-
});
|
2291 |
-
flowplayer(function(player, root, engine) {
|
2292 |
|
2293 |
-
|
2294 |
-
conf = player.conf;
|
2295 |
|
2296 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2297 |
|
2298 |
-
|
|
|
|
|
|
|
|
|
2299 |
|
2300 |
-
|
2301 |
-
|
2302 |
-
var setMode = function(mode) {
|
2303 |
-
var tracks = $('video', root)[0].textTracks;
|
2304 |
-
if (!tracks.length) return;
|
2305 |
-
tracks[0].mode = mode;
|
2306 |
-
};
|
2307 |
-
setMode('disabled');
|
2308 |
-
player.one('ready', function() {
|
2309 |
-
if (player.conf.splash) { // see https://github.com/flowplayer/flowplayer/issues/717
|
2310 |
-
$('video.fp-engine', root).append($('<track />').attr({
|
2311 |
-
kind: 'subtitles',
|
2312 |
-
srclang: player.subtitles.language || 'en',
|
2313 |
-
label: player.subtitles.language || 'en',
|
2314 |
-
src: track.attr('src'),
|
2315 |
-
default: 'default'
|
2316 |
-
}));
|
2317 |
-
}
|
2318 |
-
setMode('disabled');
|
2319 |
-
setMode('showing');
|
2320 |
-
});
|
2321 |
-
return;
|
2322 |
-
}
|
2323 |
-
}
|
2324 |
|
2325 |
-
|
2326 |
-
|
|
|
2327 |
|
2328 |
-
|
|
|
|
|
|
|
|
|
|
|
2329 |
|
2330 |
-
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2335 |
|
2336 |
-
|
|
|
|
|
2337 |
|
2338 |
-
|
2339 |
|
2340 |
-
|
2341 |
-
|
2342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2343 |
|
2344 |
-
|
|
|
2345 |
|
2346 |
-
|
|
|
|
|
2347 |
|
2348 |
-
|
|
|
2349 |
|
2350 |
-
|
2351 |
-
|
|
|
2352 |
|
2353 |
-
|
2354 |
-
|
2355 |
-
|
2356 |
|
2357 |
-
|
2358 |
-
|
2359 |
-
|
2360 |
-
|
2361 |
-
|
2362 |
-
text: text
|
2363 |
-
};
|
2364 |
|
2365 |
-
|
|
|
|
|
|
|
|
|
2366 |
|
2367 |
-
|
2368 |
-
player.cuepoints.push(cue);
|
2369 |
-
player.cuepoints.push({ time: entry.endTime, subtitleEnd: title });
|
2370 |
|
2371 |
-
|
2372 |
-
if (entry.startTime === 0) {
|
2373 |
-
player.trigger("cuepoint", cue);
|
2374 |
-
}
|
2375 |
|
2376 |
-
|
|
|
|
|
2377 |
|
2378 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2379 |
|
2380 |
-
}).fail(function() {
|
2381 |
-
player.trigger("error", {code: 8, url: url });
|
2382 |
-
return false;
|
2383 |
});
|
2384 |
-
|
2385 |
-
|
2386 |
-
|
|
|
|
|
2387 |
|
2388 |
-
|
2389 |
|
2390 |
-
|
2391 |
-
|
2392 |
-
|
2393 |
|
2394 |
-
|
2395 |
-
wrap.removeClass("fp-active");
|
2396 |
-
currentPoint = cue.index;
|
2397 |
-
}
|
2398 |
|
2399 |
-
|
2400 |
-
// Clear future subtitles if seeking backwards
|
2401 |
-
if (currentPoint && player.cuepoints[currentPoint] && player.cuepoints[currentPoint].time > time) {
|
2402 |
-
wrap.removeClass('fp-active');
|
2403 |
-
currentPoint = null;
|
2404 |
-
}
|
2405 |
-
$.each(player.cuepoints || [], function(i, cue) {
|
2406 |
-
var entry = cue.subtitle;
|
2407 |
-
//Trigger cuepoint if start time before seek position and end time nonexistent or in the future
|
2408 |
-
if (entry && currentPoint != cue.index) {
|
2409 |
-
if (time >= cue.time && (!entry.endTime || time <= entry.endTime)) player.trigger("cuepoint", cue);
|
2410 |
-
} // Also handle cuepoints that act as the removal trigger
|
2411 |
-
else if (cue.subtitleEnd && time >= cue.time && cue.index == currentPoint + 1) player.trigger("cuepoint", cue);
|
2412 |
-
});
|
2413 |
|
2414 |
-
});
|
2415 |
|
2416 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2419 |
|
2420 |
-
|
|
|
2421 |
|
2422 |
-
var id = player.conf.analytics, time = 0, last = 0;
|
2423 |
|
2424 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2425 |
|
2426 |
-
|
2427 |
-
|
|
|
|
|
|
|
|
|
|
|
2428 |
|
2429 |
-
|
|
|
|
|
2430 |
|
2431 |
-
|
2432 |
-
|
2433 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2434 |
|
2435 |
-
|
2436 |
|
2437 |
-
|
2438 |
-
tracker._trackEvent(
|
2439 |
-
"Video / Seconds played",
|
2440 |
-
player.engine + "/" + video.type,
|
2441 |
-
root.attr("title") || video.src.split("/").slice(-1)[0].replace(TYPE_RE, ''),
|
2442 |
-
Math.round(time / 1000)
|
2443 |
-
);
|
2444 |
-
time = 0;
|
2445 |
-
}
|
2446 |
|
2447 |
-
|
2448 |
|
2449 |
-
|
2450 |
|
2451 |
-
|
2452 |
-
time += last ? (+new Date - last) : 0;
|
2453 |
-
last = +new Date;
|
2454 |
-
}
|
2455 |
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
|
|
2459 |
|
2460 |
-
|
|
|
|
|
2461 |
|
2462 |
-
}
|
2463 |
|
2464 |
-
|
2465 |
-
if (flowplayer.support.touch || isIeMobile) {
|
2466 |
|
2467 |
-
|
2468 |
-
var isAndroid = /Android/.test(UA) && !/Firefox/.test(UA) && !/Opera/.test(UA),
|
2469 |
-
isSilk = /Silk/.test(UA),
|
2470 |
-
androidVer = isAndroid ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
|
2471 |
|
2472 |
-
//
|
2473 |
-
|
2474 |
-
if (!/Chrome/.test(UA) && androidVer < 4) {
|
2475 |
-
var originalLoad = player.load;
|
2476 |
-
player.load = function(video, callback) {
|
2477 |
-
var ret = originalLoad.apply(player, arguments);
|
2478 |
-
player.trigger('ready', [player, player.video]);
|
2479 |
-
return ret;
|
2480 |
-
};
|
2481 |
-
}
|
2482 |
-
var timer, currentTime = 0;
|
2483 |
-
var resumeTimer = function(api) {
|
2484 |
-
timer = setInterval(function() {
|
2485 |
-
api.video.time = ++currentTime;
|
2486 |
-
api.trigger('progress', currentTime);
|
2487 |
-
}, 1000);
|
2488 |
-
};
|
2489 |
-
player.bind('ready pause unload', function() {
|
2490 |
-
if (timer) {
|
2491 |
-
clearInterval(timer);
|
2492 |
-
timer = null;
|
2493 |
-
}
|
2494 |
-
});
|
2495 |
-
player.bind('ready', function() {
|
2496 |
-
currentTime = 0;
|
2497 |
-
});
|
2498 |
-
player.bind('resume', function(ev, api) {
|
2499 |
-
if (!api.live) return;
|
2500 |
-
if (currentTime) { return resumeTimer(api); }
|
2501 |
-
player.one('progress', function(ev, api, t) {
|
2502 |
-
if (t === 0) { // https://github.com/flowplayer/flowplayer/issues/727
|
2503 |
-
resumeTimer(api);
|
2504 |
-
}
|
2505 |
-
});
|
2506 |
-
});
|
2507 |
-
}
|
2508 |
|
2509 |
-
|
2510 |
-
if (!flowplayer.support.volume) {
|
2511 |
-
root.addClass("no-volume no-mute");
|
2512 |
-
}
|
2513 |
-
root.addClass("is-touch");
|
2514 |
-
root.find('.fp-timeline').data('api').disableAnimation();
|
2515 |
|
2516 |
-
|
|
|
2517 |
|
2518 |
-
//
|
2519 |
-
|
2520 |
-
root.bind('touchmove', function() {
|
2521 |
-
hasMoved = true;
|
2522 |
-
}).bind("touchend click", function(e) {
|
2523 |
-
if (hasMoved) { //not intentional, most likely scrolling
|
2524 |
-
hasMoved = false;
|
2525 |
-
return;
|
2526 |
-
}
|
2527 |
|
2528 |
-
|
2529 |
-
root.addClass("is-mouseover").removeClass("is-mouseout");
|
2530 |
-
return false;
|
2531 |
-
}
|
2532 |
|
2533 |
-
|
2534 |
-
player.toggle();
|
2535 |
-
}
|
2536 |
|
2537 |
-
|
2538 |
-
$('video.fp-engine', root)[0].play();
|
2539 |
-
}
|
2540 |
|
2541 |
-
|
2542 |
|
2543 |
-
|
2544 |
-
if (player.conf.native_fullscreen && typeof $('<video />')[0].webkitEnterFullScreen === 'function') {
|
2545 |
-
player.fullscreen = function() {
|
2546 |
-
var video = $('video.fp-engine', root);
|
2547 |
-
video[0].webkitEnterFullScreen();
|
2548 |
-
video.one('webkitendfullscreen', function() {
|
2549 |
-
video.prop('controls', true).prop('controls', false);
|
2550 |
-
});
|
2551 |
-
};
|
2552 |
-
}
|
2553 |
|
|
|
|
|
2554 |
|
2555 |
-
//
|
2556 |
-
|
2557 |
|
2558 |
-
|
2559 |
-
video.one('canplay', function() {
|
2560 |
-
video[0].play();
|
2561 |
-
});
|
2562 |
-
video[0].play();
|
2563 |
|
2564 |
-
|
2565 |
|
2566 |
-
|
2567 |
|
2568 |
-
|
2569 |
-
|
2570 |
-
$(".fp-duration", root).html(format(duration));
|
2571 |
-
player.unbind("progress.dur");
|
2572 |
-
}
|
2573 |
-
});
|
2574 |
-
});
|
2575 |
|
|
|
|
|
2576 |
|
2577 |
-
|
|
|
|
|
|
|
|
|
|
|
2578 |
|
2579 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2580 |
|
2581 |
-
|
2582 |
|
2583 |
-
|
2584 |
-
|
|
|
|
|
|
|
|
|
|
|
2585 |
|
2586 |
-
var conf = player.conf,
|
2587 |
-
ui = $(".fp-ui", root),
|
2588 |
-
trigger = $("<a/>", { "class": "fp-embed", title: 'Copy to your site'}).appendTo(ui),
|
2589 |
-
target = $("<div/>", { 'class': 'fp-embed-code'})
|
2590 |
-
.append("<label>Paste this HTML code on your site to embed.</label><textarea/>").appendTo(ui),
|
2591 |
-
area = $("textarea", target);
|
2592 |
|
2593 |
-
player.embedCode = function() {
|
2594 |
|
2595 |
-
|
2596 |
-
width = video.width || root.width(),
|
2597 |
-
height = video.height || root.height(),
|
2598 |
-
el = $("<div/>", { 'class': 'flowplayer', css: { width: width, height: height }}),
|
2599 |
-
tag = $("<video/>").appendTo(el);
|
2600 |
|
2601 |
-
|
2602 |
-
|
2603 |
-
|
2604 |
-
|
2605 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2606 |
});
|
|
|
|
|
|
|
|
|
2607 |
|
2608 |
-
|
2609 |
-
|
2610 |
-
el.attr('data-logo', $('<img />').attr('src', conf.logo)[0].src);
|
2611 |
-
}
|
2612 |
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
|
2618 |
-
|
2619 |
-
|
2620 |
-
|
2621 |
-
|
|
|
|
|
|
|
|
|
2622 |
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
scriptAttrs['data-library'] = conf.embed.library;
|
2627 |
-
scriptAttrs['src'] = conf.embed.script || scriptAttrs['src'];
|
2628 |
-
if (conf.embed.skin) { scriptAttrs['data-skin'] = conf.embed.skin; }
|
2629 |
}
|
2630 |
|
2631 |
-
var
|
2632 |
-
|
2633 |
-
};
|
2634 |
|
2635 |
-
|
2636 |
|
2637 |
-
|
2638 |
-
|
2639 |
-
});
|
2640 |
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
|
2646 |
|
2647 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2648 |
|
|
|
2649 |
|
2650 |
-
|
2651 |
|
2652 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2653 |
|
2654 |
-
|
|
|
|
|
|
|
2655 |
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
|
2661 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2662 |
|
2663 |
-
|
|
|
2664 |
|
2665 |
-
|
|
|
2666 |
|
2667 |
-
|
|
|
|
|
|
|
|
|
|
|
2668 |
|
2669 |
-
|
2670 |
-
|
|
|
|
|
2671 |
|
2672 |
-
|
2673 |
-
|
2674 |
-
if (!$(e.target).parents("." + active).length) close();
|
2675 |
-
});
|
2676 |
-
}
|
2677 |
|
2678 |
-
|
|
|
|
|
|
|
|
|
|
|
2679 |
|
2680 |
-
|
|
|
2681 |
|
2682 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2683 |
|
2684 |
-
|
2685 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/*!
|
2 |
|
3 |
+
Flowplayer v7.0.2 (Tuesday, 07. February 2017 10:39PM) | flowplayer.org/license
|
4 |
|
5 |
*/
|
6 |
+
/*! (C) WebReflection Mit Style License */
|
7 |
+
(function(e){function g(e,t,n,r){for(var i,s=n.slice(),o=w(t,e),u=0,a=s.length;u<a;u++){handler=s[u],typeof handler=="object"&&typeof handler.handleEvent=="function"?handler.handleEvent(o):handler.call(e,o);if(o.stoppedImmediatePropagation)break}return i=!o.stoppedPropagation,r&&i&&e.parentNode?e.parentNode.dispatchEvent(o):!o.defaultPrevented}function y(e,t){return{configurable:!0,get:e,set:t}}function b(e,t,n){var r=f(t||e,n);u(e,"textContent",y(function(){return r.get.call(this)},function(e){r.set.call(this,e)}))}function w(e,t){return e.currentTarget=t,e.eventPhase=e.target===e.currentTarget?2:3,e}function E(e,t){var n=e.length;while(n--&&e[n]!==t);return n}function S(){if(this.tagName==="BR")return"\n";var e=this.firstChild,t=[];while(e)e.nodeType!==8&&e.nodeType!==7&&t.push(e.textContent),e=e.nextSibling;return t.join("")}function x(e){return e.nodeType!==9&&document.documentElement.contains(e)}function T(e){!n&&d.test(document.readyState)&&(n=!n,document.detachEvent(r,T),e=document.createEvent("Event"),e.initEvent(i,!0,!0),document.dispatchEvent(e))}function N(e){var t;while(t=this.lastChild)this.removeChild(t);e!=null&&this.appendChild(document.createTextNode(e))}function C(t,n){return n||(n=e.event),n.target||(n.target=n.srcElement||n.fromElement||document),n.timeStamp||(n.timeStamp=(new Date).getTime()),n}if(document.createEvent)return;var t=!0,n=!1,r="onreadystatechange",i="DOMContentLoaded",s="__IE8__"+Math.random(),o=e.Object,u=o.defineProperty||function(e,t,n){e[t]=n.value},a=o.defineProperties||function(t,n){for(var r in n)if(l.call(n,r))try{u(t,r,n[r])}catch(i){e.console&&console.log(r+" failed on object:",t,i.message)}},f=o.getOwnPropertyDescriptor,l=o.prototype.hasOwnProperty,c=e.Element.prototype,h=e.Text.prototype,p=/^[a-z]+$/,d=/loaded|complete/,v={},m=document.createElement("div");b(e.HTMLCommentElement.prototype,c,"nodeValue"),b(e.HTMLScriptElement.prototype,null,"text"),b(h,null,"nodeValue"),b(e.HTMLTitleElement.prototype,null,"text"),u(e.HTMLStyleElement.prototype,"textContent",function(e){return y(function(){return e.get.call(this.styleSheet)},function(t){e.set.call(this.styleSheet,t)})}(f(e.CSSStyleSheet.prototype,"cssText"))),a(c,{textContent:{get:S,set:N},firstElementChild:{get:function(){for(var e=this.childNodes||[],t=0,n=e.length;t<n;t++)if(e[t].nodeType==1)return e[t]}},lastElementChild:{get:function(){for(var e=this.childNodes||[],t=e.length;t--;)if(e[t].nodeType==1)return e[t]}},previousElementSibling:{get:function(){var e=this.previousSibling;while(e&&e.nodeType!=1)e=e.previousSibling;return e}},nextElementSibling:{get:function(){var e=this.nextSibling;while(e&&e.nodeType!=1)e=e.nextSibling;return e}},childElementCount:{get:function(){for(var e=0,t=this.childNodes||[],n=t.length;n--;e+=t[n].nodeType==1);return e}},addEventListener:{value:function(e,t,n){var r=this,i="on"+e,o=r[s]||u(r,s,{value:{}})[s],a=o[i]||(o[i]={}),f=a.h||(a.h=[]),c;if(!l.call(a,"w")){a.w=function(e){return e[s]||g(r,C(r,e),f,!1)};if(!l.call(v,i))if(p.test(e))try{c=document.createEventObject(),c[s]=!0,r.nodeType!=9&&r.parentNode==null&&m.appendChild(r),r.fireEvent(i,c),v[i]=!0}catch(c){v[i]=!1;while(m.hasChildNodes())m.removeChild(m.firstChild)}else v[i]=!1;(a.n=v[i])&&r.attachEvent(i,a.w)}E(f,t)<0&&f[n?"unshift":"push"](t)}},dispatchEvent:{value:function(e){var t=this,n="on"+e.type,r=t[s],i=r&&r[n],o=!!i,u;return e.target||(e.target=t),o?i.n?t.fireEvent(n,e):g(t,e,i.h,!0):(u=t.parentNode)?u.dispatchEvent(e):!0,!e.defaultPrevented}},removeEventListener:{value:function(e,t,n){var r=this,i="on"+e,o=r[s],u=o&&o[i],a=u&&u.h,f=a?E(a,t):-1;-1<f&&a.splice(f,1)}}}),a(h,{addEventListener:{value:c.addEventListener},dispatchEvent:{value:c.dispatchEvent},removeEventListener:{value:c.removeEventListener}}),a(e.XMLHttpRequest.prototype,{addEventListener:{value:function(e,t,n){var r=this,i="on"+e,o=r[s]||u(r,s,{value:{}})[s],a=o[i]||(o[i]={}),f=a.h||(a.h=[]);E(f,t)<0&&(r[i]||(r[i]=function(){var t=document.createEvent("Event");t.initEvent(e,!0,!0),r.dispatchEvent(t)}),f[n?"unshift":"push"](t))}},dispatchEvent:{value:function(e){var t=this,n="on"+e.type,r=t[s],i=r&&r[n],o=!!i;return o&&(i.n?t.fireEvent(n,e):g(t,e,i.h,!0))}},removeEventListener:{value:c.removeEventListener}}),a(e.Event.prototype,{bubbles:{value:!0,writable:!0},cancelable:{value:!0,writable:!0},preventDefault:{value:function(){this.cancelable&&(this.defaultPrevented=!0,this.returnValue=!1)}},stopPropagation:{value:function(){this.stoppedPropagation=!0,this.cancelBubble=!0}},stopImmediatePropagation:{value:function(){this.stoppedImmediatePropagation=!0,this.stopPropagation()}},initEvent:{value:function(e,t,n){this.type=e,this.bubbles=!!t,this.cancelable=!!n,this.bubbles||this.stopPropagation()}}}),a(e.HTMLDocument.prototype,{textContent:{get:function(){return this.nodeType===11?S.call(this):null},set:function(e){this.nodeType===11&&N.call(this,e)}},addEventListener:{value:function(n,s,o){var u=this;c.addEventListener.call(u,n,s,o),t&&n===i&&!d.test(u.readyState)&&(t=!1,u.attachEvent(r,T),e==top&&function a(e){try{u.documentElement.doScroll("left"),T()}catch(t){setTimeout(a,50)}}())}},dispatchEvent:{value:c.dispatchEvent},removeEventListener:{value:c.removeEventListener},createEvent:{value:function(e){var t;if(e!=="Event")throw new Error("unsupported "+e);return t=document.createEventObject(),t.timeStamp=(new Date).getTime(),t}}}),a(e.Window.prototype,{getComputedStyle:{value:function(){function i(e){this._=e}function s(){}var e=/^(?:[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/,t=/^(top|right|bottom|left)$/,n=/\-([a-z])/g,r=function(e,t){return t.toUpperCase()};return i.prototype.getPropertyValue=function(i){var s=this._,o=s.style,u=s.currentStyle,a=s.runtimeStyle,f,l,c;return i=(i==="float"?"style-float":i).replace(n,r),f=u?u[i]:o[i],e.test(f)&&!t.test(i)&&(l=o.left,c=a&&a.left,c&&(a.left=u.left),o.left=i==="fontSize"?"1em":f,f=o.pixelLeft+"px",o.left=l,c&&(a.left=c)),f==null?f:f+""||"auto"},s.prototype.getPropertyValue=function(){return null},function(e,t){return t?new s(e):new i(e)}}()},addEventListener:{value:function(t,n,r){var i=e,o="on"+t,u;i[o]||(i[o]=function(e){return g(i,C(i,e),u,!1)}),u=i[o][s]||(i[o][s]=[]),E(u,n)<0&&u[r?"unshift":"push"](n)}},dispatchEvent:{value:function(t){var n=e["on"+t.type];return n?n.call(e,t)!==!1&&!t.defaultPrevented:!0}},removeEventListener:{value:function(t,n,r){var i="on"+t,u=(e[i]||o)[s],a=u?E(u,n):-1;-1<a&&u.splice(a,1)}}})})(this);
|
8 |
+
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.flowplayer = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
|
9 |
+
'use strict';
|
10 |
+
var common = module.exports = {},
|
11 |
+
ClassList = _dereq_('class-list'),
|
12 |
+
$ = window.jQuery,
|
13 |
+
punycode = _dereq_('punycode'),
|
14 |
+
computedStyle = _dereq_('computed-style');
|
15 |
+
|
16 |
+
common.noop = function() {};
|
17 |
+
common.identity = function(i) { return i; };
|
18 |
+
|
19 |
+
common.removeNode = function(el) {
|
20 |
+
if (!el || !el.parentNode) return;
|
21 |
+
el.parentNode.removeChild(el);
|
22 |
+
};
|
23 |
|
24 |
+
common.find = function(query, ctx) {
|
25 |
+
if ($) return $(query, ctx).toArray();
|
26 |
+
ctx = ctx || document;
|
27 |
+
return Array.prototype.map.call(ctx.querySelectorAll(query), function(el) { return el; });
|
28 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
+
common.text = function(el, txt) {
|
31 |
+
el[('innerText' in el) ? 'innerText' : 'textContent'] = txt;
|
32 |
+
};
|
33 |
|
34 |
+
common.findDirect = function(query, ctx) {
|
35 |
+
return common.find(query, ctx).filter(function(node) {
|
36 |
+
return node.parentNode === ctx;
|
37 |
+
});
|
38 |
+
};
|
|
|
|
|
39 |
|
40 |
+
common.hasClass = function(el, kls) {
|
41 |
+
if (typeof el.className !== 'string') return false;
|
42 |
+
return ClassList(el).contains(kls);
|
43 |
+
};
|
44 |
|
45 |
+
common.isSameDomain = function(url) {
|
46 |
+
var w = window.location,
|
47 |
+
a = common.createElement('a', { href: url });
|
48 |
+
return w.hostname === a.hostname &&
|
49 |
+
w.protocol === a.protocol &&
|
50 |
+
w.port === a.port;
|
51 |
+
};
|
52 |
|
53 |
+
common.css = function(el, property, value) {
|
54 |
+
if (typeof property === 'object') {
|
55 |
+
return Object.keys(property).forEach(function(key) {
|
56 |
+
common.css(el, key, property[key]);
|
57 |
+
});
|
58 |
+
}
|
59 |
+
if (typeof value !== 'undefined') {
|
60 |
+
if (value === '') return el ? el.style.removeProperty(property) : undefined;
|
61 |
+
return el ? el.style.setProperty(property, value) : undefined;
|
62 |
+
}
|
63 |
+
return el ? computedStyle(el, property) : undefined;
|
64 |
};
|
65 |
|
66 |
+
common.createElement = function(tag, attributes, innerHTML) {
|
67 |
+
try {
|
68 |
+
var el = document.createElement(tag);
|
69 |
+
for (var key in attributes) {
|
70 |
+
if (!attributes.hasOwnProperty(key)) continue;
|
71 |
+
if (key === 'css') {
|
72 |
+
common.css(el, attributes[key]);
|
73 |
} else {
|
74 |
+
common.attr(el, key, attributes[key]);
|
|
|
|
|
75 |
}
|
76 |
+
}
|
77 |
+
el.innerHTML = innerHTML || '';
|
78 |
+
return el;
|
79 |
+
} catch (e) {
|
80 |
+
if (!$) throw e;
|
81 |
+
return $('<' + tag + '>' + innerHTML + '</' + tag + '>').attr(attributes)[0];
|
|
|
|
|
82 |
}
|
83 |
+
};
|
84 |
|
85 |
+
common.toggleClass = function(el, cls, flag) {
|
86 |
+
if (!el) return;
|
87 |
+
var classes = ClassList(el);
|
88 |
+
if (typeof flag === 'undefined') classes.toggle(cls);
|
89 |
+
else if (flag) classes.add(cls);
|
90 |
+
else if (!flag) classes.remove(cls);
|
91 |
+
};
|
92 |
|
93 |
+
common.addClass = function(el, cls) {
|
94 |
+
return common.toggleClass(el, cls, true);
|
95 |
+
};
|
96 |
|
97 |
+
common.removeClass = function(el, cls) {
|
98 |
+
return common.toggleClass(el, cls, false);
|
99 |
+
};
|
100 |
|
101 |
+
common.append = function(par, child) {
|
102 |
+
par.appendChild(child);
|
103 |
+
return par;
|
104 |
+
};
|
105 |
|
106 |
+
common.appendTo = function(child, par) {
|
107 |
+
common.append(par, child);
|
108 |
+
return child;
|
109 |
+
};
|
110 |
|
111 |
+
common.prepend = function(par, child) {
|
112 |
+
par.insertBefore(child, par.firstChild);
|
113 |
+
};
|
114 |
|
|
|
115 |
|
116 |
+
// Inserts `el` after `child` that is child of `par`
|
117 |
+
common.insertAfter = function(par, child, el) {
|
118 |
+
if (child == common.lastChild(par)) par.appendChild(el);
|
119 |
+
var childIndex = Array.prototype.indexOf.call(par.children, child);
|
120 |
+
par.insertBefore(el, par.children[childIndex + 1]);
|
121 |
+
};
|
122 |
|
123 |
+
common.html = function(elms, val) {
|
124 |
+
elms = elms.length ? elms : [elms];
|
125 |
+
elms.forEach(function(elm) {
|
126 |
+
elm.innerHTML = val;
|
127 |
+
});
|
128 |
+
};
|
129 |
|
|
|
|
|
130 |
|
131 |
+
common.attr = function(el, key, val) {
|
132 |
+
if (key === 'class') key = 'className';
|
133 |
+
if (common.hasOwnOrPrototypeProperty(el, key)) {
|
134 |
+
try {
|
135 |
+
el[key] = val;
|
136 |
+
} catch (e) { // Most likely IE not letting set property
|
137 |
+
if ($) {
|
138 |
+
$(el).attr(key, val);
|
139 |
+
} else {
|
140 |
+
throw e;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
} else {
|
144 |
+
if (val === false) {
|
145 |
+
el.removeAttribute(key);
|
146 |
+
} else {
|
147 |
+
el.setAttribute(key, val);
|
148 |
+
}
|
149 |
+
}
|
150 |
+
return el;
|
151 |
+
};
|
152 |
|
153 |
+
common.prop = function(el, key, val) {
|
154 |
+
if (typeof val === 'undefined') {
|
155 |
+
return el && el[key];
|
156 |
+
}
|
157 |
+
el[key] = val;
|
158 |
+
};
|
159 |
|
160 |
+
common.offset = function(el) {
|
161 |
+
var ret = el.getBoundingClientRect();
|
162 |
+
if (el.offsetWidth / el.offsetHeight > el.clientWidth / el.clientHeight) { // https://github.com/flowplayer/flowplayer/issues/757
|
163 |
+
ret = {
|
164 |
+
left: ret.left * 100,
|
165 |
+
right: ret.right * 100,
|
166 |
+
top: ret.top * 100,
|
167 |
+
bottom: ret.bottom * 100,
|
168 |
+
width: ret.width * 100,
|
169 |
+
height: ret.height * 100
|
170 |
+
};
|
171 |
+
}
|
172 |
+
return ret;
|
173 |
+
};
|
174 |
|
175 |
+
common.width = function(el, val) {
|
176 |
+
/*jshint -W093 */
|
177 |
+
if (val) return el.style.width = (''+val).replace(/px$/, '') + 'px';
|
178 |
+
var ret = common.offset(el).width;
|
179 |
+
return typeof ret === 'undefined' ? el.offsetWidth : ret;
|
180 |
+
};
|
181 |
|
182 |
+
common.height = function(el, val) {
|
183 |
+
/*jshint -W093 */
|
184 |
+
if (val) return el.style.height = (''+val).replace(/px$/, '') + 'px';
|
185 |
+
var ret = common.offset(el).height;
|
186 |
+
return typeof ret === 'undefined' ? el.offsetHeight : ret;
|
187 |
+
};
|
188 |
|
189 |
+
common.lastChild = function(el) {
|
190 |
+
return el.children[el.children.length - 1];
|
191 |
+
};
|
192 |
|
193 |
+
common.hasParent = function(el, parentSelector) {
|
194 |
+
var parent = el.parentElement;
|
195 |
+
while (parent) {
|
196 |
+
if (common.matches(parent, parentSelector)) return true;
|
197 |
+
parent = parent.parentElement;
|
198 |
+
}
|
199 |
+
return false;
|
200 |
+
};
|
201 |
|
202 |
+
common.createAbsoluteUrl = function(url) {
|
203 |
+
return common.createElement('a', {href: url}).href; // This won't work on IE7
|
204 |
+
};
|
205 |
|
206 |
+
common.xhrGet = function(url, successCb, errorCb) {
|
207 |
+
var xhr = new XMLHttpRequest();
|
208 |
+
xhr.onreadystatechange = function() {
|
209 |
+
if (this.readyState !== 4) return;
|
210 |
+
if (this.status >= 400) return errorCb();
|
211 |
+
successCb(this.responseText);
|
212 |
+
};
|
213 |
+
xhr.open('get', url, true);
|
214 |
+
xhr.send();
|
215 |
+
};
|
216 |
|
217 |
+
common.pick = function(obj, props) {
|
218 |
+
var ret = {};
|
219 |
+
props.forEach(function(prop) {
|
220 |
+
if (obj.hasOwnProperty(prop)) ret[prop] = obj[prop];
|
221 |
+
});
|
222 |
+
return ret;
|
223 |
+
};
|
224 |
|
225 |
+
common.hostname = function(host) {
|
226 |
+
return punycode.toUnicode(host || window.location.hostname);
|
227 |
+
};
|
228 |
|
229 |
+
//Hacks
|
230 |
+
common.browser = {
|
231 |
+
webkit: 'WebkitAppearance' in document.documentElement.style
|
232 |
+
};
|
233 |
|
234 |
+
common.getPrototype = function(el) {
|
235 |
+
/* jshint proto:true */
|
236 |
+
if (!Object.getPrototypeOf) return el.__proto__;
|
237 |
+
return Object.getPrototypeOf(el);
|
238 |
+
};
|
239 |
|
240 |
+
common.hasOwnOrPrototypeProperty = function(obj, prop) {
|
241 |
+
var o = obj;
|
242 |
+
while (o) {
|
243 |
+
if (Object.prototype.hasOwnProperty.call(o, prop)) return true;
|
244 |
+
o = common.getPrototype(o);
|
245 |
+
}
|
246 |
+
return false;
|
247 |
+
};
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
|
250 |
+
// Polyfill for Element.matches
|
251 |
+
// adapted from https://developer.mozilla.org/en/docs/Web/API/Element/matches
|
252 |
+
common.matches = function(elem, selector) {
|
253 |
+
var proto = Element.prototype,
|
254 |
+
fn = proto.matches ||
|
255 |
+
proto.matchesSelector ||
|
256 |
+
proto.mozMatchesSelector ||
|
257 |
+
proto.msMatchesSelector ||
|
258 |
+
proto.oMatchesSelector ||
|
259 |
+
proto.webkitMatchesSelector ||
|
260 |
+
function (selector) {
|
261 |
+
var element = this,
|
262 |
+
matches = (element.document || element.ownerDocument).querySelectorAll(selector),
|
263 |
+
i = 0;
|
264 |
+
while (matches[i] && matches[i] !== element) {
|
265 |
+
i++;
|
266 |
+
}
|
267 |
|
268 |
+
return matches[i] ? true : false;
|
269 |
+
};
|
270 |
+
return fn.call(elem, selector);
|
271 |
+
};
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
+
// Polyfill for CSSStyleDeclaration
|
275 |
+
// from https://github.com/shawnbot/aight
|
276 |
+
(function(CSSSDProto) {
|
277 |
|
278 |
+
function getAttribute(property) {
|
279 |
+
return property.replace(/-[a-z]/g, function(bit) {
|
280 |
+
return bit[1].toUpperCase();
|
281 |
+
});
|
282 |
+
}
|
283 |
|
284 |
+
// patch CSSStyleDeclaration.prototype using IE8's methods
|
285 |
+
if (typeof CSSSDProto.setAttribute !== "undefined") {
|
286 |
+
CSSSDProto.setProperty = function(property, value) {
|
287 |
+
return this.setAttribute(getAttribute(property), String(value) /*, important */ );
|
288 |
+
};
|
289 |
+
CSSSDProto.getPropertyValue = function(property) {
|
290 |
+
return this.getAttribute(getAttribute(property)) || null;
|
291 |
+
};
|
292 |
+
CSSSDProto.removeProperty = function(property) {
|
293 |
+
var value = this.getPropertyValue(property);
|
294 |
+
this.removeAttribute(getAttribute(property));
|
295 |
+
return value;
|
296 |
+
};
|
297 |
+
}
|
298 |
|
299 |
+
})(window.CSSStyleDeclaration.prototype);
|
|
|
|
|
300 |
|
301 |
+
},{"class-list":33,"computed-style":34,"punycode":41}],2:[function(_dereq_,module,exports){
|
302 |
+
'use strict';
|
303 |
+
var common = _dereq_('../common');
|
304 |
|
305 |
+
// movie required in opts
|
306 |
+
module.exports = function embed(swf, flashvars, wmode, bgColor) {
|
307 |
+
wmode = wmode || "opaque";
|
308 |
|
309 |
+
var id = "obj" + ("" + Math.random()).slice(2, 15),
|
310 |
+
tag = '<object class="fp-engine" id="' + id+ '" name="' + id + '" ',
|
311 |
+
msie = navigator.userAgent.indexOf('MSIE') > -1;
|
312 |
|
313 |
+
tag += msie ? 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">' :
|
314 |
+
' data="' + swf + '" type="application/x-shockwave-flash">';
|
|
|
|
|
|
|
315 |
|
316 |
+
var opts = {
|
317 |
+
width: "100%",
|
318 |
+
height: "100%",
|
319 |
+
allowscriptaccess: "always",
|
320 |
+
wmode: wmode,
|
321 |
+
quality: "high",
|
322 |
+
flashvars: "",
|
|
|
|
|
|
|
323 |
|
324 |
+
// https://github.com/flowplayer/flowplayer/issues/13#issuecomment-9369919
|
325 |
+
movie: swf + (msie ? "?" + id : ""),
|
326 |
+
name: id
|
327 |
+
};
|
328 |
|
329 |
+
if (wmode !== 'transparent') opts.bgcolor = bgColor || '#333333';
|
330 |
|
331 |
+
// flashvars
|
332 |
+
Object.keys(flashvars).forEach(function(key) {
|
333 |
+
opts.flashvars += key + "=" + flashvars[key] + "&";
|
334 |
+
});
|
335 |
|
336 |
+
// parameters
|
337 |
+
Object.keys(opts).forEach(function(key) {
|
338 |
+
tag += '<param name="' + key + '" value="'+ opts[key] +'"/>';
|
339 |
+
});
|
340 |
|
341 |
+
tag += "</object>";
|
342 |
+
var el = common.createElement('div', {}, tag);
|
343 |
+
return common.find('object', el);
|
344 |
|
345 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
|
|
|
|
|
347 |
|
348 |
+
// Flash is buggy allover
|
349 |
+
if (window.attachEvent) {
|
350 |
+
window.attachEvent("onbeforeunload", function() {
|
351 |
+
window.__flash_savedUnloadHandler = window.__flash_unloadHandler = function() {};
|
352 |
+
});
|
353 |
+
}
|
|
|
354 |
|
|
|
355 |
|
356 |
+
},{"../common":1}],3:[function(_dereq_,module,exports){
|
357 |
+
'use strict';
|
358 |
+
var flowplayer = _dereq_('../flowplayer'),
|
359 |
+
common = _dereq_('../common'),
|
360 |
+
embed = _dereq_('./embed'),
|
361 |
+
extend = _dereq_('extend-object'),
|
362 |
+
bean = _dereq_('bean'),
|
363 |
+
engineImpl;
|
364 |
|
365 |
+
engineImpl = function flashEngine(player, root) {
|
|
|
|
|
|
|
|
|
|
|
366 |
|
367 |
+
var conf = player.conf,
|
368 |
+
loadVideo,
|
369 |
+
callbackId,
|
370 |
+
api;
|
371 |
|
372 |
+
var suspended, timeouts = [];
|
|
|
|
|
373 |
|
374 |
+
var engine = {
|
375 |
+
engineName: engineImpl.engineName,
|
|
|
|
|
|
|
|
|
|
|
376 |
|
377 |
+
pick: function(sources) {
|
378 |
+
|
379 |
+
var source = extend({}, (function() {
|
380 |
+
if (flowplayer.support.flashVideo) {
|
381 |
+
var selectedSource;
|
382 |
+
for (var i = 0, source; i < sources.length; i++) {
|
383 |
+
source = sources[i];
|
384 |
+
if (/mp4|flv|flash/i.test(source.type)) selectedSource = source;
|
385 |
+
if (player.conf.swfHls && /mpegurl/i.test(source.type)) selectedSource = source;
|
386 |
+
if (selectedSource && !/mp4/i.test(selectedSource.type)) return selectedSource;
|
387 |
+
// Did not find any source or source was video/mp4, let's try find more
|
|
|
|
|
|
|
388 |
}
|
389 |
+
return selectedSource; // Accept the fact we don't have anything or just an MP4
|
390 |
+
}
|
391 |
+
})());
|
392 |
+
if (!source) return;
|
393 |
+
if (source.src && !isAbsolute(source.src) && !player.conf.rtmp && !source.rtmp) source.src = common.createAbsoluteUrl(source.src);
|
394 |
+
return source;
|
395 |
+
},
|
396 |
|
397 |
+
suspendEngine: function() {
|
398 |
+
suspended = true;
|
399 |
+
},
|
400 |
+
resumeEngine: function() {
|
401 |
+
suspended = false;
|
402 |
+
},
|
|
|
|
|
|
|
|
|
|
|
403 |
|
404 |
+
load: function(video) {
|
405 |
+
loadVideo = video;
|
406 |
+
timeouts.forEach(function(t) { clearTimeout(t); });
|
|
|
|
|
|
|
|
|
|
|
407 |
|
408 |
+
function escapeURL(url) {
|
409 |
+
return url.replace(/&/g, '%26').replace(/&/g, '%26').replace(/=/g, '%3D');
|
410 |
+
}
|
|
|
|
|
|
|
411 |
|
412 |
+
var html5Tag = common.findDirect('video', root)[0] || common.find('.fp-player > video', root)[0],
|
413 |
+
url = video.src,
|
414 |
+
is_absolute = isAbsolute(url);
|
415 |
|
416 |
+
var removeTag = function() {
|
417 |
+
common.removeNode(html5Tag);
|
418 |
+
};
|
419 |
+
var hasSupportedSource = function(sources) {
|
420 |
+
return sources.some(function(src) {
|
421 |
+
return !!html5Tag.canPlayType(src.type);
|
422 |
+
});
|
423 |
+
};
|
424 |
+
if (flowplayer.support.video &&
|
425 |
+
common.prop(html5Tag, 'autoplay') &&
|
426 |
+
hasSupportedSource(video.sources)) bean.one(html5Tag, 'timeupdate', removeTag);
|
427 |
+
else removeTag();
|
428 |
|
429 |
+
// convert to absolute
|
430 |
+
var rtmp = video.rtmp || conf.rtmp;
|
431 |
+
if (!is_absolute && !rtmp) url = common.createAbsoluteUrl(url);
|
432 |
|
433 |
+
if (api && isHLS(video) && api.data !== common.createAbsoluteUrl(conf.swfHls)) engine.unload();
|
|
|
|
|
|
|
434 |
|
435 |
+
if (api) {
|
436 |
+
['live', 'preload', 'loop'].forEach(function(prop) {
|
437 |
+
if (!video.hasOwnProperty(prop)) return;
|
438 |
+
api.__set(prop, video[prop]);
|
439 |
+
});
|
440 |
+
Object.keys(video.flashls || {}).forEach(function(key) {
|
441 |
+
api.__set('hls_' + key, video.flashls[key]);
|
442 |
+
});
|
443 |
+
var providerChangeNeeded = false;
|
444 |
+
if (!is_absolute && rtmp) api.__set('rtmp', rtmp.url || rtmp);
|
445 |
+
else {
|
446 |
+
var oldRtmp = api.__get('rtmp');
|
447 |
+
providerChangeNeeded = !!oldRtmp;
|
448 |
+
api.__set('rtmp', null);
|
449 |
}
|
450 |
+
api.__play(url, providerChangeNeeded || video.rtmp && video.rtmp !== conf.rtmp);
|
451 |
|
452 |
+
} else {
|
|
|
453 |
|
454 |
+
callbackId = "fpCallback" + ("" + Math.random()).slice(3, 15);
|
455 |
+
url = escapeURL(url);
|
456 |
|
457 |
+
var opts = {
|
458 |
+
hostname: conf.embedded ? common.hostname(conf.hostname) : common.hostname(location.hostname),
|
459 |
+
url: url,
|
460 |
+
callback: callbackId
|
461 |
+
};
|
462 |
+
if (root.getAttribute('data-origin')) {
|
463 |
+
opts.origin = root.getAttribute('data-origin');
|
464 |
}
|
|
|
|
|
465 |
|
466 |
+
// optional conf
|
467 |
+
['proxy', 'key', 'autoplay', 'preload', 'subscribe', 'live', 'loop', 'debug', 'splash', 'poster', 'rtmpt'].forEach(function(key) {
|
468 |
+
if (conf.hasOwnProperty(key)) opts[key] = conf[key];
|
469 |
+
if (video.hasOwnProperty(key)) opts[key] = video[key];
|
470 |
+
if ((conf.rtmp || {}).hasOwnProperty(key)) opts[key] = (conf.rtmp || {})[key];
|
471 |
+
if ((video.rtmp || {}).hasOwnProperty(key)) opts[key] = (video.rtmp || {})[key];
|
472 |
+
});
|
473 |
+
if (conf.rtmp) opts.rtmp = conf.rtmp.url || conf.rtmp;
|
474 |
+
if (video.rtmp) opts.rtmp = video.rtmp.url || video.rtmp;
|
475 |
+
Object.keys(video.flashls || {}).forEach(function(key) {
|
476 |
+
var val = video.flashls[key];
|
477 |
+
opts['hls_' + key] = val;
|
478 |
+
});
|
479 |
|
480 |
+
var hlsQualities = typeof video.hlsQualities !== 'undefined' ? video.hlsQualities : conf.hlsQualities;
|
481 |
+
if (typeof hlsQualities !== 'undefined') opts.hlsQualities = hlsQualities ? encodeURIComponent(JSON.stringify(hlsQualities)) : hlsQualities;
|
482 |
+
// bufferTime might be 0
|
483 |
+
if (conf.bufferTime !== undefined) opts.bufferTime = conf.bufferTime;
|
|
|
|
|
|
|
|
|
|
|
484 |
|
485 |
+
if (is_absolute) delete opts.rtmp;
|
|
|
486 |
|
487 |
+
// issues #376
|
488 |
+
if (opts.rtmp) {
|
489 |
+
opts.rtmp = escapeURL(opts.rtmp);
|
490 |
}
|
|
|
|
|
|
|
|
|
491 |
|
492 |
+
// issues #733, 906
|
493 |
+
var bgColor = conf.bgcolor || common.css(root, 'background-color') ||'', bg;
|
494 |
+
if (bgColor.indexOf('rgb') === 0) {
|
495 |
+
bg = toHex(bgColor);
|
496 |
+
} else if (bgColor.indexOf('#') === 0) {
|
497 |
+
bg = toLongHex(bgColor);
|
498 |
+
}
|
499 |
|
500 |
+
// issues #387
|
501 |
+
opts.initialVolume = player.volumeLevel;
|
502 |
|
503 |
+
var swfUrl = isHLS(video) ? conf.swfHls : conf.swf;
|
|
|
|
|
|
|
|
|
|
|
|
|
504 |
|
505 |
+
api = embed(swfUrl, opts, conf.wmode, bg)[0];
|
|
|
|
|
|
|
506 |
|
507 |
+
var container = common.find('.fp-player', root)[0];
|
508 |
|
509 |
+
common.prepend(container, api);
|
|
|
|
|
510 |
|
511 |
+
player.off('quality.flashengine').on('quality.flashengine', function(ev, _api, quality) {
|
512 |
+
var hlsQualities =
|
513 |
+
typeof player.video.hlsQualities !== 'undefined' ?
|
514 |
+
player.video.hlsQualities :
|
515 |
+
player.conf.hlsQualities;
|
516 |
+
if (!hlsQualities) return;
|
517 |
+
api.__quality(quality);
|
518 |
});
|
519 |
|
520 |
+
// throw error if no loading occurs
|
521 |
+
setTimeout(function() {
|
522 |
+
try {
|
523 |
+
if (!api.PercentLoaded()) {
|
524 |
+
return player.trigger("error", [player, { code: 7, url: conf.swf }]);
|
525 |
+
}
|
526 |
+
} catch (e) {}
|
527 |
+
}, 5000);
|
|
|
|
|
|
|
|
|
528 |
|
529 |
+
// detect disabled flash
|
530 |
+
//
|
531 |
+
timeouts.push(setTimeout(function() {
|
532 |
+
if (typeof api.PercentLoaded === 'undefined') {
|
533 |
+
player.trigger('flashdisabled', [player]);
|
534 |
+
}
|
535 |
+
}, 15000));
|
536 |
+
timeouts.push(setTimeout(function() {
|
537 |
+
if (typeof api.PercentLoaded === 'undefined') {
|
538 |
+
player.trigger('flashdisabled', [player, false]);
|
539 |
+
}
|
540 |
+
}, 500));
|
541 |
+
|
542 |
+
player.off('resume.flashhack').on('resume.flashhack', function() {
|
543 |
+
var timer = setTimeout(function() {
|
544 |
+
var currentTime = api.__status().time;
|
545 |
+
var timer2 = setTimeout(function() {
|
546 |
+
if (player.playing && !player.loading && api.__status().time === currentTime) {
|
547 |
+
player.trigger('flashdisabled', [player]);
|
548 |
+
}
|
549 |
+
}, 400);
|
550 |
+
timeouts.push(timer2);
|
551 |
+
player.one('seek.flashhack pause.flashhack load.flashack', function() { clearTimeout(timer2); });
|
552 |
+
}, 800);
|
553 |
+
timeouts.push(timer);
|
554 |
+
player.one('progress', function() {
|
555 |
+
clearTimeout(timer);
|
556 |
+
});
|
557 |
});
|
558 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
559 |
|
560 |
+
api.pollInterval = setInterval(function () {
|
561 |
+
if (!api || suspended) return;
|
562 |
+
var status = api.__status ? api.__status() : null;
|
563 |
|
564 |
+
if (!status) return;
|
|
|
565 |
|
566 |
+
if (player.conf.live || player.live || video.live) {
|
567 |
+
video.seekOffset = status.seekOffset;
|
568 |
+
video.duration = status.duration + status.seekOffset;
|
569 |
+
}
|
570 |
|
571 |
+
if (player.playing && status.time && status.time !== player.video.time) player.trigger("progress", [player, status.time]);
|
|
|
572 |
|
573 |
+
video.buffer = status.buffer / video.bytes * video.duration;
|
574 |
+
player.trigger("buffer", [player, video.buffer]);
|
575 |
|
576 |
+
if (!video.buffered && status.time > 0) {
|
577 |
+
video.buffered = true;
|
578 |
+
player.trigger("buffered", [player]);
|
579 |
+
}
|
580 |
|
581 |
+
}, 250);
|
582 |
|
583 |
+
// listen
|
584 |
+
window[callbackId] = function(type, arg) {
|
585 |
+
var video = loadVideo;
|
586 |
+
|
587 |
+
if (conf.debug) {
|
588 |
+
if (type.indexOf('debug') === 0 && arg && arg.length) {
|
589 |
+
console.log.apply(console, ['-- ' + type].concat(arg));
|
590 |
+
}
|
591 |
+
else console.log("--", type, arg);
|
592 |
+
}
|
593 |
|
594 |
+
var event = {
|
595 |
+
type: type
|
596 |
+
};
|
|
|
|
|
|
|
|
|
597 |
|
598 |
+
switch (type) {
|
|
|
|
|
599 |
|
600 |
+
// RTMP sends a lot of finish events in vain
|
601 |
+
// case "finish": if (conf.rtmp) return;
|
602 |
+
case "ready": arg = extend(video, arg); break;
|
603 |
+
case "click": event.flash = true; break;
|
604 |
+
case "keydown": event.which = arg; break;
|
605 |
+
case "seek": video.time = arg; break;
|
606 |
+
case "status":
|
607 |
+
player.trigger("progress", [player, arg.time]);
|
608 |
+
|
609 |
+
if (arg.buffer < video.bytes && !video.buffered) {
|
610 |
+
video.buffer = arg.buffer / video.bytes * video.duration;
|
611 |
+
player.trigger("buffer", video.buffer);
|
612 |
+
} else if (!video.buffered) {
|
613 |
+
video.buffered = true;
|
614 |
+
player.trigger("buffered");
|
615 |
+
}
|
616 |
|
617 |
+
break;
|
618 |
+
case "metadata":
|
619 |
+
var str = atob(arg);
|
620 |
+
arg = {
|
621 |
+
key: str.substr(10, 4),
|
622 |
+
data: str.substr(21)
|
623 |
+
}
|
624 |
+
break;
|
625 |
+
}
|
626 |
+
if (type === 'click' || type === 'keydown') {
|
627 |
+
event.target = root;
|
628 |
+
bean.fire(root, type, [event]);
|
629 |
+
}
|
630 |
+
else if (type != 'buffered' && type !== 'unload') {
|
631 |
+
// add some delay so that player is truly ready after an event
|
632 |
+
setTimeout(function() { player.trigger(event, [player, arg]); }, 1);
|
633 |
+
} else if (type === 'unload') {
|
634 |
+
player.trigger(event, [player, arg]);
|
635 |
+
}
|
636 |
|
637 |
+
};
|
|
|
|
|
|
|
638 |
|
639 |
+
}
|
|
|
640 |
|
641 |
+
},
|
|
|
|
|
642 |
|
643 |
+
// not supported yet
|
644 |
+
speed: common.noop,
|
645 |
|
|
|
|
|
646 |
|
647 |
+
unload: function() {
|
648 |
+
if (api && api.__unload) api.__unload();
|
649 |
+
try {
|
650 |
+
if (callbackId && window[callbackId])delete window[callbackId];
|
651 |
+
} catch (e) {}
|
652 |
+
common.find("object", root).forEach(common.removeNode);
|
653 |
+
api = 0;
|
654 |
+
player.off('.flashengine');
|
655 |
+
player.off('.flashhack');
|
656 |
+
clearInterval(api.pollInterval);
|
657 |
+
timeouts.forEach(function(t) { clearTimeout(t); });
|
658 |
+
}
|
659 |
|
660 |
+
};
|
661 |
|
662 |
+
['pause','resume','seek','volume'].forEach(function(name) {
|
|
|
|
|
|
|
|
|
663 |
|
664 |
+
engine[name] = function(arg) {
|
665 |
+
try {
|
666 |
+
if (player.ready) {
|
667 |
|
668 |
+
if (arg === undefined) {
|
669 |
+
api["__" + name]();
|
670 |
|
671 |
+
} else {
|
672 |
+
api["__" + name](arg);
|
673 |
+
}
|
674 |
|
675 |
+
}
|
676 |
+
} catch (e) {
|
677 |
+
if (typeof api["__" + name] === 'undefined') { //flash lost it's methods
|
678 |
+
return player.trigger('flashdisabled', [player]);
|
679 |
+
}
|
680 |
+
throw e;
|
681 |
+
}
|
682 |
+
};
|
683 |
|
684 |
+
});
|
|
|
|
|
|
|
685 |
|
686 |
+
function toHex(bg) {
|
687 |
+
function hex(x) {
|
688 |
+
return ("0" + parseInt(x).toString(16)).slice(-2);
|
689 |
+
}
|
690 |
|
691 |
+
bg = bg.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
|
692 |
+
if (!bg) return;
|
|
|
693 |
|
694 |
+
return '#' + hex(bg[1]) + hex(bg[2]) + hex(bg[3]);
|
695 |
+
}
|
696 |
|
697 |
+
function toLongHex(bg) {
|
698 |
+
if (bg.length === 7) return bg;
|
699 |
+
var a = bg.split('').slice(1);
|
700 |
+
return '#' + a.map(function(i) {
|
701 |
+
return i + i;
|
702 |
+
}).join('');
|
703 |
+
}
|
704 |
|
705 |
+
function isHLS(video) {
|
706 |
+
return /application\/x-mpegurl/i.test(video.type);
|
707 |
+
}
|
|
|
|
|
|
|
|
|
708 |
|
709 |
+
return engine;
|
|
|
710 |
|
711 |
+
};
|
|
|
712 |
|
|
|
|
|
713 |
|
714 |
+
engineImpl.engineName = 'flash';
|
715 |
+
engineImpl.canPlay = function(type, conf) {
|
716 |
+
return flowplayer.support.flashVideo && /video\/(mp4|flash|flv)/i.test(type) || flowplayer.support.flashVideo && conf.swfHls && /mpegurl/i.test(type);
|
717 |
+
};
|
718 |
+
flowplayer.engines.push(engineImpl);
|
719 |
|
|
|
|
|
|
|
|
|
720 |
|
|
|
|
|
721 |
|
722 |
+
function isAbsolute(url) {
|
723 |
+
return /^https?:/.test(url);
|
724 |
+
}
|
725 |
|
726 |
+
},{"../common":1,"../flowplayer":28,"./embed":2,"bean":31,"extend-object":36}],4:[function(_dereq_,module,exports){
|
727 |
+
'use strict';
|
728 |
+
var flowplayer = _dereq_('../flowplayer'),
|
729 |
+
bean = _dereq_('bean'),
|
730 |
+
extend = _dereq_('extend-object'),
|
731 |
+
common = _dereq_('../common');
|
732 |
+
var VIDEO = document.createElement('video');
|
733 |
|
734 |
+
// HTML5 --> Flowplayer event
|
735 |
+
var EVENTS = {
|
736 |
|
737 |
+
// fired
|
738 |
+
ended: 'finish',
|
739 |
+
pause: 'pause',
|
740 |
+
play: 'resume',
|
741 |
+
//progress: 'buffer',
|
742 |
+
timeupdate: 'progress',
|
743 |
+
volumechange: 'volume',
|
744 |
+
ratechange: 'speed',
|
745 |
+
//seeking: 'beforeseek',
|
746 |
+
seeked: 'seek',
|
747 |
+
// abort: 'resume',
|
748 |
|
749 |
+
// not fired
|
750 |
+
loadeddata: 'ready',
|
751 |
+
// loadedmetadata: 0,
|
752 |
+
// canplay: 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
|
754 |
+
// error events
|
755 |
+
// load: 0,
|
756 |
+
// emptied: 0,
|
757 |
+
// empty: 0,
|
758 |
+
error: 'error',
|
759 |
+
dataunavailable: 'error',
|
760 |
+
webkitendfullscreen: !flowplayer.support.inlineVideo && 'unload'
|
761 |
|
762 |
+
};
|
|
|
763 |
|
764 |
+
function round(val, per) {
|
765 |
+
per = per || 100;
|
766 |
+
return Math.round(val * per) / per;
|
767 |
+
}
|
768 |
|
769 |
+
function getType(type) {
|
770 |
+
return /mpegurl/i.test(type) ? "application/x-mpegurl" : type;
|
771 |
+
}
|
|
|
|
|
|
|
|
|
772 |
|
773 |
+
function canPlay(type) {
|
774 |
+
if (!/^(video|application)/i.test(type))
|
775 |
+
type = getType(type);
|
776 |
+
return !!VIDEO.canPlayType(type).replace("no", '');
|
777 |
+
}
|
778 |
|
779 |
+
function findFromSourcesByType(sources, type) {
|
780 |
+
var arr = sources.filter(function(s) {
|
781 |
+
return s.type === type;
|
782 |
+
});
|
783 |
+
return arr.length ? arr[0] : null;
|
784 |
+
}
|
785 |
|
786 |
+
var videoTagCache;
|
787 |
+
var createVideoTag = function(video, autoplay, preload, useCache) {
|
788 |
+
if (typeof autoplay === 'undefined') autoplay = true;
|
789 |
+
if (typeof preload === 'undefined') preload = 'none';
|
790 |
+
if (typeof useCache === 'undefined') useCache = true;
|
791 |
+
if (useCache && videoTagCache) {
|
792 |
+
videoTagCache.type = getType(video.type);
|
793 |
+
videoTagCache.src = video.src;
|
794 |
+
common.find('track', videoTagCache).forEach(common.removeNode);
|
795 |
+
videoTagCache.removeAttribute('crossorigin');
|
796 |
+
return videoTagCache;
|
797 |
+
}
|
798 |
+
var el = document.createElement('video');
|
799 |
+
el.src = video.src;
|
800 |
+
el.type = getType(video.type);
|
801 |
+
el.className = 'fp-engine';
|
802 |
+
if (flowplayer.support.autoplay) el.autoplay = autoplay ? 'autoplay' : false;
|
803 |
+
if (flowplayer.support.dataload) el.preload = preload;
|
804 |
+
el.setAttribute('webkit-playsinline', 'true');
|
805 |
+
el.setAttribute('playsinline', 'true');
|
806 |
+
if (useCache) videoTagCache = el;
|
807 |
+
return el;
|
808 |
+
};
|
809 |
|
810 |
+
var engine;
|
811 |
|
812 |
+
engine = function(player, root) {
|
813 |
|
814 |
+
var api = common.findDirect('video', root)[0] || common.find('.fp-player > video', root)[0],
|
815 |
+
support = flowplayer.support,
|
816 |
+
conf = player.conf,
|
817 |
+
self,
|
818 |
+
timer,
|
819 |
+
lastBuffer,
|
820 |
+
volumeLevel;
|
821 |
+
/*jshint -W093 */
|
822 |
+
return self = {
|
823 |
+
engineName: engine.engineName,
|
824 |
|
825 |
+
pick: function(sources) {
|
826 |
+
var source = (function() {
|
827 |
+
if (support.video) {
|
828 |
+
if (conf.videoTypePreference) {
|
829 |
+
var mp4source = findFromSourcesByType(sources, conf.videoTypePreference);
|
830 |
+
if (mp4source) return mp4source;
|
831 |
+
}
|
832 |
|
833 |
+
for (var i = 0; i < sources.length; i++) {
|
834 |
+
if (canPlay(sources[i].type)) return sources[i];
|
835 |
+
}
|
836 |
+
}
|
837 |
+
})();
|
838 |
+
if (!source) return;
|
839 |
+
if (typeof source.src === 'string') source.src = common.createAbsoluteUrl(source.src);
|
840 |
+
return source;
|
841 |
+
},
|
842 |
|
843 |
+
load: function(video) {
|
844 |
+
var container = common.find('.fp-player', root)[0], reload = false, created = false;
|
845 |
+
if (conf.splash && !api) {
|
846 |
+
api = createVideoTag(video);
|
847 |
+
common.prepend(container, api);
|
848 |
+
created = true;
|
849 |
+
} else if (!api) {
|
850 |
+
api = createVideoTag(video, !!video.autoplay || !!conf.autoplay, conf.clip.preload || true, false);
|
851 |
+
common.prepend(container, api);
|
852 |
+
created = true;
|
853 |
+
} else {
|
854 |
+
common.addClass(api, 'fp-engine');
|
855 |
+
common.find('source,track', api).forEach(common.removeNode);
|
856 |
+
if (!player.conf.nativesubtitles) common.attr(api, 'crossorigin', false);
|
857 |
+
reload = api.src === video.src;
|
858 |
+
}
|
859 |
+
if (!support.inlineVideo) {
|
860 |
+
common.css(api, {
|
861 |
+
position: 'absolute',
|
862 |
+
top: '-9999em'
|
863 |
+
});
|
864 |
+
}
|
865 |
+
//TODO subtitles support
|
866 |
|
867 |
+
// IE does not fire delegated timeupdate events
|
868 |
+
bean.off(api, 'timeupdate', common.noop);
|
869 |
+
bean.on(api, 'timeupdate', common.noop);
|
870 |
|
871 |
+
common.prop(api, 'loop', false);
|
872 |
+
player.off('.loophack');
|
873 |
+
if (video.loop || conf.loop) {
|
874 |
+
if (/mpegurl/i.test(video.type)) {
|
875 |
+
player.on('finish.loophack', function() { player.resume(); });
|
876 |
+
}
|
877 |
+
else common.prop(api, 'loop', true);
|
878 |
+
}
|
879 |
|
880 |
+
if (typeof volumeLevel !== 'undefined') {
|
881 |
+
api.volume = volumeLevel;
|
882 |
+
}
|
|
|
883 |
|
884 |
+
if (player.video.src && video.src != player.video.src || video.index) common.attr(api, 'autoplay', 'autoplay');
|
885 |
+
api.src = video.src;
|
886 |
+
api.type = video.type;
|
|
|
887 |
|
888 |
+
self._listeners = listen(api, common.find("source", api).concat(api), video) || self._listeners;
|
|
|
|
|
|
|
889 |
|
890 |
+
if (reload || (created && !conf.splash)) api.load();
|
891 |
+
if (support.iOS.iPad && support.iOS.chrome) api.load();
|
892 |
+
if (api.paused && (video.autoplay || conf.autoplay || conf.splash)) api.play();
|
893 |
+
},
|
894 |
|
895 |
+
pause: function() {
|
896 |
+
api.pause();
|
897 |
+
},
|
898 |
|
899 |
+
resume: function() {
|
900 |
+
api.play();
|
901 |
+
},
|
902 |
|
903 |
+
speed: function(val) {
|
904 |
+
api.playbackRate = val;
|
905 |
+
},
|
|
|
|
|
|
|
906 |
|
907 |
+
seek: function(time) {
|
908 |
+
try {
|
909 |
+
var pausedState = player.paused;
|
910 |
+
api.currentTime = time;
|
911 |
+
if (pausedState) api.pause();
|
912 |
+
} catch (ignored) {}
|
913 |
+
},
|
914 |
|
915 |
+
volume: function(level) {
|
916 |
+
volumeLevel = level;
|
917 |
+
if (api) {
|
918 |
+
api.volume = level;
|
919 |
+
}
|
920 |
+
},
|
921 |
|
922 |
+
unload: function() {
|
923 |
+
common.find('video.fp-engine', root).forEach(function (videoTag) {
|
924 |
+
common.attr(videoTag, 'src', '');
|
925 |
+
common.removeNode(videoTag);
|
926 |
+
});
|
927 |
+
if (!support.cachedVideoTag) videoTagCache = null;
|
928 |
+
timer = clearInterval(timer);
|
929 |
+
var instanceId = root.getAttribute('data-flowplayer-instance-id');
|
930 |
+
delete api.listeners[instanceId];
|
931 |
+
api = 0;
|
932 |
+
if (self._listeners) Object.keys(self._listeners).forEach(function(typ) {
|
933 |
+
self._listeners[typ].forEach(function(l) {
|
934 |
+
root.removeEventListener(typ, l, true);
|
935 |
+
});
|
936 |
+
});
|
937 |
+
}
|
938 |
|
939 |
+
};
|
940 |
|
941 |
+
function listen(api, sources, video) {
|
942 |
+
// listen only once
|
943 |
+
var instanceId = root.getAttribute('data-flowplayer-instance-id');
|
|
|
|
|
|
|
944 |
|
945 |
+
if (api.listeners && api.listeners.hasOwnProperty(instanceId)) {
|
946 |
+
api.listeners[instanceId] = video;
|
947 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
948 |
}
|
949 |
+
(api.listeners || (api.listeners = {}))[instanceId] = video;
|
950 |
|
951 |
+
bean.on(sources, 'error', function(e) {
|
952 |
+
try {
|
953 |
+
if (canPlay(e.target.getAttribute('type'))) {
|
954 |
+
player.trigger("error", [player, { code: 4, video: extend(video, {src: api.src, url: api.src}) }]);
|
955 |
+
}
|
956 |
+
} catch (er) {
|
957 |
+
// Most likely: https://bugzilla.mozilla.org/show_bug.cgi?id=208427
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
958 |
}
|
959 |
+
});
|
960 |
|
961 |
+
player.on('shutdown', function() {
|
962 |
+
bean.off(sources);
|
963 |
+
bean.off(api, '.dvrhack');
|
964 |
+
player.off('.loophack');
|
965 |
+
});
|
|
|
|
|
|
|
966 |
|
967 |
+
var eventListeners = {};
|
968 |
+
//Special event handling for HLS metadata events
|
969 |
|
970 |
+
var listenMetadata = function(track) {
|
971 |
+
if (track.kind !== 'metadata') return;
|
972 |
+
track.mode = 'hidden';
|
973 |
+
track.addEventListener('cuechange', function() {
|
974 |
+
player.trigger('metadata', [player, track.activeCues[0].value]);
|
975 |
+
}, false);
|
976 |
+
};
|
977 |
|
978 |
+
if (api && api.textTracks.length) Array.prototype.forEach.call(api.textTracks, listenMetadata);
|
979 |
+
if (typeof api.textTracks.addEventListener === 'function') api.textTracks.addEventListener('addtrack', function(tev) {
|
980 |
+
listenMetadata(tev.track);
|
981 |
+
}, false);
|
982 |
+
if (player.conf.dvr || player.dvr || video.dvr) {
|
983 |
+
bean.on(api, 'progress.dvrhack', function() {
|
984 |
+
if (!api.seekable.length) return;
|
985 |
+
player.video.duration = api.seekable.end(null);
|
986 |
+
player.video.seekOffset = api.seekable.start(null);
|
987 |
+
player.trigger('dvrwindow', [player, {
|
988 |
+
start: api.seekable.start(null),
|
989 |
+
end: api.seekable.end(null)
|
990 |
+
}]);
|
991 |
+
if (api.currentTime >= api.seekable.start(null)) return;
|
992 |
+
api.currentTime = api.seekable.start(null);
|
993 |
+
});
|
994 |
+
}
|
995 |
+
|
996 |
+
Object.keys(EVENTS).forEach(function(type) {
|
997 |
+
var flow = EVENTS[type];
|
998 |
+
if (!flow) return;
|
999 |
+
var l = function(e) {
|
1000 |
+
video = api.listeners[instanceId];
|
1001 |
+
if (!e.target || !common.hasClass(e.target, 'fp-engine')) return;
|
1002 |
|
1003 |
+
if (conf.debug && !/progress/.test(flow)) console.log(type, "->", flow, e);
|
1004 |
|
1005 |
+
var triggerEvent = function() {
|
1006 |
+
player.trigger(flow, [player, arg]);
|
1007 |
+
};
|
1008 |
|
1009 |
+
// no events if player not ready
|
1010 |
+
if (!player.ready && !/ready|error/.test(flow) || !flow || !common.find('video', root).length) {
|
1011 |
+
if (flow === 'resume') player.one('ready', function() { setTimeout(function() { triggerEvent(); }) });
|
1012 |
+
return;
|
1013 |
}
|
1014 |
+
var arg;
|
|
|
1015 |
|
1016 |
+
if (flow === 'unload') { //Call player unload
|
1017 |
+
player.unload();
|
1018 |
+
return;
|
1019 |
+
}
|
1020 |
|
1021 |
+
switch (flow) {
|
|
|
|
|
1022 |
|
1023 |
+
case "ready":
|
|
|
|
|
1024 |
|
1025 |
+
arg = extend(video, {
|
1026 |
+
duration: api.duration < Number.MAX_VALUE ? api.duration : 0,
|
1027 |
+
width: api.videoWidth,
|
1028 |
+
height: api.videoHeight,
|
1029 |
+
url: api.currentSrc,
|
1030 |
+
src: api.currentSrc
|
1031 |
+
});
|
|
|
|
|
|
|
|
|
|
|
1032 |
|
1033 |
+
try {
|
1034 |
+
arg.seekable = /mpegurl/i.test(video ? (video.type || '') : '') && api.duration || api.seekable && api.seekable.end(null) || player.live;
|
1035 |
|
1036 |
+
} catch (ignored) {}
|
|
|
1037 |
|
1038 |
+
// buffer
|
1039 |
+
timer = timer || setInterval(function() {
|
1040 |
|
1041 |
+
try {
|
1042 |
+
arg.buffer = api.buffered.end(null);
|
1043 |
|
1044 |
+
} catch (ignored) {}
|
1045 |
|
1046 |
+
if (arg.buffer) {
|
1047 |
+
if (round(arg.buffer, 1000) < round(arg.duration, 1000) && !arg.buffered && arg.buffer !== lastBuffer) {
|
1048 |
+
player.trigger("buffer", [player, arg.buffer]);
|
1049 |
+
lastBuffer = arg.buffer;
|
|
|
|
|
|
|
|
|
1050 |
|
1051 |
+
} else if (!arg.buffered && arg.buffer !== lastBuffer) {
|
1052 |
+
arg.buffered = true;
|
1053 |
+
player.trigger("buffer", [player, arg.buffer]).trigger("buffered", e);
|
1054 |
+
lastBuffer = arg.buffer;
|
1055 |
+
clearInterval(timer);
|
1056 |
+
timer = 0;
|
1057 |
+
}
|
1058 |
+
}
|
1059 |
|
1060 |
+
}, 250);
|
|
|
|
|
|
|
|
|
|
|
1061 |
|
1062 |
+
if (!player.live && !arg.duration && !support.hlsDuration && type === "loadeddata") {
|
1063 |
+
var durationChanged = function() {
|
1064 |
+
arg.duration = api.duration;
|
1065 |
+
try {
|
1066 |
+
arg.seekable = api.seekable && api.seekable.end(null);
|
1067 |
|
1068 |
+
} catch (ignored) {}
|
1069 |
+
triggerEvent();
|
1070 |
+
api.removeEventListener('durationchange', durationChanged);
|
1071 |
+
common.toggleClass(root, 'is-live', false);
|
1072 |
+
};
|
1073 |
+
api.addEventListener('durationchange', durationChanged);
|
1074 |
|
1075 |
+
// Ugly hack to handle broken Android devices
|
1076 |
+
var timeUpdated = function() {
|
1077 |
+
if (!player.ready && !api.duration) { // No duration even though the video already plays
|
1078 |
+
arg.duration = 0;
|
1079 |
+
common.addClass(root, 'is-live'); // Make UI believe it's live
|
1080 |
+
triggerEvent();
|
1081 |
+
}
|
1082 |
+
api.removeEventListener('timeupdate', timeUpdated);
|
1083 |
+
};
|
1084 |
+
api.addEventListener('timeupdate', timeUpdated);
|
1085 |
+
return;
|
1086 |
+
}
|
1087 |
|
1088 |
+
break;
|
1089 |
|
1090 |
+
case "progress": case "seek":
|
1091 |
|
1092 |
+
if (api.currentTime > 0 || player.live) {
|
1093 |
+
arg = Math.max(api.currentTime, 0);
|
1094 |
+
|
1095 |
+
} else if (flow == 'progress') {
|
1096 |
+
return;
|
1097 |
}
|
1098 |
+
break;
|
|
|
1099 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1100 |
|
1101 |
+
case "speed":
|
1102 |
+
arg = round(api.playbackRate);
|
1103 |
+
break;
|
|
|
1104 |
|
1105 |
+
case "volume":
|
1106 |
+
arg = round(api.volume);
|
1107 |
+
break;
|
1108 |
|
1109 |
+
case "error":
|
1110 |
+
try {
|
1111 |
+
arg = (e.srcElement || e.originalTarget).error;
|
1112 |
+
arg.video = extend(video, {src: api.src, url: api.src});
|
1113 |
+
} catch (er) {
|
1114 |
+
// Most likely https://bugzilla.mozilla.org/show_bug.cgi?id=208427
|
1115 |
+
return;
|
1116 |
+
}
|
1117 |
+
}
|
1118 |
|
1119 |
+
triggerEvent();
|
|
|
|
|
|
|
1120 |
|
|
|
1121 |
|
1122 |
+
};
|
1123 |
+
root.addEventListener(type, l, true);
|
1124 |
+
if (!eventListeners[type]) eventListeners[type] = [];
|
1125 |
+
eventListeners[type].push(l);
|
1126 |
|
1127 |
+
});
|
1128 |
+
return eventListeners;
|
1129 |
|
1130 |
+
}
|
1131 |
|
1132 |
+
};
|
1133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1134 |
|
1135 |
+
engine.canPlay = function(type) {
|
1136 |
+
return flowplayer.support.video && canPlay(type);
|
1137 |
+
};
|
|
|
1138 |
|
1139 |
+
engine.engineName = 'html5';
|
1140 |
|
1141 |
+
flowplayer.engines.push(engine);
|
1142 |
|
1143 |
+
},{"../common":1,"../flowplayer":28,"bean":31,"extend-object":36}],5:[function(_dereq_,module,exports){
|
1144 |
+
'use strict';
|
1145 |
+
var flowplayer = _dereq_('../flowplayer')
|
1146 |
+
, common = _dereq_('../common')
|
1147 |
+
, bean = _dereq_('bean');
|
1148 |
|
1149 |
+
flowplayer(function(api, root) {
|
1150 |
+
api.on('ready', function() {
|
1151 |
+
var el = common.find('video.fp-engine', root)[0];
|
1152 |
+
if (!el) return;
|
1153 |
+
el.setAttribute('x-webkit-airplay', 'allow');
|
1154 |
|
1155 |
+
if (!window.WebKitPlaybackTargetAvailabilityEvent) return;
|
1156 |
+
el.addEventListener('webkitplaybacktargetavailabilitychanged', function(ev) {
|
1157 |
+
if (ev.availability !== 'available') return;
|
1158 |
+
var btnContainer = common.find('.fp-header', root)[0];
|
1159 |
+
common.find('.fp-airplay', btnContainer).forEach(common.removeNode);
|
1160 |
+
var trigger = common.createElement('a', { 'class': 'fp-airplay fp-icon', title: 'Play on AirPlay device'})
|
1161 |
+
btnContainer.insertBefore(trigger, common.find('.fp-fullscreen', btnContainer)[0]);
|
1162 |
|
1163 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1164 |
|
1165 |
+
el.addEventListener('webkitcurrentplaybacktargetiswirelesschanged', function() {
|
1166 |
+
var trigger = common.find('.fp-airplay', root)[0];
|
1167 |
+
if (!trigger) return;
|
1168 |
+
common.toggleClass(trigger, 'fp-active', el.webkitCurrentPlaybackTargetIsWireless);
|
1169 |
+
});
|
1170 |
|
1171 |
+
});
|
1172 |
|
1173 |
+
bean.on(root, 'click', '.fp-airplay', function(ev) {
|
1174 |
+
ev.preventDefault();
|
1175 |
+
var video = common.find('video.fp-engine', root)[0];
|
1176 |
+
video.webkitShowPlaybackTargetPicker();
|
1177 |
+
});
|
1178 |
|
|
|
|
|
|
|
1179 |
|
1180 |
+
});
|
|
|
1181 |
|
1182 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],6:[function(_dereq_,module,exports){
|
1183 |
+
'use strict';
|
1184 |
+
/* global _gat */
|
1185 |
+
var flowplayer = _dereq_('../flowplayer'),
|
1186 |
+
TYPE_RE = _dereq_('./resolve').TYPE_RE,
|
1187 |
+
scriptjs = _dereq_('scriptjs'),
|
1188 |
+
bean = _dereq_('bean');
|
1189 |
+
flowplayer(function(player, root) {
|
1190 |
|
1191 |
+
var id = player.conf.analytics, time = 0, last = 0, timer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1192 |
|
1193 |
+
if (id) {
|
1194 |
|
1195 |
+
// load Analytics script if needed
|
1196 |
+
if (typeof _gat == 'undefined') scriptjs("//google-analytics.com/ga.js");
|
1197 |
|
1198 |
+
var getTracker = function() {
|
1199 |
+
var tracker = _gat._getTracker(id);
|
1200 |
+
tracker._setAllowLinker(true);
|
1201 |
+
return tracker;
|
1202 |
+
};
|
1203 |
|
1204 |
+
var track = function track(e, api, video) {
|
1205 |
|
1206 |
+
video = video || player.video;
|
1207 |
|
1208 |
+
if (time && typeof _gat != 'undefined') {
|
1209 |
+
var tracker = getTracker();
|
1210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1211 |
|
1212 |
+
// http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html
|
1213 |
+
tracker._trackEvent(
|
1214 |
+
"Video / Seconds played",
|
1215 |
+
player.engine.engineName + "/" + video.type,
|
1216 |
+
video.title || root.getAttribute("title") || video.src.split("/").slice(-1)[0].replace(TYPE_RE, ''),
|
1217 |
+
Math.round(time / 1000)
|
1218 |
+
);
|
1219 |
+
time = 0;
|
1220 |
+
if (timer) {
|
1221 |
+
clearTimeout(timer);
|
1222 |
+
timer = null;
|
1223 |
+
}
|
1224 |
+
}
|
1225 |
|
1226 |
+
};
|
|
|
|
|
|
|
|
|
|
|
1227 |
|
1228 |
+
player.bind("load unload", track).bind("progress", function() {
|
1229 |
|
1230 |
+
if (!player.seeking) {
|
1231 |
+
time += last ? (+new Date() - last) : 0;
|
1232 |
+
last = +new Date();
|
1233 |
+
}
|
1234 |
|
1235 |
+
if (!timer) {
|
1236 |
+
timer = setTimeout(function() {
|
1237 |
+
timer = null;
|
1238 |
+
var tracker = getTracker();
|
1239 |
+
tracker._trackEvent('Flowplayer heartbeat', 'Heartbeat', '', 0, true);
|
1240 |
+
}, 10*60*1000); // heartbeat every 10 minutes
|
1241 |
+
}
|
1242 |
|
1243 |
+
}).bind("pause", function() {
|
1244 |
+
last = 0;
|
1245 |
+
});
|
|
|
|
|
1246 |
|
1247 |
+
player.bind('shutdown', function() {
|
1248 |
+
bean.off(window, 'unload', track);
|
1249 |
+
});
|
1250 |
+
|
1251 |
+
bean.on(window, 'unload', track);
|
|
|
1252 |
|
|
|
|
|
|
|
|
|
1253 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1254 |
|
1255 |
+
});
|
1256 |
|
1257 |
+
},{"../flowplayer":28,"./resolve":19,"bean":31,"scriptjs":42}],7:[function(_dereq_,module,exports){
|
1258 |
+
/* global chrome */
|
1259 |
+
/* eslint-disable no-console */
|
|
|
|
|
|
|
|
|
|
|
1260 |
|
1261 |
+
'use strict';
|
1262 |
+
var flowplayer = _dereq_('../flowplayer')
|
1263 |
+
, common = _dereq_('../common')
|
1264 |
+
, bean = _dereq_('bean')
|
1265 |
+
, scriptjs = _dereq_('scriptjs');
|
1266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1267 |
|
|
|
1268 |
|
1269 |
+
flowplayer(function(api, root) {
|
1270 |
+
scriptjs('https://www.gstatic.com/cv/js/sender/v1/cast_sender.js');
|
1271 |
+
window['__onGCastApiAvailable'] = function(loaded) {
|
1272 |
+
if (!loaded) return;
|
1273 |
+
initialize();
|
1274 |
+
};
|
1275 |
+
|
1276 |
+
var conf = api.conf.chromecast || {}
|
1277 |
+
, session
|
1278 |
+
, timer
|
1279 |
+
, trigger;
|
1280 |
+
|
1281 |
+
function initialize() {
|
1282 |
+
var applicationId, sessionRequest, apiConfig;
|
1283 |
+
applicationId = conf.applicationId || chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID;
|
1284 |
+
sessionRequest = new chrome.cast.SessionRequest(applicationId);
|
1285 |
+
apiConfig = new chrome.cast.ApiConfig(
|
1286 |
+
sessionRequest,
|
1287 |
+
sessionListener,
|
1288 |
+
receiverListener
|
1289 |
+
);
|
1290 |
+
chrome.cast.initialize(apiConfig, onInitSuccess, onError);
|
1291 |
+
}
|
1292 |
|
1293 |
+
function sessionListener() {
|
1294 |
+
console.log('sessionListener');
|
1295 |
+
}
|
1296 |
|
1297 |
+
function receiverListener(ev) {
|
1298 |
+
if (ev !== chrome.cast.ReceiverAvailability.AVAILABLE) return;
|
1299 |
+
createUIElements();
|
1300 |
+
}
|
|
|
|
|
1301 |
|
1302 |
+
function onInitSuccess() {
|
1303 |
+
/* noop */
|
1304 |
+
}
|
1305 |
|
1306 |
+
function onError() {
|
1307 |
+
console.log('onError');
|
1308 |
+
}
|
1309 |
|
1310 |
+
function createUIElements() {
|
1311 |
+
var btnContainer = common.find('.fp-header', root)[0];
|
1312 |
+
common.find('.fp-chromecast', btnContainer).forEach(common.removeNode);
|
1313 |
+
common.find('.fp-chromecast-engine', root).forEach(common.removeNode);
|
1314 |
+
trigger = common.createElement('a', { 'class': 'fp-chromecast fp-icon', title: 'Play on Cast device'})
|
1315 |
+
btnContainer.insertBefore(trigger, common.find('.fp-fullscreen', btnContainer)[0]);
|
1316 |
+
var chromeCastEngine = common.createElement('div', { 'class': 'fp-chromecast-engine' })
|
1317 |
+
, chromeCastStatus = common.createElement('p', { 'class': 'fp-chromecast-engine-status' })
|
1318 |
+
, chromeCastIcon = common.createElement('p', { 'class': 'fp-chromecast-engine-icon' });
|
1319 |
+
chromeCastEngine.appendChild(chromeCastIcon);
|
1320 |
+
chromeCastEngine.appendChild(chromeCastStatus);
|
1321 |
+
var engine = common.find('.fp-engine', root)[0];
|
1322 |
+
if (!engine) common.prepend(common.find('.fp-player', root)[0] || root, chromeCastEngine);
|
1323 |
+
else engine.parentNode.insertBefore(chromeCastEngine, engine);
|
1324 |
+
}
|
1325 |
|
1326 |
+
function destroy() {
|
1327 |
+
clearInterval(timer);
|
1328 |
+
timer = null;
|
1329 |
+
api.release();
|
1330 |
+
common.toggleClass(root, 'is-chromecast', false);
|
1331 |
+
common.toggleClass(trigger, 'fp-active', false);
|
1332 |
+
}
|
1333 |
|
1334 |
+
bean.on(root, 'click', '.fp-chromecast', function(ev) {
|
1335 |
+
ev.preventDefault();
|
1336 |
+
if (session) {
|
1337 |
+
api.trigger('pause', [api]);
|
1338 |
+
session.stop();
|
1339 |
+
session = null;
|
1340 |
+
destroy();
|
1341 |
+
return;
|
1342 |
+
}
|
1343 |
+
if (api.playing) api.pause();
|
1344 |
+
chrome.cast.requestSession(function(s) {
|
1345 |
+
session = s;
|
1346 |
+
var receiverName = session.receiver.friendlyName;
|
1347 |
+
common.html(common.find('.fp-chromecast-engine-status')[0], 'Playing on device ' + receiverName);
|
1348 |
+
var mediaInfo = new chrome.cast.media.MediaInfo(api.video.src);
|
1349 |
+
var request = new chrome.cast.media.LoadRequest(mediaInfo);
|
1350 |
+
session.loadMedia(request, onMediaDiscovered, function onMediaError() { });
|
1351 |
+
|
1352 |
+
function onMediaDiscovered(media) {
|
1353 |
+
media.addUpdateListener(function(alive) {
|
1354 |
+
if (!session) return; // Already destoryed
|
1355 |
+
timer = timer || setInterval(function() {
|
1356 |
+
api.trigger('progress', [api, media.getEstimatedTime()]);
|
1357 |
+
}, 500);
|
1358 |
+
if (!alive) {
|
1359 |
+
destroy();
|
1360 |
+
api.trigger('finish', [api]);
|
1361 |
+
} else {
|
1362 |
+
common.toggleClass(root, 'is-chromecast', true);
|
1363 |
+
common.toggleClass(trigger, 'fp-active', true);
|
1364 |
+
api.hijack({
|
1365 |
+
pause: function() {
|
1366 |
+
media.pause();
|
1367 |
+
},
|
1368 |
+
resume: function() {
|
1369 |
+
media.play();
|
1370 |
+
},
|
1371 |
+
seek: function(time) {
|
1372 |
+
var req = new chrome.cast.media.SeekRequest();
|
1373 |
+
req.currentTime = time;
|
1374 |
+
media.seek(req);
|
1375 |
+
}
|
1376 |
+
});
|
1377 |
+
}
|
1378 |
+
var playerState = media.playerState;
|
1379 |
+
if (api.paused && playerState === chrome.cast.media.PlayerState.PLAYING) api.trigger('resume', [api]);
|
1380 |
+
if (api.playing && playerState === chrome.cast.media.PlayerState.PAUSED) api.trigger('pause', [api]);
|
1381 |
+
common.toggleClass(root, 'is-loading', playerState === chrome.cast.media.PlayerState.BUFFERING);
|
1382 |
+
});
|
1383 |
+
}
|
1384 |
+
}, function(err) {
|
1385 |
+
console.error('requestSession error', err);
|
1386 |
+
});
|
1387 |
+
});
|
1388 |
|
1389 |
+
});
|
|
|
|
|
|
|
1390 |
|
1391 |
+
},{"../common":1,"../flowplayer":28,"bean":31,"scriptjs":42}],8:[function(_dereq_,module,exports){
|
1392 |
+
'use strict';
|
1393 |
+
var flowplayer = _dereq_('../flowplayer'),
|
1394 |
+
common = _dereq_('../common'),
|
1395 |
+
bean = _dereq_('bean');
|
1396 |
|
1397 |
+
flowplayer(function(player, root) {
|
|
|
|
|
|
|
1398 |
|
1399 |
+
var CUE_RE = / ?cue\d+ ?/;
|
|
|
|
|
|
|
|
|
|
|
1400 |
|
1401 |
+
var cuepointsDisabled = false;
|
1402 |
|
1403 |
+
function setClass(index) {
|
1404 |
+
root.className = root.className.replace(CUE_RE, " ");
|
1405 |
+
if (index >= 0) common.addClass(root, 'cue' + index);
|
1406 |
+
}
|
1407 |
|
1408 |
+
var segments = {}, lastFiredSegment = -0.125;
|
|
|
|
|
|
|
1409 |
|
1410 |
+
var fire = function(cue) {
|
1411 |
+
var idx = player.cuepoints.indexOf(cue);
|
1412 |
+
if (!isNaN(cue)) cue = { time: cue };
|
1413 |
+
cue.index = idx;
|
1414 |
+
setClass(idx);
|
1415 |
+
player.trigger('cuepoint', [player, cue]);
|
1416 |
+
};
|
1417 |
|
1418 |
+
player.on("progress", function(e, api, time) {
|
1419 |
+
if (cuepointsDisabled) return;
|
1420 |
+
var segment = segmentForCue(time);
|
1421 |
+
while (lastFiredSegment < segment) {
|
1422 |
+
lastFiredSegment += 0.125;
|
1423 |
+
if (!segments[lastFiredSegment]) continue;
|
1424 |
+
segments[lastFiredSegment].forEach(fire);
|
1425 |
+
}
|
1426 |
|
1427 |
+
}).on("unload", setClass)
|
1428 |
+
.on('beforeseek', function(ev) {
|
1429 |
+
setTimeout(function() {
|
1430 |
+
if (!ev.defaultPrevented) cuepointsDisabled = true;
|
1431 |
+
});
|
1432 |
+
}).on("seek", function(ev, api, time) {
|
1433 |
+
setClass();
|
1434 |
+
lastFiredSegment = segmentForCue(time || 0) - 0.125;
|
1435 |
+
cuepointsDisabled = false;
|
1436 |
+
if (!time && segments[0]) segments[0].forEach(fire);
|
1437 |
+
}).on('ready', function(e, api, video) {
|
1438 |
+
lastFiredSegment = -0.125;
|
1439 |
+
var cues = video.cuepoints || player.conf.cuepoints || [];
|
1440 |
+
player.setCuepoints(cues);
|
1441 |
+
}).on('finish', function() {
|
1442 |
+
lastFiredSegment = -0.125;
|
1443 |
+
});
|
1444 |
+
if (player.conf.generate_cuepoints) {
|
1445 |
|
1446 |
+
player.bind("load", function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
1447 |
|
1448 |
+
// clean up cuepoint elements of previous playlist items
|
1449 |
+
common.find('.fp-cuepoint', root).forEach(common.removeNode);
|
|
|
|
|
|
|
|
|
1450 |
|
1451 |
+
});
|
1452 |
+
}
|
|
|
|
|
|
|
|
|
1453 |
|
1454 |
+
/**
|
1455 |
+
* API
|
1456 |
+
*/
|
1457 |
+
player.setCuepoints = function(cues) {
|
1458 |
+
player.cuepoints = [];
|
1459 |
+
segments = {};
|
1460 |
+
cues.forEach(player.addCuepoint);
|
1461 |
+
return player;
|
1462 |
+
};
|
1463 |
+
player.addCuepoint = function(cue) {
|
1464 |
+
if (!player.cuepoints) player.cuepoints = [];
|
1465 |
+
var segment = segmentForCue(cue);
|
1466 |
+
if (!segments[segment]) segments[segment] = [];
|
1467 |
+
segments[segment].push(cue);
|
1468 |
+
player.cuepoints.push(cue);
|
1469 |
+
|
1470 |
+
if (player.conf.generate_cuepoints && cue.visible !== false) {
|
1471 |
+
var duration = player.video.duration,
|
1472 |
+
timeline = common.find('.fp-timeline', root)[0];
|
1473 |
+
common.css(timeline, "overflow", "visible");
|
1474 |
+
|
1475 |
+
var time = cue.time || cue;
|
1476 |
+
if (time < 0) time = duration + time;
|
1477 |
+
|
1478 |
+
var el = common.createElement('a', {className: 'fp-cuepoint fp-cuepoint' + (player.cuepoints.length - 1)});
|
1479 |
+
common.css(el, "left", (time / duration * 100) + "%");
|
1480 |
+
|
1481 |
+
timeline.appendChild(el);
|
1482 |
+
bean.on(el, 'mousedown', function(e) {
|
1483 |
+
e.preventDefault();
|
1484 |
+
e.stopPropagation();
|
1485 |
+
player.seek(time);
|
1486 |
+
});
|
1487 |
+
}
|
1488 |
+
return player;
|
1489 |
};
|
1490 |
|
1491 |
+
player.removeCuepoint = function(cue) {
|
1492 |
+
var idx = player.cuepoints.indexOf(cue),
|
1493 |
+
segment = segmentForCue(cue);
|
1494 |
+
if (idx === -1) return;
|
1495 |
+
player.cuepoints = player.cuepoints.slice(0, idx).concat(player.cuepoints.slice(idx+1));
|
1496 |
|
1497 |
+
var sIdx = segments[segment].indexOf(cue);
|
1498 |
+
if (sIdx === -1) return;
|
1499 |
+
segments[segment] = segments[segment].slice(0, sIdx).concat(segments[segment].slice(sIdx+1));
|
1500 |
+
return player;
|
1501 |
+
};
|
|
|
|
|
|
|
|
|
|
|
1502 |
|
1503 |
+
function segmentForCue(cue) {
|
1504 |
+
var time = cue && !isNaN(cue.time) ? cue.time : cue;
|
1505 |
+
if (time < 0) time = player.video.duration + time;
|
1506 |
+
return Math.round(time/0.125)*0.125;
|
1507 |
+
}
|
1508 |
|
1509 |
+
});
|
1510 |
|
1511 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],9:[function(_dereq_,module,exports){
|
1512 |
+
'use strict';
|
1513 |
+
var flowplayer = _dereq_('../flowplayer'),
|
1514 |
+
bean = _dereq_('bean'),
|
1515 |
+
common = _dereq_('../common'),
|
1516 |
+
clipboard = _dereq_('./util/clipboard');
|
|
|
|
|
|
|
1517 |
|
1518 |
+
flowplayer(function(player, root) {
|
1519 |
|
1520 |
+
// no embedding
|
1521 |
+
if (player.conf.embed === false || player.conf.share === false) return;
|
1522 |
|
1523 |
+
var btnContainer = common.find('.fp-share-menu', root)[0],
|
1524 |
+
trigger = common.createElement('a', { "class": "fp-icon fp-embed", title: 'Copy to your site'}, 'Embed');
|
1525 |
|
1526 |
+
common.append(btnContainer, trigger);
|
1527 |
+
//ui.appendChild(target);
|
1528 |
|
1529 |
+
player.embedCode = function() {
|
1530 |
+
var embedConf = player.conf.embed || {},
|
1531 |
+
video = player.video,
|
1532 |
+
width = embedConf.width || video.width || common.width(root),
|
1533 |
+
height = embedConf.height || video.height || common.height(root),
|
1534 |
+
ratio = player.conf.ratio,
|
1535 |
+
itrunc = '<iframe src="' + player.shareUrl(true) + '" allowfullscreen style="border:none;';
|
1536 |
+
|
1537 |
+
if (embedConf.width || embedConf.height) {
|
1538 |
+
if (!isNaN(width)) width += 'px';
|
1539 |
+
if (!isNaN(height)) height += 'px';
|
1540 |
+
return itrunc + 'width:' + width + ';height:' + height + ';"></iframe>';
|
1541 |
+
}
|
1542 |
+
|
1543 |
+
if (!ratio || player.conf.adaptiveRatio) ratio = height / width;
|
1544 |
+
return '<div style="position:relative;width:100%;display:inline-block;">' + itrunc + 'position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top:' + (ratio * 100) + '%;"></div></div>';
|
1545 |
+
};
|
1546 |
|
1547 |
+
bean.on(root, 'click', '.fp-embed', function() {
|
1548 |
+
clipboard(player.embedCode(), function() {
|
1549 |
+
player.message('The embed code is now on your clipboard', 2000);
|
1550 |
+
}, function() {
|
1551 |
+
player.textarea(player.embedCode(), 'Copy the code below to embed your video');
|
1552 |
+
});
|
1553 |
+
});
|
1554 |
|
1555 |
+
});
|
|
|
1556 |
|
1557 |
+
},{"../common":1,"../flowplayer":28,"./util/clipboard":27,"bean":31}],10:[function(_dereq_,module,exports){
|
1558 |
+
'use strict';
|
1559 |
+
/**
|
1560 |
+
* Mimimal jQuery-like event emitter implementation
|
1561 |
+
*/
|
1562 |
+
module.exports = function(obj, elem) {
|
1563 |
+
if (!elem) elem = document.createElement('div'); //In this case we always want to trigger (Custom)Events on dom element
|
1564 |
+
var handlers = {}, eventArguments = {};
|
1565 |
+
|
1566 |
+
var listenEvent = function(type, hndlr, disposable) {
|
1567 |
+
var actualEvent = type.split('.')[0]; //Strip namespace
|
1568 |
+
var internalHandler = function(ev) {
|
1569 |
+
if (disposable) {
|
1570 |
+
elem.removeEventListener(actualEvent, internalHandler);
|
1571 |
+
handlers[type].splice(handlers[type].indexOf(internalHandler), 1);
|
1572 |
+
}
|
1573 |
+
var args = [ev].concat(eventArguments[ev.timeStamp + ev.type] || []);
|
1574 |
+
if (hndlr) hndlr.apply(undefined, args);
|
1575 |
+
};
|
1576 |
+
elem.addEventListener(actualEvent, internalHandler);
|
1577 |
+
|
1578 |
+
//Store handlers for unbinding
|
1579 |
+
if (!handlers[type]) handlers[type] = [];
|
1580 |
+
handlers[type].push(internalHandler);
|
1581 |
+
};
|
1582 |
+
|
1583 |
+
obj.on = obj.bind = function(typ, hndlr) {
|
1584 |
+
var types = typ.split(' ');
|
1585 |
+
types.forEach(function(type) {
|
1586 |
+
listenEvent(type, hndlr);
|
1587 |
+
});
|
1588 |
+
return obj; //for chaining
|
1589 |
+
};
|
1590 |
+
|
1591 |
+
obj.one = function(typ, hndlr) {
|
1592 |
+
var types = typ.split(' ');
|
1593 |
+
types.forEach(function(type) {
|
1594 |
+
listenEvent(type, hndlr, true);
|
1595 |
+
});
|
1596 |
+
return obj;
|
1597 |
+
};
|
1598 |
+
|
1599 |
+
// Function to check if all items in toBeContained array are in the containing array
|
1600 |
+
var containsAll = function(containing, toBeContained) {
|
1601 |
+
return toBeContained.filter(function(i) {
|
1602 |
+
return containing.indexOf(i) === -1;
|
1603 |
+
}).length === 0;
|
1604 |
+
};
|
1605 |
+
|
1606 |
+
|
1607 |
+
obj.off = obj.unbind = function(typ) {
|
1608 |
+
var types = typ.split(' ');
|
1609 |
+
types.forEach(function(type) {
|
1610 |
+
var typeNameSpaces = type.split('.').slice(1),
|
1611 |
+
actualType = type.split('.')[0];
|
1612 |
+
Object.keys(handlers).filter(function(t) {
|
1613 |
+
var handlerNamespaces = t.split('.').slice(1);
|
1614 |
+
return (!actualType || t.indexOf(actualType) === 0) && containsAll(handlerNamespaces, typeNameSpaces);
|
1615 |
+
}).forEach(function(t) {
|
1616 |
+
var registererHandlers = handlers[t],
|
1617 |
+
actualEvent = t.split('.')[0];
|
1618 |
+
handlers[t] = registererHandlers.filter(function(hndlr) {
|
1619 |
+
elem.removeEventListener(actualEvent, hndlr);
|
1620 |
+
return false;
|
1621 |
+
});
|
1622 |
+
});
|
1623 |
+
});
|
1624 |
+
return obj;
|
1625 |
+
};
|
1626 |
+
|
1627 |
+
obj.trigger = function(typ, args, returnEvent) {
|
1628 |
+
if (!typ) return;
|
1629 |
+
args = (args || []).length ? args || [] : [args];
|
1630 |
+
var event = document.createEvent('Event'), typStr;
|
1631 |
+
typStr = typ.type || typ;
|
1632 |
+
event.initEvent(typStr, false, true);
|
1633 |
+
if (Object.defineProperty) event.preventDefault = function() {
|
1634 |
+
Object.defineProperty(this, 'defaultPrevented', { get: function() { return true; } });
|
1635 |
+
};
|
1636 |
+
eventArguments[event.timeStamp + event.type] = args;
|
1637 |
+
elem.dispatchEvent(event);
|
1638 |
+
return returnEvent ? event : obj;
|
1639 |
+
};
|
1640 |
+
};
|
1641 |
|
|
|
|
|
1642 |
|
1643 |
+
module.exports.EVENTS = [
|
1644 |
+
'beforeseek',
|
1645 |
+
'disable',
|
1646 |
+
'error',
|
1647 |
+
'finish',
|
1648 |
+
'fullscreen',
|
1649 |
+
'fullscreen-exit',
|
1650 |
+
'load',
|
1651 |
+
'mute',
|
1652 |
+
'pause',
|
1653 |
+
'progress',
|
1654 |
+
'ready',
|
1655 |
+
'resume',
|
1656 |
+
'seek',
|
1657 |
+
'speed',
|
1658 |
+
'stop',
|
1659 |
+
'unload',
|
1660 |
+
'volume',
|
1661 |
+
'boot',
|
1662 |
+
'shutdown'
|
1663 |
+
];
|
1664 |
+
|
1665 |
+
},{}],11:[function(_dereq_,module,exports){
|
1666 |
+
'use strict';
|
1667 |
+
|
1668 |
+
var flowplayer = _dereq_('../flowplayer')
|
1669 |
+
, common = _dereq_('../common')
|
1670 |
+
, bean = _dereq_('bean');
|
1671 |
|
1672 |
+
flowplayer(function(api, root) {
|
1673 |
+
var c = api.conf;
|
1674 |
+
|
1675 |
+
if (c.share === false || !c.facebook) return;
|
1676 |
+
|
1677 |
+
api.facebook = function() {
|
1678 |
+
var left
|
1679 |
+
, top
|
1680 |
+
, width = 550
|
1681 |
+
, height = 420
|
1682 |
+
, winHeight = screen.height
|
1683 |
+
, winWidth = screen.width
|
1684 |
+
, windowOptions = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes'
|
1685 |
+
, shareUrl = typeof c.facebook === 'string' ? c.facebook : window.location.toString();
|
1686 |
+
left = Math.round((winWidth / 2) - (width / 2));
|
1687 |
+
top = 0;
|
1688 |
+
if (winHeight > height) {
|
1689 |
+
top = Math.round((winHeight / 2) - (height / 2));
|
1690 |
+
}
|
1691 |
+
window.open(
|
1692 |
+
'https://www.facebook.com/sharer.php?s=100&p[url]=' + encodeURIComponent(shareUrl),
|
1693 |
+
'sharer',
|
1694 |
+
windowOptions + ',width=' + width + ',height=' + height + ',left=' + left + ',top=' + top
|
1695 |
+
);
|
1696 |
+
};
|
1697 |
+
|
1698 |
+
var btnContainer = common.find('.fp-share-menu', root)[0]
|
1699 |
+
, trigger = common.createElement('a', { "class": "fp-icon fp-facebook"}, 'Facebook');
|
1700 |
+
|
1701 |
+
common.append(btnContainer, trigger);
|
1702 |
+
|
1703 |
+
bean.on(root, 'click', '.fp-facebook', function() {
|
1704 |
+
api.facebook();
|
1705 |
+
});
|
1706 |
+
});
|
1707 |
|
1708 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],12:[function(_dereq_,module,exports){
|
1709 |
+
'use strict';
|
1710 |
+
var flowplayer = _dereq_('../flowplayer'),
|
1711 |
+
bean = _dereq_('bean'),
|
1712 |
+
common = _dereq_('../common'),
|
1713 |
+
FS_ENTER = "fullscreen",
|
1714 |
+
FS_EXIT = "fullscreen-exit",
|
1715 |
+
FULL_PLAYER,
|
1716 |
+
FS_SUPPORT = flowplayer.support.fullscreen,
|
1717 |
+
ua = navigator.userAgent.toLowerCase(),
|
1718 |
+
IS_SAFARI = /(safari)[ \/]([\w.]+)/.exec(ua) && !/(chrome)[ \/]([\w.]+)/.exec(ua);
|
1719 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1720 |
|
1721 |
+
// esc button
|
1722 |
+
bean.on(document, "fullscreenchange.ffscr webkitfullscreenchange.ffscr mozfullscreenchange.ffscr MSFullscreenChange.ffscr", function(e) {
|
1723 |
+
var el = document.webkitCurrentFullScreenElement || document.mozFullScreenElement || document.fullscreenElement || document.msFullscreenElement || e.target;
|
1724 |
+
if (!FULL_PLAYER && (!el.parentNode || !el.parentNode.getAttribute('data-flowplayer-instance-id'))) return;
|
1725 |
+
var player = FULL_PLAYER || flowplayer(el.parentNode);
|
1726 |
+
if (el && !FULL_PLAYER) {
|
1727 |
+
FULL_PLAYER = player.trigger(FS_ENTER, [el]);
|
1728 |
+
} else {
|
1729 |
+
FULL_PLAYER.trigger(FS_EXIT, [FULL_PLAYER]);
|
1730 |
+
FULL_PLAYER = null;
|
1731 |
+
}
|
1732 |
+
});
|
1733 |
|
1734 |
+
flowplayer(function(player, root) {
|
|
|
|
|
|
|
|
|
1735 |
|
1736 |
+
var wrapper = common.createElement('div', {className: 'fp-player'});
|
1737 |
+
Array.prototype.map.call(root.children, common.identity).forEach(function(el) {
|
1738 |
+
if (common.matches(el, '.fp-ratio,script')) return;
|
1739 |
+
wrapper.appendChild(el);
|
1740 |
+
});
|
1741 |
+
root.appendChild(wrapper);
|
|
|
1742 |
|
1743 |
+
if (!player.conf.fullscreen) return;
|
1744 |
|
1745 |
+
var win = window,
|
1746 |
+
scrollY,
|
1747 |
+
scrollX;
|
1748 |
|
1749 |
+
player.isFullscreen = false;
|
1750 |
|
1751 |
+
player.fullscreen = function(flag) {
|
|
|
|
|
1752 |
|
1753 |
+
if (player.disabled) return;
|
|
|
|
|
1754 |
|
1755 |
+
if (flag === undefined) flag = !player.isFullscreen;
|
1756 |
|
1757 |
+
if (flag) {
|
1758 |
+
scrollY = win.scrollY;
|
1759 |
+
scrollX = win.scrollX;
|
1760 |
+
}
|
1761 |
|
1762 |
+
if (FS_SUPPORT) {
|
|
|
|
|
1763 |
|
1764 |
+
if (flag) {
|
1765 |
+
['requestFullScreen', 'webkitRequestFullScreen', 'mozRequestFullScreen', 'msRequestFullscreen'].forEach(function(fName) {
|
1766 |
+
if (typeof wrapper[fName] === 'function') {
|
1767 |
+
wrapper[fName](Element.ALLOW_KEYBOARD_INPUT);
|
1768 |
+
if (IS_SAFARI && !document.webkitCurrentFullScreenElement && !document.mozFullScreenElement) { // Element.ALLOW_KEYBOARD_INPUT not allowed
|
1769 |
+
wrapper[fName]();
|
1770 |
}
|
1771 |
+
return false;
|
1772 |
+
}
|
1773 |
+
});
|
1774 |
|
1775 |
+
} else {
|
1776 |
+
['exitFullscreen', 'webkitCancelFullScreen', 'mozCancelFullScreen', 'msExitFullscreen'].forEach(function(fName) {
|
1777 |
+
if (typeof document[fName] === 'function') {
|
1778 |
+
document[fName]();
|
1779 |
+
return false;
|
1780 |
+
}
|
1781 |
+
});
|
1782 |
+
}
|
1783 |
|
1784 |
+
} else {
|
1785 |
+
player.trigger(flag ? FS_ENTER : FS_EXIT, [player]);
|
1786 |
+
}
|
1787 |
|
1788 |
+
return player;
|
1789 |
+
};
|
1790 |
|
1791 |
+
var lastClick;
|
1792 |
|
1793 |
+
player.on("mousedown.fs", function() {
|
1794 |
+
if (+new Date() - lastClick < 150 && player.ready) player.fullscreen();
|
1795 |
+
lastClick = +new Date();
|
1796 |
+
});
|
1797 |
|
1798 |
+
player.on(FS_ENTER, function() {
|
1799 |
+
common.addClass(root, 'is-fullscreen');
|
1800 |
+
common.toggleClass(root, 'fp-minimal-fullscreen', common.hasClass(root, 'fp-minimal'));
|
1801 |
+
common.removeClass(root, 'fp-minimal');
|
1802 |
|
1803 |
+
if (!FS_SUPPORT) common.css(root, 'position', 'fixed');
|
1804 |
+
player.isFullscreen = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
1805 |
|
1806 |
+
}).on(FS_EXIT, function() {
|
1807 |
+
var oldOpacity;
|
1808 |
+
common.toggleClass(root, 'fp-minimal', common.hasClass(root, 'fp-minimal-fullscreen'));
|
1809 |
+
common.removeClass(root, 'fp-minimal-fullscreen');
|
1810 |
+
if (!FS_SUPPORT && player.engine === "html5") {
|
1811 |
+
oldOpacity = root.css('opacity') || '';
|
1812 |
+
common.css(root, 'opacity', 0);
|
1813 |
+
}
|
1814 |
+
if (!FS_SUPPORT) common.css(root, 'position', '');
|
1815 |
|
1816 |
+
common.removeClass(root, 'is-fullscreen');
|
1817 |
+
if (!FS_SUPPORT && player.engine === "html5") setTimeout(function() { root.css('opacity', oldOpacity); });
|
1818 |
+
player.isFullscreen = false;
|
1819 |
+
win.scrollTo(scrollX, scrollY);
|
1820 |
+
}).on('unload', function() {
|
1821 |
+
if (player.isFullscreen) player.fullscreen();
|
1822 |
+
});
|
1823 |
|
1824 |
+
player.on('shutdown', function() {
|
1825 |
+
FULL_PLAYER = null;
|
|
|
1826 |
});
|
1827 |
|
1828 |
+
});
|
1829 |
|
1830 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],13:[function(_dereq_,module,exports){
|
1831 |
+
'use strict';
|
1832 |
+
var flowplayer = _dereq_('../flowplayer'),
|
1833 |
+
bean = _dereq_('bean'),
|
1834 |
+
focused,
|
1835 |
+
focusedRoot,
|
1836 |
+
IS_HELP = "is-help",
|
1837 |
+
common = _dereq_('../common');
|
1838 |
|
1839 |
+
// keyboard. single global listener
|
1840 |
+
bean.on(document, "keydown.fp", function(e) {
|
1841 |
|
1842 |
+
var el = focused,
|
1843 |
+
metaKeyPressed = e.ctrlKey || e.metaKey || e.altKey,
|
1844 |
+
key = e.which,
|
1845 |
+
conf = el && el.conf;
|
1846 |
|
1847 |
+
if (!el || !conf.keyboard || el.disabled) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1848 |
|
1849 |
+
// help dialog (shift key not truly required)
|
1850 |
+
if ([63, 187, 191].indexOf(key) != -1) {
|
1851 |
+
common.toggleClass(focusedRoot, IS_HELP);
|
1852 |
+
return false;
|
1853 |
+
}
|
1854 |
|
1855 |
+
// close help / unload
|
1856 |
+
if (key == 27 && common.hasClass(focusedRoot, IS_HELP)) {
|
1857 |
+
common.toggleClass(focusedRoot, IS_HELP);
|
1858 |
+
return false;
|
1859 |
+
}
|
1860 |
|
1861 |
+
if (!metaKeyPressed && el.ready) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1862 |
|
1863 |
+
e.preventDefault();
|
|
|
1864 |
|
1865 |
+
// slow motion / fast forward
|
1866 |
+
if (e.shiftKey) {
|
1867 |
+
if (key == 39) el.speed(true);
|
1868 |
+
else if (key == 37) el.speed(false);
|
1869 |
+
return;
|
1870 |
+
}
|
1871 |
|
1872 |
+
// 1, 2, 3, 4 ..
|
1873 |
+
if (key < 58 && key > 47) return el.seekTo(key - 48);
|
1874 |
|
1875 |
+
switch (key) {
|
1876 |
+
case 38: case 75: el.volume(el.volumeLevel + 0.15); break; // volume up
|
1877 |
+
case 40: case 74: el.volume(el.volumeLevel - 0.15); break; // volume down
|
1878 |
+
case 39: case 76: el.seeking = true; el.seek(true); break; // forward
|
1879 |
+
case 37: case 72: el.seeking = true; el.seek(false); break; // backward
|
1880 |
+
case 190: el.seekTo(); break; // to last seek position
|
1881 |
+
case 32: el.toggle(); break; // spacebar
|
1882 |
+
case 70: if(conf.fullscreen) el.fullscreen(); break; // toggle fullscreen
|
1883 |
+
case 77: el.mute(); break; // mute
|
1884 |
+
case 81: el.unload(); break; // unload/stop
|
1885 |
+
}
|
1886 |
|
1887 |
+
}
|
|
|
|
|
1888 |
|
1889 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1890 |
|
1891 |
+
flowplayer(function(api, root) {
|
1892 |
|
1893 |
+
// no keyboard configured
|
1894 |
+
if (!api.conf.keyboard) return;
|
1895 |
|
1896 |
+
// hover
|
1897 |
+
bean.on(root, "mouseenter mouseleave", function(e) {
|
1898 |
+
focused = !api.disabled && e.type == 'mouseover' ? api : 0;
|
1899 |
+
if (focused) focusedRoot = root;
|
1900 |
+
});
|
1901 |
|
1902 |
+
var speedhelp = flowplayer.support.video && api.conf.engine !== "flash" &&
|
1903 |
+
!!document.createElement('video').playbackRate ?
|
1904 |
+
'<p><em>shift</em> + <em>←</em><em>→</em>slower / faster</p>' : '';
|
1905 |
|
1906 |
+
// TODO: add to player-layout.html
|
1907 |
+
root.appendChild(common.createElement('div', { className: 'fp-help' }, '\
|
1908 |
+
<a class="fp-close"></a>\
|
1909 |
+
<div class="fp-help-section fp-help-basics">\
|
1910 |
+
<p><em>space</em>play / pause</p>\
|
1911 |
+
<p><em>q</em>unload | stop</p>\
|
1912 |
+
<p><em>f</em>fullscreen</p>' + speedhelp + '\
|
1913 |
+
</div>\
|
1914 |
+
<div class="fp-help-section">\
|
1915 |
+
<p><em>↑</em><em>↓</em>volume</p>\
|
1916 |
+
<p><em>m</em>mute</p>\
|
1917 |
+
</div>\
|
1918 |
+
<div class="fp-help-section">\
|
1919 |
+
<p><em>←</em><em>→</em>seek</p>\
|
1920 |
+
<p><em> . </em>seek to previous\
|
1921 |
+
</p><p><em>1</em><em>2</em>… <em>6</em> seek to 10%, 20% … 60% </p>\
|
1922 |
+
</div>\
|
1923 |
+
'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1924 |
|
1925 |
+
bean.on(root, 'click', '.fp-close', function() {
|
1926 |
+
common.toggleClass(root, IS_HELP);
|
1927 |
+
});
|
|
|
|
|
|
|
1928 |
|
1929 |
+
api.bind('shutdown', function() {
|
1930 |
+
if (focusedRoot == root) focusedRoot = null;
|
1931 |
+
});
|
|
|
|
|
|
|
|
|
1932 |
|
1933 |
+
});
|
|
|
|
|
|
|
|
|
1934 |
|
|
|
|
|
|
|
1935 |
|
1936 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],14:[function(_dereq_,module,exports){
|
1937 |
+
var flowplayer = _dereq_('../flowplayer')
|
1938 |
+
, common = _dereq_('../common')
|
1939 |
+
, bean = _dereq_('bean');
|
1940 |
|
1941 |
+
flowplayer(function(api, root) {
|
1942 |
+
api.showMenu = function(menu, triggerElement) {
|
1943 |
+
var ui = common.find('.fp-ui', root)[0];
|
1944 |
+
common.toggleClass(menu, 'fp-active', true);
|
1945 |
+
setTimeout(function() {
|
1946 |
+
bean.one(document, 'click', function() {
|
1947 |
+
api.hideMenu(menu);
|
1948 |
+
});
|
1949 |
+
});
|
1950 |
+
var coordinates = triggerElement;
|
1951 |
+
if (triggerElement && triggerElement.tagName) {
|
1952 |
+
coordinates = {
|
1953 |
+
left: common.offset(triggerElement).left,
|
1954 |
+
rightFallbackOffset: common.width(triggerElement),
|
1955 |
+
top: common.offset(triggerElement).top + common.height(triggerElement)
|
1956 |
+
};
|
1957 |
+
}
|
1958 |
+
if (!coordinates) return;
|
1959 |
+
coordinates.rightFallbackOffset = coordinates.rightFallbackOffset || 0;
|
1960 |
+
var top = coordinates.top - common.offset(ui).top
|
1961 |
+
, left = coordinates.left - common.offset(ui).left
|
1962 |
+
if (common.width(menu) + left > common.width(ui)) left = left - common.width(menu) + coordinates.rightFallbackOffset;
|
1963 |
+
if (common.height(menu) + top > common.height(ui)) top = top - common.height(menu);
|
1964 |
+
common.css(menu, {
|
1965 |
+
top: top + 'px',
|
1966 |
+
left: left + 'px'
|
1967 |
+
});
|
1968 |
+
};
|
1969 |
+
|
1970 |
+
api.hideMenu = function(menu) {
|
1971 |
+
common.toggleClass(menu, 'fp-active', false);
|
1972 |
+
};
|
1973 |
+
});
|
1974 |
|
1975 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],15:[function(_dereq_,module,exports){
|
1976 |
+
var flowplayer = _dereq_('../flowplayer')
|
1977 |
+
, common = _dereq_('../common')
|
1978 |
+
, bean = _dereq_('bean');
|
1979 |
+
flowplayer(function(api, root) {
|
1980 |
+
var header = common.find('.fp-header', root)[0]
|
1981 |
+
, ui = common.find('.fp-ui', root)[0];
|
1982 |
+
|
1983 |
+
api.message = function(txt, ttl) {
|
1984 |
+
var msg = createMessage(txt);
|
1985 |
+
var dismiss = function() {
|
1986 |
+
common.toggleClass(msg, 'fp-shown');
|
1987 |
+
setTimeout(function() { removeMessage(msg); }, 500);
|
1988 |
+
};
|
1989 |
+
if (ttl) setTimeout(dismiss, ttl);
|
1990 |
+
return dismiss;
|
1991 |
+
}
|
1992 |
|
1993 |
+
api.textarea = function(txt) {
|
1994 |
+
var area = document.createElement('textarea');
|
1995 |
+
area.value = txt;
|
1996 |
+
area.className = 'fp-textarea';
|
1997 |
+
ui.appendChild(area);
|
1998 |
+
bean.on(document, 'click.fptextarea', function(ev) {
|
1999 |
+
if (ev.target === area) return area.select();
|
2000 |
+
ev.stopPropagation();
|
2001 |
+
ev.preventDefault();
|
2002 |
+
common.removeNode(area);
|
2003 |
+
bean.off(document, 'click.fptextarea');
|
2004 |
+
});
|
2005 |
+
}
|
2006 |
|
|
|
|
|
2007 |
|
2008 |
+
function createMessage(txt) {
|
2009 |
+
var msg = common.createElement('div', {
|
2010 |
+
className: 'fp-message'
|
2011 |
+
}, txt);
|
2012 |
+
ui.insertBefore(msg, header);
|
2013 |
+
setTimeout(function() { common.toggleClass(msg, 'fp-shown'); });
|
2014 |
+
return msg;
|
2015 |
+
}
|
2016 |
|
2017 |
+
function removeMessage(msg) {
|
2018 |
+
common.removeNode(msg);
|
2019 |
+
}
|
2020 |
+
});
|
2021 |
|
2022 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],16:[function(_dereq_,module,exports){
|
2023 |
+
'use strict';
|
2024 |
+
var flowplayer = _dereq_('../flowplayer'),
|
2025 |
+
isIeMobile = /IEMobile/.test(window.navigator.userAgent),
|
2026 |
+
common = _dereq_('../common'),
|
2027 |
+
bean = _dereq_('bean'),
|
2028 |
+
format = _dereq_('./ui').format,
|
2029 |
+
UA = window.navigator.userAgent;
|
2030 |
+
if (flowplayer.support.touch || isIeMobile) {
|
2031 |
|
2032 |
+
flowplayer(function(player, root) {
|
2033 |
+
var isAndroid = /Android/.test(UA) && !/Firefox/.test(UA) && !/Opera/.test(UA),
|
2034 |
+
isSilk = /Silk/.test(UA),
|
2035 |
+
androidVer = isAndroid ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
|
|
|
2036 |
|
2037 |
+
// custom load for android
|
2038 |
+
if (isAndroid && !isIeMobile) {
|
2039 |
+
if (!/Chrome/.test(UA) && androidVer < 4) {
|
2040 |
+
var originalLoad = player.load;
|
2041 |
+
player.load = function() {
|
2042 |
+
var ret = originalLoad.apply(player, arguments);
|
2043 |
+
player.trigger('ready', [player, player.video]);
|
2044 |
+
return ret;
|
2045 |
+
};
|
2046 |
+
}
|
2047 |
+
var timer, currentTime = 0;
|
2048 |
+
var resumeTimer = function(api) {
|
2049 |
+
timer = setInterval(function() {
|
2050 |
+
api.video.time = ++currentTime;
|
2051 |
+
api.trigger('progress', [api, currentTime]);
|
2052 |
+
}, 1000);
|
2053 |
};
|
2054 |
+
player.bind('ready pause unload', function() {
|
2055 |
+
if (timer) {
|
2056 |
+
clearInterval(timer);
|
2057 |
+
timer = null;
|
2058 |
+
}
|
2059 |
+
});
|
2060 |
+
player.bind('ready', function() {
|
2061 |
+
currentTime = 0;
|
2062 |
+
});
|
2063 |
+
player.bind('resume', function(ev, api) {
|
2064 |
+
if (!api.live) return;
|
2065 |
+
if (currentTime) { return resumeTimer(api); }
|
2066 |
+
player.one('progress', function(ev, api, t) {
|
2067 |
+
if (t === 0) { // https://github.com/flowplayer/flowplayer/issues/727
|
2068 |
+
resumeTimer(api);
|
2069 |
+
}
|
2070 |
+
});
|
2071 |
+
});
|
2072 |
+
}
|
2073 |
|
2074 |
+
// hide volume
|
2075 |
+
if (!flowplayer.support.volume) {
|
2076 |
+
common.addClass(root, 'no-volume');
|
2077 |
+
}
|
2078 |
+
common.addClass(root, 'is-touch');
|
2079 |
+
if (player.sliders && player.sliders.timeline) player.sliders.timeline.disableAnimation();
|
2080 |
|
2081 |
+
if (!flowplayer.support.inlineVideo || player.conf.native_fullscreen) player.conf.nativesubtitles = true;
|
2082 |
|
2083 |
+
// fake mouseover effect with click
|
2084 |
+
var hasMoved = false;
|
2085 |
+
bean.on(root, 'touchmove', function() {
|
2086 |
+
hasMoved = true;
|
2087 |
+
});
|
2088 |
+
bean.on(root, 'touchend click', function(e) {
|
2089 |
+
if (hasMoved) { //not intentional, most likely scrolling
|
2090 |
+
hasMoved = false;
|
2091 |
+
return;
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
if (player.playing && !common.hasClass(root, 'is-mouseover')) {
|
2095 |
+
common.addClass(root, 'is-mouseover');
|
2096 |
+
common.removeClass(root, 'is-mouseout');
|
2097 |
+
e.preventDefault();
|
2098 |
+
e.stopPropagation();
|
2099 |
+
return;
|
2100 |
+
}
|
2101 |
+
|
2102 |
+
if (!player.playing && !player.splash && common.hasClass(root, 'is-mouseout') && !common.hasClass(root, 'is-mouseover')) {
|
2103 |
+
setTimeout(function() {
|
2104 |
+
if (!player.disabled && !player.playing && !player.splash) {
|
2105 |
+
player.resume();
|
2106 |
+
}
|
2107 |
+
}, 400);
|
2108 |
+
}
|
2109 |
|
|
|
2110 |
|
2111 |
});
|
2112 |
|
2113 |
+
// native fullscreen
|
2114 |
+
if (!flowplayer.support.fullscreen && player.conf.native_fullscreen && typeof document.createElement('video').webkitEnterFullScreen === 'function') {
|
2115 |
+
var oldFullscreen = player.fullscreen;
|
2116 |
+
player.fullscreen = function() {
|
2117 |
+
var video = common.find('video.fp-engine', root)[0];
|
2118 |
+
if (!video) return oldFullscreen.apply(player);
|
2119 |
+
player.trigger('fullscreen', [player]);
|
2120 |
+
bean.on(document, 'webkitfullscreenchange.nativefullscreen', function() {
|
2121 |
+
if (document.webkitFullscreenElement !== video) return;
|
2122 |
+
bean.off(document, '.nativefullscreen');
|
2123 |
+
bean.on(document, 'webkitfullscreenchange.nativefullscreen', function() {
|
2124 |
+
if (document.webkitFullscreenElement) return;
|
2125 |
+
bean.off(document, '.nativefullscreen');
|
2126 |
+
player.trigger('fullscreen-exit', [player]);
|
2127 |
+
});
|
2128 |
+
});
|
2129 |
+
video.webkitEnterFullScreen();
|
2130 |
+
bean.one(video, 'webkitendfullscreen', function() {
|
2131 |
+
bean.off(document, 'fullscreenchange.nativefullscreen');
|
2132 |
+
player.trigger('fullscreen-exit', [player]);
|
2133 |
+
common.prop(video, 'controls', true);
|
2134 |
+
common.prop(video, 'controls', false);
|
2135 |
+
});
|
2136 |
+
};
|
2137 |
+
}
|
2138 |
|
|
|
2139 |
|
2140 |
+
// Android browser gives video.duration == 1 until second 'timeupdate' event
|
2141 |
+
if (isAndroid || isSilk) player.bind("ready", function() {
|
|
|
|
|
2142 |
|
2143 |
+
var video = common.find('video.fp-engine', root)[0];
|
2144 |
+
bean.one(video, 'canplay', function() {
|
2145 |
+
video.play();
|
2146 |
+
});
|
2147 |
+
video.play();
|
2148 |
|
2149 |
+
player.bind("progress.dur", function() {
|
2150 |
+
if (player.live || player.conf.live) return;
|
2151 |
+
var duration = video.duration;
|
2152 |
|
2153 |
+
if (duration !== 1) {
|
2154 |
+
player.video.duration = duration;
|
2155 |
+
common.find(".fp-duration", root)[0].innerHTML = format(duration);
|
2156 |
+
player.unbind("progress.dur");
|
2157 |
+
}
|
2158 |
+
});
|
2159 |
+
});
|
2160 |
|
|
|
2161 |
|
2162 |
+
});
|
|
|
|
|
|
|
2163 |
|
|
|
2164 |
}
|
2165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2166 |
|
2167 |
+
},{"../common":1,"../flowplayer":28,"./ui":24,"bean":31}],17:[function(_dereq_,module,exports){
|
2168 |
+
'use strict';
|
2169 |
+
var flowplayer = _dereq_('../flowplayer'),
|
2170 |
+
extend = _dereq_('extend-object'),
|
2171 |
+
bean = _dereq_('bean'),
|
2172 |
+
common = _dereq_('../common'),
|
2173 |
+
Resolve = _dereq_('./resolve'),
|
2174 |
+
resolver = new Resolve(),
|
2175 |
+
$ = window.jQuery,
|
2176 |
+
externalRe = /^#/;
|
2177 |
+
flowplayer(function(player, root) {
|
2178 |
|
2179 |
+
var conf = extend({ active: 'is-active', advance: true, query: ".fp-playlist a" }, player.conf)
|
2180 |
+
, klass = conf.active
|
2181 |
+
, ui = common.find('.fp-ui', root)[0];
|
2182 |
|
2183 |
+
var hasCustomPlaylist = common.hasClass(root, 'fp-custom-playlist') || !!conf.customPlaylist;
|
2184 |
+
common.toggleClass(root, 'fp-custom-playlist', hasCustomPlaylist);
|
2185 |
+
common.toggleClass(root, 'fp-default-playlist', !hasCustomPlaylist);
|
|
|
|
|
2186 |
|
2187 |
+
// getters
|
2188 |
+
function els() {
|
2189 |
+
return common.find(conf.query, queryRoot());
|
2190 |
+
}
|
2191 |
|
2192 |
+
function queryRoot() {
|
2193 |
+
if (externalRe.test(conf.query)) return;
|
2194 |
+
return root;
|
|
|
|
|
|
|
2195 |
}
|
2196 |
|
2197 |
+
function active() {
|
2198 |
+
return common.find(conf.query + "." + klass, queryRoot());
|
2199 |
}
|
2200 |
|
|
|
|
|
2201 |
|
2202 |
+
player.play = function(i) {
|
2203 |
+
if (i === undefined) return player.resume();
|
2204 |
+
if (typeof i === 'number' && !player.conf.playlist[i]) return player;
|
2205 |
+
else if (typeof i != 'number') return player.load.apply(null, arguments);
|
2206 |
+
var arg = extend({index: i}, player.conf.playlist[i]);
|
2207 |
+
if (i === player.video.index) return player.load(arg, function() { player.resume(); });
|
2208 |
+
player.off('beforeresume.fromfirst'); // Don't start from beginning if clip explicitely chosen
|
2209 |
+
player.load(arg, function() {
|
2210 |
+
player.video.index = i;
|
2211 |
+
});
|
2212 |
+
return player;
|
2213 |
+
};
|
2214 |
|
2215 |
+
player.next = function(e) {
|
2216 |
+
if (e) e.preventDefault();
|
2217 |
+
var current = player.video.index;
|
2218 |
+
if (current != -1) {
|
2219 |
+
current = current === player.conf.playlist.length - 1 ? 0 : current + 1;
|
2220 |
+
player.play(current);
|
2221 |
+
}
|
2222 |
+
return player;
|
2223 |
+
};
|
2224 |
|
2225 |
+
player.prev = function(e) {
|
2226 |
+
if (e) e.preventDefault();
|
2227 |
+
var current = player.video.index;
|
2228 |
+
if (current != -1) {
|
2229 |
+
current = current === 0 ? player.conf.playlist.length - 1 : current - 1;
|
2230 |
+
player.play(current);
|
2231 |
+
}
|
2232 |
+
return player;
|
2233 |
+
};
|
2234 |
|
2235 |
+
player.setPlaylist = function(items) {
|
2236 |
+
player.conf.playlist = items;
|
2237 |
+
delete player.video.index;
|
2238 |
+
generatePlaylist();
|
2239 |
+
return player;
|
2240 |
+
};
|
2241 |
|
2242 |
+
player.addPlaylistItem = function(item) {
|
2243 |
+
return player.setPlaylist(player.conf.playlist.concat([item]));
|
2244 |
+
};
|
2245 |
|
2246 |
+
player.removePlaylistItem = function(idx) {
|
2247 |
+
var pl = player.conf.playlist;
|
2248 |
+
return player.setPlaylist(pl.slice(0, idx).concat(pl.slice(idx+1)));
|
2249 |
+
};
|
2250 |
|
2251 |
+
bean.on(root, 'click', '.fp-next', player.next);
|
2252 |
+
bean.on(root, 'click', '.fp-prev', player.prev);
|
2253 |
|
2254 |
+
if (conf.advance) {
|
2255 |
+
player.off("finish.pl").on("finish.pl", function(e, player) {
|
2256 |
+
// clip looping
|
2257 |
+
if (player.video.loop) return player.seek(0, function() { player.resume(); });
|
2258 |
+
// next clip is found or loop
|
2259 |
+
var next = player.video.index >= 0 ? player.video.index + 1 : undefined;
|
2260 |
+
if (next < player.conf.playlist.length || conf.loop) {
|
2261 |
+
next = next === player.conf.playlist.length ? 0 : next;
|
2262 |
+
common.removeClass(root, 'is-finished');
|
2263 |
+
setTimeout(function() { // Let other finish callbacks fire first
|
2264 |
+
player.play(next);
|
2265 |
+
});
|
2266 |
|
2267 |
+
// stop to last clip, play button starts from 1:st clip
|
2268 |
+
} else {
|
2269 |
|
2270 |
+
// If we have multiple items in playlist, start from first
|
2271 |
+
if (player.conf.playlist.length > 1) {
|
2272 |
+
player.one("beforeresume.fromfirst", function(ev) {
|
2273 |
+
ev.preventDefault();
|
2274 |
+
player.play(0);
|
2275 |
+
});
|
2276 |
+
player.one('seek', function() { player.off('beforeresume.fromfirst'); });
|
2277 |
+
}
|
2278 |
+
}
|
2279 |
+
});
|
2280 |
+
}
|
2281 |
|
2282 |
+
function generatePlaylist() {
|
2283 |
+
var plEl = common.find('.fp-playlist', root)[0]
|
2284 |
+
if (!plEl) {
|
2285 |
+
plEl = common.createElement('div', {className: 'fp-playlist'});
|
2286 |
+
var cntrls = common.find('.fp-next,.fp-prev', root);
|
2287 |
+
if (!cntrls.length) common.insertAfter(root, common.find('video', root)[0], plEl);
|
2288 |
+
else cntrls[0].parentElement.insertBefore(plEl, cntrls[0]);
|
2289 |
+
}
|
2290 |
+
plEl.innerHTML = '';
|
2291 |
+
if (player.conf.playlist[0].length) { // FP5 style playlist
|
2292 |
+
player.conf.playlist = player.conf.playlist.map(function(itm) {
|
2293 |
+
if (typeof itm === 'string') {
|
2294 |
+
var type = itm.split(Resolve.TYPE_RE)[1];
|
2295 |
+
return {
|
2296 |
+
sources: [{
|
2297 |
+
type: type.toLowerCase() === 'm3u8' ? 'application/x-mpegurl' : 'video/' + type,
|
2298 |
+
src: itm
|
2299 |
+
}]
|
2300 |
+
};
|
2301 |
+
}
|
2302 |
+
return {
|
2303 |
+
sources: itm.map(function(src) {
|
2304 |
+
var s = {};
|
2305 |
+
Object.keys(src).forEach(function(k) {
|
2306 |
+
s.type = /mpegurl/i.test(k) ? 'application/x-mpegurl' : 'video/' + k;
|
2307 |
+
s.src = src[k];
|
2308 |
+
});
|
2309 |
+
return s;
|
2310 |
+
})
|
2311 |
+
};
|
2312 |
+
});
|
2313 |
+
}
|
2314 |
+
player.conf.playlist.forEach(function(item, i) {
|
2315 |
+
var href = item.sources[0].src;
|
2316 |
+
plEl.appendChild(common.createElement('a', {
|
2317 |
+
href: href,
|
2318 |
+
'data-index': i
|
2319 |
+
}));
|
2320 |
+
});
|
2321 |
+
}
|
2322 |
|
2323 |
+
var playlistInitialized = false;
|
2324 |
+
if (player.conf.playlist.length) { // playlist configured by javascript, generate playlist
|
2325 |
+
playlistInitialized = true;
|
2326 |
+
generatePlaylist();
|
2327 |
+
if (!player.conf.clip || !player.conf.clip.sources.length) {
|
2328 |
+
player.conf.clip = player.conf.playlist[player.conf.startIndex || 0];
|
2329 |
+
}
|
2330 |
+
}
|
2331 |
|
2332 |
+
if (els().length && !playlistInitialized) { //generate playlist from existing elements
|
2333 |
+
player.conf.playlist = [];
|
2334 |
+
delete player.conf.startIndex;
|
2335 |
+
els().forEach(function(el) {
|
2336 |
+
var src = el.href;
|
2337 |
+
el.setAttribute('data-index', player.conf.playlist.length);
|
2338 |
+
var itm = resolver.resolve(src, player.conf.clip.sources);
|
2339 |
+
if ($) {
|
2340 |
+
extend(itm, $(el).data());
|
2341 |
+
}
|
2342 |
+
player.conf.playlist.push(itm);
|
2343 |
+
});
|
2344 |
+
}
|
2345 |
+
|
2346 |
+
common.find('.fp-prev,.fp-next,.fp-playlist', root).forEach(function(el) {
|
2347 |
+
ui.appendChild(el);
|
2348 |
+
});
|
2349 |
+
|
2350 |
+
/* click -> play */
|
2351 |
+
bean.on(externalRe.test(conf.query) ? document : root, "click", conf.query, function(e) {
|
2352 |
+
e.preventDefault();
|
2353 |
+
var el = e.currentTarget;
|
2354 |
+
var toPlay = Number(el.getAttribute('data-index'));
|
2355 |
+
if (toPlay != -1) {
|
2356 |
+
player.play(toPlay);
|
2357 |
+
}
|
2358 |
+
});
|
2359 |
+
|
2360 |
+
// highlight
|
2361 |
+
function videoIndex(video) {
|
2362 |
+
if (typeof video.index !== 'undefined') return video.index;
|
2363 |
+
if (typeof player.video.index !== 'undefined') return player.video.index;
|
2364 |
+
return player.conf.startIndex || 0;
|
2365 |
+
}
|
2366 |
+
player.on("load", function(e, api, video) {
|
2367 |
+
if (!player.conf.playlist.length) return;
|
2368 |
+
var prev = active()[0],
|
2369 |
+
prevIndex = prev && prev.getAttribute('data-index'),
|
2370 |
+
index = video.index = videoIndex(video),
|
2371 |
+
el = common.find(conf.query +'[data-index="' + index + '"]', queryRoot())[0],
|
2372 |
+
is_last = index == player.conf.playlist.length - 1;
|
2373 |
+
if (prev) common.removeClass(prev, klass);
|
2374 |
+
if (el) common.addClass(el, klass);
|
2375 |
+
// index
|
2376 |
+
common.removeClass(root, 'video' + prevIndex);
|
2377 |
+
common.addClass(root, 'video' + index);
|
2378 |
+
common.toggleClass(root, "last-video", is_last);
|
2379 |
+
|
2380 |
+
// video properties
|
2381 |
+
video.index = api.video.index = index;
|
2382 |
+
video.is_last = api.video.is_last = is_last;
|
2383 |
+
|
2384 |
+
// without namespace callback called only once. unknown rason.
|
2385 |
+
}).on("unload.pl", function() {
|
2386 |
+
if (!player.conf.playlist.length) return;
|
2387 |
+
active().forEach(function(el) {
|
2388 |
+
common.toggleClass(el, klass);
|
2389 |
+
});
|
2390 |
+
player.conf.playlist.forEach(function(itm, i) {
|
2391 |
+
common.removeClass(root, 'video' + i);
|
2392 |
+
});
|
2393 |
+
});
|
2394 |
|
2395 |
+
if (player.conf.playlist.length) {
|
2396 |
+
// disable single clip looping
|
2397 |
+
player.conf.loop = false;
|
2398 |
+
}
|
2399 |
|
|
|
|
|
|
|
2400 |
|
2401 |
+
});
|
|
|
|
|
2402 |
|
2403 |
+
},{"../common":1,"../flowplayer":28,"./resolve":19,"bean":31,"extend-object":36}],18:[function(_dereq_,module,exports){
|
2404 |
+
var flowplayer = _dereq_('../flowplayer')
|
2405 |
+
, common = _dereq_('../common')
|
2406 |
+
, bean = _dereq_('bean');
|
2407 |
|
2408 |
+
flowplayer(function(api, root) {
|
2409 |
+
var ui = common.find('.fp-ui', root)[0]
|
2410 |
+
, controlbar = common.find('.fp-controls', ui)[0];
|
2411 |
+
|
2412 |
+
bean.on(root, 'click', '.fp-qsel', function() {
|
2413 |
+
var menu = common.find('.fp-qsel-menu', root)[0];
|
2414 |
+
if (common.hasClass(menu, 'fp-active')) api.hideMenu();
|
2415 |
+
else api.showMenu(menu);
|
2416 |
+
});
|
2417 |
+
|
2418 |
+
bean.on(root, 'click', '.fp-qsel-menu a', function(ev) {
|
2419 |
+
var q = ev.target.getAttribute('data-quality');
|
2420 |
+
api.quality(q);
|
2421 |
+
});
|
2422 |
+
|
2423 |
+
api.quality = function(q) {
|
2424 |
+
q = isNaN(Number(q)) ? q : Number(q);
|
2425 |
+
api.trigger('quality', [api, q]);
|
2426 |
+
};
|
2427 |
+
|
2428 |
+
api.on('quality', function(_ev, _api, q) {
|
2429 |
+
selectQuality(q, _api.video.qualities);
|
2430 |
+
});
|
2431 |
+
|
2432 |
+
api.on('ready', function(_ev, _api, video) {
|
2433 |
+
removeMenu();
|
2434 |
+
if (!video.qualities || video.qualities.filter(function(q) {
|
2435 |
+
return typeof q.value !== 'undefined' ? q.value > -1 : true;
|
2436 |
+
}).length < 2) return;
|
2437 |
+
createMenu(video.qualities, video.quality);
|
2438 |
+
selectQuality(video.quality, video.qualities);
|
2439 |
+
});
|
2440 |
+
|
2441 |
+
function removeMenu() {
|
2442 |
+
common.find('.fp-qsel-menu', root).forEach(common.removeNode);
|
2443 |
+
common.find('.fp-qsel', root).forEach(common.removeNode);
|
2444 |
+
}
|
2445 |
|
2446 |
+
function createMenu(qualities) {
|
2447 |
+
controlbar.appendChild(common.createElement('strong', { className: 'fp-qsel' }, 'HD'));
|
2448 |
+
var menu = common.createElement('div', { className: 'fp-menu fp-qsel-menu' }, '<strong>Quality</strong>');
|
2449 |
+
qualities.forEach(function(q) {
|
2450 |
+
var a = document.createElement('a')
|
2451 |
+
, quality = typeof q.value !== 'undefined' ? q.value : q;
|
2452 |
+
a.setAttribute('data-quality', quality);
|
2453 |
+
a.innerHTML = q.label || q;
|
2454 |
+
menu.appendChild(a);
|
2455 |
+
});
|
2456 |
+
ui.appendChild(menu);
|
2457 |
+
}
|
2458 |
|
2459 |
+
function selectQuality(quality) {
|
2460 |
+
common.find('.fp-qsel-menu a', root).forEach(function(el) {
|
2461 |
+
common.toggleClass(el, 'fp-selected', el.getAttribute('data-quality') == quality);
|
2462 |
+
common.toggleClass(el, 'fp-color', el.getAttribute('data-quality') == quality);
|
2463 |
+
});
|
2464 |
+
}
|
2465 |
|
2466 |
+
});
|
|
|
2467 |
|
2468 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],19:[function(_dereq_,module,exports){
|
2469 |
+
'use strict';
|
2470 |
+
var TYPE_RE = /\.(\w{3,4})(\?.*)?$/i,
|
2471 |
+
extend = _dereq_('extend-object');
|
2472 |
|
2473 |
+
function parseSource(el) {
|
|
|
|
|
2474 |
|
2475 |
+
var src = el.attr("src"),
|
2476 |
+
type = el.attr("type") || "",
|
2477 |
+
suffix = src.split(TYPE_RE)[1];
|
2478 |
+
type = type.toLowerCase();
|
2479 |
+
return extend(el.data(), { src: src, suffix: suffix || type, type: type || suffix });
|
2480 |
+
}
|
2481 |
|
2482 |
+
function getType(typ) {
|
2483 |
+
if (/mpegurl/i.test(typ)) return 'application/x-mpegurl';
|
2484 |
+
return 'video/' + typ;
|
2485 |
+
}
|
2486 |
|
2487 |
+
/* Resolves video object from initial configuration and from load() method */
|
2488 |
+
module.exports = function URLResolver() {
|
2489 |
+
var self = this;
|
2490 |
|
2491 |
+
self.sourcesFromVideoTag = function(videoTag, $) {
|
2492 |
+
var sources = [];
|
2493 |
+
// initial sources
|
2494 |
+
$("source", videoTag).each(function() {
|
2495 |
+
sources.push(parseSource($(this)));
|
2496 |
+
});
|
2497 |
|
2498 |
+
if (!sources.length && videoTag.length) sources.push(parseSource(videoTag));
|
|
|
|
|
|
|
|
|
2499 |
|
2500 |
+
return sources;
|
2501 |
+
};
|
2502 |
|
|
|
|
|
2503 |
|
2504 |
+
self.resolve = function(video, sources) {
|
2505 |
+
if (!video) return { sources: sources };
|
|
|
2506 |
|
2507 |
+
if (typeof video == 'string') {
|
2508 |
+
video = { src: video, sources: [] };
|
2509 |
+
video.sources = (sources || []).map(function(source) {
|
2510 |
+
var suffix = source.src.split(TYPE_RE)[1];
|
2511 |
+
return {type: source.type, src: video.src.replace(TYPE_RE, '.' + suffix + "$2")};
|
2512 |
+
});
|
2513 |
+
}
|
2514 |
+
|
2515 |
+
if (video instanceof Array) {
|
2516 |
+
video = {
|
2517 |
+
sources: video.map(function(src) {
|
2518 |
+
if (src.type && src.src) return src;
|
2519 |
+
return Object.keys(src).reduce(function(m, typ) {
|
2520 |
+
return extend(m, {
|
2521 |
+
type: getType(typ),
|
2522 |
+
src: src[typ]
|
2523 |
+
});
|
2524 |
+
}, {});
|
2525 |
+
})
|
2526 |
+
};
|
2527 |
+
}
|
2528 |
|
2529 |
+
return video;
|
2530 |
+
};
|
2531 |
+
};
|
2532 |
|
2533 |
+
module.exports.TYPE_RE = TYPE_RE;
|
|
|
|
|
2534 |
|
2535 |
+
},{"extend-object":36}],20:[function(_dereq_,module,exports){
|
2536 |
+
'use strict';
|
2537 |
|
2538 |
+
var flowplayer = _dereq_('../flowplayer')
|
2539 |
+
, common = _dereq_('../common')
|
2540 |
+
, extend = _dereq_('extend-object')
|
2541 |
+
, bean = _dereq_('bean');
|
2542 |
|
2543 |
+
flowplayer(function(api, root) {
|
2544 |
+
var c = api.conf;
|
2545 |
+
if (c.share === false) {
|
2546 |
+
common.find('.fp-share', root).forEach(common.removeNode);
|
2547 |
+
return;
|
2548 |
+
}
|
2549 |
|
2550 |
+
api.shareUrl = function(directEmbed) {
|
2551 |
+
if (directEmbed && c.embed && c.embed.iframe) return c.embed.iframe;
|
2552 |
+
if (typeof api.conf.share === 'string') return api.conf.share;
|
2553 |
+
var title = encodeURIComponent(api.video.title || (common.find('title')[0] || {}).innerHTML || 'Flowplayer video')
|
2554 |
+
, conf = encodeURIComponent(btoa(JSON.stringify(extend({}, api.conf, api.extensions))))
|
2555 |
+
, redirect = encodeURIComponent(window.location.toString())
|
2556 |
+
, baseUrl = directEmbed ? 'https://flowplayer.org/e/' : 'https://flowplayer.org/s/';
|
2557 |
+
return baseUrl + '?t=' + title + '&c=' + conf + '&r=' + redirect;
|
2558 |
+
};
|
2559 |
+
|
2560 |
+
var menu = common.createElement('div', { className: 'fp-menu fp-share-menu' }, '<strong>Share</strong>')
|
2561 |
+
, ui = common.find('.fp-ui', root)[0];
|
2562 |
+
ui.appendChild(menu);
|
2563 |
+
|
2564 |
+
var button = common.find('.fp-share', root)[0];
|
2565 |
+
|
2566 |
+
bean.on(root, 'click', '.fp-share', function(ev) {
|
2567 |
+
ev.preventDefault();
|
2568 |
+
if (common.hasClass(menu, 'fp-active')) api.hideMenu();
|
2569 |
+
else api.showMenu(menu,button);
|
2570 |
+
});
|
2571 |
+
});
|
2572 |
|
2573 |
+
},{"../common":1,"../flowplayer":28,"bean":31,"extend-object":36}],21:[function(_dereq_,module,exports){
|
2574 |
+
'use strict';
|
2575 |
+
var flowplayer = _dereq_('../flowplayer'),
|
2576 |
+
common = _dereq_('../common'),
|
2577 |
+
bean = _dereq_('bean');
|
|
|
2578 |
|
2579 |
+
flowplayer.defaults.subtitleParser = function(txt) {
|
2580 |
+
var TIMECODE_RE = /^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/;
|
|
|
|
|
2581 |
|
2582 |
+
function seconds(timecode) {
|
2583 |
+
var els = timecode.split(':');
|
2584 |
+
if (els.length == 2) els.unshift(0);
|
2585 |
+
return els[0] * 60 * 60 + els[1] * 60 + parseFloat(els[2].replace(',','.'));
|
2586 |
+
}
|
2587 |
|
2588 |
+
var entries = [];
|
2589 |
+
for (var i = 0, lines = txt.split("\n"), len = lines.length, entry = {}, title, timecode, text; i < len; i++) {
|
2590 |
+
timecode = TIMECODE_RE.exec(lines[i]);
|
2591 |
|
2592 |
+
if (timecode) {
|
|
|
|
|
2593 |
|
2594 |
+
// title
|
2595 |
+
title = lines[i - 1];
|
2596 |
+
|
2597 |
+
// text
|
2598 |
+
text = "<p>" + lines[++i] + "</p><br/>";
|
2599 |
+
while (typeof lines[++i] === 'string' && lines[i].trim() && i < lines.length) text += "<p>" + lines[i] + "</p><br/>";
|
2600 |
+
|
2601 |
+
// entry
|
2602 |
+
entry = {
|
2603 |
+
title: title,
|
2604 |
+
startTime: seconds(timecode[1]),
|
2605 |
+
endTime: seconds(timecode[3]),
|
2606 |
+
text: text
|
2607 |
+
};
|
2608 |
+
entries.push(entry);
|
2609 |
+
}
|
2610 |
+
}
|
2611 |
+
return entries;
|
2612 |
+
};
|
2613 |
+
|
2614 |
+
flowplayer(function(p, root) {
|
2615 |
+
var currentPoint, wrap,
|
2616 |
+
subtitleControl, subtitleMenu;
|
2617 |
+
|
2618 |
+
var createSubtitleControl = function() {
|
2619 |
+
subtitleControl = common.createElement('strong', { className: 'fp-cc' }, 'CC');
|
2620 |
+
subtitleMenu = common.createElement('div', {className: 'fp-menu fp-subtitle-menu'}, '<strong>Closed Captions</strong>');
|
2621 |
+
subtitleMenu.appendChild(common.createElement('a', {'data-subtitle-index': -1}, 'No subtitles'));
|
2622 |
+
(p.video.subtitles || []).forEach(function(st, i) {
|
2623 |
+
var srcLang = st.srclang || 'en',
|
2624 |
+
label = st.label || 'Default (' + srcLang + ')';
|
2625 |
+
var item = common.createElement('a', {'data-subtitle-index': i}, label);
|
2626 |
+
subtitleMenu.appendChild(item);
|
2627 |
+
});
|
2628 |
+
common.find('.fp-ui', root)[0].appendChild(subtitleMenu);
|
2629 |
+
common.find('.fp-controls', root)[0].appendChild(subtitleControl);
|
2630 |
+
return subtitleControl;
|
2631 |
+
};
|
2632 |
+
|
2633 |
+
bean.on(root, 'click', '.fp-cc', function() {
|
2634 |
+
//TODO fix
|
2635 |
+
common.toggleClass(subtitleMenu, 'fp-active');
|
2636 |
+
});
|
2637 |
+
|
2638 |
+
bean.on(root, 'click', '.fp-subtitle-menu [data-subtitle-index]', function(ev) {
|
2639 |
+
ev.preventDefault();
|
2640 |
+
var idx = ev.target.getAttribute('data-subtitle-index');
|
2641 |
+
if (idx === '-1') return p.disableSubtitles();
|
2642 |
+
p.loadSubtitles(idx);
|
2643 |
+
});
|
2644 |
+
|
2645 |
+
var createUIElements = function() {
|
2646 |
+
wrap = common.find('.fp-subtitle', root)[0];
|
2647 |
+
wrap = wrap || common.appendTo(common.createElement('div', {'class': 'fp-captions'}), common.find('.fp-player', root)[0]);
|
2648 |
+
Array.prototype.forEach.call(wrap.children, common.removeNode);
|
2649 |
+
common.find('.fp-subtitle-menu', root).forEach(common.removeNode);
|
2650 |
+
createSubtitleControl();
|
2651 |
+
};
|
2652 |
+
|
2653 |
+
|
2654 |
+
p.on('ready', function(ev, player, video) {
|
2655 |
+
var conf = player.conf;
|
2656 |
+
if (flowplayer.support.subtitles && conf.nativesubtitles && player.engine.engineName == 'html5') {
|
2657 |
+
var setMode = function(mode) {
|
2658 |
+
var tracks = common.find('video', root)[0].textTracks;
|
2659 |
+
if (!tracks.length) return;
|
2660 |
+
tracks[0].mode = mode;
|
2661 |
+
};
|
2662 |
+
if (!video.subtitles || !video.subtitles.length) return;
|
2663 |
+
var videoTag = common.find('video.fp-engine', root)[0];
|
2664 |
+
if (video.subtitles.some(function(st) { return !common.isSameDomain(st.src); })) common.attr(videoTag, 'crossorigin', 'anonymous');
|
2665 |
+
if (typeof videoTag.textTracks.addEventListener === 'function') videoTag.textTracks.addEventListener('addtrack', function() {
|
2666 |
+
setMode('disabled');
|
2667 |
+
setMode('showing');
|
2668 |
});
|
2669 |
+
video.subtitles.forEach(function(st) {
|
2670 |
+
videoTag.appendChild(common.createElement('track', {
|
2671 |
+
kind: 'subtitles',
|
2672 |
+
srclang: st.srclang || 'en',
|
2673 |
+
label: st.label || 'en',
|
2674 |
+
src: st.src,
|
2675 |
+
'default': st['default']
|
2676 |
+
}));
|
2677 |
});
|
2678 |
+
return;
|
2679 |
+
}
|
2680 |
+
|
2681 |
+
player.subtitles = [];
|
2682 |
+
|
2683 |
+
createUIElements();
|
2684 |
+
|
2685 |
+
common.removeClass(root, 'has-menu');
|
2686 |
+
|
2687 |
+
p.disableSubtitles();
|
2688 |
+
|
2689 |
+
common.toggleClass(subtitleControl, 'fp-hidden', !video.subtitles || !video.subtitles.length);
|
2690 |
+
if (!video.subtitles || !video.subtitles.length) return;
|
2691 |
+
|
2692 |
+
var defaultSubtitle = video.subtitles.filter(function(one) {
|
2693 |
+
return one['default'];
|
2694 |
+
})[0];
|
2695 |
+
if (defaultSubtitle) player.loadSubtitles(video.subtitles.indexOf(defaultSubtitle));
|
2696 |
+
});
|
2697 |
+
|
2698 |
+
p.bind("cuepoint", function(e, api, cue) {
|
2699 |
+
if (cue.subtitle) {
|
2700 |
+
currentPoint = cue.index;
|
2701 |
+
common.html(wrap, cue.subtitle.text);
|
2702 |
+
common.addClass(wrap, 'fp-shown');
|
2703 |
+
} else if (cue.subtitleEnd) {
|
2704 |
+
common.removeClass(wrap, 'fp-shown');
|
2705 |
+
currentPoint = cue.index;
|
2706 |
+
}
|
2707 |
+
});
|
2708 |
+
|
2709 |
+
p.bind("seek", function(e, api, time) {
|
2710 |
+
// Clear future subtitles if seeking backwards
|
2711 |
+
if (currentPoint && p.cuepoints[currentPoint] && p.cuepoints[currentPoint].time > time) {
|
2712 |
+
common.removeClass(wrap, 'fp-shown');
|
2713 |
+
currentPoint = null;
|
2714 |
+
}
|
2715 |
+
(p.cuepoints || []).forEach(function(cue) {
|
2716 |
+
var entry = cue.subtitle;
|
2717 |
+
//Trigger cuepoint if start time before seek position and end time nonexistent or in the future
|
2718 |
+
if (entry && currentPoint != cue.index) {
|
2719 |
+
if (time >= cue.time && (!entry.endTime || time <= entry.endTime)) p.trigger("cuepoint", [p, cue]);
|
2720 |
+
} // Also handle cuepoints that act as the removal trigger
|
2721 |
+
else if (cue.subtitleEnd && time >= cue.time && cue.index == currentPoint + 1) p.trigger("cuepoint", [p, cue]);
|
2722 |
+
});
|
2723 |
+
|
2724 |
+
});
|
2725 |
+
|
2726 |
+
var setActiveSubtitleClass = function(idx) {
|
2727 |
+
common.toggleClass(common.find('a.fp-selected', subtitleMenu)[0], 'fp-selected');
|
2728 |
+
common.toggleClass(common.find('a[data-subtitle-index="' + idx + '"]', subtitleMenu)[0], 'fp-selected');
|
2729 |
+
};
|
2730 |
+
|
2731 |
+
p.disableSubtitles = function() {
|
2732 |
+
p.subtitles = [];
|
2733 |
+
(p.cuepoints || []).forEach(function(c) {
|
2734 |
+
if (c.subtitle || c.subtitleEnd) p.removeCuepoint(c);
|
2735 |
+
});
|
2736 |
+
if (wrap) Array.prototype.forEach.call(wrap.children, common.removeNode);
|
2737 |
+
setActiveSubtitleClass(-1);
|
2738 |
+
return p;
|
2739 |
+
};
|
2740 |
+
|
2741 |
+
p.loadSubtitles = function(i) {
|
2742 |
+
//First remove possible old subtitles
|
2743 |
+
p.disableSubtitles();
|
2744 |
+
|
2745 |
+
var st = p.video.subtitles[i];
|
2746 |
+
|
2747 |
+
var url = st.src;
|
2748 |
+
if (!url) return;
|
2749 |
+
setActiveSubtitleClass(i);
|
2750 |
+
common.xhrGet(url, function(txt) {
|
2751 |
+
var entries = p.conf.subtitleParser(txt);
|
2752 |
+
entries.forEach(function(entry) {
|
2753 |
+
var cue = { time: entry.startTime, subtitle: entry, visible: false };
|
2754 |
+
p.subtitles.push(entry);
|
2755 |
+
p.addCuepoint(cue);
|
2756 |
+
p.addCuepoint({ time: entry.endTime, subtitleEnd: entry.title, visible: false });
|
2757 |
+
|
2758 |
+
// initial cuepoint
|
2759 |
+
if (entry.startTime === 0 && !p.video.time) {
|
2760 |
+
p.trigger("cuepoint", [p, cue]);
|
2761 |
+
}
|
2762 |
+
});
|
2763 |
+
}, function() {
|
2764 |
+
p.trigger("error", {code: 8, url: url });
|
2765 |
+
return false;
|
2766 |
+
});
|
2767 |
+
return p;
|
2768 |
+
};
|
2769 |
+
});
|
2770 |
|
|
|
|
|
2771 |
|
2772 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],22:[function(_dereq_,module,exports){
|
2773 |
+
'use strict';
|
2774 |
+
/* global ActiveXObject */
|
2775 |
+
var flowplayer = _dereq_('../flowplayer'),
|
2776 |
+
extend = _dereq_('extend-object');
|
2777 |
+
(function() {
|
2778 |
|
2779 |
+
var parseIOSVersion = function(UA) {
|
2780 |
+
var e = /iP(ad|hone)(; CPU)? OS (\d+_\d)/.exec(UA);
|
2781 |
+
if (e && e.length > 1) {
|
2782 |
+
return parseFloat(e[e.length - 1].replace('_', '.'), 10);
|
2783 |
+
}
|
2784 |
+
return 0;
|
2785 |
+
};
|
2786 |
|
2787 |
+
var createVideoTag = function() {
|
2788 |
+
var videoTag = document.createElement('video');
|
2789 |
+
videoTag.loop = true;
|
2790 |
+
videoTag.autoplay = true;
|
2791 |
+
videoTag.preload = true;
|
2792 |
+
return videoTag;
|
2793 |
+
};
|
2794 |
|
2795 |
+
var b = {},
|
2796 |
+
d = document.documentElement.style,
|
2797 |
+
ua = navigator.userAgent.toLowerCase(),
|
2798 |
+
match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
2799 |
+
/(safari)[ \/]([\w.]+)/.exec(ua) ||
|
2800 |
+
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
2801 |
+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
2802 |
+
/(msie) ([\w.]+)/.exec(ua) ||
|
2803 |
+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || [];
|
2804 |
+
|
2805 |
+
if (match[1]) {
|
2806 |
+
b[match[1]] = true;
|
2807 |
+
b.version = match[2] || "0";
|
2808 |
}
|
2809 |
|
2810 |
+
var video = createVideoTag(),
|
2811 |
+
UA = navigator.userAgent,
|
2812 |
+
IS_IE = b.msie || /Trident\/7/.test(UA),
|
2813 |
+
IS_IPAD = /iPad|MeeGo/.test(UA) && !/CriOS/.test(UA),
|
2814 |
+
IS_IPAD_CHROME = /iPad/.test(UA) && /CriOS/.test(UA),
|
2815 |
+
IS_IPHONE = /iP(hone|od)/i.test(UA) && !/iPad/.test(UA) && !/IEMobile/i.test(UA),
|
2816 |
+
IS_ANDROID = /Android/.test(UA) && !/Firefox/.test(UA),
|
2817 |
+
IS_ANDROID_FIREFOX = /Android/.test(UA) && /Firefox/.test(UA),
|
2818 |
+
IS_SILK = /Silk/.test(UA),
|
2819 |
+
IS_WP = /IEMobile/.test(UA),
|
2820 |
+
WP_VER = IS_WP ? parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(UA)[1], 10) : 0,
|
2821 |
+
IE_MOBILE_VER = IS_WP ? parseFloat(/IEMobile\/(\d+\.\d+)/.exec(UA)[1], 10) : 0,
|
2822 |
+
IOS_VER = IS_IPAD || IS_IPHONE ? parseIOSVersion(UA) : 0,
|
2823 |
+
ANDROID_VER = IS_ANDROID ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0,
|
2824 |
+
s = extend(flowplayer.support, {
|
2825 |
+
|
2826 |
+
browser: b,
|
2827 |
+
iOS: {
|
2828 |
+
iPhone: IS_IPHONE,
|
2829 |
+
iPad: IS_IPAD || IS_IPAD_CHROME,
|
2830 |
+
version: IOS_VER,
|
2831 |
+
chrome: IS_IPAD_CHROME
|
2832 |
+
},
|
2833 |
+
subtitles: !!video.addTextTrack,
|
2834 |
+
fullscreen: typeof document.webkitCancelFullScreen == 'function' && !/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(UA) ||
|
2835 |
+
document.mozFullScreenEnabled ||
|
2836 |
+
typeof document.exitFullscreen == 'function' ||
|
2837 |
+
typeof document.msExitFullscreen == 'function',
|
2838 |
+
inlineBlock: !(IS_IE && b.version < 8),
|
2839 |
+
touch: ('ontouchstart' in window),
|
2840 |
+
dataload: !IS_IPAD && !IS_IPHONE && !IS_WP,
|
2841 |
+
flex: ('flexWrap' in d) || ('WebkitFlexWrap' in d) || ('msFlexWrap' in d),
|
2842 |
+
svg: !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect,
|
2843 |
+
zeropreload: !IS_IE && !IS_ANDROID, // IE supports only preload=metadata
|
2844 |
+
volume: !IS_IPAD && !IS_IPHONE && !IS_SILK && !IS_IPAD_CHROME,
|
2845 |
+
cachedVideoTag: !IS_IPAD && !IS_IPHONE && !IS_IPAD_CHROME && !IS_WP,
|
2846 |
+
firstframe: !IS_IPHONE && !IS_IPAD && !IS_ANDROID && !IS_SILK && !IS_IPAD_CHROME && !IS_WP && !IS_ANDROID_FIREFOX,
|
2847 |
+
inlineVideo: (!IS_IPHONE || IOS_VER >= 10) && (!IS_WP || (WP_VER >= 8.1 && IE_MOBILE_VER >= 11)) && (!IS_ANDROID || ANDROID_VER >= 3),
|
2848 |
+
hlsDuration: !IS_ANDROID && (!b.safari || IS_IPAD || IS_IPHONE || IS_IPAD_CHROME),
|
2849 |
+
seekable: !IS_IPAD && !IS_IPAD_CHROME
|
2850 |
+
});
|
2851 |
+
s.autoplay = s.firstframe;
|
2852 |
+
// flashVideo
|
2853 |
+
try {
|
2854 |
+
var plugin = navigator.plugins["Shockwave Flash"],
|
2855 |
+
ver = IS_IE ? new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable('$version') : plugin.description;
|
2856 |
+
if (!IS_IE && !plugin[0].enabledPlugin) s.flashVideo = false;
|
2857 |
+
else {
|
2858 |
|
2859 |
+
ver = ver.split(/\D+/);
|
2860 |
+
if (ver.length && !ver[0]) ver = ver.slice(1);
|
2861 |
|
2862 |
+
s.flashVideo = ver[0] > 9 || ver[0] == 9 && ver[3] >= 115;
|
2863 |
+
}
|
|
|
|
|
|
|
|
|
2864 |
|
2865 |
+
} catch (ignored) {}
|
2866 |
+
try {
|
2867 |
+
s.video = !!video.canPlayType;
|
2868 |
+
if (s.video) video.canPlayType('video/mp4');
|
2869 |
+
} catch (e) {
|
2870 |
+
s.video = false;
|
2871 |
+
}
|
2872 |
|
2873 |
+
// animation
|
2874 |
+
s.animation = (function() {
|
2875 |
+
var vendors = ['','Webkit','Moz','O','ms','Khtml'], el = document.createElement('p');
|
2876 |
|
2877 |
+
for (var i = 0; i < vendors.length; i++) {
|
2878 |
+
if (typeof el.style[vendors[i] + 'AnimationName'] !== 'undefined') return true;
|
2879 |
+
}
|
2880 |
+
})();
|
2881 |
|
|
|
2882 |
|
|
|
2883 |
|
2884 |
+
})();
|
|
|
|
|
2885 |
|
|
|
|
|
2886 |
|
2887 |
+
},{"../flowplayer":28,"extend-object":36}],23:[function(_dereq_,module,exports){
|
2888 |
+
'use strict';
|
|
|
|
|
2889 |
|
2890 |
+
var flowplayer = _dereq_('../flowplayer')
|
2891 |
+
, common = _dereq_('../common')
|
2892 |
+
, bean = _dereq_('bean');
|
2893 |
|
2894 |
+
flowplayer(function(api, root) {
|
2895 |
+
var c = api.conf;
|
2896 |
+
|
2897 |
+
if (c.share === false || c.twitter === false) return;
|
2898 |
+
|
2899 |
+
|
2900 |
+
// https://dev.twitter.com/web/intents
|
2901 |
+
api.tweet = function() {
|
2902 |
+
var left
|
2903 |
+
, top
|
2904 |
+
, width = 550
|
2905 |
+
, height = 420
|
2906 |
+
, winHeight = screen.height
|
2907 |
+
, winWidth = screen.width
|
2908 |
+
, windowOptions = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes'
|
2909 |
+
, shareUrl = typeof c.twitter === 'string' ? c.twitter : api.shareUrl();
|
2910 |
+
left = Math.round((winWidth / 2) - (width / 2));
|
2911 |
+
top = 0;
|
2912 |
+
if (winHeight > height) {
|
2913 |
+
top = Math.round((winHeight / 2) - (height / 2));
|
2914 |
+
}
|
2915 |
+
window.open(
|
2916 |
+
'https://twitter.com/intent/tweet?url=' + encodeURIComponent(shareUrl),
|
2917 |
+
'intent',
|
2918 |
+
windowOptions + ',width=' + width + ',height=' + height + ',left=' + left + ',top=' + top
|
2919 |
+
);
|
2920 |
+
};
|
2921 |
+
|
2922 |
+
var btnContainer = common.find('.fp-share-menu', root)[0]
|
2923 |
+
, trigger = common.createElement('a', { "class": "fp-icon fp-twitter"}, 'Twitter');
|
2924 |
+
|
2925 |
+
common.append(btnContainer, trigger);
|
2926 |
+
|
2927 |
+
bean.on(root, 'click', '.fp-twitter', function() {
|
2928 |
+
api.tweet();
|
2929 |
+
});
|
2930 |
+
});
|
2931 |
|
2932 |
+
},{"../common":1,"../flowplayer":28,"bean":31}],24:[function(_dereq_,module,exports){
|
2933 |
+
(function (Buffer){
|
2934 |
+
'use strict';
|
2935 |
+
var flowplayer = _dereq_('../flowplayer'),
|
2936 |
+
common = _dereq_('../common'),
|
2937 |
+
bean = _dereq_('bean'),
|
2938 |
+
slider = _dereq_('./ui/slider'),
|
2939 |
+
barSlider = _dereq_('./ui/bar-slider');
|
2940 |
|
2941 |
+
function zeropad(val) {
|
2942 |
+
val = parseInt(val, 10);
|
2943 |
+
return val >= 10 ? val : "0" + val;
|
2944 |
+
}
|
2945 |
|
2946 |
+
// display seconds in hh:mm:ss format
|
2947 |
+
function format(sec, remaining) {
|
2948 |
|
2949 |
+
sec = Math.max(sec || 0, 0);
|
2950 |
+
sec = remaining ? Math.ceil(sec) : Math.floor(sec);
|
|
|
|
|
|
|
|
|
2951 |
|
2952 |
+
var h = Math.floor(sec / 3600),
|
2953 |
+
min = Math.floor(sec / 60);
|
2954 |
|
2955 |
+
sec = sec - (min * 60);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2956 |
|
2957 |
+
if (h >= 1) {
|
2958 |
+
min -= h * 60;
|
2959 |
+
return h + ":" + zeropad(min) + ":" + zeropad(sec);
|
2960 |
}
|
2961 |
|
2962 |
+
return zeropad(min) + ":" + zeropad(sec);
|
2963 |
+
}
|
|
|
2964 |
|
2965 |
+
var PLAY_ROUNDED_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtcGxheS1yb3VuZGVkLW91dGxpbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDk5Ljg0NCA5OS44NDM0Ij48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30uY29udHJvbGJ1dHRvbntmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz4KPHRpdGxlPnBsYXktcm91bmRlZC1vdXRsaW5lPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxwYXRoIGNsYXNzPSJjb250cm9sYnV0dG9uIiBkPSJNNDEuMDM1OSw3MS4xOWE1LjA0OTIsNS4wNDkyLDAsMCwxLTIuNTU3NS0uNjY3M2MtMS44MDMxLTEuMDQxLTIuNzk1OC0zLjEyNDgtMi43OTU4LTUuODY2NFYzNS4xODg3YzAtMi43NDI5Ljk5MzMtNC44MjcyLDIuNzk3LTUuODY3NiwxLjgwMjUtMS4wNDIyLDQuMTAzNC0uODYsNi40OC41MTQzTDcwLjQ3ODIsNDQuNTY3MmMyLjM3NTEsMS4zNzExLDMuNjgyNiwzLjI3MjUsMy42ODMyLDUuMzU0NXMtMS4zMDc2LDMuOTg0NS0zLjY4MzIsNS4zNTYyTDQ0Ljk1OTIsNzAuMDExNEE3LjkzODQsNy45Mzg0LDAsMCwxLDQxLjAzNTksNzEuMTlabS4wMDY1LTQwLjEyM2EyLjY3OTQsMi42Nzk0LDAsMCwwLTEuMzU4Mi4zNDEzYy0xLjAyNjMuNTkyNi0xLjU5MTIsMS45MzQ5LTEuNTkxMiwzLjc4VjY0LjY1NjNjMCwxLjg0NDkuNTY0OSwzLjE4NjYsMS41OTA2LDMuNzc5MSwxLjAyODEuNTkzMiwyLjQ3MzMuNDEwOCw0LjA3LS41MTJMNjkuMjczLDUzLjE5MDZjMS41OTgzLS45MjI3LDIuNDc4LTIuMDgzOCwyLjQ3OC0zLjI2ODlzLS44OC0yLjM0NDUtMi40NzgtMy4yNjY2TDQzLjc1NCwzMS45MjI3QTUuNTY4NSw1LjU2ODUsMCwwLDAsNDEuMDQyMywzMS4wNjcxWiIgZmlsdGVyPSJ1cmwoI2YxKSIvPjwvc3ZnPgo=","base64")
|
2966 |
+
, PLAY_ROUNDED_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtcGxheS1yb3VuZGVkLWZpbGwiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogIDxkZWZzPjxzdHlsZT4uYXtmaWxsOiMwMDA7b3BhY2l0eTowLjY1O30uYntmaWxsOiNmZmY7b3BhY2l0eToxLjA7fTwvc3R5bGU+CiAgPC9kZWZzPjx0aXRsZT5wbGF5LXJvdW5kZWQtZmlsbDwvdGl0bGU+CiAgPHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjE3LS4wNzhhNTAsNTAsMCwxLDAsNTAsNTBBNTAuMDU2NCw1MC4wNTY0LDAsMCwwLDQ5LjkyMTctLjA3OFoiLz4KICA8cGF0aCBjbGFzcz0iYiIgZD0iTTM1Ljk0MiwzNS4yMzIzYzAtNC43Mjg5LDMuMzUwNi02LjY2MzcsNy40NDYtNC4yOTcxTDY4LjgzLDQ1LjYyMzVjNC4wOTU2LDIuMzY0LDQuMDk1Niw2LjIzMTksMCw4LjU5NzdMNDMuMzg4LDY4LjkxYy00LjA5NTQsMi4zNjQtNy40NDYuNDMtNy40NDYtNC4yOTc5WiIgZmlsdGVyPSJ1cmwoI2YxKSIvPgogIDwvc3ZnPgogIAo=","base64")
|
2967 |
+
, PLAY_SHARP_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtcGxheS1zaGFycC1maWxsIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8ZGVmcz4KICAgIDxzdHlsZT4uZnAtY29sb3ItcGxheXtvcGFjaXR5OjAuNjU7fS5jb250cm9sYnV0dG9ue2ZpbGw6I2ZmZjt9PC9zdHlsZT4KICA8L2RlZnM+CiAgPHRpdGxlPnBsYXktc2hhcnAtZmlsbDwvdGl0bGU+CiAgPHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjE3LS4wNzhhNTAsNTAsMCwxLDAsNTAsNTBBNTAuMDU2NCw1MC4wNTY0LDAsMCwwLDQ5LjkyMTctLjA3OFoiLz4KICA8cG9seWdvbiBjbGFzcz0iY29udHJvbGJ1dHRvbiIgcG9pbnRzPSI3My42MDEgNTAgMzcuOTY4IDcwLjU3MyAzNy45NjggMjkuNDI3IDczLjYwMSA1MCIgZmlsdGVyPSJ1cmwoI2YxKSIvPgo8L3N2Zz4K","base64")
|
2968 |
+
, PLAY_SHARP_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtcGxheS1zaGFycC1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OS44NDQgOTkuODQzNCI+PGRlZnM+PHN0eWxlPi5jb250cm9sYnV0dG9uYmd7b3BhY2l0eTowLjY1O30uY29udHJvbGJ1dHRvbntmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGxheS1zaGFycC1vdXRsaW5lPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxwYXRoIGNsYXNzPSJjb250cm9sYnV0dG9uIiBkPSJNMzYuOTQ0Myw3Mi4yNDczVjI3LjI5MTZMNzUuODc3Niw0OS43N1ptMi4yLTQxLjE0NTVWNjguNDM3MUw3MS40Nzc2LDQ5Ljc3WiIgZmlsdGVyPSJ1cmwoI2YxKSIvPjwvc3ZnPgo=","base64")
|
2969 |
+
, PAUSE_ROUNDED_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utcm91bmRlZC1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OS44NDM0IDk5Ljg0MzQiPjxkZWZzPjxzdHlsZT4uZnAtY29sb3ItcGxheXtvcGFjaXR5OjAuNjU7fS5yZWN0e2ZpbGw6I2ZmZjt9PC9zdHlsZT4KPC9kZWZzPjx0aXRsZT5wYXVzZS1yb3VuZGVkLW91dGxpbmU8L3RpdGxlPjxwYXRoIGNsYXNzPSJmcC1jb2xvci1wbGF5IiBkPSJNNDkuOTIxMi0uMDc4M2E1MCw1MCwwLDEsMCw1MC4wMDA2LDUwQTUwLjA1NjIsNTAuMDU2MiwwLDAsMCw0OS45MjEyLS4wNzgzWiIvPjxnIGNsYXNzPSJjb250cm9sYnV0dG9uIj48cGF0aCBjbGFzcz0icmVjdCIgZD0iTTM5LjAwMzYsNzEuOTcyNmE3LjU2NSw3LjU2NSwwLDAsMS03LjU1Ny03LjU1NnYtMjguOTlhNy41NTY1LDcuNTU2NSwwLDAsMSwxNS4xMTMsMHYyOC45OUE3LjU2NDgsNy41NjQ4LDAsMCwxLDM5LjAwMzYsNzEuOTcyNlptMC00MS45MDRhNS4zNjQ3LDUuMzY0NywwLDAsMC01LjM1OTMsNS4zNTgydjI4Ljk5YTUuMzU4Nyw1LjM1ODcsMCwwLDAsMTAuNzE3NCwwdi0yOC45OUE1LjM2NDUsNS4zNjQ1LDAsMCwwLDM5LjAwMzYsMzAuMDY4NloiIGZpbHRlcj0idXJsKCNmMSkiLz48cGF0aCBjbGFzcz0icmVjdCIgZD0iTTYwLjg0LDcxLjk3MjZhNy41NjQ4LDcuNTY0OCwwLDAsMS03LjU1Ni03LjU1NnYtMjguOTlhNy41NTY1LDcuNTU2NSwwLDAsMSwxNS4xMTMsMHYyOC45OUE3LjU2NSw3LjU2NSwwLDAsMSw2MC44NCw3MS45NzI2Wm0wLTQxLjkwNGE1LjM2NDUsNS4zNjQ1LDAsMCwwLTUuMzU4Miw1LjM1ODJ2MjguOTlhNS4zNTg3LDUuMzU4NywwLDAsMCwxMC43MTc0LDB2LTI4Ljk5QTUuMzY0Nyw1LjM2NDcsMCwwLDAsNjAuODQsMzAuMDY4NloiIGZpbHRlcj0idXJsKCNmMSkiLz48L2c+PC9zdmc+Cg==","base64")
|
2970 |
+
, PAUSE_ROUNDED_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utcm91bmRlZC1maWxsIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30ucmVjdHtmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGF1c2Utcm91bmRlZC1maWxsPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxnIGNsYXNzPSJjb250cm9sYnV0dG9uIiBmaWx0ZXI9InVybCgjZjEpIj48cmVjdCBjbGFzcz0icmVjdCIgeD0iMzEuODQ0IiB5PSIyOC4xMjMxIiB3aWR0aD0iMTMuNDM2MiIgaGVpZ2h0PSI0My41OTczIiByeD0iNi43MTgxIiByeT0iNi43MTgxIi8+PHJlY3QgY2xhc3M9InJlY3QiIHg9IjU0LjU2MzgiIHk9IjI4LjEyMzEiIHdpZHRoPSIxMy40MzYyIiBoZWlnaHQ9IjQzLjU5NzMiIHJ4PSI2LjcxODEiIHJ5PSI2LjcxODEiLz48L2c+PC9zdmc+Cg==","base64")
|
2971 |
+
, PAUSE_SHARP_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utc2hhcnAtZmlsbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PGRlZnM+PHN0eWxlPi5mcC1jb2xvci1wbGF5e29wYWNpdHk6MC42NTt9LnJlY3R7ZmlsbDojZmZmO308L3N0eWxlPgo8L2RlZnM+PHRpdGxlPnBhdXNlLXNoYXJwLWZpbGw8L3RpdGxlPjxwYXRoIGNsYXNzPSJmcC1jb2xvci1wbGF5IiBkPSJNNDkuOTIxNy0uMDc4YTUwLDUwLDAsMSwwLDUwLDUwQTUwLjA1NjQsNTAuMDU2NCwwLDAsMCw0OS45MjE3LS4wNzhaIi8+PGcgY2xhc3M9ImNvbnRyb2xidXR0b24iIGZpbHRlcj0idXJsKCNmMSkiPjxyZWN0IGNsYXNzPSJyZWN0IiB4PSIzMy41IiB5PSIzMC4xMDQyIiB3aWR0aD0iMTIuMjYzNCIgaGVpZ2h0PSIzOS43OTE3Ii8+PHJlY3QgY2xhc3M9InJlY3QiIHg9IjU0LjIzNjYiIHk9IjMwLjEwNDIiIHdpZHRoPSIxMi4yNjM0IiBoZWlnaHQ9IjM5Ljc5MTciLz48L2c+PC9zdmc+Cg==","base64")
|
2972 |
+
, PAUSE_SHARP_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utc2hhcnAtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOTkuODQzNCA5OS44NDM0Ij48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30ucmVjdHtmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGF1c2Utc2hhcnAtb3V0bGluZTwvdGl0bGU+PHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjEyLS4wNzgzYTUwLDUwLDAsMSwwLDUwLjAwMDYsNTBBNTAuMDU2Miw1MC4wNTYyLDAsMCwwLDQ5LjkyMTItLjA3ODNaIi8+PGcgY2xhc3M9ImNvbnRyb2xidXR0b24iIGZpbHRlcj0idXJsKCNmMSkiPjxwYXRoIGNsYXNzPSJyZWN0IiBkPSJNNDYuODcwOSw2OS45NTMxSDMzLjEzODVWMjkuODlINDYuODcwOVpNMzUuMTQxNiw2Ny45NWg5LjcyNjJWMzEuODkzNUgzNS4xNDE2WiIvPjxwYXRoIGNsYXNzPSJyZWN0IiBkPSJNNjYuNzA0Nyw2OS45NTMxSDUyLjk3MjJWMjkuODlINjYuNzA0N1pNNTQuOTc1NCw2Ny45NWg5LjcyNjJWMzEuODkzNUg1NC45NzU0WiIvPjwvZz48L3N2Zz4K","base64");
|
2973 |
|
2974 |
+
var LOADING_ROUNDED_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1yb3VuZGVkLW91dGxpbmUiIHdpZHRoPScxMTJweCcgaGVpZ2h0PScxMTJweCcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijc2IiBoZWlnaHQ9Ijc2IiBmaWxsPSJyZ2JhKDAsMCwwLDApIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgMjUpIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuMHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC4wcyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMCIgY3k9IjAiIHI9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCAyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZSIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjRzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDUwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDAsMCwwLC41KSIgc3Ryb2tlLXdpZHRoPSIzJSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgNTApIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjEuMnMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMS4ycyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgo8L3N2Zz4K","base64")
|
2975 |
+
, LOADING_ROUNDED_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1yb3VuZGVkLWZpbGwiIHdpZHRoPScxMTJweCcgaGVpZ2h0PScxMTJweCcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijc2IiBoZWlnaHQ9Ijc2IiBmaWxsPSJyZ2JhKDAsMCwwLDApIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgMjUpIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC4wcyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjBzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDI1KSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuNHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC40cyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMCIgY3k9IjAiIHI9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCA1MCkiIGZpbGw9InJnYmEoMCwwLDAsLjUpIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgNTApIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMS4ycyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIxLjJzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+Cjwvc3ZnPgo=","base64")
|
2976 |
+
, LOADING_SHARP_FILL = Buffer("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1zaGFycC1maWxsIiB3aWR0aD0nMTEycHgnIGhlaWdodD0nMTEycHgnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNzYiIGhlaWdodD0iNzYiIGZpbGw9InJnYmEoMCwwLDAsMCkiIGNsYXNzPSJiayI+PC9yZWN0PgogIDxyZWN0IHg9Ii0xMCIgeT0iLTEwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1IDI1KSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjBzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjBzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMTAiIHk9Ii0xMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCAyNSkiIGZpbGw9InJnYmEoMCwwLDAsLjUpIiBjbGFzcz0ic3EiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC40cyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iLTEwIiB5PSItMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAgNTApIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuOHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgogIDxyZWN0IHg9Ii0xMCIgeT0iLTEwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1IDUwKSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIxLjJzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIxLjJzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KPC9zdmc+Cg==","base64")
|
2977 |
+
, LOADING_SHARP_OUTLINE = Buffer("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1zaGFycC1vdXRsaW5lIiB3aWR0aD0nMTEycHgnIGhlaWdodD0nMTEycHgnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNzYiIGhlaWdodD0iNzYiIGZpbGw9InJnYmEoMCwwLDAsMCkiIGNsYXNzPSJiayI+PC9yZWN0PgogIDxyZWN0IHg9Ii05IiB5PSItOSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNSAyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuMHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC4wcyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iLTkiIHk9Ii05IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDI1KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDAsMCwwLC41KSIgc3Ryb2tlLXdpZHRoPSIzJSIgY2xhc3M9InNxIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZSIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjRzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KICA8cmVjdCB4PSItOSIgeT0iLTkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAgNTApIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgogIDxyZWN0IHg9Ii05IiB5PSItOSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNSA1MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjEuMnMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMS4ycyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+Cjwvc3ZnPgo=","base64");
|
|
|
2978 |
|
2979 |
+
flowplayer(function(api, root) {
|
2980 |
+
common.find('.fp-filters').forEach(common.removeNode);
|
2981 |
+
try {
|
2982 |
+
var fc;
|
2983 |
+
document.body.appendChild(fc = common.createElement('div', {}, Buffer("PHN2ZyBjbGFzcz0iZnAtZmlsdGVycyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMCAwIj4KICA8ZGVmcz4KICAgIDxmaWx0ZXIgaWQ9ImYxIiB4PSItMjAlIiB5PSItMjAlIiB3aWR0aD0iMjAwJSIgaGVpZ2h0PSIyMDAlIj4KICAgICAgPGZlT2Zmc2V0IHJlc3VsdD0ib2ZmT3V0IiBpbj0iU291cmNlQWxwaGEiIGR4PSIwIiBkeT0iMCIgLz4KICAgICAgPGZlQ29sb3JNYXRyaXggcmVzdWx0PSJtYXRyaXhPdXQiIGluPSJvZmZPdXQiIHR5cGU9Im1hdHJpeCIKICAgICAgdmFsdWVzPSIwLjMgMCAwIDAgMCAwIDAuMyAwIDAgMCAwIDAgMC4zIDAgMCAwIDAgMCAwLjQgMCIgLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iYmx1ck91dCIgaW49Im1hdHJpeE91dCIgc3RkRGV2aWF0aW9uPSI0IiAvPgogICAgICA8ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJibHVyT3V0IiBtb2RlPSJub3JtYWwiIC8+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+Cjwvc3ZnPgo=","base64")));
|
2984 |
+
common.css(fc, {
|
2985 |
+
width: 0,
|
2986 |
+
height: 0,
|
2987 |
+
overflow: 'hidden',
|
2988 |
+
position: 'absolute',
|
2989 |
+
margin: 0,
|
2990 |
+
padding: 0
|
2991 |
+
});
|
2992 |
+
|
2993 |
+
} catch (e) { /* omit */ }
|
2994 |
|
2995 |
+
var conf = api.conf,
|
2996 |
+
support = flowplayer.support,
|
2997 |
+
hovertimer;
|
2998 |
+
common.find('.fp-ratio,.fp-ui', root).forEach(common.removeNode);
|
2999 |
+
common.addClass(root, 'flowplayer');
|
3000 |
+
root.appendChild(common.createElement('div', {className: 'fp-ratio'}));
|
3001 |
+
var ui = common.createElement('div', {className: 'fp-ui'}, '\
|
3002 |
+
<div class="fp-waiting">\
|
3003 |
+
{{ LOADING_SHARP_OUTLINE }}\
|
3004 |
+
{{ LOADING_SHARP_FILL }}\
|
3005 |
+
{{ LOADING_ROUNDED_FILL }}\
|
3006 |
+
{{ LOADING_ROUNDED_OUTLINE }}\
|
3007 |
</div>\
|
3008 |
+
<div class="fp-header">\
|
3009 |
+
<a class="fp-share fp-icon"></a>\
|
3010 |
+
<a class="fp-fullscreen fp-icon"></a>\
|
3011 |
+
<a class="fp-unload fp-icon"></a>\
|
3012 |
</div>\
|
3013 |
+
<p class="fp-speed-flash"></p>\
|
3014 |
+
<div class="fp-play fp-visible">\
|
3015 |
+
<a class="fp-icon fp-playbtn"></a>\
|
3016 |
+
{{ PLAY_ROUNDED_FILL }}\
|
3017 |
+
{{ PLAY_ROUNDED_OUTLINE }}\
|
3018 |
+
{{ PLAY_SHARP_FILL }}\
|
3019 |
+
{{ PLAY_SHARP_OUTLINE }}\
|
3020 |
</div>\
|
3021 |
+
<div class="fp-pause">\
|
3022 |
+
<a class="fp-icon fp-playbtn"></a>\
|
3023 |
+
{{ PAUSE_SHARP_OUTLINE }}\
|
3024 |
+
{{ PAUSE_SHARP_FILL }}\
|
3025 |
+
{{ PAUSE_ROUNDED_OUTLINE }}\
|
3026 |
+
{{ PAUSE_ROUNDED_FILL }}\
|
3027 |
+
</div>\
|
3028 |
+
<div class="fp-controls">\
|
3029 |
+
<a class="fp-icon fp-playbtn"></a>\
|
3030 |
+
<span class="fp-elapsed">00:00</span>\
|
3031 |
+
<div class="fp-timeline fp-bar">\
|
3032 |
+
<div class="fp-buffer"></div>\
|
3033 |
+
<span class="fp-timestamp"></span>\
|
3034 |
+
<div class="fp-progress fp-color"></div>\
|
3035 |
+
</div>\
|
3036 |
+
<span class="fp-duration"></span>\
|
3037 |
+
<span class="fp-remaining"></span>\
|
3038 |
+
<div class="fp-volume">\
|
3039 |
+
<a class="fp-icon fp-volumebtn"></a>\
|
3040 |
+
<div class="fp-volumebar fp-bar-slider">\
|
3041 |
+
<em></em><em></em><em></em><em></em><em></em><em></em><em></em>\
|
3042 |
+
</div>\
|
3043 |
+
</div>\
|
3044 |
+
<strong class="fp-speed fp-hidden"></strong>\
|
3045 |
+
</div>'.replace('{{ PAUSE_ROUNDED_FILL }}', PAUSE_ROUNDED_FILL)
|
3046 |
+
.replace('{{ PAUSE_ROUNDED_OUTLINE }}', PAUSE_ROUNDED_OUTLINE)
|
3047 |
+
.replace('{{ PAUSE_SHARP_FILL }}', PAUSE_SHARP_FILL)
|
3048 |
+
.replace('{{ PAUSE_SHARP_OUTLINE }}', PAUSE_SHARP_OUTLINE)
|
3049 |
+
.replace('{{ PLAY_SHARP_OUTLINE }}', PLAY_SHARP_OUTLINE)
|
3050 |
+
.replace('{{ PLAY_SHARP_FILL }}', PLAY_SHARP_FILL)
|
3051 |
+
.replace('{{ PLAY_ROUNDED_OUTLINE }}', PLAY_ROUNDED_OUTLINE)
|
3052 |
+
.replace('{{ PLAY_ROUNDED_FILL }}', PLAY_ROUNDED_FILL)
|
3053 |
+
.replace('{{ LOADING_ROUNDED_OUTLINE }}', LOADING_ROUNDED_OUTLINE)
|
3054 |
+
.replace('{{ LOADING_ROUNDED_FILL }}', LOADING_ROUNDED_FILL)
|
3055 |
+
.replace('{{ LOADING_SHARP_FILL }}', LOADING_SHARP_FILL)
|
3056 |
+
.replace('{{ LOADING_SHARP_OUTLINE }}', LOADING_SHARP_OUTLINE)
|
3057 |
+
.replace(/url\(#/g, 'url(' + window.location.href.replace(window.location.hash, "").replace(/\#$/g, '') + '#')
|
3058 |
+
);
|
3059 |
+
root.appendChild(ui);
|
3060 |
+
function find(klass) {
|
3061 |
+
return common.find(".fp-" + klass, root)[0];
|
3062 |
}
|
3063 |
|
3064 |
+
// widgets
|
3065 |
+
var buffer = find("buffer"),
|
3066 |
+
waiting = find('waiting'),
|
3067 |
+
elapsed = find("elapsed"),
|
3068 |
+
ratio = find("ratio"),
|
3069 |
+
speedFlash = find('speed-flash'),
|
3070 |
+
durationEl = find("duration"),
|
3071 |
+
remaining = find('remaining'),
|
3072 |
+
timelineTooltip = find('timestamp'),
|
3073 |
+
origRatio = common.css(ratio, 'padding-top'),
|
3074 |
+
play = find('play'),
|
3075 |
+
pause = find('pause'),
|
3076 |
|
3077 |
+
// sliders
|
3078 |
+
timeline = find("timeline"),
|
3079 |
+
timelineApi = slider(timeline, api.rtl),
|
3080 |
|
3081 |
+
fullscreen = find("fullscreen"),
|
3082 |
+
volumeSlider = find("volumebar"),
|
3083 |
+
volumeApi = barSlider(volumeSlider, { rtl: api.rtl }),
|
3084 |
+
noToggle = common.hasClass(root, 'no-toggle');
|
|
|
|
|
|
|
|
|
3085 |
|
3086 |
+
timelineApi.disableAnimation(common.hasClass(root, 'is-touch'));
|
3087 |
+
api.sliders = api.sliders || {};
|
3088 |
+
api.sliders.timeline = timelineApi;
|
3089 |
+
api.sliders.volume = volumeApi;
|
3090 |
|
3091 |
+
var speedAnimationTimers = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3092 |
|
3093 |
+
// aspect ratio
|
3094 |
+
function setRatio(val) {
|
3095 |
+
common.css(ratio, 'padding-top', val * 100 + "%");
|
3096 |
+
if (!support.inlineBlock) common.height(common.find('object', root)[0], common.height(root));
|
3097 |
+
}
|
3098 |
|
3099 |
+
function hover(flag) {
|
3100 |
+
if (flag) {
|
3101 |
+
common.addClass(root, 'is-mouseover');
|
3102 |
+
common.removeClass(root, 'is-mouseout');
|
3103 |
+
} else {
|
3104 |
+
common.addClass(root, 'is-mouseout');
|
3105 |
+
common.removeClass(root, 'is-mouseover');
|
3106 |
+
}
|
3107 |
+
}
|
3108 |
|
3109 |
+
// loading...
|
3110 |
+
if (!support.svg) common.html(waiting, "<p>loading …</p>");
|
3111 |
|
3112 |
+
if (conf.ratio) setRatio(conf.ratio);
|
3113 |
|
3114 |
+
// no fullscreen in IFRAME
|
3115 |
+
try {
|
3116 |
+
if (!conf.fullscreen) common.removeNode(fullscreen);
|
3117 |
|
3118 |
+
} catch (e) {
|
3119 |
+
common.removeNode(fullscreen);
|
3120 |
+
}
|
3121 |
|
3122 |
+
api.on('dvrwindow', function() {
|
3123 |
+
timelineApi.disable(false);
|
3124 |
+
});
|
3125 |
|
3126 |
+
api.on("ready", function(ev, api, video) {
|
3127 |
|
3128 |
+
var duration = api.video.duration;
|
3129 |
|
3130 |
+
timelineApi.disable(api.disabled || !duration);
|
3131 |
|
3132 |
+
if (conf.adaptiveRatio && !isNaN(video.height / video.width)) setRatio(video.height / video.width, true);
|
|
|
3133 |
|
3134 |
+
// initial time & volume
|
3135 |
+
common.html([durationEl, remaining], api.live ? 'Live' : format(duration));
|
3136 |
|
3137 |
+
// do we need additional space for showing hour
|
3138 |
+
common.toggleClass(root, 'is-long', duration >= 3600);
|
3139 |
+
volumeApi.slide(api.volumeLevel);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3140 |
|
3141 |
+
if (api.engine.engineName === 'flash') timelineApi.disableAnimation(true, true);
|
3142 |
+
else timelineApi.disableAnimation(false);
|
3143 |
+
common.find('.fp-title', ui).forEach(common.removeNode);
|
3144 |
+
if (video.title) {
|
|
|
|
|
|
|
|
|
3145 |
|
3146 |
+
common.prepend(ui, common.createElement('div', {
|
3147 |
+
className: 'fp-message fp-title'
|
3148 |
+
}, video.title));
|
3149 |
}
|
3150 |
+
common.toggleClass(root, 'has-title', !!video.title);
|
3151 |
|
|
|
|
|
3152 |
|
3153 |
+
}).on("unload", function() {
|
3154 |
+
if (!origRatio && !conf.splash) common.css(ratio, "paddingTop", "");
|
3155 |
+
timelineApi.slide(0);
|
3156 |
+
common.addClass(play, 'fp-visible');
|
3157 |
|
3158 |
+
// buffer
|
3159 |
+
}).on("buffer", function() {
|
3160 |
+
var video = api.video,
|
3161 |
+
max = video.buffer / video.duration;
|
3162 |
|
3163 |
+
if (!video.seekable && support.seekable) timelineApi.max(api.conf.live ? Infinity : max);
|
3164 |
+
if (max < 1) common.css(buffer, "width", (max * 100) + "%");
|
3165 |
+
else common.css(buffer, 'width', '100%');
|
3166 |
+
}).on("speed", function(e, api, val) {
|
3167 |
+
if (api.video.time) {
|
3168 |
+
common.text(speedFlash, val + "x");
|
3169 |
+
common.addClass(speedFlash, 'fp-shown');
|
3170 |
+
speedAnimationTimers = speedAnimationTimers.filter(function(to) {
|
3171 |
+
clearTimeout(to);
|
3172 |
+
return false;
|
3173 |
+
});
|
3174 |
+
speedAnimationTimers.push(setTimeout(function() {
|
3175 |
+
common.addClass(speedFlash, 'fp-hilite');
|
3176 |
+
speedAnimationTimers.push(setTimeout(function() {
|
3177 |
+
common.removeClass(speedFlash, 'fp-hilite');
|
3178 |
+
speedAnimationTimers.push(setTimeout(function() {
|
3179 |
+
common.removeClass(speedFlash, 'fp-shown');
|
3180 |
+
}, 300));
|
3181 |
+
}, 1000));
|
3182 |
+
}));
|
3183 |
+
}
|
3184 |
+
|
3185 |
+
}).on("buffered", function() {
|
3186 |
+
common.css(buffer, 'width', '100%');
|
3187 |
+
timelineApi.max(1);
|
3188 |
|
3189 |
+
// progress
|
3190 |
+
}).on("progress seek", function(_e, _api, time) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3191 |
|
3192 |
+
var duration = api.video.duration,
|
3193 |
+
offset = api.video.seekOffset || 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3194 |
|
3195 |
+
time = time || api.video.time;
|
3196 |
+
var percentage = (time - offset) / (duration - offset);
|
3197 |
+
if (!timelineApi.dragging) {
|
3198 |
+
timelineApi.slide(percentage, api.seeking ? 0 : 250);
|
|
|
|
|
|
|
|
|
3199 |
}
|
3200 |
+
common.toggleClass(root, 'is-live-position', duration - time < conf.livePositionOffset);
|
3201 |
+
|
3202 |
+
common.html(elapsed, format(time));
|
3203 |
+
common.html(remaining, format(duration - time, true));
|
3204 |
+
|
3205 |
+
}).on("finish resume seek", function(e) {
|
3206 |
+
common.toggleClass(root, "is-finished", e.type == "finish");
|
3207 |
+
}).on('resume', function() {
|
3208 |
+
common.addClass(play, 'fp-visible');
|
3209 |
+
setTimeout(function() { common.removeClass(play, 'fp-visible'); }, 300);
|
3210 |
+
}).on('pause', function() {
|
3211 |
+
common.addClass(pause, 'fp-visible');
|
3212 |
+
setTimeout(function() { common.removeClass(pause, 'fp-visible'); }, 300);
|
3213 |
+
}).on("stop", function() {
|
3214 |
+
common.html(elapsed, format(0));
|
3215 |
+
timelineApi.slide(0, 100);
|
3216 |
|
3217 |
+
}).on("finish", function() {
|
3218 |
+
common.html(elapsed, format(api.video.duration));
|
3219 |
+
timelineApi.slide(1, 100);
|
3220 |
+
common.removeClass(root, 'is-seeking');
|
3221 |
|
3222 |
+
// misc
|
3223 |
+
}).on("beforeseek", function() {
|
3224 |
+
//TODO FIXME
|
3225 |
+
//progress.stop();
|
3226 |
|
3227 |
+
}).on("volume", function() {
|
3228 |
+
volumeApi.slide(api.volumeLevel);
|
3229 |
|
|
|
|
|
|
|
|
|
3230 |
|
3231 |
+
}).on("disable", function() {
|
3232 |
+
var flag = api.disabled;
|
3233 |
+
timelineApi.disable(flag);
|
3234 |
+
volumeApi.disable(flag);
|
3235 |
+
common.toggleClass(root, 'is-disabled', api.disabled);
|
3236 |
|
3237 |
+
}).on("mute", function(e, api, flag) {
|
3238 |
+
common.toggleClass(root, 'is-muted', flag);
|
3239 |
|
3240 |
+
}).on("error", function(e, api, error) {
|
3241 |
+
common.removeClass(root, 'is-loading');
|
3242 |
+
common.removeClass(root, 'is-seeking');
|
3243 |
+
common.addClass(root, 'is-error');
|
3244 |
+
if (error) {
|
3245 |
+
error.message = conf.errors[error.code];
|
3246 |
+
api.error = true;
|
|
|
|
|
|
|
|
|
|
|
3247 |
|
3248 |
+
var dismiss = api.message((api.engine && api.engine.engineName || 'html5') + ": " + error.message);
|
3249 |
+
//common.find('p', el)[0].innerHTML = error.url || video.url || video.src || conf.errorUrls[error.code];
|
3250 |
+
common.removeClass(root, 'is-mouseover');
|
3251 |
+
api.one('load progress', function() { dismiss(); });
|
|
|
|
|
3252 |
}
|
|
|
|
|
3253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3254 |
|
3255 |
+
// hover
|
3256 |
+
});
|
3257 |
+
//Interaction events
|
3258 |
+
bean.on(root, "mouseenter mouseleave", function(e) {
|
3259 |
+
if (noToggle) return;
|
3260 |
|
3261 |
+
var is_over = e.type == "mouseover",
|
3262 |
+
lastMove;
|
3263 |
|
3264 |
+
// is-mouseover/out
|
3265 |
+
hover(is_over);
|
|
|
|
|
|
|
|
|
|
|
|
|
3266 |
|
3267 |
+
if (is_over) {
|
|
|
|
|
3268 |
|
3269 |
+
var reg = function() {
|
3270 |
+
hover(true);
|
3271 |
+
lastMove = new Date();
|
3272 |
+
};
|
3273 |
+
api.on("pause.x volume.x", reg);
|
3274 |
+
bean.on(root, 'mousemove.x', reg);
|
|
|
|
|
3275 |
|
3276 |
+
hovertimer = setInterval(function() {
|
3277 |
+
if (new Date() - lastMove > conf.mouseoutTimeout) {
|
3278 |
+
hover(false);
|
3279 |
+
lastMove = new Date();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3280 |
}
|
3281 |
+
}, 100);
|
|
|
|
|
|
|
|
|
|
|
|
|
3282 |
|
3283 |
+
} else {
|
3284 |
+
bean.off(root, 'mousemove.x');
|
3285 |
+
api.off("pause.x volume.x");
|
3286 |
+
clearInterval(hovertimer);
|
|
|
|
|
|
|
|
|
3287 |
}
|
3288 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3289 |
|
3290 |
+
// allow dragging over the player edge
|
3291 |
+
});
|
3292 |
+
bean.on(root, "mouseleave", function() {
|
3293 |
+
|
3294 |
+
if (timelineApi.dragging || volumeApi.dragging) {
|
3295 |
+
common.addClass(root, 'is-mouseover');
|
3296 |
+
common.removeClass(root, 'is-mouseout');
|
3297 |
+
}
|
3298 |
+
|
3299 |
+
// click
|
3300 |
+
});
|
3301 |
+
bean.on(root, "click.player", function(e) {
|
3302 |
+
if (api.disabled) return;
|
3303 |
+
if (common.hasClass(e.target, 'fp-ui') || common.hasClass(e.target, 'fp-engine') || e.flash || common.hasParent(e.target, '.fp-play,.fp-pause')) {
|
3304 |
+
if (e.preventDefault) e.preventDefault();
|
3305 |
+
return api.toggle();
|
3306 |
+
}
|
3307 |
+
});
|
3308 |
|
3309 |
+
bean.on(root, 'mousemove', '.fp-timeline', function(ev) {
|
3310 |
+
var x = ev.pageX || ev.clientX,
|
3311 |
+
delta = x - common.offset(timeline).left,
|
3312 |
+
percentage = delta / common.width(timeline),
|
3313 |
+
seconds = (api.rtl ? 1 - percentage : percentage) * api.video.duration;
|
3314 |
+
if (percentage < 0) return;
|
3315 |
+
common.html(timelineTooltip, format(seconds));
|
3316 |
+
var left = (delta - common.width(timelineTooltip) / 2);
|
3317 |
+
if (left < 0) left = 0;
|
3318 |
+
if (left > common.width(timeline) - common.width(timelineTooltip)) left = false;
|
3319 |
+
if (left !== false) common.css(timelineTooltip, {
|
3320 |
+
left: left + 'px',
|
3321 |
+
right: 'auto'
|
3322 |
+
});
|
3323 |
+
else common.css(timelineTooltip, {
|
3324 |
+
left: 'auto',
|
3325 |
+
right: '0px'
|
3326 |
+
});
|
3327 |
|
3328 |
+
});
|
|
|
|
|
3329 |
|
3330 |
+
bean.on(root, 'contextmenu', function(ev) {
|
3331 |
+
var w = window;
|
3332 |
+
if (common.hasClass(root, 'is-flash-disabled')) return;
|
3333 |
+
var menu = common.find('.fp-context-menu', root)[0];
|
3334 |
+
if (!menu) return;
|
3335 |
+
ev.preventDefault();
|
3336 |
+
api.showMenu(menu, {
|
3337 |
+
left: ev.clientX - w.scrollX,
|
3338 |
+
top: ev.clientY - w.scrollY
|
3339 |
+
});
|
3340 |
+
bean.on(root, 'click', '.fp-context-menu', function(ev) {
|
3341 |
+
ev.stopPropagation();
|
3342 |
+
});
|
3343 |
+
});
|
3344 |
+
api.on('flashdisabled', function(_e, _a, showMessage) {
|
3345 |
+
common.addClass(root, 'is-flash-disabled');
|
3346 |
+
var dismiss;
|
3347 |
+
if (showMessage !== false) dismiss = api.message('Seems something is blocking Adobe Flash from running');
|
3348 |
+
api.one('ready progress', function() {
|
3349 |
+
common.removeClass(root, 'is-flash-disabled');
|
3350 |
+
if (dismiss) dismiss();
|
3351 |
+
});
|
3352 |
+
});
|
3353 |
|
3354 |
+
// poster -> background image
|
3355 |
+
if (conf.poster) common.css(root, 'background-image', "url(" + conf.poster + ")");
|
3356 |
|
3357 |
+
var bc = common.css(root, 'background-color'),
|
3358 |
+
has_bg = common.css(root, 'background-image') != "none" || bc && bc != "rgba(0, 0, 0, 0)" && bc != "transparent";
|
|
|
3359 |
|
3360 |
+
// is-poster class
|
3361 |
+
if (has_bg && !conf.splash) {
|
3362 |
+
if (!conf.poster) conf.poster = true;
|
3363 |
+
var initPoster = function() {
|
3364 |
+
common.addClass(root, "is-poster");
|
3365 |
+
common.addClass(play, 'fp-visible');
|
3366 |
+
api.poster = true;
|
3367 |
+
api.one(conf.autoplay ? "progress seek" : "resume seek", function() {
|
3368 |
+
common.removeClass(root, "is-poster");
|
3369 |
+
common.removeClass(play, 'fp-visible');
|
3370 |
+
api.poster = false;
|
3371 |
+
});
|
3372 |
+
}
|
3373 |
+
api.on('stop', function() { initPoster(); });
|
3374 |
+
api.on('ready', function(_ev, _api, video) {
|
3375 |
+
if (video.index || video.autoplay) return; // No poster for playlist items
|
3376 |
+
initPoster();
|
3377 |
});
|
3378 |
+
}
|
3379 |
|
3380 |
+
if (typeof conf.splash === 'string') {
|
3381 |
+
common.css(root, 'background-image', "url('" + conf.splash + "')");
|
3382 |
}
|
3383 |
|
3384 |
+
// default background color if not present
|
3385 |
+
if (!has_bg && api.forcedSplash) {
|
3386 |
+
common.css(root, "background-color", "#555");
|
3387 |
}
|
3388 |
|
3389 |
+
bean.on(root, 'click', '.fp-toggle, .fp-play, .fp-playbtn', function() {
|
3390 |
+
if (api.disabled) return;
|
3391 |
+
api.toggle();
|
3392 |
+
});
|
3393 |
|
3394 |
+
/* controlbar elements */
|
3395 |
+
bean.on(root, 'click', '.fp-volumebtn', function() { api.mute(); }); bean.on(root, 'click', '.fp-fullscreen', function() { api.fullscreen(); });
|
3396 |
+
bean.on(root, 'click', '.fp-unload', function() { api.unload(); });
|
3397 |
|
3398 |
+
bean.on(timeline, 'slide', function(val) {
|
3399 |
+
api.seeking = true;
|
3400 |
+
api.seekTo(val * 10);
|
3401 |
+
});
|
3402 |
|
3403 |
+
bean.on(volumeSlider, 'slide', function(val) {
|
3404 |
+
api.volume(val);
|
3405 |
+
});
|
3406 |
|
3407 |
+
// times
|
3408 |
|
3409 |
+
bean.on(root, 'click', '.fp-duration,.fp-remaining', function() {
|
3410 |
+
if (api.dvr) return api.seekTo(10);
|
3411 |
+
common.toggleClass(root, 'is-inverted');
|
3412 |
+
});
|
3413 |
|
3414 |
+
hover(noToggle);
|
|
|
|
|
|
|
3415 |
|
3416 |
+
api.on('shutdown', function() {
|
3417 |
+
bean.off(timeline);
|
3418 |
+
bean.off(volumeSlider);
|
3419 |
+
});
|
3420 |
|
3421 |
+
});
|
|
|
|
|
3422 |
|
|
|
3423 |
|
3424 |
+
module.exports.format = format;
|
3425 |
|
3426 |
+
}).call(this,_dereq_("buffer").Buffer)
|
3427 |
+
},{"../common":1,"../flowplayer":28,"./ui/bar-slider":25,"./ui/slider":26,"bean":31,"buffer":32}],25:[function(_dereq_,module,exports){
|
3428 |
+
var bean = _dereq_('bean')
|
3429 |
+
, common = _dereq_('../../common');
|
3430 |
|
3431 |
+
function slider(root, opts) {
|
3432 |
+
opts = opts || {};
|
|
|
|
|
|
|
3433 |
|
3434 |
+
var activeClass = opts.activeClass || 'fp-color'
|
3435 |
+
, inactiveClass = opts.inactiveClass || 'fp-grey'
|
3436 |
+
, childSelector = opts.childSelector || 'em'
|
3437 |
+
, rtl = !!opts.rtl
|
3438 |
+
, disabled = false;
|
3439 |
|
3440 |
+
var totalBars = common.find(childSelector, root).length;
|
|
|
3441 |
|
3442 |
+
var api = {
|
3443 |
+
unload: function() {
|
3444 |
+
bean.off(root, '.barslider');
|
3445 |
+
},
|
3446 |
+
slide: function(to, trigger) {
|
3447 |
+
common.find(childSelector, root).forEach(function(bar, idx) {
|
3448 |
+
var active = to > idx/totalBars;
|
3449 |
+
common.toggleClass(bar, activeClass, active);
|
3450 |
+
common.toggleClass(bar, inactiveClass, !active);
|
3451 |
+
});
|
3452 |
+
if (trigger) bean.fire(root, 'slide', [ to ]);
|
3453 |
+
},
|
3454 |
+
disable: function(flag) {
|
3455 |
+
disabled = flag;
|
3456 |
+
}
|
3457 |
+
};
|
3458 |
+
|
3459 |
+
bean.on(root, 'mousedown.sld touchstart.sld', function(ev) {
|
3460 |
+
ev.preventDefault();
|
3461 |
+
if (disabled) return;
|
3462 |
+
api.slide(getMouseValue(ev), true);
|
3463 |
+
|
3464 |
+
bean.on(root, 'mousemove.sld touchmove.sld', function(ev) {
|
3465 |
+
ev.preventDefault();
|
3466 |
+
api.slide(getMouseValue(ev), true);
|
3467 |
+
});
|
3468 |
|
3469 |
+
bean.one(document, 'mouseup.sld touchup.sld', function() {
|
3470 |
+
bean.off(root, 'mousemove.sld touchmove.sld');
|
3471 |
+
});
|
3472 |
+
});
|
3473 |
|
3474 |
+
return api;
|
|
|
3475 |
|
3476 |
+
function getMouseValue(ev) {
|
3477 |
+
var pageX = ev.pageX || ev.clientX
|
3478 |
+
, offset = common.offset(root)
|
3479 |
+
, size = common.width(root);
|
3480 |
|
|
|
|
|
|
|
3481 |
|
3482 |
+
if (!pageX && ev.originalEvent && ev.originalEvent.touches && ev.originalEvent.touches.length) {
|
3483 |
+
pageX = ev.originalEvent.touches[0].pageX;
|
3484 |
+
}
|
3485 |
+
var delta = pageX - offset.left;
|
3486 |
+
delta = Math.max(0, Math.min(size, delta));
|
3487 |
|
3488 |
+
var value = delta / size;
|
3489 |
+
if (rtl) value = 1 - value;
|
3490 |
+
return value;
|
3491 |
+
}
|
3492 |
+
}
|
3493 |
|
|
|
|
|
3494 |
|
3495 |
+
module.exports = slider;
|
|
|
3496 |
|
3497 |
+
},{"../../common":1,"bean":31}],26:[function(_dereq_,module,exports){
|
3498 |
+
'use strict';
|
3499 |
+
// skip IE policies
|
3500 |
+
// document.ondragstart = function () { return false; };
|
3501 |
+
//
|
3502 |
+
var bean = _dereq_('bean'),
|
3503 |
+
common = _dereq_('../../common');
|
3504 |
|
|
|
3505 |
|
3506 |
+
// execute function every <delay> ms
|
3507 |
+
var throttle = function(fn, delay) {
|
3508 |
+
var locked;
|
3509 |
|
3510 |
+
return function () {
|
3511 |
+
if (!locked) {
|
3512 |
+
fn.apply(this, arguments);
|
3513 |
+
locked = 1;
|
3514 |
+
setTimeout(function () { locked = 0; }, delay);
|
3515 |
+
}
|
3516 |
+
};
|
3517 |
+
};
|
3518 |
|
|
|
|
|
3519 |
|
3520 |
+
var slider = function(root, rtl) {
|
|
|
3521 |
|
3522 |
+
var progress = common.lastChild(root),
|
3523 |
+
disabled,
|
3524 |
+
offset,
|
3525 |
+
width,
|
3526 |
+
height,
|
3527 |
+
vertical,
|
3528 |
+
size,
|
3529 |
+
maxValue,
|
3530 |
+
max,
|
3531 |
+
skipAnimation = false,
|
3532 |
|
3533 |
+
/* private */
|
3534 |
+
calc = function() {
|
3535 |
+
offset = common.offset(root);
|
3536 |
+
width = common.width(root);
|
3537 |
+
height = common.height(root);
|
3538 |
|
3539 |
+
/* exit from fullscreen can mess this up.*/
|
3540 |
+
// vertical = height > width;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3541 |
|
3542 |
+
size = vertical ? height : width;
|
3543 |
+
max = toDelta(maxValue);
|
3544 |
+
},
|
3545 |
|
3546 |
+
fire = function(value) {
|
3547 |
+
if (!disabled && value != api.value && (!maxValue || value < maxValue)) {
|
3548 |
+
bean.fire(root, 'slide', [ value ]);
|
3549 |
+
api.value = value;
|
3550 |
+
}
|
3551 |
+
},
|
3552 |
|
3553 |
+
mousemove = function(e) {
|
3554 |
+
var pageX = e.pageX || e.clientX;
|
3555 |
+
if (!pageX && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length) {
|
3556 |
+
pageX = e.originalEvent.touches[0].pageX;
|
3557 |
+
}
|
3558 |
+
var delta = vertical ? e.pageY - offset.top : pageX - offset.left;
|
3559 |
+
delta = Math.max(0, Math.min(max || size, delta));
|
3560 |
+
|
3561 |
+
var value = delta / size;
|
3562 |
+
if (vertical) value = 1 - value;
|
3563 |
+
if (rtl) value = 1 - value;
|
3564 |
+
return move(value, 0, true);
|
3565 |
+
},
|
3566 |
|
3567 |
+
move = function(value, speed) {
|
3568 |
+
if (speed === undefined) { speed = 0; }
|
3569 |
+
if (value > 1) value = 1;
|
3570 |
|
3571 |
+
var to = (Math.round(value * 1000) / 10) + "%";
|
3572 |
|
3573 |
+
if (!maxValue || value <= maxValue) {
|
3574 |
+
if (skipAnimation) {
|
3575 |
+
common.removeClass(progress, 'animated');
|
3576 |
+
} else {
|
3577 |
+
common.addClass(progress, 'animated');
|
3578 |
+
common.css(progress, 'transition-duration', (speed || 0) + 'ms');
|
3579 |
+
}
|
3580 |
+
common.css(progress, 'width', to);
|
3581 |
+
}
|
3582 |
|
3583 |
+
return value;
|
3584 |
+
},
|
3585 |
|
3586 |
+
toDelta = function(value) {
|
3587 |
+
return Math.max(0, Math.min(size, vertical ? (1 - value) * height : value * width));
|
3588 |
+
},
|
3589 |
|
3590 |
+
/* public */
|
3591 |
+
api = {
|
3592 |
|
3593 |
+
max: function(value) {
|
3594 |
+
maxValue = value;
|
3595 |
+
},
|
3596 |
|
3597 |
+
disable: function(flag) {
|
3598 |
+
disabled = flag;
|
3599 |
+
},
|
3600 |
|
3601 |
+
slide: function(value, speed, fireEvent) {
|
3602 |
+
calc();
|
3603 |
+
if (fireEvent) fire(value);
|
3604 |
+
move(value, speed);
|
3605 |
+
},
|
|
|
|
|
3606 |
|
3607 |
+
// Should animation be handled via css
|
3608 |
+
disableAnimation: function(value, alsoCssAnimations) {
|
3609 |
+
skipAnimation = value !== false;
|
3610 |
+
common.toggleClass(root, 'no-animation', !!alsoCssAnimations);
|
3611 |
+
}
|
3612 |
|
3613 |
+
};
|
|
|
|
|
3614 |
|
3615 |
+
calc();
|
|
|
|
|
|
|
3616 |
|
3617 |
+
// bound dragging into document
|
3618 |
+
bean.on(root, 'mousedown.sld touchstart', function(e) {
|
3619 |
+
e.preventDefault();
|
3620 |
|
3621 |
+
if (!disabled) {
|
3622 |
+
// begin --> recalculate. allows dynamic resizing of the slider
|
3623 |
+
var delayedFire = throttle(fire, 100);
|
3624 |
+
calc();
|
3625 |
+
api.dragging = true;
|
3626 |
+
common.addClass(root, 'is-dragging');
|
3627 |
+
fire(mousemove(e));
|
3628 |
+
|
3629 |
+
bean.on(document, 'mousemove.sld touchmove.sld', function(e) {
|
3630 |
+
e.preventDefault();
|
3631 |
+
delayedFire(mousemove(e));
|
3632 |
|
|
|
|
|
|
|
3633 |
});
|
3634 |
+
bean.one(document, 'mouseup touchend', function() {
|
3635 |
+
api.dragging = false;
|
3636 |
+
common.removeClass(root, 'is-dragging');
|
3637 |
+
bean.off(document, 'mousemove.sld touchmove.sld');
|
3638 |
+
});
|
3639 |
|
3640 |
+
}
|
3641 |
|
3642 |
+
});
|
3643 |
+
return api;
|
3644 |
+
};
|
3645 |
|
3646 |
+
module.exports = slider;
|
|
|
|
|
|
|
3647 |
|
3648 |
+
},{"../../common":1,"bean":31}],27:[function(_dereq_,module,exports){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3649 |
|
|
|
3650 |
|
3651 |
+
var clipboard = module.exports = function(text, successCallback, errorCallback) {
|
3652 |
+
try {
|
3653 |
+
doCopy(text);
|
3654 |
+
successCallback();
|
3655 |
+
} catch (e) {
|
3656 |
+
errorCallback(e);
|
3657 |
+
}
|
3658 |
+
};
|
3659 |
|
3660 |
+
function doCopy(text) {
|
3661 |
+
var textArea = document.createElement('textarea');
|
3662 |
+
textArea.value = text;
|
3663 |
+
textArea.style.opacity = 0;
|
3664 |
+
textArea.style.position = 'absolute';
|
3665 |
+
document.body.appendChild(textArea);
|
3666 |
+
textArea.select();
|
3667 |
+
var success = document.execCommand('copy');
|
3668 |
+
document.body.removeChild(textArea);
|
3669 |
+
if (!success) throw new Error('Unsuccessfull');
|
3670 |
+
}
|
3671 |
|
3672 |
+
},{}],28:[function(_dereq_,module,exports){
|
3673 |
+
'use strict';
|
3674 |
+
var extend = _dereq_('extend-object'),
|
3675 |
+
isFunction = _dereq_('is-function'),
|
3676 |
+
bean = _dereq_('bean'),
|
3677 |
+
slider = _dereq_('./ext/ui/slider'),
|
3678 |
+
barSlider = _dereq_('./ext/ui/bar-slider'),
|
3679 |
+
common = _dereq_('./common'),
|
3680 |
+
events = _dereq_('./ext/events');
|
3681 |
|
3682 |
+
var instances = [],
|
3683 |
+
extensions = [];
|
3684 |
|
|
|
3685 |
|
3686 |
+
var oldHandler = window.onbeforeunload;
|
3687 |
+
window.onbeforeunload = function(ev) {
|
3688 |
+
instances.forEach(function(api) {
|
3689 |
+
if (api.conf.splash) {
|
3690 |
+
api.unload();
|
3691 |
+
} else {
|
3692 |
+
api.bind("error", function () {
|
3693 |
+
common.find('.flowplayer.is-error .fp-message').forEach(common.removeNode);
|
3694 |
+
});
|
3695 |
+
}
|
3696 |
+
});
|
3697 |
+
if (oldHandler) return oldHandler(ev);
|
3698 |
+
};
|
3699 |
|
3700 |
+
var supportLocalStorage = false;
|
3701 |
+
try {
|
3702 |
+
if (typeof window.localStorage == "object") {
|
3703 |
+
window.localStorage.flowplayerTestStorage = "test";
|
3704 |
+
supportLocalStorage = true;
|
3705 |
+
}
|
3706 |
+
} catch (ignored) {}
|
3707 |
|
3708 |
+
var isSafari = /Safari/.exec(navigator.userAgent) && !/Chrome/.exec(navigator.userAgent),
|
3709 |
+
m = /(\d+\.\d+) Safari/.exec(navigator.userAgent),
|
3710 |
+
safariVersion = m ? Number(m[1]) : 100;
|
3711 |
|
3712 |
+
/* flowplayer() */
|
3713 |
+
var flowplayer = module.exports = function(fn, opts, callback) {
|
3714 |
+
if (isFunction(fn)) return extensions.push(fn);
|
3715 |
+
if (typeof fn == 'number' || typeof fn === 'undefined') return instances[fn || 0];
|
3716 |
+
if (fn.nodeType) { // Is an element
|
3717 |
+
if (fn.getAttribute('data-flowplayer-instance-id') !== null) { // Already flowplayer instance
|
3718 |
+
return instances[fn.getAttribute('data-flowplayer-instance-id')];
|
3719 |
+
}
|
3720 |
+
if (!opts) return; // Can't initialize without data
|
3721 |
+
return initializePlayer(fn, opts, callback);
|
3722 |
+
}
|
3723 |
+
if (fn.jquery) return flowplayer(fn[0], opts, callback);
|
3724 |
+
if (typeof fn === 'string') {
|
3725 |
+
var el = common.find(fn)[0];
|
3726 |
+
return el && flowplayer(el, opts, callback);
|
3727 |
+
}
|
3728 |
+
};
|
3729 |
|
3730 |
+
extend(flowplayer, {
|
3731 |
|
3732 |
+
version: '7.0.2',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3733 |
|
3734 |
+
engines: [],
|
3735 |
|
3736 |
+
extensions: [],
|
3737 |
|
3738 |
+
conf: {},
|
|
|
|
|
|
|
3739 |
|
3740 |
+
set: function(key, value) {
|
3741 |
+
if (typeof key === 'string') flowplayer.conf[key] = value;
|
3742 |
+
else extend(flowplayer.conf, key);
|
3743 |
+
},
|
3744 |
|
3745 |
+
registerExtension: function(js, css) {
|
3746 |
+
flowplayer.extensions.push([js, css]);
|
3747 |
+
},
|
3748 |
|
3749 |
+
support: {},
|
3750 |
|
3751 |
+
defaults: {
|
|
|
3752 |
|
3753 |
+
debug: supportLocalStorage ? !!localStorage.flowplayerDebug : false,
|
|
|
|
|
|
|
3754 |
|
3755 |
+
// true = forced playback
|
3756 |
+
disabled: false,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3757 |
|
3758 |
+
fullscreen: window == window.top,
|
|
|
|
|
|
|
|
|
|
|
3759 |
|
3760 |
+
// keyboard shortcuts
|
3761 |
+
keyboard: true,
|
3762 |
|
3763 |
+
// default aspect ratio
|
3764 |
+
ratio: 9 / 16,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3765 |
|
3766 |
+
adaptiveRatio: false,
|
|
|
|
|
|
|
3767 |
|
3768 |
+
rtmp: 0,
|
|
|
|
|
3769 |
|
3770 |
+
proxy: 'best',
|
|
|
|
|
3771 |
|
3772 |
+
hlsQualities: true,
|
3773 |
|
3774 |
+
splash: false,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3775 |
|
3776 |
+
live: false,
|
3777 |
+
livePositionOffset: 120,
|
3778 |
|
3779 |
+
swf: "//releases.flowplayer.org/7.0.2/flowplayer.swf",
|
3780 |
+
swfHls: "//releases.flowplayer.org/7.0.2/flowplayerhls.swf",
|
3781 |
|
3782 |
+
speeds: [0.25, 0.5, 1, 1.5, 2],
|
|
|
|
|
|
|
|
|
3783 |
|
3784 |
+
tooltip: true,
|
3785 |
|
3786 |
+
mouseoutTimeout: 5000,
|
3787 |
|
3788 |
+
// initial volume level
|
3789 |
+
volume: !supportLocalStorage ? 1 : localStorage.muted == "true" ? 0 : !isNaN(localStorage.volume) ? localStorage.volume || 1 : 1,
|
|
|
|
|
|
|
|
|
|
|
3790 |
|
3791 |
+
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#error-codes
|
3792 |
+
errors: [
|
3793 |
|
3794 |
+
// video exceptions
|
3795 |
+
'',
|
3796 |
+
'Video loading aborted',
|
3797 |
+
'Network error',
|
3798 |
+
'Video not properly encoded',
|
3799 |
+
'Video file not found',
|
3800 |
|
3801 |
+
// player exceptions
|
3802 |
+
'Unsupported video',
|
3803 |
+
'Skin not found',
|
3804 |
+
'SWF file not found',
|
3805 |
+
'Subtitles not found',
|
3806 |
+
'Invalid RTMP URL',
|
3807 |
+
'Unsupported video format. Try installing Adobe Flash.'
|
3808 |
+
],
|
3809 |
+
errorUrls: ['','','','','','','','','','',
|
3810 |
+
'http://get.adobe.com/flashplayer/'
|
3811 |
+
],
|
3812 |
+
playlist: [],
|
3813 |
|
3814 |
+
hlsFix: isSafari && safariVersion < 8
|
3815 |
|
3816 |
+
},
|
3817 |
+
// Expose utilities for plugins
|
3818 |
+
bean: bean,
|
3819 |
+
common: common,
|
3820 |
+
slider: slider,
|
3821 |
+
barSlider: barSlider,
|
3822 |
+
extend: extend
|
3823 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3824 |
|
|
|
3825 |
|
3826 |
+
});
|
|
|
|
|
|
|
|
|
3827 |
|
3828 |
+
// keep track of players
|
3829 |
+
var playerCount = 0;
|
3830 |
+
|
3831 |
+
var URLResolver = _dereq_('./ext/resolve');
|
3832 |
+
|
3833 |
+
|
3834 |
+
|
3835 |
+
if (typeof window.jQuery !== 'undefined') {
|
3836 |
+
var $ = window.jQuery;
|
3837 |
+
// auto-install (any video tag with parent .flowplayer)
|
3838 |
+
$(function() {
|
3839 |
+
if (typeof $.fn.flowplayer == 'function') {
|
3840 |
+
$('.flowplayer:has(video,script[type="application/json"])').flowplayer();
|
3841 |
+
}
|
3842 |
+
});
|
3843 |
+
|
3844 |
+
// jQuery plugin
|
3845 |
+
var videoTagConfig = function(videoTag) {
|
3846 |
+
if (!videoTag.length) return {};
|
3847 |
+
var clip = videoTag.data() || {}, conf = {};
|
3848 |
+
$.each(['autoplay', 'loop', 'preload', 'poster'], function(i, key) {
|
3849 |
+
var val = videoTag.attr(key);
|
3850 |
+
if (val !== undefined && ['autoplay', 'poster'].indexOf(key) !== -1) conf[key] = val ? val : true;
|
3851 |
+
else if (val !== undefined) clip[key] = val ? val : true;
|
3852 |
+
});
|
3853 |
+
clip.subtitles = videoTag.find('track').map(function() {
|
3854 |
+
var tr = $(this);
|
3855 |
+
return {
|
3856 |
+
src: tr.attr('src'),
|
3857 |
+
kind: tr.attr('kind'),
|
3858 |
+
label: tr.attr('label'),
|
3859 |
+
srclang: tr.attr('srclang'),
|
3860 |
+
'default': tr.prop('default')
|
3861 |
+
};
|
3862 |
+
}).get();
|
3863 |
+
|
3864 |
+
clip.sources = (new URLResolver()).sourcesFromVideoTag(videoTag, $);
|
3865 |
+
return extend(conf, {clip: clip});
|
3866 |
+
};
|
3867 |
+
$.fn.flowplayer = function(opts, callback) {
|
3868 |
+
return this.each(function() {
|
3869 |
+
if (typeof opts == 'string') opts = { swf: opts };
|
3870 |
+
if (isFunction(opts)) { callback = opts; opts = {}; }
|
3871 |
+
var root = $(this),
|
3872 |
+
scriptConf = root.find('script[type="application/json"]'),
|
3873 |
+
confObject = scriptConf.length ? JSON.parse(scriptConf.text()) : videoTagConfig(root.find('video')),
|
3874 |
+
conf = $.extend({}, opts || {}, confObject, root.data());
|
3875 |
+
var api = initializePlayer(this, conf, callback);
|
3876 |
+
events.EVENTS.forEach(function(evName) {
|
3877 |
+
api.on(evName + '.jquery', function(ev) {
|
3878 |
+
root.trigger.call(root, ev.type, ev.detail && ev.detail.args);
|
3879 |
+
});
|
3880 |
});
|
3881 |
+
root.data('flowplayer', api);
|
3882 |
+
});
|
3883 |
+
};
|
3884 |
+
}
|
3885 |
|
3886 |
+
function initializePlayer(element, opts, callback) {
|
3887 |
+
if (opts && opts.embed) opts.embed = extend({}, flowplayer.defaults.embed, opts.embed);
|
|
|
|
|
3888 |
|
3889 |
+
var root = element,
|
3890 |
+
conf = extend({}, flowplayer.defaults, flowplayer.conf, opts),
|
3891 |
+
storage = {},
|
3892 |
+
lastSeekPosition,
|
3893 |
+
engine,
|
3894 |
+
urlResolver = new URLResolver();
|
3895 |
+
|
3896 |
+
common.addClass(root, 'is-loading');
|
3897 |
+
common.toggleClass(root, 'no-flex', !flowplayer.support.flex);
|
3898 |
+
common.toggleClass(root, 'no-svg', !flowplayer.support.svg);
|
3899 |
+
try {
|
3900 |
+
storage = supportLocalStorage ? window.localStorage : storage;
|
3901 |
+
} catch(e) {}
|
3902 |
|
3903 |
+
if (conf.aspectRatio && typeof conf.aspectRatio === 'string') {
|
3904 |
+
var parts = conf.aspectRatio.split(/[:\/]/);
|
3905 |
+
conf.ratio = parts[1] / parts[0];
|
|
|
|
|
|
|
3906 |
}
|
3907 |
|
3908 |
+
var isRTL = (root.currentStyle && root.currentStyle.direction === 'rtl') ||
|
3909 |
+
(window.getComputedStyle && window.getComputedStyle(root, null) !== null && window.getComputedStyle(root, null).getPropertyValue('direction') === 'rtl');
|
|
|
3910 |
|
3911 |
+
if (isRTL) common.addClass(root, 'is-rtl');
|
3912 |
|
3913 |
+
/*** API ***/
|
3914 |
+
var api = {
|
|
|
3915 |
|
3916 |
+
// properties
|
3917 |
+
conf: conf,
|
3918 |
+
currentSpeed: 1,
|
3919 |
+
volumeLevel: conf.muted ? 0 : typeof conf.volume === "undefined" ? storage.volume * 1 : conf.volume,
|
3920 |
+
video: {},
|
3921 |
|
3922 |
+
// states
|
3923 |
+
disabled: false,
|
3924 |
+
finished: false,
|
3925 |
+
loading: false,
|
3926 |
+
muted: storage.muted == "true" || conf.muted,
|
3927 |
+
paused: false,
|
3928 |
+
playing: false,
|
3929 |
+
ready: false,
|
3930 |
+
splash: false,
|
3931 |
+
rtl: isRTL,
|
3932 |
+
|
3933 |
+
// methods
|
3934 |
+
//
|
3935 |
+
hijack: function(hijack) {
|
3936 |
+
try {
|
3937 |
+
api.engine.suspendEngine();
|
3938 |
+
} catch (e) { /* */ }
|
3939 |
+
api.hijacked = hijack;
|
3940 |
+
},
|
3941 |
+
release: function() {
|
3942 |
+
try {
|
3943 |
+
api.engine.resumeEngine();
|
3944 |
+
} catch (e) { /* */ }
|
3945 |
+
api.hijacked = false;
|
3946 |
+
},
|
3947 |
+
load: function(video, callback) {
|
3948 |
+
|
3949 |
+
if (api.error || api.loading) return;
|
3950 |
+
api.video = {};
|
3951 |
|
3952 |
+
api.finished = false;
|
3953 |
|
3954 |
+
video = video || conf.clip;
|
3955 |
|
3956 |
+
// resolve URL
|
3957 |
+
video = extend({}, urlResolver.resolve(video, conf.clip.sources));
|
3958 |
+
if (api.playing || api.engine) video.autoplay = true;
|
3959 |
+
var engineImpl = selectEngine(video);
|
3960 |
+
if (!engineImpl) return setTimeout(function() { api.trigger("error", [api, { code: flowplayer.support.flashVideo ? 5 : 10 }]); }) && api;
|
3961 |
+
if (!engineImpl.engineName) throw new Error('engineName property of factory should be exposed');
|
3962 |
+
if (!api.engine || engineImpl.engineName !== api.engine.engineName) {
|
3963 |
+
api.ready = false;
|
3964 |
+
if (api.engine) {
|
3965 |
+
api.engine.unload();
|
3966 |
+
api.conf.autoplay = true;
|
3967 |
+
}
|
3968 |
+
engine = api.engine = engineImpl(api, root);
|
3969 |
+
api.one('ready', function() {
|
3970 |
+
setTimeout(function() {
|
3971 |
+
if (api.muted) api.mute(true, true);
|
3972 |
+
else engine.volume(api.volumeLevel);
|
3973 |
+
});
|
3974 |
+
});
|
3975 |
+
}
|
3976 |
|
3977 |
+
extend(video, engine.pick(video.sources.filter(function(source) { // Filter out sources explicitely configured for some other engine
|
3978 |
+
if (!source.engine) return true;
|
3979 |
+
return source.engine === engine.engineName;
|
3980 |
+
})));
|
3981 |
|
3982 |
+
if (video.src) {
|
3983 |
+
var e = api.trigger('load', [api, video, engine], true);
|
3984 |
+
if (!e.defaultPrevented) {
|
3985 |
+
engine.load(video);
|
3986 |
|
3987 |
+
// callback
|
3988 |
+
if (isFunction(video)) callback = video;
|
3989 |
+
if (callback) api.one("ready", callback);
|
3990 |
+
} else {
|
3991 |
+
api.loading = false;
|
3992 |
+
}
|
3993 |
+
}
|
3994 |
|
3995 |
+
return api;
|
3996 |
+
},
|
3997 |
|
3998 |
+
pause: function(fn) {
|
3999 |
+
if (api.hijacked) return api.hijacked.pause(fn) | api;
|
4000 |
|
4001 |
+
if (api.ready && !api.seeking && !api.loading) {
|
4002 |
+
engine.pause();
|
4003 |
+
api.one("pause", fn);
|
4004 |
+
}
|
4005 |
+
return api;
|
4006 |
+
},
|
4007 |
|
4008 |
+
resume: function() {
|
4009 |
+
var ev = api.trigger('beforeresume', [api], true);
|
4010 |
+
if (ev.defaultPrevented) return;
|
4011 |
+
if (api.hijacked) return api.hijacked.resume() | api;
|
4012 |
|
4013 |
+
if (api.ready && api.paused) {
|
4014 |
+
engine.resume();
|
|
|
|
|
|
|
4015 |
|
4016 |
+
// Firefox (+others?) does not fire "resume" after finish
|
4017 |
+
if (api.finished) {
|
4018 |
+
api.trigger("resume", [api]);
|
4019 |
+
api.finished = false;
|
4020 |
+
}
|
4021 |
+
}
|
4022 |
|
4023 |
+
return api;
|
4024 |
+
},
|
4025 |
|
4026 |
+
toggle: function() {
|
4027 |
+
return api.ready ? api.paused ? api.resume() : api.pause() : api.load();
|
4028 |
+
},
|
4029 |
+
|
4030 |
+
/*
|
4031 |
+
seek(1.4) -> 1.4s time
|
4032 |
+
seek(true) -> 10% forward
|
4033 |
+
seek(false) -> 10% backward
|
4034 |
+
*/
|
4035 |
+
seek: function(time, callback) {
|
4036 |
+
if (typeof time == "boolean") {
|
4037 |
+
var delta = api.video.duration * 0.1;
|
4038 |
+
time = api.video.time + (time ? delta : -delta);
|
4039 |
+
time = Math.min(Math.max(time, 0), api.video.duration - 0.1);
|
4040 |
+
}
|
4041 |
+
if (api.hijacked) return api.hijacked.seek(time, callback) | api;
|
4042 |
+
if (api.ready) {
|
4043 |
+
lastSeekPosition = time;
|
4044 |
+
var ev = api.trigger('beforeseek', [api, time], true);
|
4045 |
+
if (!ev.defaultPrevented) {
|
4046 |
+
engine.seek(time);
|
4047 |
+
if (isFunction(callback)) api.one("seek", callback);
|
4048 |
+
} else {
|
4049 |
+
api.seeking = false;
|
4050 |
+
common.toggleClass(root, 'is-seeking', api.seeking); // remove loading indicator
|
4051 |
+
}
|
4052 |
+
}
|
4053 |
+
return api;
|
4054 |
+
},
|
4055 |
+
|
4056 |
+
/*
|
4057 |
+
seekTo(1) -> 10%
|
4058 |
+
seekTo(2) -> 20%
|
4059 |
+
seekTo(3) -> 30%
|
4060 |
+
...
|
4061 |
+
seekTo() -> last position
|
4062 |
+
*/
|
4063 |
+
seekTo: function(position, fn) {
|
4064 |
+
if (position === undefined) return api.seek(lastSeekPosition, fn);
|
4065 |
+
if (api.video.seekOffset !== undefined) { // Live stream
|
4066 |
+
return api.seek(api.video.seekOffset + (api.video.duration - api.video.seekOffset) * 0.1 * position, fn);
|
4067 |
+
}
|
4068 |
+
return api.seek(api.video.duration * 0.1 * position, fn);
|
4069 |
+
},
|
4070 |
|
4071 |
+
mute: function(flag, skipStore) {
|
4072 |
+
if (flag === undefined) flag = !api.muted;
|
4073 |
+
if (!skipStore) {
|
4074 |
+
storage.muted = api.muted = flag;
|
4075 |
+
storage.volume = !isNaN(storage.volume) ? storage.volume : conf.volume; // make sure storage has volume
|
4076 |
+
}
|
4077 |
+
api.volume(flag ? 0 : storage.volume, true);
|
4078 |
+
api.trigger("mute", [api, flag]);
|
4079 |
+
return api;
|
4080 |
+
},
|
4081 |
+
|
4082 |
+
volume: function(level, skipStore) {
|
4083 |
+
if (api.ready) {
|
4084 |
+
level = Math.min(Math.max(level, 0), 1);
|
4085 |
+
if (!skipStore) storage.volume = level;
|
4086 |
+
engine.volume(level);
|
4087 |
+
}
|
4088 |
+
|
4089 |
+
return api;
|
4090 |
+
},
|
4091 |
+
|
4092 |
+
speed: function(val, callback) {
|
4093 |
+
|
4094 |
+
if (api.ready) {
|
4095 |
+
|
4096 |
+
// increase / decrease
|
4097 |
+
if (typeof val == "boolean") {
|
4098 |
+
val = conf.speeds[conf.speeds.indexOf(api.currentSpeed) + (val ? 1 : -1)] || api.currentSpeed;
|
4099 |
+
}
|
4100 |
+
|
4101 |
+
engine.speed(val);
|
4102 |
+
if (callback) root.one("speed", callback);
|
4103 |
+
}
|
4104 |
+
|
4105 |
+
return api;
|
4106 |
+
},
|
4107 |
+
|
4108 |
+
|
4109 |
+
stop: function() {
|
4110 |
+
if (api.ready) {
|
4111 |
+
api.pause();
|
4112 |
+
api.seek(0, function() {
|
4113 |
+
api.trigger("stop", [api]);
|
4114 |
+
});
|
4115 |
+
}
|
4116 |
+
return api;
|
4117 |
+
},
|
4118 |
+
|
4119 |
+
unload: function() {
|
4120 |
+
|
4121 |
+
if (conf.splash) {
|
4122 |
+
api.trigger("unload", [api]);
|
4123 |
+
if (engine) {
|
4124 |
+
engine.unload();
|
4125 |
+
api.engine = engine = 0;
|
4126 |
+
}
|
4127 |
+
} else {
|
4128 |
+
api.stop();
|
4129 |
+
}
|
4130 |
+
return api;
|
4131 |
+
},
|
4132 |
+
|
4133 |
+
shutdown: function() {
|
4134 |
+
api.unload();
|
4135 |
+
api.trigger('shutdown', [api]);
|
4136 |
+
bean.off(root);
|
4137 |
+
delete instances[root.getAttribute('data-flowplayer-instance-id')];
|
4138 |
+
root.removeAttribute('data-flowplayer-instance-id');
|
4139 |
+
},
|
4140 |
+
|
4141 |
+
disable: function(flag) {
|
4142 |
+
if (flag === undefined) flag = !api.disabled;
|
4143 |
+
|
4144 |
+
if (flag != api.disabled) {
|
4145 |
+
api.disabled = flag;
|
4146 |
+
api.trigger("disable", flag);
|
4147 |
+
}
|
4148 |
+
return api;
|
4149 |
+
},
|
4150 |
+
|
4151 |
+
registerExtension: function(jsUrls, cssUrls) {
|
4152 |
+
jsUrls = jsUrls || [];
|
4153 |
+
cssUrls = cssUrls || [];
|
4154 |
+
if (typeof jsUrls === 'string') jsUrls = [jsUrls];
|
4155 |
+
if (typeof cssUrls === 'string') cssUrls = [cssUrls];
|
4156 |
+
jsUrls.forEach(function(url) { api.extensions.js.push(url); });
|
4157 |
+
cssUrls.forEach(function(url) { api.extensions.css.push(url); });
|
4158 |
+
}
|
4159 |
+
|
4160 |
+
};
|
4161 |
+
|
4162 |
+
api.conf = extend(api.conf, conf);
|
4163 |
+
api.extensions = { js: [], css: [] };
|
4164 |
+
flowplayer.extensions.forEach(function(i) {
|
4165 |
+
api.registerExtension(i[0], i[1]);
|
4166 |
+
});
|
4167 |
+
/* event binding / unbinding */
|
4168 |
+
events(api);
|
4169 |
+
|
4170 |
+
var selectEngine = function(clip) {
|
4171 |
+
var engine;
|
4172 |
+
var engines = flowplayer.engines;
|
4173 |
+
if (conf.engine) {
|
4174 |
+
var eng = engines.filter(function(e) { return e.engineName === conf.engine; })[0];
|
4175 |
+
if (eng && clip.sources.some(function(source) {
|
4176 |
+
if (source.engine && source.engine !== eng.engineName) return false;
|
4177 |
+
return eng.canPlay(source.type, api.conf);
|
4178 |
+
})) return eng;
|
4179 |
+
}
|
4180 |
+
if (conf.enginePreference) engines = flowplayer.engines.filter(function(one) { return conf.enginePreference.indexOf(one.engineName) > -1; }).sort(function(a, b) {
|
4181 |
+
return conf.enginePreference.indexOf(a.engineName) - conf.enginePreference.indexOf(b.engineName);
|
4182 |
+
});
|
4183 |
+
clip.sources.some(function(source) {
|
4184 |
+
var eng = engines.filter(function(engine) {
|
4185 |
+
if (source.engine && source.engine !== engine.engineName) return false;
|
4186 |
+
return engine.canPlay(source.type, api.conf);
|
4187 |
+
}).shift();
|
4188 |
+
if (eng) engine = eng;
|
4189 |
+
return !!eng;
|
4190 |
+
});
|
4191 |
+
return engine;
|
4192 |
+
};
|
4193 |
+
|
4194 |
+
/*** Behaviour ***/
|
4195 |
+
if (!root.getAttribute('data-flowplayer-instance-id')) { // Only bind once
|
4196 |
+
root.setAttribute('data-flowplayer-instance-id', playerCount++);
|
4197 |
+
|
4198 |
+
|
4199 |
+
api.on('boot', function() {
|
4200 |
+
|
4201 |
+
// splash
|
4202 |
+
if (conf.splash || common.hasClass(root, "is-splash") || !flowplayer.support.firstframe) {
|
4203 |
+
api.forcedSplash = !conf.splash && !common.hasClass(root, "is-splash");
|
4204 |
+
api.splash = conf.autoplay = true;
|
4205 |
+
if (!conf.splash) conf.splash = true;
|
4206 |
+
common.addClass(root, "is-splash");
|
4207 |
+
}
|
4208 |
+
|
4209 |
+
if (conf.splash) common.find('video', root).forEach(common.removeNode);
|
4210 |
+
|
4211 |
+
if (conf.dvr || conf.live || common.hasClass(root, 'is-live')) {
|
4212 |
+
api.live = conf.live = true;
|
4213 |
+
api.dvr = conf.dvr = !!conf.dvr || common.hasClass(root, 'is-dvr');
|
4214 |
+
common.addClass(root, 'is-live');
|
4215 |
+
common.toggleClass(root, 'is-dvr', api.dvr);
|
4216 |
+
}
|
4217 |
+
|
4218 |
+
// extensions
|
4219 |
+
extensions.forEach(function(e) {
|
4220 |
+
e(api, root);
|
4221 |
+
});
|
4222 |
+
|
4223 |
+
// instances
|
4224 |
+
instances.push(api);
|
4225 |
+
|
4226 |
+
// start
|
4227 |
+
if (conf.splash) api.unload(); else api.load();
|
4228 |
+
|
4229 |
+
// disabled
|
4230 |
+
if (conf.disabled) api.disable();
|
4231 |
+
|
4232 |
+
// initial callback
|
4233 |
+
api.one("ready", callback);
|
4234 |
+
|
4235 |
+
|
4236 |
+
}).on("load", function(e, api, video) {
|
4237 |
+
|
4238 |
+
// unload others
|
4239 |
+
if (conf.splash) {
|
4240 |
+
common.find('.flowplayer.is-ready,.flowplayer.is-loading').forEach(function(el) {
|
4241 |
+
var playerId = el.getAttribute('data-flowplayer-instance-id');
|
4242 |
+
if (playerId === root.getAttribute('data-flowplayer-instance-id')) return;
|
4243 |
+
var a = instances[Number(playerId)];
|
4244 |
+
if (a && a.conf.splash) a.unload();
|
4245 |
+
});
|
4246 |
+
|
4247 |
+
}
|
4248 |
+
|
4249 |
+
// loading
|
4250 |
+
common.addClass(root, "is-loading");
|
4251 |
+
api.loading = true;
|
4252 |
+
|
4253 |
+
if (typeof video.live !== 'undefined' || typeof video.dvr !== 'undefined') {
|
4254 |
+
common.toggleClass(root, 'is-live', video.dvr || video.live);
|
4255 |
+
common.toggleClass(root, 'is-dvr', !!video.dvr);
|
4256 |
+
api.live = video.dvr || video.live;
|
4257 |
+
api.dvr = !!video.dvr;
|
4258 |
+
}
|
4259 |
+
|
4260 |
+
|
4261 |
+
}).on("ready", function(e, api, video) {
|
4262 |
+
video.time = 0;
|
4263 |
+
api.video = video;
|
4264 |
+
|
4265 |
+
common.removeClass(root, "is-loading");
|
4266 |
+
api.loading = false;
|
4267 |
+
|
4268 |
+
// saved state
|
4269 |
+
if (api.muted) api.mute(true, true);
|
4270 |
+
else api.volume(api.volumeLevel);
|
4271 |
+
|
4272 |
+
// see https://github.com/flowplayer/flowplayer/issues/479
|
4273 |
+
|
4274 |
+
var hlsFix = api.conf.hlsFix && /mpegurl/i.exec(video.type);
|
4275 |
+
common.toggleClass(root, 'hls-fix', !!hlsFix);
|
4276 |
+
|
4277 |
+
}).on("unload", function() {
|
4278 |
+
common.removeClass(root, "is-loading");
|
4279 |
+
api.loading = false;
|
4280 |
+
|
4281 |
+
|
4282 |
+
}).on("ready unload", function(e) {
|
4283 |
+
var is_ready = e.type == "ready";
|
4284 |
+
common.toggleClass(root, 'is-splash', !is_ready);
|
4285 |
+
common.toggleClass(root, 'is-ready', is_ready);
|
4286 |
+
api.ready = is_ready;
|
4287 |
+
api.splash = !is_ready;
|
4288 |
+
|
4289 |
+
|
4290 |
+
}).on("progress", function(e, api, time) {
|
4291 |
+
api.video.time = time;
|
4292 |
+
}).on('buffer', function(e, api, buffer) {
|
4293 |
+
api.video.buffer = buffer;
|
4294 |
+
}).on("speed", function(e, api, val) {
|
4295 |
+
api.currentSpeed = val;
|
4296 |
+
|
4297 |
+
}).on("volume", function(e, api, level) {
|
4298 |
+
api.volumeLevel = Math.round(level * 100) / 100;
|
4299 |
+
if (!api.muted) storage.volume = level;
|
4300 |
+
else if (level) api.mute(false);
|
4301 |
+
|
4302 |
+
|
4303 |
+
}).on("beforeseek seek", function(e) {
|
4304 |
+
api.seeking = e.type == "beforeseek";
|
4305 |
+
common.toggleClass(root, 'is-seeking', api.seeking);
|
4306 |
+
|
4307 |
+
}).on("ready pause resume unload finish stop", function(e) {
|
4308 |
+
|
4309 |
+
// PAUSED: pause / finish
|
4310 |
+
api.paused = /pause|finish|unload|stop/.test(e.type);
|
4311 |
+
api.paused = api.paused || e.type === 'ready' && !conf.autoplay && !api.playing;
|
4312 |
+
|
4313 |
+
// the opposite
|
4314 |
+
api.playing = !api.paused;
|
4315 |
+
|
4316 |
+
// CSS classes
|
4317 |
+
common.toggleClass(root, 'is-paused', api.paused);
|
4318 |
+
common.toggleClass(root, 'is-playing', api.playing);
|
4319 |
+
|
4320 |
+
// sanity check
|
4321 |
+
if (!api.load.ed) api.pause();
|
4322 |
+
|
4323 |
+
}).on("finish", function() {
|
4324 |
+
api.finished = true;
|
4325 |
+
|
4326 |
+
}).on("error", function() {
|
4327 |
+
});
|
4328 |
+
}
|
4329 |
+
|
4330 |
+
// boot
|
4331 |
+
api.trigger('boot', [api, root]);
|
4332 |
+
return api;
|
4333 |
+
}
|
4334 |
+
|
4335 |
+
},{"./common":1,"./ext/events":10,"./ext/resolve":19,"./ext/ui/bar-slider":25,"./ext/ui/slider":26,"bean":31,"extend-object":36,"is-function":39}],29:[function(_dereq_,module,exports){
|
4336 |
+
/* eslint-disable no-unused-vars */
|
4337 |
+
|
4338 |
+
//Flowplayer with extensions
|
4339 |
+
|
4340 |
+
_dereq_('es5-shim');
|
4341 |
+
|
4342 |
+
var flowplayer = module.exports = _dereq_('./flowplayer');
|
4343 |
+
//
|
4344 |
+
|
4345 |
+
//Support needed before engines
|
4346 |
+
_dereq_('./ext/support');
|
4347 |
+
|
4348 |
+
//Engines
|
4349 |
+
_dereq_('./engine/embed');
|
4350 |
+
_dereq_('./engine/html5');
|
4351 |
+
_dereq_('./engine/flash');
|
4352 |
+
|
4353 |
+
//Extensions
|
4354 |
+
//require('./ext/slider'); //TODO enable
|
4355 |
+
_dereq_('./ext/ui');
|
4356 |
+
_dereq_('./ext/message');
|
4357 |
+
_dereq_('./ext/keyboard');
|
4358 |
+
_dereq_('./ext/playlist');
|
4359 |
+
_dereq_('./ext/cuepoint');
|
4360 |
+
_dereq_('./ext/subtitle');
|
4361 |
+
_dereq_('./ext/analytics');
|
4362 |
+
_dereq_('./ext/share');
|
4363 |
+
_dereq_('./ext/facebook');
|
4364 |
+
_dereq_('./ext/twitter');
|
4365 |
+
_dereq_('./ext/embed');
|
4366 |
+
_dereq_('./ext/airplay');
|
4367 |
+
_dereq_('./ext/chromecast');
|
4368 |
+
_dereq_('./ext/qsel');
|
4369 |
+
_dereq_('./ext/menu');
|
4370 |
+
//Have to add fullscreen last
|
4371 |
+
_dereq_('./ext/fullscreen');
|
4372 |
+
|
4373 |
+
_dereq_('./ext/mobile');
|
4374 |
+
flowplayer(function(e,o){function a(e){var o=document.createElement("a");return o.href=e,t.hostname(o.hostname)}var l=function(e,o){var a=e.className.split(" ");a.indexOf(o)===-1&&(e.className+=" "+o)},n=function(e){return"none"!==window.getComputedStyle(e).display},r=e.conf,t=flowplayer.common,i=t.createElement,p=r.swf.indexOf("flowplayer.org")&&r.e&&o.getAttribute("data-origin"),s=p?a(p):t.hostname(),d=(document,r.key);if("file:"==location.protocol&&(s="localhost"),e.load.ed=1,r.hostname=s,r.origin=p||location.href,p&&l(o,"is-embedded"),"string"==typeof d&&(d=d.split(/,\s*/)),d&&"function"==typeof key_check&&key_check(d,s)){if(r.logo){var f=t.find(".fp-player",o)[0],c=i("a",{className:"fp-logo"});p&&(c.href=p),r.embed&&r.embed.popup&&(c.target="_blank");var h=i("img",{src:r.logo});c.appendChild(h),(f||o).appendChild(c)}}else{var c=i("a",{href:"https://flowplayer.org/hello"});o.appendChild(c);var y=i("div",{className:"fp-context-menu fp-menu"},'<strong>© 2017 Flowplayer</strong><a href="https://flowplayer.org/hello">About Flowplayer</a><a href="https://flowplayer.org/license">GPL based license</a>'),g=window.location.href.indexOf("localhost"),f=t.find(".fp-player",o)[0];7!==g&&(f||o).appendChild(y),e.on("pause resume finish unload ready",function(e,a){var l=-1;if(a.video.src)for(var r=[["org","flowplayer","drive"],["org","flowplayer","my"],["org","flowplayer","cdn"]],t=0;t<r.length&&(l=a.video.src.indexOf("://"+r[t].reverse().join(".")),l===-1);t++);if(/pause|resume/.test(e.type)&&"flash"!=a.engine.engineName&&4!=l&&5!=l){var i={display:"block",position:"absolute",left:"16px",bottom:"70px",zIndex:99999,width:"100px",height:"20px",backgroundImage:"url("+[".png","logo","/",".net",".cloudfront","d32wqyuo10o653","//"].reverse().join("")+")"};for(var p in i)i.hasOwnProperty(p)&&(c.style[p]=i[p]);a.load.ed=n(c)&&(7===g||y.parentNode==o||y.parentNode==f),a.load.ed||a.pause()}else c.style.display="none"})}});
|
4375 |
+
|
4376 |
+
|
4377 |
+
},{"./engine/embed":2,"./engine/flash":3,"./engine/html5":4,"./ext/airplay":5,"./ext/analytics":6,"./ext/chromecast":7,"./ext/cuepoint":8,"./ext/embed":9,"./ext/facebook":11,"./ext/fullscreen":12,"./ext/keyboard":13,"./ext/menu":14,"./ext/message":15,"./ext/mobile":16,"./ext/playlist":17,"./ext/qsel":18,"./ext/share":20,"./ext/subtitle":21,"./ext/support":22,"./ext/twitter":23,"./ext/ui":24,"./flowplayer":28,"es5-shim":35}],30:[function(_dereq_,module,exports){
|
4378 |
+
'use strict'
|
4379 |
+
|
4380 |
+
exports.byteLength = byteLength
|
4381 |
+
exports.toByteArray = toByteArray
|
4382 |
+
exports.fromByteArray = fromByteArray
|
4383 |
+
|
4384 |
+
var lookup = []
|
4385 |
+
var revLookup = []
|
4386 |
+
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
|
4387 |
+
|
4388 |
+
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
|
4389 |
+
for (var i = 0, len = code.length; i < len; ++i) {
|
4390 |
+
lookup[i] = code[i]
|
4391 |
+
revLookup[code.charCodeAt(i)] = i
|
4392 |
+
}
|
4393 |
+
|
4394 |
+
revLookup['-'.charCodeAt(0)] = 62
|
4395 |
+
revLookup['_'.charCodeAt(0)] = 63
|
4396 |
+
|
4397 |
+
function placeHoldersCount (b64) {
|
4398 |
+
var len = b64.length
|
4399 |
+
if (len % 4 > 0) {
|
4400 |
+
throw new Error('Invalid string. Length must be a multiple of 4')
|
4401 |
+
}
|
4402 |
+
|
4403 |
+
// the number of equal signs (place holders)
|
4404 |
+
// if there are two placeholders, than the two characters before it
|
4405 |
+
// represent one byte
|
4406 |
+
// if there is only one, then the three characters before it represent 2 bytes
|
4407 |
+
// this is just a cheap hack to not do indexOf twice
|
4408 |
+
return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
|
4409 |
+
}
|
4410 |
+
|
4411 |
+
function byteLength (b64) {
|
4412 |
+
// base64 is 4/3 + up to two characters of the original data
|
4413 |
+
return b64.length * 3 / 4 - placeHoldersCount(b64)
|
4414 |
+
}
|
4415 |
+
|
4416 |
+
function toByteArray (b64) {
|
4417 |
+
var i, j, l, tmp, placeHolders, arr
|
4418 |
+
var len = b64.length
|
4419 |
+
placeHolders = placeHoldersCount(b64)
|
4420 |
+
|
4421 |
+
arr = new Arr(len * 3 / 4 - placeHolders)
|
4422 |
+
|
4423 |
+
// if there are placeholders, only get up to the last complete 4 chars
|
4424 |
+
l = placeHolders > 0 ? len - 4 : len
|
4425 |
+
|
4426 |
+
var L = 0
|
4427 |
+
|
4428 |
+
for (i = 0, j = 0; i < l; i += 4, j += 3) {
|
4429 |
+
tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
|
4430 |
+
arr[L++] = (tmp >> 16) & 0xFF
|
4431 |
+
arr[L++] = (tmp >> 8) & 0xFF
|
4432 |
+
arr[L++] = tmp & 0xFF
|
4433 |
+
}
|
4434 |
+
|
4435 |
+
if (placeHolders === 2) {
|
4436 |
+
tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
|
4437 |
+
arr[L++] = tmp & 0xFF
|
4438 |
+
} else if (placeHolders === 1) {
|
4439 |
+
tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
|
4440 |
+
arr[L++] = (tmp >> 8) & 0xFF
|
4441 |
+
arr[L++] = tmp & 0xFF
|
4442 |
+
}
|
4443 |
+
|
4444 |
+
return arr
|
4445 |
+
}
|
4446 |
+
|
4447 |
+
function tripletToBase64 (num) {
|
4448 |
+
return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
|
4449 |
+
}
|
4450 |
+
|
4451 |
+
function encodeChunk (uint8, start, end) {
|
4452 |
+
var tmp
|
4453 |
+
var output = []
|
4454 |
+
for (var i = start; i < end; i += 3) {
|
4455 |
+
tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
|
4456 |
+
output.push(tripletToBase64(tmp))
|
4457 |
+
}
|
4458 |
+
return output.join('')
|
4459 |
+
}
|
4460 |
+
|
4461 |
+
function fromByteArray (uint8) {
|
4462 |
+
var tmp
|
4463 |
+
var len = uint8.length
|
4464 |
+
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
|
4465 |
+
var output = ''
|
4466 |
+
var parts = []
|
4467 |
+
var maxChunkLength = 16383 // must be multiple of 3
|
4468 |
+
|
4469 |
+
// go through the array every three bytes, we'll deal with trailing stuff later
|
4470 |
+
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
|
4471 |
+
parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
|
4472 |
+
}
|
4473 |
+
|
4474 |
+
// pad the end with zeros, but make sure to not forget the extra bytes
|
4475 |
+
if (extraBytes === 1) {
|
4476 |
+
tmp = uint8[len - 1]
|
4477 |
+
output += lookup[tmp >> 2]
|
4478 |
+
output += lookup[(tmp << 4) & 0x3F]
|
4479 |
+
output += '=='
|
4480 |
+
} else if (extraBytes === 2) {
|
4481 |
+
tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
|
4482 |
+
output += lookup[tmp >> 10]
|
4483 |
+
output += lookup[(tmp >> 4) & 0x3F]
|
4484 |
+
output += lookup[(tmp << 2) & 0x3F]
|
4485 |
+
output += '='
|
4486 |
+
}
|
4487 |
+
|
4488 |
+
parts.push(output)
|
4489 |
+
|
4490 |
+
return parts.join('')
|
4491 |
+
}
|
4492 |
+
|
4493 |
+
},{}],31:[function(_dereq_,module,exports){
|
4494 |
+
/*!
|
4495 |
+
* Bean - copyright (c) Jacob Thornton 2011-2012
|
4496 |
+
* https://github.com/fat/bean
|
4497 |
+
* MIT license
|
4498 |
+
*/
|
4499 |
+
(function (name, context, definition) {
|
4500 |
+
if (typeof module != 'undefined' && module.exports) module.exports = definition()
|
4501 |
+
else if (typeof define == 'function' && define.amd) define(definition)
|
4502 |
+
else context[name] = definition()
|
4503 |
+
})('bean', this, function (name, context) {
|
4504 |
+
name = name || 'bean'
|
4505 |
+
context = context || this
|
4506 |
+
|
4507 |
+
var win = window
|
4508 |
+
, old = context[name]
|
4509 |
+
, namespaceRegex = /[^\.]*(?=\..*)\.|.*/
|
4510 |
+
, nameRegex = /\..*/
|
4511 |
+
, addEvent = 'addEventListener'
|
4512 |
+
, removeEvent = 'removeEventListener'
|
4513 |
+
, doc = document || {}
|
4514 |
+
, root = doc.documentElement || {}
|
4515 |
+
, W3C_MODEL = root[addEvent]
|
4516 |
+
, eventSupport = W3C_MODEL ? addEvent : 'attachEvent'
|
4517 |
+
, ONE = {} // singleton for quick matching making add() do one()
|
4518 |
+
|
4519 |
+
, slice = Array.prototype.slice
|
4520 |
+
, str2arr = function (s, d) { return s.split(d || ' ') }
|
4521 |
+
, isString = function (o) { return typeof o == 'string' }
|
4522 |
+
, isFunction = function (o) { return typeof o == 'function' }
|
4523 |
+
|
4524 |
+
// events that we consider to be 'native', anything not in this list will
|
4525 |
+
// be treated as a custom event
|
4526 |
+
, standardNativeEvents =
|
4527 |
+
'click dblclick mouseup mousedown contextmenu ' + // mouse buttons
|
4528 |
+
'mousewheel mousemultiwheel DOMMouseScroll ' + // mouse wheel
|
4529 |
+
'mouseover mouseout mousemove selectstart selectend ' + // mouse movement
|
4530 |
+
'keydown keypress keyup ' + // keyboard
|
4531 |
+
'orientationchange ' + // mobile
|
4532 |
+
'focus blur change reset select submit ' + // form elements
|
4533 |
+
'load unload beforeunload resize move DOMContentLoaded ' + // window
|
4534 |
+
'readystatechange message ' + // window
|
4535 |
+
'error abort scroll ' // misc
|
4536 |
+
// element.fireEvent('onXYZ'... is not forgiving if we try to fire an event
|
4537 |
+
// that doesn't actually exist, so make sure we only do these on newer browsers
|
4538 |
+
, w3cNativeEvents =
|
4539 |
+
'show ' + // mouse buttons
|
4540 |
+
'input invalid ' + // form elements
|
4541 |
+
'touchstart touchmove touchend touchcancel ' + // touch
|
4542 |
+
'gesturestart gesturechange gestureend ' + // gesture
|
4543 |
+
'textinput ' + // TextEvent
|
4544 |
+
'readystatechange pageshow pagehide popstate ' + // window
|
4545 |
+
'hashchange offline online ' + // window
|
4546 |
+
'afterprint beforeprint ' + // printing
|
4547 |
+
'dragstart dragenter dragover dragleave drag drop dragend ' + // dnd
|
4548 |
+
'loadstart progress suspend emptied stalled loadmetadata ' + // media
|
4549 |
+
'loadeddata canplay canplaythrough playing waiting seeking ' + // media
|
4550 |
+
'seeked ended durationchange timeupdate play pause ratechange ' + // media
|
4551 |
+
'volumechange cuechange ' + // media
|
4552 |
+
'checking noupdate downloading cached updateready obsolete ' // appcache
|
4553 |
+
|
4554 |
+
// convert to a hash for quick lookups
|
4555 |
+
, nativeEvents = (function (hash, events, i) {
|
4556 |
+
for (i = 0; i < events.length; i++) events[i] && (hash[events[i]] = 1)
|
4557 |
+
return hash
|
4558 |
+
}({}, str2arr(standardNativeEvents + (W3C_MODEL ? w3cNativeEvents : ''))))
|
4559 |
+
|
4560 |
+
// custom events are events that we *fake*, they are not provided natively but
|
4561 |
+
// we can use native events to generate them
|
4562 |
+
, customEvents = (function () {
|
4563 |
+
var isAncestor = 'compareDocumentPosition' in root
|
4564 |
+
? function (element, container) {
|
4565 |
+
return container.compareDocumentPosition && (container.compareDocumentPosition(element) & 16) === 16
|
4566 |
+
}
|
4567 |
+
: 'contains' in root
|
4568 |
+
? function (element, container) {
|
4569 |
+
container = container.nodeType === 9 || container === window ? root : container
|
4570 |
+
return container !== element && container.contains(element)
|
4571 |
+
}
|
4572 |
+
: function (element, container) {
|
4573 |
+
while (element = element.parentNode) if (element === container) return 1
|
4574 |
+
return 0
|
4575 |
+
}
|
4576 |
+
, check = function (event) {
|
4577 |
+
var related = event.relatedTarget
|
4578 |
+
return !related
|
4579 |
+
? related == null
|
4580 |
+
: (related !== this && related.prefix !== 'xul' && !/document/.test(this.toString())
|
4581 |
+
&& !isAncestor(related, this))
|
4582 |
+
}
|
4583 |
+
|
4584 |
+
return {
|
4585 |
+
mouseenter: { base: 'mouseover', condition: check }
|
4586 |
+
, mouseleave: { base: 'mouseout', condition: check }
|
4587 |
+
, mousewheel: { base: /Firefox/.test(navigator.userAgent) ? 'DOMMouseScroll' : 'mousewheel' }
|
4588 |
+
}
|
4589 |
+
}())
|
4590 |
+
|
4591 |
+
// we provide a consistent Event object across browsers by taking the actual DOM
|
4592 |
+
// event object and generating a new one from its properties.
|
4593 |
+
, Event = (function () {
|
4594 |
+
// a whitelist of properties (for different event types) tells us what to check for and copy
|
4595 |
+
var commonProps = str2arr('altKey attrChange attrName bubbles cancelable ctrlKey currentTarget ' +
|
4596 |
+
'detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey ' +
|
4597 |
+
'srcElement target timeStamp type view which propertyName')
|
4598 |
+
, mouseProps = commonProps.concat(str2arr('button buttons clientX clientY dataTransfer ' +
|
4599 |
+
'fromElement offsetX offsetY pageX pageY screenX screenY toElement'))
|
4600 |
+
, mouseWheelProps = mouseProps.concat(str2arr('wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ ' +
|
4601 |
+
'axis')) // 'axis' is FF specific
|
4602 |
+
, keyProps = commonProps.concat(str2arr('char charCode key keyCode keyIdentifier ' +
|
4603 |
+
'keyLocation location'))
|
4604 |
+
, textProps = commonProps.concat(str2arr('data'))
|
4605 |
+
, touchProps = commonProps.concat(str2arr('touches targetTouches changedTouches scale rotation'))
|
4606 |
+
, messageProps = commonProps.concat(str2arr('data origin source'))
|
4607 |
+
, stateProps = commonProps.concat(str2arr('state'))
|
4608 |
+
, overOutRegex = /over|out/
|
4609 |
+
// some event types need special handling and some need special properties, do that all here
|
4610 |
+
, typeFixers = [
|
4611 |
+
{ // key events
|
4612 |
+
reg: /key/i
|
4613 |
+
, fix: function (event, newEvent) {
|
4614 |
+
newEvent.keyCode = event.keyCode || event.which
|
4615 |
+
return keyProps
|
4616 |
+
}
|
4617 |
+
}
|
4618 |
+
, { // mouse events
|
4619 |
+
reg: /click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i
|
4620 |
+
, fix: function (event, newEvent, type) {
|
4621 |
+
newEvent.rightClick = event.which === 3 || event.button === 2
|
4622 |
+
newEvent.pos = { x: 0, y: 0 }
|
4623 |
+
if (event.pageX || event.pageY) {
|
4624 |
+
newEvent.clientX = event.pageX
|
4625 |
+
newEvent.clientY = event.pageY
|
4626 |
+
} else if (event.clientX || event.clientY) {
|
4627 |
+
newEvent.clientX = event.clientX + doc.body.scrollLeft + root.scrollLeft
|
4628 |
+
newEvent.clientY = event.clientY + doc.body.scrollTop + root.scrollTop
|
4629 |
+
}
|
4630 |
+
if (overOutRegex.test(type)) {
|
4631 |
+
newEvent.relatedTarget = event.relatedTarget
|
4632 |
+
|| event[(type == 'mouseover' ? 'from' : 'to') + 'Element']
|
4633 |
+
}
|
4634 |
+
return mouseProps
|
4635 |
+
}
|
4636 |
+
}
|
4637 |
+
, { // mouse wheel events
|
4638 |
+
reg: /mouse.*(wheel|scroll)/i
|
4639 |
+
, fix: function () { return mouseWheelProps }
|
4640 |
+
}
|
4641 |
+
, { // TextEvent
|
4642 |
+
reg: /^text/i
|
4643 |
+
, fix: function () { return textProps }
|
4644 |
+
}
|
4645 |
+
, { // touch and gesture events
|
4646 |
+
reg: /^touch|^gesture/i
|
4647 |
+
, fix: function () { return touchProps }
|
4648 |
+
}
|
4649 |
+
, { // message events
|
4650 |
+
reg: /^message$/i
|
4651 |
+
, fix: function () { return messageProps }
|
4652 |
+
}
|
4653 |
+
, { // popstate events
|
4654 |
+
reg: /^popstate$/i
|
4655 |
+
, fix: function () { return stateProps }
|
4656 |
+
}
|
4657 |
+
, { // everything else
|
4658 |
+
reg: /.*/
|
4659 |
+
, fix: function () { return commonProps }
|
4660 |
+
}
|
4661 |
+
]
|
4662 |
+
, typeFixerMap = {} // used to map event types to fixer functions (above), a basic cache mechanism
|
4663 |
+
|
4664 |
+
, Event = function (event, element, isNative) {
|
4665 |
+
if (!arguments.length) return
|
4666 |
+
event = event || ((element.ownerDocument || element.document || element).parentWindow || win).event
|
4667 |
+
this.originalEvent = event
|
4668 |
+
this.isNative = isNative
|
4669 |
+
this.isBean = true
|
4670 |
+
|
4671 |
+
if (!event) return
|
4672 |
+
|
4673 |
+
var type = event.type
|
4674 |
+
, target = event.target || event.srcElement
|
4675 |
+
, i, l, p, props, fixer
|
4676 |
+
|
4677 |
+
this.target = target && target.nodeType === 3 ? target.parentNode : target
|
4678 |
+
|
4679 |
+
if (isNative) { // we only need basic augmentation on custom events, the rest expensive & pointless
|
4680 |
+
fixer = typeFixerMap[type]
|
4681 |
+
if (!fixer) { // haven't encountered this event type before, map a fixer function for it
|
4682 |
+
for (i = 0, l = typeFixers.length; i < l; i++) {
|
4683 |
+
if (typeFixers[i].reg.test(type)) { // guaranteed to match at least one, last is .*
|
4684 |
+
typeFixerMap[type] = fixer = typeFixers[i].fix
|
4685 |
+
break
|
4686 |
+
}
|
4687 |
+
}
|
4688 |
+
}
|
4689 |
+
|
4690 |
+
props = fixer(event, this, type)
|
4691 |
+
for (i = props.length; i--;) {
|
4692 |
+
if (!((p = props[i]) in this) && p in event) this[p] = event[p]
|
4693 |
+
}
|
4694 |
+
}
|
4695 |
+
}
|
4696 |
+
|
4697 |
+
// preventDefault() and stopPropagation() are a consistent interface to those functions
|
4698 |
+
// on the DOM, stop() is an alias for both of them together
|
4699 |
+
Event.prototype.preventDefault = function () {
|
4700 |
+
if (this.originalEvent.preventDefault) this.originalEvent.preventDefault()
|
4701 |
+
else this.originalEvent.returnValue = false
|
4702 |
+
}
|
4703 |
+
Event.prototype.stopPropagation = function () {
|
4704 |
+
if (this.originalEvent.stopPropagation) this.originalEvent.stopPropagation()
|
4705 |
+
else this.originalEvent.cancelBubble = true
|
4706 |
+
}
|
4707 |
+
Event.prototype.stop = function () {
|
4708 |
+
this.preventDefault()
|
4709 |
+
this.stopPropagation()
|
4710 |
+
this.stopped = true
|
4711 |
+
}
|
4712 |
+
// stopImmediatePropagation() has to be handled internally because we manage the event list for
|
4713 |
+
// each element
|
4714 |
+
// note that originalElement may be a Bean#Event object in some situations
|
4715 |
+
Event.prototype.stopImmediatePropagation = function () {
|
4716 |
+
if (this.originalEvent.stopImmediatePropagation) this.originalEvent.stopImmediatePropagation()
|
4717 |
+
this.isImmediatePropagationStopped = function () { return true }
|
4718 |
+
}
|
4719 |
+
Event.prototype.isImmediatePropagationStopped = function () {
|
4720 |
+
return this.originalEvent.isImmediatePropagationStopped && this.originalEvent.isImmediatePropagationStopped()
|
4721 |
+
}
|
4722 |
+
Event.prototype.clone = function (currentTarget) {
|
4723 |
+
//TODO: this is ripe for optimisation, new events are *expensive*
|
4724 |
+
// improving this will speed up delegated events
|
4725 |
+
var ne = new Event(this, this.element, this.isNative)
|
4726 |
+
ne.currentTarget = currentTarget
|
4727 |
+
return ne
|
4728 |
+
}
|
4729 |
+
|
4730 |
+
return Event
|
4731 |
+
}())
|
4732 |
+
|
4733 |
+
// if we're in old IE we can't do onpropertychange on doc or win so we use doc.documentElement for both
|
4734 |
+
, targetElement = function (element, isNative) {
|
4735 |
+
return !W3C_MODEL && !isNative && (element === doc || element === win) ? root : element
|
4736 |
+
}
|
4737 |
+
|
4738 |
+
/**
|
4739 |
+
* Bean maintains an internal registry for event listeners. We don't touch elements, objects
|
4740 |
+
* or functions to identify them, instead we store everything in the registry.
|
4741 |
+
* Each event listener has a RegEntry object, we have one 'registry' for the whole instance.
|
4742 |
+
*/
|
4743 |
+
, RegEntry = (function () {
|
4744 |
+
// each handler is wrapped so we can handle delegation and custom events
|
4745 |
+
var wrappedHandler = function (element, fn, condition, args) {
|
4746 |
+
var call = function (event, eargs) {
|
4747 |
+
return fn.apply(element, args ? slice.call(eargs, event ? 0 : 1).concat(args) : eargs)
|
4748 |
+
}
|
4749 |
+
, findTarget = function (event, eventElement) {
|
4750 |
+
return fn.__beanDel ? fn.__beanDel.ft(event.target, element) : eventElement
|
4751 |
+
}
|
4752 |
+
, handler = condition
|
4753 |
+
? function (event) {
|
4754 |
+
var target = findTarget(event, this) // deleated event
|
4755 |
+
if (condition.apply(target, arguments)) {
|
4756 |
+
if (event) event.currentTarget = target
|
4757 |
+
return call(event, arguments)
|
4758 |
+
}
|
4759 |
+
}
|
4760 |
+
: function (event) {
|
4761 |
+
if (fn.__beanDel) event = event.clone(findTarget(event)) // delegated event, fix the fix
|
4762 |
+
return call(event, arguments)
|
4763 |
+
}
|
4764 |
+
handler.__beanDel = fn.__beanDel
|
4765 |
+
return handler
|
4766 |
+
}
|
4767 |
+
|
4768 |
+
, RegEntry = function (element, type, handler, original, namespaces, args, root) {
|
4769 |
+
var customType = customEvents[type]
|
4770 |
+
, isNative
|
4771 |
+
|
4772 |
+
if (type == 'unload') {
|
4773 |
+
// self clean-up
|
4774 |
+
handler = once(removeListener, element, type, handler, original)
|
4775 |
+
}
|
4776 |
+
|
4777 |
+
if (customType) {
|
4778 |
+
if (customType.condition) {
|
4779 |
+
handler = wrappedHandler(element, handler, customType.condition, args)
|
4780 |
+
}
|
4781 |
+
type = customType.base || type
|
4782 |
+
}
|
4783 |
+
|
4784 |
+
this.isNative = isNative = nativeEvents[type] && !!element[eventSupport]
|
4785 |
+
this.customType = !W3C_MODEL && !isNative && type
|
4786 |
+
this.element = element
|
4787 |
+
this.type = type
|
4788 |
+
this.original = original
|
4789 |
+
this.namespaces = namespaces
|
4790 |
+
this.eventType = W3C_MODEL || isNative ? type : 'propertychange'
|
4791 |
+
this.target = targetElement(element, isNative)
|
4792 |
+
this[eventSupport] = !!this.target[eventSupport]
|
4793 |
+
this.root = root
|
4794 |
+
this.handler = wrappedHandler(element, handler, null, args)
|
4795 |
+
}
|
4796 |
+
|
4797 |
+
// given a list of namespaces, is our entry in any of them?
|
4798 |
+
RegEntry.prototype.inNamespaces = function (checkNamespaces) {
|
4799 |
+
var i, j, c = 0
|
4800 |
+
if (!checkNamespaces) return true
|
4801 |
+
if (!this.namespaces) return false
|
4802 |
+
for (i = checkNamespaces.length; i--;) {
|
4803 |
+
for (j = this.namespaces.length; j--;) {
|
4804 |
+
if (checkNamespaces[i] == this.namespaces[j]) c++
|
4805 |
+
}
|
4806 |
+
}
|
4807 |
+
return checkNamespaces.length === c
|
4808 |
+
}
|
4809 |
+
|
4810 |
+
// match by element, original fn (opt), handler fn (opt)
|
4811 |
+
RegEntry.prototype.matches = function (checkElement, checkOriginal, checkHandler) {
|
4812 |
+
return this.element === checkElement &&
|
4813 |
+
(!checkOriginal || this.original === checkOriginal) &&
|
4814 |
+
(!checkHandler || this.handler === checkHandler)
|
4815 |
+
}
|
4816 |
+
|
4817 |
+
return RegEntry
|
4818 |
+
}())
|
4819 |
+
|
4820 |
+
, registry = (function () {
|
4821 |
+
// our map stores arrays by event type, just because it's better than storing
|
4822 |
+
// everything in a single array.
|
4823 |
+
// uses '$' as a prefix for the keys for safety and 'r' as a special prefix for
|
4824 |
+
// rootListeners so we can look them up fast
|
4825 |
+
var map = {}
|
4826 |
+
|
4827 |
+
// generic functional search of our registry for matching listeners,
|
4828 |
+
// `fn` returns false to break out of the loop
|
4829 |
+
, forAll = function (element, type, original, handler, root, fn) {
|
4830 |
+
var pfx = root ? 'r' : '$'
|
4831 |
+
if (!type || type == '*') {
|
4832 |
+
// search the whole registry
|
4833 |
+
for (var t in map) {
|
4834 |
+
if (t.charAt(0) == pfx) {
|
4835 |
+
forAll(element, t.substr(1), original, handler, root, fn)
|
4836 |
+
}
|
4837 |
+
}
|
4838 |
+
} else {
|
4839 |
+
var i = 0, l, list = map[pfx + type], all = element == '*'
|
4840 |
+
if (!list) return
|
4841 |
+
for (l = list.length; i < l; i++) {
|
4842 |
+
if ((all || list[i].matches(element, original, handler)) && !fn(list[i], list, i, type)) return
|
4843 |
+
}
|
4844 |
+
}
|
4845 |
+
}
|
4846 |
+
|
4847 |
+
, has = function (element, type, original, root) {
|
4848 |
+
// we're not using forAll here simply because it's a bit slower and this
|
4849 |
+
// needs to be fast
|
4850 |
+
var i, list = map[(root ? 'r' : '$') + type]
|
4851 |
+
if (list) {
|
4852 |
+
for (i = list.length; i--;) {
|
4853 |
+
if (!list[i].root && list[i].matches(element, original, null)) return true
|
4854 |
+
}
|
4855 |
+
}
|
4856 |
+
return false
|
4857 |
+
}
|
4858 |
+
|
4859 |
+
, get = function (element, type, original, root) {
|
4860 |
+
var entries = []
|
4861 |
+
forAll(element, type, original, null, root, function (entry) {
|
4862 |
+
return entries.push(entry)
|
4863 |
+
})
|
4864 |
+
return entries
|
4865 |
+
}
|
4866 |
+
|
4867 |
+
, put = function (entry) {
|
4868 |
+
var has = !entry.root && !this.has(entry.element, entry.type, null, false)
|
4869 |
+
, key = (entry.root ? 'r' : '$') + entry.type
|
4870 |
+
;(map[key] || (map[key] = [])).push(entry)
|
4871 |
+
return has
|
4872 |
+
}
|
4873 |
+
|
4874 |
+
, del = function (entry) {
|
4875 |
+
forAll(entry.element, entry.type, null, entry.handler, entry.root, function (entry, list, i) {
|
4876 |
+
list.splice(i, 1)
|
4877 |
+
entry.removed = true
|
4878 |
+
if (list.length === 0) delete map[(entry.root ? 'r' : '$') + entry.type]
|
4879 |
+
return false
|
4880 |
+
})
|
4881 |
+
}
|
4882 |
+
|
4883 |
+
// dump all entries, used for onunload
|
4884 |
+
, entries = function () {
|
4885 |
+
var t, entries = []
|
4886 |
+
for (t in map) {
|
4887 |
+
if (t.charAt(0) == '$') entries = entries.concat(map[t])
|
4888 |
+
}
|
4889 |
+
return entries
|
4890 |
+
}
|
4891 |
+
|
4892 |
+
return { has: has, get: get, put: put, del: del, entries: entries }
|
4893 |
+
}())
|
4894 |
+
|
4895 |
+
// we need a selector engine for delegated events, use querySelectorAll if it exists
|
4896 |
+
// but for older browsers we need Qwery, Sizzle or similar
|
4897 |
+
, selectorEngine
|
4898 |
+
, setSelectorEngine = function (e) {
|
4899 |
+
if (!arguments.length) {
|
4900 |
+
selectorEngine = doc.querySelectorAll
|
4901 |
+
? function (s, r) {
|
4902 |
+
return r.querySelectorAll(s)
|
4903 |
+
}
|
4904 |
+
: function () {
|
4905 |
+
throw new Error('Bean: No selector engine installed') // eeek
|
4906 |
+
}
|
4907 |
+
} else {
|
4908 |
+
selectorEngine = e
|
4909 |
+
}
|
4910 |
+
}
|
4911 |
+
|
4912 |
+
// we attach this listener to each DOM event that we need to listen to, only once
|
4913 |
+
// per event type per DOM element
|
4914 |
+
, rootListener = function (event, type) {
|
4915 |
+
if (!W3C_MODEL && type && event && event.propertyName != '_on' + type) return
|
4916 |
+
|
4917 |
+
var listeners = registry.get(this, type || event.type, null, false)
|
4918 |
+
, l = listeners.length
|
4919 |
+
, i = 0
|
4920 |
+
|
4921 |
+
event = new Event(event, this, true)
|
4922 |
+
if (type) event.type = type
|
4923 |
+
|
4924 |
+
// iterate through all handlers registered for this type, calling them unless they have
|
4925 |
+
// been removed by a previous handler or stopImmediatePropagation() has been called
|
4926 |
+
for (; i < l && !event.isImmediatePropagationStopped(); i++) {
|
4927 |
+
if (!listeners[i].removed) listeners[i].handler.call(this, event)
|
4928 |
+
}
|
4929 |
+
}
|
4930 |
+
|
4931 |
+
// add and remove listeners to DOM elements
|
4932 |
+
, listener = W3C_MODEL
|
4933 |
+
? function (element, type, add) {
|
4934 |
+
// new browsers
|
4935 |
+
element[add ? addEvent : removeEvent](type, rootListener, false)
|
4936 |
+
}
|
4937 |
+
: function (element, type, add, custom) {
|
4938 |
+
// IE8 and below, use attachEvent/detachEvent and we have to piggy-back propertychange events
|
4939 |
+
// to simulate event bubbling etc.
|
4940 |
+
var entry
|
4941 |
+
if (add) {
|
4942 |
+
registry.put(entry = new RegEntry(
|
4943 |
+
element
|
4944 |
+
, custom || type
|
4945 |
+
, function (event) { // handler
|
4946 |
+
rootListener.call(element, event, custom)
|
4947 |
+
}
|
4948 |
+
, rootListener
|
4949 |
+
, null
|
4950 |
+
, null
|
4951 |
+
, true // is root
|
4952 |
+
))
|
4953 |
+
if (custom && element['_on' + custom] == null) element['_on' + custom] = 0
|
4954 |
+
entry.target.attachEvent('on' + entry.eventType, entry.handler)
|
4955 |
+
} else {
|
4956 |
+
entry = registry.get(element, custom || type, rootListener, true)[0]
|
4957 |
+
if (entry) {
|
4958 |
+
entry.target.detachEvent('on' + entry.eventType, entry.handler)
|
4959 |
+
registry.del(entry)
|
4960 |
+
}
|
4961 |
+
}
|
4962 |
+
}
|
4963 |
+
|
4964 |
+
, once = function (rm, element, type, fn, originalFn) {
|
4965 |
+
// wrap the handler in a handler that does a remove as well
|
4966 |
+
return function () {
|
4967 |
+
fn.apply(this, arguments)
|
4968 |
+
rm(element, type, originalFn)
|
4969 |
+
}
|
4970 |
+
}
|
4971 |
+
|
4972 |
+
, removeListener = function (element, orgType, handler, namespaces) {
|
4973 |
+
var type = orgType && orgType.replace(nameRegex, '')
|
4974 |
+
, handlers = registry.get(element, type, null, false)
|
4975 |
+
, removed = {}
|
4976 |
+
, i, l
|
4977 |
+
|
4978 |
+
for (i = 0, l = handlers.length; i < l; i++) {
|
4979 |
+
if ((!handler || handlers[i].original === handler) && handlers[i].inNamespaces(namespaces)) {
|
4980 |
+
// TODO: this is problematic, we have a registry.get() and registry.del() that
|
4981 |
+
// both do registry searches so we waste cycles doing this. Needs to be rolled into
|
4982 |
+
// a single registry.forAll(fn) that removes while finding, but the catch is that
|
4983 |
+
// we'll be splicing the arrays that we're iterating over. Needs extra tests to
|
4984 |
+
// make sure we don't screw it up. @rvagg
|
4985 |
+
registry.del(handlers[i])
|
4986 |
+
if (!removed[handlers[i].eventType] && handlers[i][eventSupport])
|
4987 |
+
removed[handlers[i].eventType] = { t: handlers[i].eventType, c: handlers[i].type }
|
4988 |
+
}
|
4989 |
+
}
|
4990 |
+
// check each type/element for removed listeners and remove the rootListener where it's no longer needed
|
4991 |
+
for (i in removed) {
|
4992 |
+
if (!registry.has(element, removed[i].t, null, false)) {
|
4993 |
+
// last listener of this type, remove the rootListener
|
4994 |
+
listener(element, removed[i].t, false, removed[i].c)
|
4995 |
+
}
|
4996 |
+
}
|
4997 |
+
}
|
4998 |
+
|
4999 |
+
// set up a delegate helper using the given selector, wrap the handler function
|
5000 |
+
, delegate = function (selector, fn) {
|
5001 |
+
//TODO: findTarget (therefore $) is called twice, once for match and once for
|
5002 |
+
// setting e.currentTarget, fix this so it's only needed once
|
5003 |
+
var findTarget = function (target, root) {
|
5004 |
+
var i, array = isString(selector) ? selectorEngine(selector, root) : selector
|
5005 |
+
for (; target && target !== root; target = target.parentNode) {
|
5006 |
+
for (i = array.length; i--;) {
|
5007 |
+
if (array[i] === target) return target
|
5008 |
+
}
|
5009 |
+
}
|
5010 |
+
}
|
5011 |
+
, handler = function (e) {
|
5012 |
+
var match = findTarget(e.target, this)
|
5013 |
+
if (match) fn.apply(match, arguments)
|
5014 |
+
}
|
5015 |
+
|
5016 |
+
// __beanDel isn't pleasant but it's a private function, not exposed outside of Bean
|
5017 |
+
handler.__beanDel = {
|
5018 |
+
ft : findTarget // attach it here for customEvents to use too
|
5019 |
+
, selector : selector
|
5020 |
+
}
|
5021 |
+
return handler
|
5022 |
+
}
|
5023 |
+
|
5024 |
+
, fireListener = W3C_MODEL ? function (isNative, type, element) {
|
5025 |
+
// modern browsers, do a proper dispatchEvent()
|
5026 |
+
var evt = doc.createEvent(isNative ? 'HTMLEvents' : 'UIEvents')
|
5027 |
+
evt[isNative ? 'initEvent' : 'initUIEvent'](type, true, true, win, 1)
|
5028 |
+
element.dispatchEvent(evt)
|
5029 |
+
} : function (isNative, type, element) {
|
5030 |
+
// old browser use onpropertychange, just increment a custom property to trigger the event
|
5031 |
+
element = targetElement(element, isNative)
|
5032 |
+
isNative ? element.fireEvent('on' + type, doc.createEventObject()) : element['_on' + type]++
|
5033 |
+
}
|
5034 |
+
|
5035 |
+
/**
|
5036 |
+
* Public API: off(), on(), add(), (remove()), one(), fire(), clone()
|
5037 |
+
*/
|
5038 |
+
|
5039 |
+
/**
|
5040 |
+
* off(element[, eventType(s)[, handler ]])
|
5041 |
+
*/
|
5042 |
+
, off = function (element, typeSpec, fn) {
|
5043 |
+
var isTypeStr = isString(typeSpec)
|
5044 |
+
, k, type, namespaces, i
|
5045 |
+
|
5046 |
+
if (isTypeStr && typeSpec.indexOf(' ') > 0) {
|
5047 |
+
// off(el, 't1 t2 t3', fn) or off(el, 't1 t2 t3')
|
5048 |
+
typeSpec = str2arr(typeSpec)
|
5049 |
+
for (i = typeSpec.length; i--;)
|
5050 |
+
off(element, typeSpec[i], fn)
|
5051 |
+
return element
|
5052 |
+
}
|
5053 |
+
|
5054 |
+
type = isTypeStr && typeSpec.replace(nameRegex, '')
|
5055 |
+
if (type && customEvents[type]) type = customEvents[type].base
|
5056 |
+
|
5057 |
+
if (!typeSpec || isTypeStr) {
|
5058 |
+
// off(el) or off(el, t1.ns) or off(el, .ns) or off(el, .ns1.ns2.ns3)
|
5059 |
+
if (namespaces = isTypeStr && typeSpec.replace(namespaceRegex, '')) namespaces = str2arr(namespaces, '.')
|
5060 |
+
removeListener(element, type, fn, namespaces)
|
5061 |
+
} else if (isFunction(typeSpec)) {
|
5062 |
+
// off(el, fn)
|
5063 |
+
removeListener(element, null, typeSpec)
|
5064 |
+
} else {
|
5065 |
+
// off(el, { t1: fn1, t2, fn2 })
|
5066 |
+
for (k in typeSpec) {
|
5067 |
+
if (typeSpec.hasOwnProperty(k)) off(element, k, typeSpec[k])
|
5068 |
+
}
|
5069 |
+
}
|
5070 |
+
|
5071 |
+
return element
|
5072 |
+
}
|
5073 |
+
|
5074 |
+
/**
|
5075 |
+
* on(element, eventType(s)[, selector], handler[, args ])
|
5076 |
+
*/
|
5077 |
+
, on = function(element, events, selector, fn) {
|
5078 |
+
var originalFn, type, types, i, args, entry, first
|
5079 |
+
|
5080 |
+
//TODO: the undefined check means you can't pass an 'args' argument, fix this perhaps?
|
5081 |
+
if (selector === undefined && typeof events == 'object') {
|
5082 |
+
//TODO: this can't handle delegated events
|
5083 |
+
for (type in events) {
|
5084 |
+
if (events.hasOwnProperty(type)) {
|
5085 |
+
on.call(this, element, type, events[type])
|
5086 |
+
}
|
5087 |
+
}
|
5088 |
+
return
|
5089 |
+
}
|
5090 |
+
|
5091 |
+
if (!isFunction(selector)) {
|
5092 |
+
// delegated event
|
5093 |
+
originalFn = fn
|
5094 |
+
args = slice.call(arguments, 4)
|
5095 |
+
fn = delegate(selector, originalFn, selectorEngine)
|
5096 |
+
} else {
|
5097 |
+
args = slice.call(arguments, 3)
|
5098 |
+
fn = originalFn = selector
|
5099 |
+
}
|
5100 |
+
|
5101 |
+
types = str2arr(events)
|
5102 |
+
|
5103 |
+
// special case for one(), wrap in a self-removing handler
|
5104 |
+
if (this === ONE) {
|
5105 |
+
fn = once(off, element, events, fn, originalFn)
|
5106 |
+
}
|
5107 |
+
|
5108 |
+
for (i = types.length; i--;) {
|
5109 |
+
// add new handler to the registry and check if it's the first for this element/type
|
5110 |
+
first = registry.put(entry = new RegEntry(
|
5111 |
+
element
|
5112 |
+
, types[i].replace(nameRegex, '') // event type
|
5113 |
+
, fn
|
5114 |
+
, originalFn
|
5115 |
+
, str2arr(types[i].replace(namespaceRegex, ''), '.') // namespaces
|
5116 |
+
, args
|
5117 |
+
, false // not root
|
5118 |
+
))
|
5119 |
+
if (entry[eventSupport] && first) {
|
5120 |
+
// first event of this type on this element, add root listener
|
5121 |
+
listener(element, entry.eventType, true, entry.customType)
|
5122 |
+
}
|
5123 |
+
}
|
5124 |
+
|
5125 |
+
return element
|
5126 |
+
}
|
5127 |
+
|
5128 |
+
/**
|
5129 |
+
* add(element[, selector], eventType(s), handler[, args ])
|
5130 |
+
*
|
5131 |
+
* Deprecated: kept (for now) for backward-compatibility
|
5132 |
+
*/
|
5133 |
+
, add = function (element, events, fn, delfn) {
|
5134 |
+
return on.apply(
|
5135 |
+
null
|
5136 |
+
, !isString(fn)
|
5137 |
+
? slice.call(arguments)
|
5138 |
+
: [ element, fn, events, delfn ].concat(arguments.length > 3 ? slice.call(arguments, 5) : [])
|
5139 |
+
)
|
5140 |
+
}
|
5141 |
+
|
5142 |
+
/**
|
5143 |
+
* one(element, eventType(s)[, selector], handler[, args ])
|
5144 |
+
*/
|
5145 |
+
, one = function () {
|
5146 |
+
return on.apply(ONE, arguments)
|
5147 |
+
}
|
5148 |
+
|
5149 |
+
/**
|
5150 |
+
* fire(element, eventType(s)[, args ])
|
5151 |
+
*
|
5152 |
+
* The optional 'args' argument must be an array, if no 'args' argument is provided
|
5153 |
+
* then we can use the browser's DOM event system, otherwise we trigger handlers manually
|
5154 |
+
*/
|
5155 |
+
, fire = function (element, type, args) {
|
5156 |
+
var types = str2arr(type)
|
5157 |
+
, i, j, l, names, handlers
|
5158 |
+
|
5159 |
+
for (i = types.length; i--;) {
|
5160 |
+
type = types[i].replace(nameRegex, '')
|
5161 |
+
if (names = types[i].replace(namespaceRegex, '')) names = str2arr(names, '.')
|
5162 |
+
if (!names && !args && element[eventSupport]) {
|
5163 |
+
fireListener(nativeEvents[type], type, element)
|
5164 |
+
} else {
|
5165 |
+
// non-native event, either because of a namespace, arguments or a non DOM element
|
5166 |
+
// iterate over all listeners and manually 'fire'
|
5167 |
+
handlers = registry.get(element, type, null, false)
|
5168 |
+
args = [false].concat(args)
|
5169 |
+
for (j = 0, l = handlers.length; j < l; j++) {
|
5170 |
+
if (handlers[j].inNamespaces(names)) {
|
5171 |
+
handlers[j].handler.apply(element, args)
|
5172 |
+
}
|
5173 |
+
}
|
5174 |
+
}
|
5175 |
+
}
|
5176 |
+
return element
|
5177 |
+
}
|
5178 |
+
|
5179 |
+
/**
|
5180 |
+
* clone(dstElement, srcElement[, eventType ])
|
5181 |
+
*
|
5182 |
+
* TODO: perhaps for consistency we should allow the same flexibility in type specifiers?
|
5183 |
+
*/
|
5184 |
+
, clone = function (element, from, type) {
|
5185 |
+
var handlers = registry.get(from, type, null, false)
|
5186 |
+
, l = handlers.length
|
5187 |
+
, i = 0
|
5188 |
+
, args, beanDel
|
5189 |
+
|
5190 |
+
for (; i < l; i++) {
|
5191 |
+
if (handlers[i].original) {
|
5192 |
+
args = [ element, handlers[i].type ]
|
5193 |
+
if (beanDel = handlers[i].handler.__beanDel) args.push(beanDel.selector)
|
5194 |
+
args.push(handlers[i].original)
|
5195 |
+
on.apply(null, args)
|
5196 |
+
}
|
5197 |
+
}
|
5198 |
+
return element
|
5199 |
+
}
|
5200 |
+
|
5201 |
+
, bean = {
|
5202 |
+
'on' : on
|
5203 |
+
, 'add' : add
|
5204 |
+
, 'one' : one
|
5205 |
+
, 'off' : off
|
5206 |
+
, 'remove' : off
|
5207 |
+
, 'clone' : clone
|
5208 |
+
, 'fire' : fire
|
5209 |
+
, 'Event' : Event
|
5210 |
+
, 'setSelectorEngine' : setSelectorEngine
|
5211 |
+
, 'noConflict' : function () {
|
5212 |
+
context[name] = old
|
5213 |
+
return this
|
5214 |
+
}
|
5215 |
+
}
|
5216 |
+
|
5217 |
+
// for IE, clean up on unload to avoid leaks
|
5218 |
+
if (win.attachEvent) {
|
5219 |
+
var cleanup = function () {
|
5220 |
+
var i, entries = registry.entries()
|
5221 |
+
for (i in entries) {
|
5222 |
+
if (entries[i].type && entries[i].type !== 'unload') off(entries[i].element, entries[i].type)
|
5223 |
+
}
|
5224 |
+
win.detachEvent('onunload', cleanup)
|
5225 |
+
win.CollectGarbage && win.CollectGarbage()
|
5226 |
+
}
|
5227 |
+
win.attachEvent('onunload', cleanup)
|
5228 |
+
}
|
5229 |
+
|
5230 |
+
// initialize selector engine to internal default (qSA or throw Error)
|
5231 |
+
setSelectorEngine()
|
5232 |
+
|
5233 |
+
return bean
|
5234 |
+
});
|
5235 |
+
|
5236 |
+
},{}],32:[function(_dereq_,module,exports){
|
5237 |
+
(function (global){
|
5238 |
+
/*!
|
5239 |
+
* The buffer module from node.js, for the browser.
|
5240 |
+
*
|
5241 |
+
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
|
5242 |
+
* @license MIT
|
5243 |
+
*/
|
5244 |
+
/* eslint-disable no-proto */
|
5245 |
+
|
5246 |
+
'use strict'
|
5247 |
+
|
5248 |
+
var base64 = _dereq_('base64-js')
|
5249 |
+
var ieee754 = _dereq_('ieee754')
|
5250 |
+
var isArray = _dereq_('isarray')
|
5251 |
+
|
5252 |
+
exports.Buffer = Buffer
|
5253 |
+
exports.SlowBuffer = SlowBuffer
|
5254 |
+
exports.INSPECT_MAX_BYTES = 50
|
5255 |
+
|
5256 |
+
/**
|
5257 |
+
* If `Buffer.TYPED_ARRAY_SUPPORT`:
|
5258 |
+
* === true Use Uint8Array implementation (fastest)
|
5259 |
+
* === false Use Object implementation (most compatible, even IE6)
|
5260 |
+
*
|
5261 |
+
* Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
|
5262 |
+
* Opera 11.6+, iOS 4.2+.
|
5263 |
+
*
|
5264 |
+
* Due to various browser bugs, sometimes the Object implementation will be used even
|
5265 |
+
* when the browser supports typed arrays.
|
5266 |
+
*
|
5267 |
+
* Note:
|
5268 |
+
*
|
5269 |
+
* - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
|
5270 |
+
* See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
|
5271 |
+
*
|
5272 |
+
* - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
|
5273 |
+
*
|
5274 |
+
* - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
|
5275 |
+
* incorrect length in some situations.
|
5276 |
+
|
5277 |
+
* We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
|
5278 |
+
* get the Object implementation, which is slower but behaves correctly.
|
5279 |
+
*/
|
5280 |
+
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
|
5281 |
+
? global.TYPED_ARRAY_SUPPORT
|
5282 |
+
: typedArraySupport()
|
5283 |
+
|
5284 |
+
/*
|
5285 |
+
* Export kMaxLength after typed array support is determined.
|
5286 |
+
*/
|
5287 |
+
exports.kMaxLength = kMaxLength()
|
5288 |
+
|
5289 |
+
function typedArraySupport () {
|
5290 |
+
try {
|
5291 |
+
var arr = new Uint8Array(1)
|
5292 |
+
arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
|
5293 |
+
return arr.foo() === 42 && // typed array instances can be augmented
|
5294 |
+
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
|
5295 |
+
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
|
5296 |
+
} catch (e) {
|
5297 |
+
return false
|
5298 |
+
}
|
5299 |
+
}
|
5300 |
+
|
5301 |
+
function kMaxLength () {
|
5302 |
+
return Buffer.TYPED_ARRAY_SUPPORT
|
5303 |
+
? 0x7fffffff
|
5304 |
+
: 0x3fffffff
|
5305 |
+
}
|
5306 |
+
|
5307 |
+
function createBuffer (that, length) {
|
5308 |
+
if (kMaxLength() < length) {
|
5309 |
+
throw new RangeError('Invalid typed array length')
|
5310 |
+
}
|
5311 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
5312 |
+
// Return an augmented `Uint8Array` instance, for best performance
|
5313 |
+
that = new Uint8Array(length)
|
5314 |
+
that.__proto__ = Buffer.prototype
|
5315 |
+
} else {
|
5316 |
+
// Fallback: Return an object instance of the Buffer class
|
5317 |
+
if (that === null) {
|
5318 |
+
that = new Buffer(length)
|
5319 |
+
}
|
5320 |
+
that.length = length
|
5321 |
+
}
|
5322 |
+
|
5323 |
+
return that
|
5324 |
+
}
|
5325 |
+
|
5326 |
+
/**
|
5327 |
+
* The Buffer constructor returns instances of `Uint8Array` that have their
|
5328 |
+
* prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
|
5329 |
+
* `Uint8Array`, so the returned instances will have all the node `Buffer` methods
|
5330 |
+
* and the `Uint8Array` methods. Square bracket notation works as expected -- it
|
5331 |
+
* returns a single octet.
|
5332 |
+
*
|
5333 |
+
* The `Uint8Array` prototype remains unmodified.
|
5334 |
+
*/
|
5335 |
+
|
5336 |
+
function Buffer (arg, encodingOrOffset, length) {
|
5337 |
+
if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
|
5338 |
+
return new Buffer(arg, encodingOrOffset, length)
|
5339 |
+
}
|
5340 |
+
|
5341 |
+
// Common case.
|
5342 |
+
if (typeof arg === 'number') {
|
5343 |
+
if (typeof encodingOrOffset === 'string') {
|
5344 |
+
throw new Error(
|
5345 |
+
'If encoding is specified then the first argument must be a string'
|
5346 |
+
)
|
5347 |
+
}
|
5348 |
+
return allocUnsafe(this, arg)
|
5349 |
+
}
|
5350 |
+
return from(this, arg, encodingOrOffset, length)
|
5351 |
+
}
|
5352 |
+
|
5353 |
+
Buffer.poolSize = 8192 // not used by this implementation
|
5354 |
+
|
5355 |
+
// TODO: Legacy, not needed anymore. Remove in next major version.
|
5356 |
+
Buffer._augment = function (arr) {
|
5357 |
+
arr.__proto__ = Buffer.prototype
|
5358 |
+
return arr
|
5359 |
+
}
|
5360 |
+
|
5361 |
+
function from (that, value, encodingOrOffset, length) {
|
5362 |
+
if (typeof value === 'number') {
|
5363 |
+
throw new TypeError('"value" argument must not be a number')
|
5364 |
+
}
|
5365 |
+
|
5366 |
+
if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
|
5367 |
+
return fromArrayBuffer(that, value, encodingOrOffset, length)
|
5368 |
+
}
|
5369 |
+
|
5370 |
+
if (typeof value === 'string') {
|
5371 |
+
return fromString(that, value, encodingOrOffset)
|
5372 |
+
}
|
5373 |
+
|
5374 |
+
return fromObject(that, value)
|
5375 |
+
}
|
5376 |
+
|
5377 |
+
/**
|
5378 |
+
* Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
|
5379 |
+
* if value is a number.
|
5380 |
+
* Buffer.from(str[, encoding])
|
5381 |
+
* Buffer.from(array)
|
5382 |
+
* Buffer.from(buffer)
|
5383 |
+
* Buffer.from(arrayBuffer[, byteOffset[, length]])
|
5384 |
+
**/
|
5385 |
+
Buffer.from = function (value, encodingOrOffset, length) {
|
5386 |
+
return from(null, value, encodingOrOffset, length)
|
5387 |
+
}
|
5388 |
+
|
5389 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
5390 |
+
Buffer.prototype.__proto__ = Uint8Array.prototype
|
5391 |
+
Buffer.__proto__ = Uint8Array
|
5392 |
+
if (typeof Symbol !== 'undefined' && Symbol.species &&
|
5393 |
+
Buffer[Symbol.species] === Buffer) {
|
5394 |
+
// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
|
5395 |
+
Object.defineProperty(Buffer, Symbol.species, {
|
5396 |
+
value: null,
|
5397 |
+
configurable: true
|
5398 |
+
})
|
5399 |
+
}
|
5400 |
+
}
|
5401 |
+
|
5402 |
+
function assertSize (size) {
|
5403 |
+
if (typeof size !== 'number') {
|
5404 |
+
throw new TypeError('"size" argument must be a number')
|
5405 |
+
} else if (size < 0) {
|
5406 |
+
throw new RangeError('"size" argument must not be negative')
|
5407 |
+
}
|
5408 |
+
}
|
5409 |
+
|
5410 |
+
function alloc (that, size, fill, encoding) {
|
5411 |
+
assertSize(size)
|
5412 |
+
if (size <= 0) {
|
5413 |
+
return createBuffer(that, size)
|
5414 |
+
}
|
5415 |
+
if (fill !== undefined) {
|
5416 |
+
// Only pay attention to encoding if it's a string. This
|
5417 |
+
// prevents accidentally sending in a number that would
|
5418 |
+
// be interpretted as a start offset.
|
5419 |
+
return typeof encoding === 'string'
|
5420 |
+
? createBuffer(that, size).fill(fill, encoding)
|
5421 |
+
: createBuffer(that, size).fill(fill)
|
5422 |
+
}
|
5423 |
+
return createBuffer(that, size)
|
5424 |
+
}
|
5425 |
+
|
5426 |
+
/**
|
5427 |
+
* Creates a new filled Buffer instance.
|
5428 |
+
* alloc(size[, fill[, encoding]])
|
5429 |
+
**/
|
5430 |
+
Buffer.alloc = function (size, fill, encoding) {
|
5431 |
+
return alloc(null, size, fill, encoding)
|
5432 |
+
}
|
5433 |
+
|
5434 |
+
function allocUnsafe (that, size) {
|
5435 |
+
assertSize(size)
|
5436 |
+
that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
|
5437 |
+
if (!Buffer.TYPED_ARRAY_SUPPORT) {
|
5438 |
+
for (var i = 0; i < size; ++i) {
|
5439 |
+
that[i] = 0
|
5440 |
+
}
|
5441 |
+
}
|
5442 |
+
return that
|
5443 |
+
}
|
5444 |
+
|
5445 |
+
/**
|
5446 |
+
* Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
|
5447 |
+
* */
|
5448 |
+
Buffer.allocUnsafe = function (size) {
|
5449 |
+
return allocUnsafe(null, size)
|
5450 |
+
}
|
5451 |
+
/**
|
5452 |
+
* Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
|
5453 |
+
*/
|
5454 |
+
Buffer.allocUnsafeSlow = function (size) {
|
5455 |
+
return allocUnsafe(null, size)
|
5456 |
+
}
|
5457 |
+
|
5458 |
+
function fromString (that, string, encoding) {
|
5459 |
+
if (typeof encoding !== 'string' || encoding === '') {
|
5460 |
+
encoding = 'utf8'
|
5461 |
+
}
|
5462 |
+
|
5463 |
+
if (!Buffer.isEncoding(encoding)) {
|
5464 |
+
throw new TypeError('"encoding" must be a valid string encoding')
|
5465 |
+
}
|
5466 |
+
|
5467 |
+
var length = byteLength(string, encoding) | 0
|
5468 |
+
that = createBuffer(that, length)
|
5469 |
+
|
5470 |
+
var actual = that.write(string, encoding)
|
5471 |
+
|
5472 |
+
if (actual !== length) {
|
5473 |
+
// Writing a hex string, for example, that contains invalid characters will
|
5474 |
+
// cause everything after the first invalid character to be ignored. (e.g.
|
5475 |
+
// 'abxxcd' will be treated as 'ab')
|
5476 |
+
that = that.slice(0, actual)
|
5477 |
+
}
|
5478 |
+
|
5479 |
+
return that
|
5480 |
+
}
|
5481 |
+
|
5482 |
+
function fromArrayLike (that, array) {
|
5483 |
+
var length = array.length < 0 ? 0 : checked(array.length) | 0
|
5484 |
+
that = createBuffer(that, length)
|
5485 |
+
for (var i = 0; i < length; i += 1) {
|
5486 |
+
that[i] = array[i] & 255
|
5487 |
+
}
|
5488 |
+
return that
|
5489 |
+
}
|
5490 |
+
|
5491 |
+
function fromArrayBuffer (that, array, byteOffset, length) {
|
5492 |
+
array.byteLength // this throws if `array` is not a valid ArrayBuffer
|
5493 |
+
|
5494 |
+
if (byteOffset < 0 || array.byteLength < byteOffset) {
|
5495 |
+
throw new RangeError('\'offset\' is out of bounds')
|
5496 |
+
}
|
5497 |
+
|
5498 |
+
if (array.byteLength < byteOffset + (length || 0)) {
|
5499 |
+
throw new RangeError('\'length\' is out of bounds')
|
5500 |
+
}
|
5501 |
+
|
5502 |
+
if (byteOffset === undefined && length === undefined) {
|
5503 |
+
array = new Uint8Array(array)
|
5504 |
+
} else if (length === undefined) {
|
5505 |
+
array = new Uint8Array(array, byteOffset)
|
5506 |
+
} else {
|
5507 |
+
array = new Uint8Array(array, byteOffset, length)
|
5508 |
+
}
|
5509 |
+
|
5510 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
5511 |
+
// Return an augmented `Uint8Array` instance, for best performance
|
5512 |
+
that = array
|
5513 |
+
that.__proto__ = Buffer.prototype
|
5514 |
+
} else {
|
5515 |
+
// Fallback: Return an object instance of the Buffer class
|
5516 |
+
that = fromArrayLike(that, array)
|
5517 |
+
}
|
5518 |
+
return that
|
5519 |
+
}
|
5520 |
+
|
5521 |
+
function fromObject (that, obj) {
|
5522 |
+
if (Buffer.isBuffer(obj)) {
|
5523 |
+
var len = checked(obj.length) | 0
|
5524 |
+
that = createBuffer(that, len)
|
5525 |
+
|
5526 |
+
if (that.length === 0) {
|
5527 |
+
return that
|
5528 |
+
}
|
5529 |
+
|
5530 |
+
obj.copy(that, 0, 0, len)
|
5531 |
+
return that
|
5532 |
+
}
|
5533 |
+
|
5534 |
+
if (obj) {
|
5535 |
+
if ((typeof ArrayBuffer !== 'undefined' &&
|
5536 |
+
obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
|
5537 |
+
if (typeof obj.length !== 'number' || isnan(obj.length)) {
|
5538 |
+
return createBuffer(that, 0)
|
5539 |
+
}
|
5540 |
+
return fromArrayLike(that, obj)
|
5541 |
+
}
|
5542 |
+
|
5543 |
+
if (obj.type === 'Buffer' && isArray(obj.data)) {
|
5544 |
+
return fromArrayLike(that, obj.data)
|
5545 |
+
}
|
5546 |
+
}
|
5547 |
+
|
5548 |
+
throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
|
5549 |
+
}
|
5550 |
+
|
5551 |
+
function checked (length) {
|
5552 |
+
// Note: cannot use `length < kMaxLength()` here because that fails when
|
5553 |
+
// length is NaN (which is otherwise coerced to zero.)
|
5554 |
+
if (length >= kMaxLength()) {
|
5555 |
+
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
|
5556 |
+
'size: 0x' + kMaxLength().toString(16) + ' bytes')
|
5557 |
+
}
|
5558 |
+
return length | 0
|
5559 |
+
}
|
5560 |
+
|
5561 |
+
function SlowBuffer (length) {
|
5562 |
+
if (+length != length) { // eslint-disable-line eqeqeq
|
5563 |
+
length = 0
|
5564 |
+
}
|
5565 |
+
return Buffer.alloc(+length)
|
5566 |
+
}
|
5567 |
+
|
5568 |
+
Buffer.isBuffer = function isBuffer (b) {
|
5569 |
+
return !!(b != null && b._isBuffer)
|
5570 |
+
}
|
5571 |
+
|
5572 |
+
Buffer.compare = function compare (a, b) {
|
5573 |
+
if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
|
5574 |
+
throw new TypeError('Arguments must be Buffers')
|
5575 |
+
}
|
5576 |
+
|
5577 |
+
if (a === b) return 0
|
5578 |
+
|
5579 |
+
var x = a.length
|
5580 |
+
var y = b.length
|
5581 |
+
|
5582 |
+
for (var i = 0, len = Math.min(x, y); i < len; ++i) {
|
5583 |
+
if (a[i] !== b[i]) {
|
5584 |
+
x = a[i]
|
5585 |
+
y = b[i]
|
5586 |
+
break
|
5587 |
+
}
|
5588 |
+
}
|
5589 |
+
|
5590 |
+
if (x < y) return -1
|
5591 |
+
if (y < x) return 1
|
5592 |
+
return 0
|
5593 |
+
}
|
5594 |
+
|
5595 |
+
Buffer.isEncoding = function isEncoding (encoding) {
|
5596 |
+
switch (String(encoding).toLowerCase()) {
|
5597 |
+
case 'hex':
|
5598 |
+
case 'utf8':
|
5599 |
+
case 'utf-8':
|
5600 |
+
case 'ascii':
|
5601 |
+
case 'latin1':
|
5602 |
+
case 'binary':
|
5603 |
+
case 'base64':
|
5604 |
+
case 'ucs2':
|
5605 |
+
case 'ucs-2':
|
5606 |
+
case 'utf16le':
|
5607 |
+
case 'utf-16le':
|
5608 |
+
return true
|
5609 |
+
default:
|
5610 |
+
return false
|
5611 |
+
}
|
5612 |
+
}
|
5613 |
+
|
5614 |
+
Buffer.concat = function concat (list, length) {
|
5615 |
+
if (!isArray(list)) {
|
5616 |
+
throw new TypeError('"list" argument must be an Array of Buffers')
|
5617 |
+
}
|
5618 |
+
|
5619 |
+
if (list.length === 0) {
|
5620 |
+
return Buffer.alloc(0)
|
5621 |
+
}
|
5622 |
+
|
5623 |
+
var i
|
5624 |
+
if (length === undefined) {
|
5625 |
+
length = 0
|
5626 |
+
for (i = 0; i < list.length; ++i) {
|
5627 |
+
length += list[i].length
|
5628 |
+
}
|
5629 |
+
}
|
5630 |
+
|
5631 |
+
var buffer = Buffer.allocUnsafe(length)
|
5632 |
+
var pos = 0
|
5633 |
+
for (i = 0; i < list.length; ++i) {
|
5634 |
+
var buf = list[i]
|
5635 |
+
if (!Buffer.isBuffer(buf)) {
|
5636 |
+
throw new TypeError('"list" argument must be an Array of Buffers')
|
5637 |
+
}
|
5638 |
+
buf.copy(buffer, pos)
|
5639 |
+
pos += buf.length
|
5640 |
+
}
|
5641 |
+
return buffer
|
5642 |
+
}
|
5643 |
+
|
5644 |
+
function byteLength (string, encoding) {
|
5645 |
+
if (Buffer.isBuffer(string)) {
|
5646 |
+
return string.length
|
5647 |
+
}
|
5648 |
+
if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
|
5649 |
+
(ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
|
5650 |
+
return string.byteLength
|
5651 |
+
}
|
5652 |
+
if (typeof string !== 'string') {
|
5653 |
+
string = '' + string
|
5654 |
+
}
|
5655 |
+
|
5656 |
+
var len = string.length
|
5657 |
+
if (len === 0) return 0
|
5658 |
+
|
5659 |
+
// Use a for loop to avoid recursion
|
5660 |
+
var loweredCase = false
|
5661 |
+
for (;;) {
|
5662 |
+
switch (encoding) {
|
5663 |
+
case 'ascii':
|
5664 |
+
case 'latin1':
|
5665 |
+
case 'binary':
|
5666 |
+
return len
|
5667 |
+
case 'utf8':
|
5668 |
+
case 'utf-8':
|
5669 |
+
case undefined:
|
5670 |
+
return utf8ToBytes(string).length
|
5671 |
+
case 'ucs2':
|
5672 |
+
case 'ucs-2':
|
5673 |
+
case 'utf16le':
|
5674 |
+
case 'utf-16le':
|
5675 |
+
return len * 2
|
5676 |
+
case 'hex':
|
5677 |
+
return len >>> 1
|
5678 |
+
case 'base64':
|
5679 |
+
return base64ToBytes(string).length
|
5680 |
+
default:
|
5681 |
+
if (loweredCase) return utf8ToBytes(string).length // assume utf8
|
5682 |
+
encoding = ('' + encoding).toLowerCase()
|
5683 |
+
loweredCase = true
|
5684 |
+
}
|
5685 |
+
}
|
5686 |
+
}
|
5687 |
+
Buffer.byteLength = byteLength
|
5688 |
+
|
5689 |
+
function slowToString (encoding, start, end) {
|
5690 |
+
var loweredCase = false
|
5691 |
+
|
5692 |
+
// No need to verify that "this.length <= MAX_UINT32" since it's a read-only
|
5693 |
+
// property of a typed array.
|
5694 |
+
|
5695 |
+
// This behaves neither like String nor Uint8Array in that we set start/end
|
5696 |
+
// to their upper/lower bounds if the value passed is out of range.
|
5697 |
+
// undefined is handled specially as per ECMA-262 6th Edition,
|
5698 |
+
// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
|
5699 |
+
if (start === undefined || start < 0) {
|
5700 |
+
start = 0
|
5701 |
+
}
|
5702 |
+
// Return early if start > this.length. Done here to prevent potential uint32
|
5703 |
+
// coercion fail below.
|
5704 |
+
if (start > this.length) {
|
5705 |
+
return ''
|
5706 |
+
}
|
5707 |
+
|
5708 |
+
if (end === undefined || end > this.length) {
|
5709 |
+
end = this.length
|
5710 |
+
}
|
5711 |
+
|
5712 |
+
if (end <= 0) {
|
5713 |
+
return ''
|
5714 |
+
}
|
5715 |
+
|
5716 |
+
// Force coersion to uint32. This will also coerce falsey/NaN values to 0.
|
5717 |
+
end >>>= 0
|
5718 |
+
start >>>= 0
|
5719 |
+
|
5720 |
+
if (end <= start) {
|
5721 |
+
return ''
|
5722 |
+
}
|
5723 |
+
|
5724 |
+
if (!encoding) encoding = 'utf8'
|
5725 |
+
|
5726 |
+
while (true) {
|
5727 |
+
switch (encoding) {
|
5728 |
+
case 'hex':
|
5729 |
+
return hexSlice(this, start, end)
|
5730 |
+
|
5731 |
+
case 'utf8':
|
5732 |
+
case 'utf-8':
|
5733 |
+
return utf8Slice(this, start, end)
|
5734 |
+
|
5735 |
+
case 'ascii':
|
5736 |
+
return asciiSlice(this, start, end)
|
5737 |
+
|
5738 |
+
case 'latin1':
|
5739 |
+
case 'binary':
|
5740 |
+
return latin1Slice(this, start, end)
|
5741 |
+
|
5742 |
+
case 'base64':
|
5743 |
+
return base64Slice(this, start, end)
|
5744 |
+
|
5745 |
+
case 'ucs2':
|
5746 |
+
case 'ucs-2':
|
5747 |
+
case 'utf16le':
|
5748 |
+
case 'utf-16le':
|
5749 |
+
return utf16leSlice(this, start, end)
|
5750 |
+
|
5751 |
+
default:
|
5752 |
+
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
|
5753 |
+
encoding = (encoding + '').toLowerCase()
|
5754 |
+
loweredCase = true
|
5755 |
+
}
|
5756 |
+
}
|
5757 |
+
}
|
5758 |
+
|
5759 |
+
// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
|
5760 |
+
// Buffer instances.
|
5761 |
+
Buffer.prototype._isBuffer = true
|
5762 |
+
|
5763 |
+
function swap (b, n, m) {
|
5764 |
+
var i = b[n]
|
5765 |
+
b[n] = b[m]
|
5766 |
+
b[m] = i
|
5767 |
+
}
|
5768 |
+
|
5769 |
+
Buffer.prototype.swap16 = function swap16 () {
|
5770 |
+
var len = this.length
|
5771 |
+
if (len % 2 !== 0) {
|
5772 |
+
throw new RangeError('Buffer size must be a multiple of 16-bits')
|
5773 |
+
}
|
5774 |
+
for (var i = 0; i < len; i += 2) {
|
5775 |
+
swap(this, i, i + 1)
|
5776 |
+
}
|
5777 |
+
return this
|
5778 |
+
}
|
5779 |
+
|
5780 |
+
Buffer.prototype.swap32 = function swap32 () {
|
5781 |
+
var len = this.length
|
5782 |
+
if (len % 4 !== 0) {
|
5783 |
+
throw new RangeError('Buffer size must be a multiple of 32-bits')
|
5784 |
+
}
|
5785 |
+
for (var i = 0; i < len; i += 4) {
|
5786 |
+
swap(this, i, i + 3)
|
5787 |
+
swap(this, i + 1, i + 2)
|
5788 |
+
}
|
5789 |
+
return this
|
5790 |
+
}
|
5791 |
+
|
5792 |
+
Buffer.prototype.swap64 = function swap64 () {
|
5793 |
+
var len = this.length
|
5794 |
+
if (len % 8 !== 0) {
|
5795 |
+
throw new RangeError('Buffer size must be a multiple of 64-bits')
|
5796 |
+
}
|
5797 |
+
for (var i = 0; i < len; i += 8) {
|
5798 |
+
swap(this, i, i + 7)
|
5799 |
+
swap(this, i + 1, i + 6)
|
5800 |
+
swap(this, i + 2, i + 5)
|
5801 |
+
swap(this, i + 3, i + 4)
|
5802 |
+
}
|
5803 |
+
return this
|
5804 |
+
}
|
5805 |
+
|
5806 |
+
Buffer.prototype.toString = function toString () {
|
5807 |
+
var length = this.length | 0
|
5808 |
+
if (length === 0) return ''
|
5809 |
+
if (arguments.length === 0) return utf8Slice(this, 0, length)
|
5810 |
+
return slowToString.apply(this, arguments)
|
5811 |
+
}
|
5812 |
+
|
5813 |
+
Buffer.prototype.equals = function equals (b) {
|
5814 |
+
if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
|
5815 |
+
if (this === b) return true
|
5816 |
+
return Buffer.compare(this, b) === 0
|
5817 |
+
}
|
5818 |
+
|
5819 |
+
Buffer.prototype.inspect = function inspect () {
|
5820 |
+
var str = ''
|
5821 |
+
var max = exports.INSPECT_MAX_BYTES
|
5822 |
+
if (this.length > 0) {
|
5823 |
+
str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
|
5824 |
+
if (this.length > max) str += ' ... '
|
5825 |
+
}
|
5826 |
+
return '<Buffer ' + str + '>'
|
5827 |
+
}
|
5828 |
+
|
5829 |
+
Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
|
5830 |
+
if (!Buffer.isBuffer(target)) {
|
5831 |
+
throw new TypeError('Argument must be a Buffer')
|
5832 |
+
}
|
5833 |
+
|
5834 |
+
if (start === undefined) {
|
5835 |
+
start = 0
|
5836 |
+
}
|
5837 |
+
if (end === undefined) {
|
5838 |
+
end = target ? target.length : 0
|
5839 |
+
}
|
5840 |
+
if (thisStart === undefined) {
|
5841 |
+
thisStart = 0
|
5842 |
+
}
|
5843 |
+
if (thisEnd === undefined) {
|
5844 |
+
thisEnd = this.length
|
5845 |
+
}
|
5846 |
+
|
5847 |
+
if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
|
5848 |
+
throw new RangeError('out of range index')
|
5849 |
+
}
|
5850 |
+
|
5851 |
+
if (thisStart >= thisEnd && start >= end) {
|
5852 |
+
return 0
|
5853 |
+
}
|
5854 |
+
if (thisStart >= thisEnd) {
|
5855 |
+
return -1
|
5856 |
+
}
|
5857 |
+
if (start >= end) {
|
5858 |
+
return 1
|
5859 |
+
}
|
5860 |
+
|
5861 |
+
start >>>= 0
|
5862 |
+
end >>>= 0
|
5863 |
+
thisStart >>>= 0
|
5864 |
+
thisEnd >>>= 0
|
5865 |
+
|
5866 |
+
if (this === target) return 0
|
5867 |
+
|
5868 |
+
var x = thisEnd - thisStart
|
5869 |
+
var y = end - start
|
5870 |
+
var len = Math.min(x, y)
|
5871 |
+
|
5872 |
+
var thisCopy = this.slice(thisStart, thisEnd)
|
5873 |
+
var targetCopy = target.slice(start, end)
|
5874 |
+
|
5875 |
+
for (var i = 0; i < len; ++i) {
|
5876 |
+
if (thisCopy[i] !== targetCopy[i]) {
|
5877 |
+
x = thisCopy[i]
|
5878 |
+
y = targetCopy[i]
|
5879 |
+
break
|
5880 |
+
}
|
5881 |
+
}
|
5882 |
+
|
5883 |
+
if (x < y) return -1
|
5884 |
+
if (y < x) return 1
|
5885 |
+
return 0
|
5886 |
+
}
|
5887 |
+
|
5888 |
+
// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
|
5889 |
+
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
|
5890 |
+
//
|
5891 |
+
// Arguments:
|
5892 |
+
// - buffer - a Buffer to search
|
5893 |
+
// - val - a string, Buffer, or number
|
5894 |
+
// - byteOffset - an index into `buffer`; will be clamped to an int32
|
5895 |
+
// - encoding - an optional encoding, relevant is val is a string
|
5896 |
+
// - dir - true for indexOf, false for lastIndexOf
|
5897 |
+
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
|
5898 |
+
// Empty buffer means no match
|
5899 |
+
if (buffer.length === 0) return -1
|
5900 |
+
|
5901 |
+
// Normalize byteOffset
|
5902 |
+
if (typeof byteOffset === 'string') {
|
5903 |
+
encoding = byteOffset
|
5904 |
+
byteOffset = 0
|
5905 |
+
} else if (byteOffset > 0x7fffffff) {
|
5906 |
+
byteOffset = 0x7fffffff
|
5907 |
+
} else if (byteOffset < -0x80000000) {
|
5908 |
+
byteOffset = -0x80000000
|
5909 |
+
}
|
5910 |
+
byteOffset = +byteOffset // Coerce to Number.
|
5911 |
+
if (isNaN(byteOffset)) {
|
5912 |
+
// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
|
5913 |
+
byteOffset = dir ? 0 : (buffer.length - 1)
|
5914 |
+
}
|
5915 |
+
|
5916 |
+
// Normalize byteOffset: negative offsets start from the end of the buffer
|
5917 |
+
if (byteOffset < 0) byteOffset = buffer.length + byteOffset
|
5918 |
+
if (byteOffset >= buffer.length) {
|
5919 |
+
if (dir) return -1
|
5920 |
+
else byteOffset = buffer.length - 1
|
5921 |
+
} else if (byteOffset < 0) {
|
5922 |
+
if (dir) byteOffset = 0
|
5923 |
+
else return -1
|
5924 |
+
}
|
5925 |
+
|
5926 |
+
// Normalize val
|
5927 |
+
if (typeof val === 'string') {
|
5928 |
+
val = Buffer.from(val, encoding)
|
5929 |
+
}
|
5930 |
+
|
5931 |
+
// Finally, search either indexOf (if dir is true) or lastIndexOf
|
5932 |
+
if (Buffer.isBuffer(val)) {
|
5933 |
+
// Special case: looking for empty string/buffer always fails
|
5934 |
+
if (val.length === 0) {
|
5935 |
+
return -1
|
5936 |
+
}
|
5937 |
+
return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
|
5938 |
+
} else if (typeof val === 'number') {
|
5939 |
+
val = val & 0xFF // Search for a byte value [0-255]
|
5940 |
+
if (Buffer.TYPED_ARRAY_SUPPORT &&
|
5941 |
+
typeof Uint8Array.prototype.indexOf === 'function') {
|
5942 |
+
if (dir) {
|
5943 |
+
return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
|
5944 |
+
} else {
|
5945 |
+
return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
|
5946 |
+
}
|
5947 |
+
}
|
5948 |
+
return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
|
5949 |
+
}
|
5950 |
+
|
5951 |
+
throw new TypeError('val must be string, number or Buffer')
|
5952 |
+
}
|
5953 |
+
|
5954 |
+
function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
|
5955 |
+
var indexSize = 1
|
5956 |
+
var arrLength = arr.length
|
5957 |
+
var valLength = val.length
|
5958 |
+
|
5959 |
+
if (encoding !== undefined) {
|
5960 |
+
encoding = String(encoding).toLowerCase()
|
5961 |
+
if (encoding === 'ucs2' || encoding === 'ucs-2' ||
|
5962 |
+
encoding === 'utf16le' || encoding === 'utf-16le') {
|
5963 |
+
if (arr.length < 2 || val.length < 2) {
|
5964 |
+
return -1
|
5965 |
+
}
|
5966 |
+
indexSize = 2
|
5967 |
+
arrLength /= 2
|
5968 |
+
valLength /= 2
|
5969 |
+
byteOffset /= 2
|
5970 |
+
}
|
5971 |
+
}
|
5972 |
+
|
5973 |
+
function read (buf, i) {
|
5974 |
+
if (indexSize === 1) {
|
5975 |
+
return buf[i]
|
5976 |
+
} else {
|
5977 |
+
return buf.readUInt16BE(i * indexSize)
|
5978 |
+
}
|
5979 |
+
}
|
5980 |
+
|
5981 |
+
var i
|
5982 |
+
if (dir) {
|
5983 |
+
var foundIndex = -1
|
5984 |
+
for (i = byteOffset; i < arrLength; i++) {
|
5985 |
+
if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
|
5986 |
+
if (foundIndex === -1) foundIndex = i
|
5987 |
+
if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
|
5988 |
+
} else {
|
5989 |
+
if (foundIndex !== -1) i -= i - foundIndex
|
5990 |
+
foundIndex = -1
|
5991 |
+
}
|
5992 |
+
}
|
5993 |
+
} else {
|
5994 |
+
if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
|
5995 |
+
for (i = byteOffset; i >= 0; i--) {
|
5996 |
+
var found = true
|
5997 |
+
for (var j = 0; j < valLength; j++) {
|
5998 |
+
if (read(arr, i + j) !== read(val, j)) {
|
5999 |
+
found = false
|
6000 |
+
break
|
6001 |
+
}
|
6002 |
+
}
|
6003 |
+
if (found) return i
|
6004 |
+
}
|
6005 |
+
}
|
6006 |
+
|
6007 |
+
return -1
|
6008 |
+
}
|
6009 |
+
|
6010 |
+
Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
|
6011 |
+
return this.indexOf(val, byteOffset, encoding) !== -1
|
6012 |
+
}
|
6013 |
+
|
6014 |
+
Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
|
6015 |
+
return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
|
6016 |
+
}
|
6017 |
+
|
6018 |
+
Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
|
6019 |
+
return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
|
6020 |
+
}
|
6021 |
+
|
6022 |
+
function hexWrite (buf, string, offset, length) {
|
6023 |
+
offset = Number(offset) || 0
|
6024 |
+
var remaining = buf.length - offset
|
6025 |
+
if (!length) {
|
6026 |
+
length = remaining
|
6027 |
+
} else {
|
6028 |
+
length = Number(length)
|
6029 |
+
if (length > remaining) {
|
6030 |
+
length = remaining
|
6031 |
+
}
|
6032 |
+
}
|
6033 |
+
|
6034 |
+
// must be an even number of digits
|
6035 |
+
var strLen = string.length
|
6036 |
+
if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
|
6037 |
+
|
6038 |
+
if (length > strLen / 2) {
|
6039 |
+
length = strLen / 2
|
6040 |
+
}
|
6041 |
+
for (var i = 0; i < length; ++i) {
|
6042 |
+
var parsed = parseInt(string.substr(i * 2, 2), 16)
|
6043 |
+
if (isNaN(parsed)) return i
|
6044 |
+
buf[offset + i] = parsed
|
6045 |
+
}
|
6046 |
+
return i
|
6047 |
+
}
|
6048 |
+
|
6049 |
+
function utf8Write (buf, string, offset, length) {
|
6050 |
+
return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
|
6051 |
+
}
|
6052 |
+
|
6053 |
+
function asciiWrite (buf, string, offset, length) {
|
6054 |
+
return blitBuffer(asciiToBytes(string), buf, offset, length)
|
6055 |
+
}
|
6056 |
+
|
6057 |
+
function latin1Write (buf, string, offset, length) {
|
6058 |
+
return asciiWrite(buf, string, offset, length)
|
6059 |
+
}
|
6060 |
+
|
6061 |
+
function base64Write (buf, string, offset, length) {
|
6062 |
+
return blitBuffer(base64ToBytes(string), buf, offset, length)
|
6063 |
+
}
|
6064 |
+
|
6065 |
+
function ucs2Write (buf, string, offset, length) {
|
6066 |
+
return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
|
6067 |
+
}
|
6068 |
+
|
6069 |
+
Buffer.prototype.write = function write (string, offset, length, encoding) {
|
6070 |
+
// Buffer#write(string)
|
6071 |
+
if (offset === undefined) {
|
6072 |
+
encoding = 'utf8'
|
6073 |
+
length = this.length
|
6074 |
+
offset = 0
|
6075 |
+
// Buffer#write(string, encoding)
|
6076 |
+
} else if (length === undefined && typeof offset === 'string') {
|
6077 |
+
encoding = offset
|
6078 |
+
length = this.length
|
6079 |
+
offset = 0
|
6080 |
+
// Buffer#write(string, offset[, length][, encoding])
|
6081 |
+
} else if (isFinite(offset)) {
|
6082 |
+
offset = offset | 0
|
6083 |
+
if (isFinite(length)) {
|
6084 |
+
length = length | 0
|
6085 |
+
if (encoding === undefined) encoding = 'utf8'
|
6086 |
+
} else {
|
6087 |
+
encoding = length
|
6088 |
+
length = undefined
|
6089 |
+
}
|
6090 |
+
// legacy write(string, encoding, offset, length) - remove in v0.13
|
6091 |
+
} else {
|
6092 |
+
throw new Error(
|
6093 |
+
'Buffer.write(string, encoding, offset[, length]) is no longer supported'
|
6094 |
+
)
|
6095 |
+
}
|
6096 |
+
|
6097 |
+
var remaining = this.length - offset
|
6098 |
+
if (length === undefined || length > remaining) length = remaining
|
6099 |
+
|
6100 |
+
if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
|
6101 |
+
throw new RangeError('Attempt to write outside buffer bounds')
|
6102 |
+
}
|
6103 |
+
|
6104 |
+
if (!encoding) encoding = 'utf8'
|
6105 |
+
|
6106 |
+
var loweredCase = false
|
6107 |
+
for (;;) {
|
6108 |
+
switch (encoding) {
|
6109 |
+
case 'hex':
|
6110 |
+
return hexWrite(this, string, offset, length)
|
6111 |
+
|
6112 |
+
case 'utf8':
|
6113 |
+
case 'utf-8':
|
6114 |
+
return utf8Write(this, string, offset, length)
|
6115 |
+
|
6116 |
+
case 'ascii':
|
6117 |
+
return asciiWrite(this, string, offset, length)
|
6118 |
+
|
6119 |
+
case 'latin1':
|
6120 |
+
case 'binary':
|
6121 |
+
return latin1Write(this, string, offset, length)
|
6122 |
+
|
6123 |
+
case 'base64':
|
6124 |
+
// Warning: maxLength not taken into account in base64Write
|
6125 |
+
return base64Write(this, string, offset, length)
|
6126 |
+
|
6127 |
+
case 'ucs2':
|
6128 |
+
case 'ucs-2':
|
6129 |
+
case 'utf16le':
|
6130 |
+
case 'utf-16le':
|
6131 |
+
return ucs2Write(this, string, offset, length)
|
6132 |
+
|
6133 |
+
default:
|
6134 |
+
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
|
6135 |
+
encoding = ('' + encoding).toLowerCase()
|
6136 |
+
loweredCase = true
|
6137 |
+
}
|
6138 |
+
}
|
6139 |
+
}
|
6140 |
+
|
6141 |
+
Buffer.prototype.toJSON = function toJSON () {
|
6142 |
+
return {
|
6143 |
+
type: 'Buffer',
|
6144 |
+
data: Array.prototype.slice.call(this._arr || this, 0)
|
6145 |
+
}
|
6146 |
+
}
|
6147 |
+
|
6148 |
+
function base64Slice (buf, start, end) {
|
6149 |
+
if (start === 0 && end === buf.length) {
|
6150 |
+
return base64.fromByteArray(buf)
|
6151 |
+
} else {
|
6152 |
+
return base64.fromByteArray(buf.slice(start, end))
|
6153 |
+
}
|
6154 |
+
}
|
6155 |
+
|
6156 |
+
function utf8Slice (buf, start, end) {
|
6157 |
+
end = Math.min(buf.length, end)
|
6158 |
+
var res = []
|
6159 |
+
|
6160 |
+
var i = start
|
6161 |
+
while (i < end) {
|
6162 |
+
var firstByte = buf[i]
|
6163 |
+
var codePoint = null
|
6164 |
+
var bytesPerSequence = (firstByte > 0xEF) ? 4
|
6165 |
+
: (firstByte > 0xDF) ? 3
|
6166 |
+
: (firstByte > 0xBF) ? 2
|
6167 |
+
: 1
|
6168 |
+
|
6169 |
+
if (i + bytesPerSequence <= end) {
|
6170 |
+
var secondByte, thirdByte, fourthByte, tempCodePoint
|
6171 |
+
|
6172 |
+
switch (bytesPerSequence) {
|
6173 |
+
case 1:
|
6174 |
+
if (firstByte < 0x80) {
|
6175 |
+
codePoint = firstByte
|
6176 |
+
}
|
6177 |
+
break
|
6178 |
+
case 2:
|
6179 |
+
secondByte = buf[i + 1]
|
6180 |
+
if ((secondByte & 0xC0) === 0x80) {
|
6181 |
+
tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
|
6182 |
+
if (tempCodePoint > 0x7F) {
|
6183 |
+
codePoint = tempCodePoint
|
6184 |
+
}
|
6185 |
+
}
|
6186 |
+
break
|
6187 |
+
case 3:
|
6188 |
+
secondByte = buf[i + 1]
|
6189 |
+
thirdByte = buf[i + 2]
|
6190 |
+
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
|
6191 |
+
tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
|
6192 |
+
if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
|
6193 |
+
codePoint = tempCodePoint
|
6194 |
+
}
|
6195 |
+
}
|
6196 |
+
break
|
6197 |
+
case 4:
|
6198 |
+
secondByte = buf[i + 1]
|
6199 |
+
thirdByte = buf[i + 2]
|
6200 |
+
fourthByte = buf[i + 3]
|
6201 |
+
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
|
6202 |
+
tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
|
6203 |
+
if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
|
6204 |
+
codePoint = tempCodePoint
|
6205 |
+
}
|
6206 |
+
}
|
6207 |
+
}
|
6208 |
+
}
|
6209 |
+
|
6210 |
+
if (codePoint === null) {
|
6211 |
+
// we did not generate a valid codePoint so insert a
|
6212 |
+
// replacement char (U+FFFD) and advance only 1 byte
|
6213 |
+
codePoint = 0xFFFD
|
6214 |
+
bytesPerSequence = 1
|
6215 |
+
} else if (codePoint > 0xFFFF) {
|
6216 |
+
// encode to utf16 (surrogate pair dance)
|
6217 |
+
codePoint -= 0x10000
|
6218 |
+
res.push(codePoint >>> 10 & 0x3FF | 0xD800)
|
6219 |
+
codePoint = 0xDC00 | codePoint & 0x3FF
|
6220 |
+
}
|
6221 |
+
|
6222 |
+
res.push(codePoint)
|
6223 |
+
i += bytesPerSequence
|
6224 |
+
}
|
6225 |
+
|
6226 |
+
return decodeCodePointsArray(res)
|
6227 |
+
}
|
6228 |
+
|
6229 |
+
// Based on http://stackoverflow.com/a/22747272/680742, the browser with
|
6230 |
+
// the lowest limit is Chrome, with 0x10000 args.
|
6231 |
+
// We go 1 magnitude less, for safety
|
6232 |
+
var MAX_ARGUMENTS_LENGTH = 0x1000
|
6233 |
+
|
6234 |
+
function decodeCodePointsArray (codePoints) {
|
6235 |
+
var len = codePoints.length
|
6236 |
+
if (len <= MAX_ARGUMENTS_LENGTH) {
|
6237 |
+
return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
|
6238 |
+
}
|
6239 |
+
|
6240 |
+
// Decode in chunks to avoid "call stack size exceeded".
|
6241 |
+
var res = ''
|
6242 |
+
var i = 0
|
6243 |
+
while (i < len) {
|
6244 |
+
res += String.fromCharCode.apply(
|
6245 |
+
String,
|
6246 |
+
codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
|
6247 |
+
)
|
6248 |
+
}
|
6249 |
+
return res
|
6250 |
+
}
|
6251 |
+
|
6252 |
+
function asciiSlice (buf, start, end) {
|
6253 |
+
var ret = ''
|
6254 |
+
end = Math.min(buf.length, end)
|
6255 |
+
|
6256 |
+
for (var i = start; i < end; ++i) {
|
6257 |
+
ret += String.fromCharCode(buf[i] & 0x7F)
|
6258 |
+
}
|
6259 |
+
return ret
|
6260 |
+
}
|
6261 |
+
|
6262 |
+
function latin1Slice (buf, start, end) {
|
6263 |
+
var ret = ''
|
6264 |
+
end = Math.min(buf.length, end)
|
6265 |
+
|
6266 |
+
for (var i = start; i < end; ++i) {
|
6267 |
+
ret += String.fromCharCode(buf[i])
|
6268 |
+
}
|
6269 |
+
return ret
|
6270 |
+
}
|
6271 |
+
|
6272 |
+
function hexSlice (buf, start, end) {
|
6273 |
+
var len = buf.length
|
6274 |
+
|
6275 |
+
if (!start || start < 0) start = 0
|
6276 |
+
if (!end || end < 0 || end > len) end = len
|
6277 |
+
|
6278 |
+
var out = ''
|
6279 |
+
for (var i = start; i < end; ++i) {
|
6280 |
+
out += toHex(buf[i])
|
6281 |
+
}
|
6282 |
+
return out
|
6283 |
+
}
|
6284 |
+
|
6285 |
+
function utf16leSlice (buf, start, end) {
|
6286 |
+
var bytes = buf.slice(start, end)
|
6287 |
+
var res = ''
|
6288 |
+
for (var i = 0; i < bytes.length; i += 2) {
|
6289 |
+
res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
|
6290 |
+
}
|
6291 |
+
return res
|
6292 |
+
}
|
6293 |
+
|
6294 |
+
Buffer.prototype.slice = function slice (start, end) {
|
6295 |
+
var len = this.length
|
6296 |
+
start = ~~start
|
6297 |
+
end = end === undefined ? len : ~~end
|
6298 |
+
|
6299 |
+
if (start < 0) {
|
6300 |
+
start += len
|
6301 |
+
if (start < 0) start = 0
|
6302 |
+
} else if (start > len) {
|
6303 |
+
start = len
|
6304 |
+
}
|
6305 |
+
|
6306 |
+
if (end < 0) {
|
6307 |
+
end += len
|
6308 |
+
if (end < 0) end = 0
|
6309 |
+
} else if (end > len) {
|
6310 |
+
end = len
|
6311 |
+
}
|
6312 |
+
|
6313 |
+
if (end < start) end = start
|
6314 |
+
|
6315 |
+
var newBuf
|
6316 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6317 |
+
newBuf = this.subarray(start, end)
|
6318 |
+
newBuf.__proto__ = Buffer.prototype
|
6319 |
+
} else {
|
6320 |
+
var sliceLen = end - start
|
6321 |
+
newBuf = new Buffer(sliceLen, undefined)
|
6322 |
+
for (var i = 0; i < sliceLen; ++i) {
|
6323 |
+
newBuf[i] = this[i + start]
|
6324 |
+
}
|
6325 |
+
}
|
6326 |
+
|
6327 |
+
return newBuf
|
6328 |
+
}
|
6329 |
+
|
6330 |
+
/*
|
6331 |
+
* Need to make sure that buffer isn't trying to write out of bounds.
|
6332 |
+
*/
|
6333 |
+
function checkOffset (offset, ext, length) {
|
6334 |
+
if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
|
6335 |
+
if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
|
6336 |
+
}
|
6337 |
+
|
6338 |
+
Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
|
6339 |
+
offset = offset | 0
|
6340 |
+
byteLength = byteLength | 0
|
6341 |
+
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
6342 |
+
|
6343 |
+
var val = this[offset]
|
6344 |
+
var mul = 1
|
6345 |
+
var i = 0
|
6346 |
+
while (++i < byteLength && (mul *= 0x100)) {
|
6347 |
+
val += this[offset + i] * mul
|
6348 |
+
}
|
6349 |
+
|
6350 |
+
return val
|
6351 |
+
}
|
6352 |
+
|
6353 |
+
Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
|
6354 |
+
offset = offset | 0
|
6355 |
+
byteLength = byteLength | 0
|
6356 |
+
if (!noAssert) {
|
6357 |
+
checkOffset(offset, byteLength, this.length)
|
6358 |
+
}
|
6359 |
+
|
6360 |
+
var val = this[offset + --byteLength]
|
6361 |
+
var mul = 1
|
6362 |
+
while (byteLength > 0 && (mul *= 0x100)) {
|
6363 |
+
val += this[offset + --byteLength] * mul
|
6364 |
+
}
|
6365 |
+
|
6366 |
+
return val
|
6367 |
+
}
|
6368 |
+
|
6369 |
+
Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
|
6370 |
+
if (!noAssert) checkOffset(offset, 1, this.length)
|
6371 |
+
return this[offset]
|
6372 |
+
}
|
6373 |
+
|
6374 |
+
Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
|
6375 |
+
if (!noAssert) checkOffset(offset, 2, this.length)
|
6376 |
+
return this[offset] | (this[offset + 1] << 8)
|
6377 |
+
}
|
6378 |
+
|
6379 |
+
Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
|
6380 |
+
if (!noAssert) checkOffset(offset, 2, this.length)
|
6381 |
+
return (this[offset] << 8) | this[offset + 1]
|
6382 |
+
}
|
6383 |
+
|
6384 |
+
Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
|
6385 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6386 |
+
|
6387 |
+
return ((this[offset]) |
|
6388 |
+
(this[offset + 1] << 8) |
|
6389 |
+
(this[offset + 2] << 16)) +
|
6390 |
+
(this[offset + 3] * 0x1000000)
|
6391 |
+
}
|
6392 |
+
|
6393 |
+
Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
|
6394 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6395 |
+
|
6396 |
+
return (this[offset] * 0x1000000) +
|
6397 |
+
((this[offset + 1] << 16) |
|
6398 |
+
(this[offset + 2] << 8) |
|
6399 |
+
this[offset + 3])
|
6400 |
+
}
|
6401 |
+
|
6402 |
+
Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
|
6403 |
+
offset = offset | 0
|
6404 |
+
byteLength = byteLength | 0
|
6405 |
+
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
6406 |
+
|
6407 |
+
var val = this[offset]
|
6408 |
+
var mul = 1
|
6409 |
+
var i = 0
|
6410 |
+
while (++i < byteLength && (mul *= 0x100)) {
|
6411 |
+
val += this[offset + i] * mul
|
6412 |
+
}
|
6413 |
+
mul *= 0x80
|
6414 |
+
|
6415 |
+
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
|
6416 |
+
|
6417 |
+
return val
|
6418 |
+
}
|
6419 |
+
|
6420 |
+
Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
|
6421 |
+
offset = offset | 0
|
6422 |
+
byteLength = byteLength | 0
|
6423 |
+
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
6424 |
+
|
6425 |
+
var i = byteLength
|
6426 |
+
var mul = 1
|
6427 |
+
var val = this[offset + --i]
|
6428 |
+
while (i > 0 && (mul *= 0x100)) {
|
6429 |
+
val += this[offset + --i] * mul
|
6430 |
+
}
|
6431 |
+
mul *= 0x80
|
6432 |
+
|
6433 |
+
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
|
6434 |
+
|
6435 |
+
return val
|
6436 |
+
}
|
6437 |
+
|
6438 |
+
Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
|
6439 |
+
if (!noAssert) checkOffset(offset, 1, this.length)
|
6440 |
+
if (!(this[offset] & 0x80)) return (this[offset])
|
6441 |
+
return ((0xff - this[offset] + 1) * -1)
|
6442 |
+
}
|
6443 |
+
|
6444 |
+
Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
|
6445 |
+
if (!noAssert) checkOffset(offset, 2, this.length)
|
6446 |
+
var val = this[offset] | (this[offset + 1] << 8)
|
6447 |
+
return (val & 0x8000) ? val | 0xFFFF0000 : val
|
6448 |
+
}
|
6449 |
+
|
6450 |
+
Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
|
6451 |
+
if (!noAssert) checkOffset(offset, 2, this.length)
|
6452 |
+
var val = this[offset + 1] | (this[offset] << 8)
|
6453 |
+
return (val & 0x8000) ? val | 0xFFFF0000 : val
|
6454 |
+
}
|
6455 |
+
|
6456 |
+
Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
|
6457 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6458 |
+
|
6459 |
+
return (this[offset]) |
|
6460 |
+
(this[offset + 1] << 8) |
|
6461 |
+
(this[offset + 2] << 16) |
|
6462 |
+
(this[offset + 3] << 24)
|
6463 |
+
}
|
6464 |
+
|
6465 |
+
Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
|
6466 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6467 |
+
|
6468 |
+
return (this[offset] << 24) |
|
6469 |
+
(this[offset + 1] << 16) |
|
6470 |
+
(this[offset + 2] << 8) |
|
6471 |
+
(this[offset + 3])
|
6472 |
+
}
|
6473 |
+
|
6474 |
+
Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
|
6475 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6476 |
+
return ieee754.read(this, offset, true, 23, 4)
|
6477 |
+
}
|
6478 |
+
|
6479 |
+
Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
|
6480 |
+
if (!noAssert) checkOffset(offset, 4, this.length)
|
6481 |
+
return ieee754.read(this, offset, false, 23, 4)
|
6482 |
+
}
|
6483 |
+
|
6484 |
+
Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
|
6485 |
+
if (!noAssert) checkOffset(offset, 8, this.length)
|
6486 |
+
return ieee754.read(this, offset, true, 52, 8)
|
6487 |
+
}
|
6488 |
+
|
6489 |
+
Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
|
6490 |
+
if (!noAssert) checkOffset(offset, 8, this.length)
|
6491 |
+
return ieee754.read(this, offset, false, 52, 8)
|
6492 |
+
}
|
6493 |
+
|
6494 |
+
function checkInt (buf, value, offset, ext, max, min) {
|
6495 |
+
if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
|
6496 |
+
if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
|
6497 |
+
if (offset + ext > buf.length) throw new RangeError('Index out of range')
|
6498 |
+
}
|
6499 |
+
|
6500 |
+
Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
|
6501 |
+
value = +value
|
6502 |
+
offset = offset | 0
|
6503 |
+
byteLength = byteLength | 0
|
6504 |
+
if (!noAssert) {
|
6505 |
+
var maxBytes = Math.pow(2, 8 * byteLength) - 1
|
6506 |
+
checkInt(this, value, offset, byteLength, maxBytes, 0)
|
6507 |
+
}
|
6508 |
+
|
6509 |
+
var mul = 1
|
6510 |
+
var i = 0
|
6511 |
+
this[offset] = value & 0xFF
|
6512 |
+
while (++i < byteLength && (mul *= 0x100)) {
|
6513 |
+
this[offset + i] = (value / mul) & 0xFF
|
6514 |
+
}
|
6515 |
+
|
6516 |
+
return offset + byteLength
|
6517 |
+
}
|
6518 |
+
|
6519 |
+
Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
|
6520 |
+
value = +value
|
6521 |
+
offset = offset | 0
|
6522 |
+
byteLength = byteLength | 0
|
6523 |
+
if (!noAssert) {
|
6524 |
+
var maxBytes = Math.pow(2, 8 * byteLength) - 1
|
6525 |
+
checkInt(this, value, offset, byteLength, maxBytes, 0)
|
6526 |
+
}
|
6527 |
+
|
6528 |
+
var i = byteLength - 1
|
6529 |
+
var mul = 1
|
6530 |
+
this[offset + i] = value & 0xFF
|
6531 |
+
while (--i >= 0 && (mul *= 0x100)) {
|
6532 |
+
this[offset + i] = (value / mul) & 0xFF
|
6533 |
+
}
|
6534 |
+
|
6535 |
+
return offset + byteLength
|
6536 |
+
}
|
6537 |
+
|
6538 |
+
Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
|
6539 |
+
value = +value
|
6540 |
+
offset = offset | 0
|
6541 |
+
if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
|
6542 |
+
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
|
6543 |
+
this[offset] = (value & 0xff)
|
6544 |
+
return offset + 1
|
6545 |
+
}
|
6546 |
+
|
6547 |
+
function objectWriteUInt16 (buf, value, offset, littleEndian) {
|
6548 |
+
if (value < 0) value = 0xffff + value + 1
|
6549 |
+
for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
|
6550 |
+
buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
|
6551 |
+
(littleEndian ? i : 1 - i) * 8
|
6552 |
+
}
|
6553 |
+
}
|
6554 |
+
|
6555 |
+
Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
|
6556 |
+
value = +value
|
6557 |
+
offset = offset | 0
|
6558 |
+
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
|
6559 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6560 |
+
this[offset] = (value & 0xff)
|
6561 |
+
this[offset + 1] = (value >>> 8)
|
6562 |
+
} else {
|
6563 |
+
objectWriteUInt16(this, value, offset, true)
|
6564 |
+
}
|
6565 |
+
return offset + 2
|
6566 |
+
}
|
6567 |
+
|
6568 |
+
Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
|
6569 |
+
value = +value
|
6570 |
+
offset = offset | 0
|
6571 |
+
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
|
6572 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6573 |
+
this[offset] = (value >>> 8)
|
6574 |
+
this[offset + 1] = (value & 0xff)
|
6575 |
+
} else {
|
6576 |
+
objectWriteUInt16(this, value, offset, false)
|
6577 |
+
}
|
6578 |
+
return offset + 2
|
6579 |
+
}
|
6580 |
+
|
6581 |
+
function objectWriteUInt32 (buf, value, offset, littleEndian) {
|
6582 |
+
if (value < 0) value = 0xffffffff + value + 1
|
6583 |
+
for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
|
6584 |
+
buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
|
6585 |
+
}
|
6586 |
+
}
|
6587 |
+
|
6588 |
+
Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
|
6589 |
+
value = +value
|
6590 |
+
offset = offset | 0
|
6591 |
+
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
|
6592 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6593 |
+
this[offset + 3] = (value >>> 24)
|
6594 |
+
this[offset + 2] = (value >>> 16)
|
6595 |
+
this[offset + 1] = (value >>> 8)
|
6596 |
+
this[offset] = (value & 0xff)
|
6597 |
+
} else {
|
6598 |
+
objectWriteUInt32(this, value, offset, true)
|
6599 |
+
}
|
6600 |
+
return offset + 4
|
6601 |
+
}
|
6602 |
+
|
6603 |
+
Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
|
6604 |
+
value = +value
|
6605 |
+
offset = offset | 0
|
6606 |
+
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
|
6607 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6608 |
+
this[offset] = (value >>> 24)
|
6609 |
+
this[offset + 1] = (value >>> 16)
|
6610 |
+
this[offset + 2] = (value >>> 8)
|
6611 |
+
this[offset + 3] = (value & 0xff)
|
6612 |
+
} else {
|
6613 |
+
objectWriteUInt32(this, value, offset, false)
|
6614 |
+
}
|
6615 |
+
return offset + 4
|
6616 |
+
}
|
6617 |
+
|
6618 |
+
Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
|
6619 |
+
value = +value
|
6620 |
+
offset = offset | 0
|
6621 |
+
if (!noAssert) {
|
6622 |
+
var limit = Math.pow(2, 8 * byteLength - 1)
|
6623 |
+
|
6624 |
+
checkInt(this, value, offset, byteLength, limit - 1, -limit)
|
6625 |
+
}
|
6626 |
+
|
6627 |
+
var i = 0
|
6628 |
+
var mul = 1
|
6629 |
+
var sub = 0
|
6630 |
+
this[offset] = value & 0xFF
|
6631 |
+
while (++i < byteLength && (mul *= 0x100)) {
|
6632 |
+
if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
|
6633 |
+
sub = 1
|
6634 |
+
}
|
6635 |
+
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
|
6636 |
+
}
|
6637 |
+
|
6638 |
+
return offset + byteLength
|
6639 |
+
}
|
6640 |
+
|
6641 |
+
Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
|
6642 |
+
value = +value
|
6643 |
+
offset = offset | 0
|
6644 |
+
if (!noAssert) {
|
6645 |
+
var limit = Math.pow(2, 8 * byteLength - 1)
|
6646 |
+
|
6647 |
+
checkInt(this, value, offset, byteLength, limit - 1, -limit)
|
6648 |
+
}
|
6649 |
+
|
6650 |
+
var i = byteLength - 1
|
6651 |
+
var mul = 1
|
6652 |
+
var sub = 0
|
6653 |
+
this[offset + i] = value & 0xFF
|
6654 |
+
while (--i >= 0 && (mul *= 0x100)) {
|
6655 |
+
if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
|
6656 |
+
sub = 1
|
6657 |
+
}
|
6658 |
+
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
|
6659 |
+
}
|
6660 |
+
|
6661 |
+
return offset + byteLength
|
6662 |
+
}
|
6663 |
+
|
6664 |
+
Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
|
6665 |
+
value = +value
|
6666 |
+
offset = offset | 0
|
6667 |
+
if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
|
6668 |
+
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
|
6669 |
+
if (value < 0) value = 0xff + value + 1
|
6670 |
+
this[offset] = (value & 0xff)
|
6671 |
+
return offset + 1
|
6672 |
+
}
|
6673 |
+
|
6674 |
+
Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
|
6675 |
+
value = +value
|
6676 |
+
offset = offset | 0
|
6677 |
+
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
|
6678 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6679 |
+
this[offset] = (value & 0xff)
|
6680 |
+
this[offset + 1] = (value >>> 8)
|
6681 |
+
} else {
|
6682 |
+
objectWriteUInt16(this, value, offset, true)
|
6683 |
+
}
|
6684 |
+
return offset + 2
|
6685 |
+
}
|
6686 |
+
|
6687 |
+
Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
|
6688 |
+
value = +value
|
6689 |
+
offset = offset | 0
|
6690 |
+
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
|
6691 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6692 |
+
this[offset] = (value >>> 8)
|
6693 |
+
this[offset + 1] = (value & 0xff)
|
6694 |
+
} else {
|
6695 |
+
objectWriteUInt16(this, value, offset, false)
|
6696 |
+
}
|
6697 |
+
return offset + 2
|
6698 |
+
}
|
6699 |
+
|
6700 |
+
Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
|
6701 |
+
value = +value
|
6702 |
+
offset = offset | 0
|
6703 |
+
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
|
6704 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6705 |
+
this[offset] = (value & 0xff)
|
6706 |
+
this[offset + 1] = (value >>> 8)
|
6707 |
+
this[offset + 2] = (value >>> 16)
|
6708 |
+
this[offset + 3] = (value >>> 24)
|
6709 |
+
} else {
|
6710 |
+
objectWriteUInt32(this, value, offset, true)
|
6711 |
+
}
|
6712 |
+
return offset + 4
|
6713 |
+
}
|
6714 |
+
|
6715 |
+
Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
|
6716 |
+
value = +value
|
6717 |
+
offset = offset | 0
|
6718 |
+
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
|
6719 |
+
if (value < 0) value = 0xffffffff + value + 1
|
6720 |
+
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
6721 |
+
this[offset] = (value >>> 24)
|
6722 |
+
this[offset + 1] = (value >>> 16)
|
6723 |
+
this[offset + 2] = (value >>> 8)
|
6724 |
+
this[offset + 3] = (value & 0xff)
|
6725 |
+
} else {
|
6726 |
+
objectWriteUInt32(this, value, offset, false)
|
6727 |
+
}
|
6728 |
+
return offset + 4
|
6729 |
+
}
|
6730 |
+
|
6731 |
+
function checkIEEE754 (buf, value, offset, ext, max, min) {
|
6732 |
+
if (offset + ext > buf.length) throw new RangeError('Index out of range')
|
6733 |
+
if (offset < 0) throw new RangeError('Index out of range')
|
6734 |
+
}
|
6735 |
+
|
6736 |
+
function writeFloat (buf, value, offset, littleEndian, noAssert) {
|
6737 |
+
if (!noAssert) {
|
6738 |
+
checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
|
6739 |
+
}
|
6740 |
+
ieee754.write(buf, value, offset, littleEndian, 23, 4)
|
6741 |
+
return offset + 4
|
6742 |
+
}
|
6743 |
+
|
6744 |
+
Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
|
6745 |
+
return writeFloat(this, value, offset, true, noAssert)
|
6746 |
+
}
|
6747 |
+
|
6748 |
+
Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
|
6749 |
+
return writeFloat(this, value, offset, false, noAssert)
|
6750 |
+
}
|
6751 |
+
|
6752 |
+
function writeDouble (buf, value, offset, littleEndian, noAssert) {
|
6753 |
+
if (!noAssert) {
|
6754 |
+
checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
|
6755 |
+
}
|
6756 |
+
ieee754.write(buf, value, offset, littleEndian, 52, 8)
|
6757 |
+
return offset + 8
|
6758 |
+
}
|
6759 |
+
|
6760 |
+
Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
|
6761 |
+
return writeDouble(this, value, offset, true, noAssert)
|
6762 |
+
}
|
6763 |
+
|
6764 |
+
Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
|
6765 |
+
return writeDouble(this, value, offset, false, noAssert)
|
6766 |
+
}
|
6767 |
+
|
6768 |
+
// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
|
6769 |
+
Buffer.prototype.copy = function copy (target, targetStart, start, end) {
|
6770 |
+
if (!start) start = 0
|
6771 |
+
if (!end && end !== 0) end = this.length
|
6772 |
+
if (targetStart >= target.length) targetStart = target.length
|
6773 |
+
if (!targetStart) targetStart = 0
|
6774 |
+
if (end > 0 && end < start) end = start
|
6775 |
+
|
6776 |
+
// Copy 0 bytes; we're done
|
6777 |
+
if (end === start) return 0
|
6778 |
+
if (target.length === 0 || this.length === 0) return 0
|
6779 |
+
|
6780 |
+
// Fatal error conditions
|
6781 |
+
if (targetStart < 0) {
|
6782 |
+
throw new RangeError('targetStart out of bounds')
|
6783 |
+
}
|
6784 |
+
if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
|
6785 |
+
if (end < 0) throw new RangeError('sourceEnd out of bounds')
|
6786 |
+
|
6787 |
+
// Are we oob?
|
6788 |
+
if (end > this.length) end = this.length
|
6789 |
+
if (target.length - targetStart < end - start) {
|
6790 |
+
end = target.length - targetStart + start
|
6791 |
+
}
|
6792 |
+
|
6793 |
+
var len = end - start
|
6794 |
+
var i
|
6795 |
+
|
6796 |
+
if (this === target && start < targetStart && targetStart < end) {
|
6797 |
+
// descending copy from end
|
6798 |
+
for (i = len - 1; i >= 0; --i) {
|
6799 |
+
target[i + targetStart] = this[i + start]
|
6800 |
+
}
|
6801 |
+
} else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
|
6802 |
+
// ascending copy from start
|
6803 |
+
for (i = 0; i < len; ++i) {
|
6804 |
+
target[i + targetStart] = this[i + start]
|
6805 |
+
}
|
6806 |
+
} else {
|
6807 |
+
Uint8Array.prototype.set.call(
|
6808 |
+
target,
|
6809 |
+
this.subarray(start, start + len),
|
6810 |
+
targetStart
|
6811 |
+
)
|
6812 |
+
}
|
6813 |
+
|
6814 |
+
return len
|
6815 |
+
}
|
6816 |
+
|
6817 |
+
// Usage:
|
6818 |
+
// buffer.fill(number[, offset[, end]])
|
6819 |
+
// buffer.fill(buffer[, offset[, end]])
|
6820 |
+
// buffer.fill(string[, offset[, end]][, encoding])
|
6821 |
+
Buffer.prototype.fill = function fill (val, start, end, encoding) {
|
6822 |
+
// Handle string cases:
|
6823 |
+
if (typeof val === 'string') {
|
6824 |
+
if (typeof start === 'string') {
|
6825 |
+
encoding = start
|
6826 |
+
start = 0
|
6827 |
+
end = this.length
|
6828 |
+
} else if (typeof end === 'string') {
|
6829 |
+
encoding = end
|
6830 |
+
end = this.length
|
6831 |
+
}
|
6832 |
+
if (val.length === 1) {
|
6833 |
+
var code = val.charCodeAt(0)
|
6834 |
+
if (code < 256) {
|
6835 |
+
val = code
|
6836 |
+
}
|
6837 |
+
}
|
6838 |
+
if (encoding !== undefined && typeof encoding !== 'string') {
|
6839 |
+
throw new TypeError('encoding must be a string')
|
6840 |
+
}
|
6841 |
+
if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
|
6842 |
+
throw new TypeError('Unknown encoding: ' + encoding)
|
6843 |
+
}
|
6844 |
+
} else if (typeof val === 'number') {
|
6845 |
+
val = val & 255
|
6846 |
+
}
|
6847 |
+
|
6848 |
+
// Invalid ranges are not set to a default, so can range check early.
|
6849 |
+
if (start < 0 || this.length < start || this.length < end) {
|
6850 |
+
throw new RangeError('Out of range index')
|
6851 |
+
}
|
6852 |
+
|
6853 |
+
if (end <= start) {
|
6854 |
+
return this
|
6855 |
+
}
|
6856 |
+
|
6857 |
+
start = start >>> 0
|
6858 |
+
end = end === undefined ? this.length : end >>> 0
|
6859 |
+
|
6860 |
+
if (!val) val = 0
|
6861 |
+
|
6862 |
+
var i
|
6863 |
+
if (typeof val === 'number') {
|
6864 |
+
for (i = start; i < end; ++i) {
|
6865 |
+
this[i] = val
|
6866 |
+
}
|
6867 |
+
} else {
|
6868 |
+
var bytes = Buffer.isBuffer(val)
|
6869 |
+
? val
|
6870 |
+
: utf8ToBytes(new Buffer(val, encoding).toString())
|
6871 |
+
var len = bytes.length
|
6872 |
+
for (i = 0; i < end - start; ++i) {
|
6873 |
+
this[i + start] = bytes[i % len]
|
6874 |
+
}
|
6875 |
+
}
|
6876 |
+
|
6877 |
+
return this
|
6878 |
+
}
|
6879 |
+
|
6880 |
+
// HELPER FUNCTIONS
|
6881 |
+
// ================
|
6882 |
+
|
6883 |
+
var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
|
6884 |
+
|
6885 |
+
function base64clean (str) {
|
6886 |
+
// Node strips out invalid characters like \n and \t from the string, base64-js does not
|
6887 |
+
str = stringtrim(str).replace(INVALID_BASE64_RE, '')
|
6888 |
+
// Node converts strings with length < 2 to ''
|
6889 |
+
if (str.length < 2) return ''
|
6890 |
+
// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
|
6891 |
+
while (str.length % 4 !== 0) {
|
6892 |
+
str = str + '='
|
6893 |
+
}
|
6894 |
+
return str
|
6895 |
+
}
|
6896 |
+
|
6897 |
+
function stringtrim (str) {
|
6898 |
+
if (str.trim) return str.trim()
|
6899 |
+
return str.replace(/^\s+|\s+$/g, '')
|
6900 |
+
}
|
6901 |
+
|
6902 |
+
function toHex (n) {
|
6903 |
+
if (n < 16) return '0' + n.toString(16)
|
6904 |
+
return n.toString(16)
|
6905 |
+
}
|
6906 |
+
|
6907 |
+
function utf8ToBytes (string, units) {
|
6908 |
+
units = units || Infinity
|
6909 |
+
var codePoint
|
6910 |
+
var length = string.length
|
6911 |
+
var leadSurrogate = null
|
6912 |
+
var bytes = []
|
6913 |
+
|
6914 |
+
for (var i = 0; i < length; ++i) {
|
6915 |
+
codePoint = string.charCodeAt(i)
|
6916 |
+
|
6917 |
+
// is surrogate component
|
6918 |
+
if (codePoint > 0xD7FF && codePoint < 0xE000) {
|
6919 |
+
// last char was a lead
|
6920 |
+
if (!leadSurrogate) {
|
6921 |
+
// no lead yet
|
6922 |
+
if (codePoint > 0xDBFF) {
|
6923 |
+
// unexpected trail
|
6924 |
+
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
6925 |
+
continue
|
6926 |
+
} else if (i + 1 === length) {
|
6927 |
+
// unpaired lead
|
6928 |
+
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
6929 |
+
continue
|
6930 |
+
}
|
6931 |
+
|
6932 |
+
// valid lead
|
6933 |
+
leadSurrogate = codePoint
|
6934 |
+
|
6935 |
+
continue
|
6936 |
+
}
|
6937 |
+
|
6938 |
+
// 2 leads in a row
|
6939 |
+
if (codePoint < 0xDC00) {
|
6940 |
+
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
6941 |
+
leadSurrogate = codePoint
|
6942 |
+
continue
|
6943 |
+
}
|
6944 |
+
|
6945 |
+
// valid surrogate pair
|
6946 |
+
codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
|
6947 |
+
} else if (leadSurrogate) {
|
6948 |
+
// valid bmp char, but last char was a lead
|
6949 |
+
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
6950 |
+
}
|
6951 |
+
|
6952 |
+
leadSurrogate = null
|
6953 |
+
|
6954 |
+
// encode utf8
|
6955 |
+
if (codePoint < 0x80) {
|
6956 |
+
if ((units -= 1) < 0) break
|
6957 |
+
bytes.push(codePoint)
|
6958 |
+
} else if (codePoint < 0x800) {
|
6959 |
+
if ((units -= 2) < 0) break
|
6960 |
+
bytes.push(
|
6961 |
+
codePoint >> 0x6 | 0xC0,
|
6962 |
+
codePoint & 0x3F | 0x80
|
6963 |
+
)
|
6964 |
+
} else if (codePoint < 0x10000) {
|
6965 |
+
if ((units -= 3) < 0) break
|
6966 |
+
bytes.push(
|
6967 |
+
codePoint >> 0xC | 0xE0,
|
6968 |
+
codePoint >> 0x6 & 0x3F | 0x80,
|
6969 |
+
codePoint & 0x3F | 0x80
|
6970 |
+
)
|
6971 |
+
} else if (codePoint < 0x110000) {
|
6972 |
+
if ((units -= 4) < 0) break
|
6973 |
+
bytes.push(
|
6974 |
+
codePoint >> 0x12 | 0xF0,
|
6975 |
+
codePoint >> 0xC & 0x3F | 0x80,
|
6976 |
+
codePoint >> 0x6 & 0x3F | 0x80,
|
6977 |
+
codePoint & 0x3F | 0x80
|
6978 |
+
)
|
6979 |
+
} else {
|
6980 |
+
throw new Error('Invalid code point')
|
6981 |
+
}
|
6982 |
+
}
|
6983 |
+
|
6984 |
+
return bytes
|
6985 |
+
}
|
6986 |
+
|
6987 |
+
function asciiToBytes (str) {
|
6988 |
+
var byteArray = []
|
6989 |
+
for (var i = 0; i < str.length; ++i) {
|
6990 |
+
// Node's code seems to be doing this and not & 0x7F..
|
6991 |
+
byteArray.push(str.charCodeAt(i) & 0xFF)
|
6992 |
+
}
|
6993 |
+
return byteArray
|
6994 |
+
}
|
6995 |
+
|
6996 |
+
function utf16leToBytes (str, units) {
|
6997 |
+
var c, hi, lo
|
6998 |
+
var byteArray = []
|
6999 |
+
for (var i = 0; i < str.length; ++i) {
|
7000 |
+
if ((units -= 2) < 0) break
|
7001 |
+
|
7002 |
+
c = str.charCodeAt(i)
|
7003 |
+
hi = c >> 8
|
7004 |
+
lo = c % 256
|
7005 |
+
byteArray.push(lo)
|
7006 |
+
byteArray.push(hi)
|
7007 |
+
}
|
7008 |
+
|
7009 |
+
return byteArray
|
7010 |
+
}
|
7011 |
+
|
7012 |
+
function base64ToBytes (str) {
|
7013 |
+
return base64.toByteArray(base64clean(str))
|
7014 |
+
}
|
7015 |
+
|
7016 |
+
function blitBuffer (src, dst, offset, length) {
|
7017 |
+
for (var i = 0; i < length; ++i) {
|
7018 |
+
if ((i + offset >= dst.length) || (i >= src.length)) break
|
7019 |
+
dst[i + offset] = src[i]
|
7020 |
+
}
|
7021 |
+
return i
|
7022 |
+
}
|
7023 |
+
|
7024 |
+
function isnan (val) {
|
7025 |
+
return val !== val // eslint-disable-line no-self-compare
|
7026 |
+
}
|
7027 |
+
|
7028 |
+
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
7029 |
+
},{"base64-js":30,"ieee754":37,"isarray":40}],33:[function(_dereq_,module,exports){
|
7030 |
+
// contains, add, remove, toggle
|
7031 |
+
var indexof = _dereq_('indexof')
|
7032 |
+
|
7033 |
+
module.exports = ClassList
|
7034 |
+
|
7035 |
+
function ClassList(elem) {
|
7036 |
+
var cl = elem.classList
|
7037 |
+
|
7038 |
+
if (cl) {
|
7039 |
+
return cl
|
7040 |
+
}
|
7041 |
+
|
7042 |
+
var classList = {
|
7043 |
+
add: add
|
7044 |
+
, remove: remove
|
7045 |
+
, contains: contains
|
7046 |
+
, toggle: toggle
|
7047 |
+
, toString: $toString
|
7048 |
+
, length: 0
|
7049 |
+
, item: item
|
7050 |
+
}
|
7051 |
+
|
7052 |
+
return classList
|
7053 |
+
|
7054 |
+
function add(token) {
|
7055 |
+
var list = getTokens()
|
7056 |
+
if (indexof(list, token) > -1) {
|
7057 |
+
return
|
7058 |
+
}
|
7059 |
+
list.push(token)
|
7060 |
+
setTokens(list)
|
7061 |
+
}
|
7062 |
+
|
7063 |
+
function remove(token) {
|
7064 |
+
var list = getTokens()
|
7065 |
+
, index = indexof(list, token)
|
7066 |
+
|
7067 |
+
if (index === -1) {
|
7068 |
+
return
|
7069 |
+
}
|
7070 |
+
|
7071 |
+
list.splice(index, 1)
|
7072 |
+
setTokens(list)
|
7073 |
+
}
|
7074 |
+
|
7075 |
+
function contains(token) {
|
7076 |
+
return indexof(getTokens(), token) > -1
|
7077 |
+
}
|
7078 |
+
|
7079 |
+
function toggle(token) {
|
7080 |
+
if (contains(token)) {
|
7081 |
+
remove(token)
|
7082 |
+
return false
|
7083 |
+
} else {
|
7084 |
+
add(token)
|
7085 |
+
return true
|
7086 |
+
}
|
7087 |
+
}
|
7088 |
+
|
7089 |
+
function $toString() {
|
7090 |
+
return elem.className
|
7091 |
+
}
|
7092 |
+
|
7093 |
+
function item(index) {
|
7094 |
+
var tokens = getTokens()
|
7095 |
+
return tokens[index] || null
|
7096 |
+
}
|
7097 |
+
|
7098 |
+
function getTokens() {
|
7099 |
+
var className = elem.className
|
7100 |
+
|
7101 |
+
return filter(className.split(" "), isTruthy)
|
7102 |
+
}
|
7103 |
+
|
7104 |
+
function setTokens(list) {
|
7105 |
+
var length = list.length
|
7106 |
+
|
7107 |
+
elem.className = list.join(" ")
|
7108 |
+
classList.length = length
|
7109 |
+
|
7110 |
+
for (var i = 0; i < list.length; i++) {
|
7111 |
+
classList[i] = list[i]
|
7112 |
+
}
|
7113 |
+
|
7114 |
+
delete list[length]
|
7115 |
+
}
|
7116 |
+
}
|
7117 |
+
|
7118 |
+
function filter (arr, fn) {
|
7119 |
+
var ret = []
|
7120 |
+
for (var i = 0; i < arr.length; i++) {
|
7121 |
+
if (fn(arr[i])) ret.push(arr[i])
|
7122 |
+
}
|
7123 |
+
return ret
|
7124 |
+
}
|
7125 |
+
|
7126 |
+
function isTruthy(value) {
|
7127 |
+
return !!value
|
7128 |
+
}
|
7129 |
+
|
7130 |
+
},{"indexof":38}],34:[function(_dereq_,module,exports){
|
7131 |
+
// DEV: We don't use var but favor parameters since these play nicer with minification
|
7132 |
+
function computedStyle(el, prop, getComputedStyle, style) {
|
7133 |
+
getComputedStyle = window.getComputedStyle;
|
7134 |
+
style =
|
7135 |
+
// If we have getComputedStyle
|
7136 |
+
getComputedStyle ?
|
7137 |
+
// Query it
|
7138 |
+
// TODO: From CSS-Query notes, we might need (node, null) for FF
|
7139 |
+
getComputedStyle(el) :
|
7140 |
+
|
7141 |
+
// Otherwise, we are in IE and use currentStyle
|
7142 |
+
el.currentStyle;
|
7143 |
+
if (style) {
|
7144 |
+
return style
|
7145 |
+
[
|
7146 |
+
// Switch to camelCase for CSSOM
|
7147 |
+
// DEV: Grabbed from jQuery
|
7148 |
+
// https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
|
7149 |
+
// https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
|
7150 |
+
prop.replace(/-(\w)/gi, function (word, letter) {
|
7151 |
+
return letter.toUpperCase();
|
7152 |
+
})
|
7153 |
+
];
|
7154 |
+
}
|
7155 |
+
}
|
7156 |
+
|
7157 |
+
module.exports = computedStyle;
|
7158 |
+
|
7159 |
+
},{}],35:[function(_dereq_,module,exports){
|
7160 |
+
/*!
|
7161 |
+
* https://github.com/es-shims/es5-shim
|
7162 |
+
* @license es5-shim Copyright 2009-2015 by contributors, MIT License
|
7163 |
+
* see https://github.com/es-shims/es5-shim/blob/master/LICENSE
|
7164 |
+
*/
|
7165 |
+
|
7166 |
+
// vim: ts=4 sts=4 sw=4 expandtab
|
7167 |
+
|
7168 |
+
// Add semicolon to prevent IIFE from being passed as argument to concatenated code.
|
7169 |
+
;
|
7170 |
+
|
7171 |
+
// UMD (Universal Module Definition)
|
7172 |
+
// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js
|
7173 |
+
(function (root, factory) {
|
7174 |
+
'use strict';
|
7175 |
+
|
7176 |
+
/* global define, exports, module */
|
7177 |
+
if (typeof define === 'function' && define.amd) {
|
7178 |
+
// AMD. Register as an anonymous module.
|
7179 |
+
define(factory);
|
7180 |
+
} else if (typeof exports === 'object') {
|
7181 |
+
// Node. Does not work with strict CommonJS, but
|
7182 |
+
// only CommonJS-like enviroments that support module.exports,
|
7183 |
+
// like Node.
|
7184 |
+
module.exports = factory();
|
7185 |
+
} else {
|
7186 |
+
// Browser globals (root is window)
|
7187 |
+
root.returnExports = factory();
|
7188 |
+
}
|
7189 |
+
}(this, function () {
|
7190 |
+
/**
|
7191 |
+
* Brings an environment as close to ECMAScript 5 compliance
|
7192 |
+
* as is possible with the facilities of erstwhile engines.
|
7193 |
+
*
|
7194 |
+
* Annotated ES5: http://es5.github.com/ (specific links below)
|
7195 |
+
* ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
|
7196 |
+
* Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
|
7197 |
+
*/
|
7198 |
+
|
7199 |
+
// Shortcut to an often accessed properties, in order to avoid multiple
|
7200 |
+
// dereference that costs universally. This also holds a reference to known-good
|
7201 |
+
// functions.
|
7202 |
+
var $Array = Array;
|
7203 |
+
var ArrayPrototype = $Array.prototype;
|
7204 |
+
var $Object = Object;
|
7205 |
+
var ObjectPrototype = $Object.prototype;
|
7206 |
+
var $Function = Function;
|
7207 |
+
var FunctionPrototype = $Function.prototype;
|
7208 |
+
var $String = String;
|
7209 |
+
var StringPrototype = $String.prototype;
|
7210 |
+
var $Number = Number;
|
7211 |
+
var NumberPrototype = $Number.prototype;
|
7212 |
+
var array_slice = ArrayPrototype.slice;
|
7213 |
+
var array_splice = ArrayPrototype.splice;
|
7214 |
+
var array_push = ArrayPrototype.push;
|
7215 |
+
var array_unshift = ArrayPrototype.unshift;
|
7216 |
+
var array_concat = ArrayPrototype.concat;
|
7217 |
+
var array_join = ArrayPrototype.join;
|
7218 |
+
var call = FunctionPrototype.call;
|
7219 |
+
var apply = FunctionPrototype.apply;
|
7220 |
+
var max = Math.max;
|
7221 |
+
var min = Math.min;
|
7222 |
+
|
7223 |
+
// Having a toString local variable name breaks in Opera so use to_string.
|
7224 |
+
var to_string = ObjectPrototype.toString;
|
7225 |
+
|
7226 |
+
/* global Symbol */
|
7227 |
+
/* eslint-disable one-var-declaration-per-line, no-redeclare, max-statements-per-line */
|
7228 |
+
var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
|
7229 |
+
var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, constructorRegex = /^\s*class /, isES6ClassFn = function isES6ClassFn(value) { try { var fnStr = fnToStr.call(value); var singleStripped = fnStr.replace(/\/\/.*\n/g, ''); var multiStripped = singleStripped.replace(/\/\*[.\s\S]*\*\//g, ''); var spaceStripped = multiStripped.replace(/\n/mg, ' ').replace(/ {2}/g, ' '); return constructorRegex.test(spaceStripped); } catch (e) { return false; /* not a function */ } }, tryFunctionObject = function tryFunctionObject(value) { try { if (isES6ClassFn(value)) { return false; } fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]', isCallable = function isCallable(value) { if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } if (isES6ClassFn(value)) { return false; } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };
|
7230 |
+
|
7231 |
+
var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };
|
7232 |
+
var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };
|
7233 |
+
/* eslint-enable one-var-declaration-per-line, no-redeclare, max-statements-per-line */
|
7234 |
+
|
7235 |
+
/* inlined from http://npmjs.com/define-properties */
|
7236 |
+
var supportsDescriptors = $Object.defineProperty && (function () {
|
7237 |
+
try {
|
7238 |
+
var obj = {};
|
7239 |
+
$Object.defineProperty(obj, 'x', { enumerable: false, value: obj });
|
7240 |
+
for (var _ in obj) { // jscs:ignore disallowUnusedVariables
|
7241 |
+
return false;
|
7242 |
+
}
|
7243 |
+
return obj.x === obj;
|
7244 |
+
} catch (e) { /* this is ES3 */
|
7245 |
+
return false;
|
7246 |
+
}
|
7247 |
+
}());
|
7248 |
+
var defineProperties = (function (has) {
|
7249 |
+
// Define configurable, writable, and non-enumerable props
|
7250 |
+
// if they don't exist.
|
7251 |
+
var defineProperty;
|
7252 |
+
if (supportsDescriptors) {
|
7253 |
+
defineProperty = function (object, name, method, forceAssign) {
|
7254 |
+
if (!forceAssign && (name in object)) {
|
7255 |
+
return;
|
7256 |
+
}
|
7257 |
+
$Object.defineProperty(object, name, {
|
7258 |
+
configurable: true,
|
7259 |
+
enumerable: false,
|
7260 |
+
writable: true,
|
7261 |
+
value: method
|
7262 |
+
});
|
7263 |
+
};
|
7264 |
+
} else {
|
7265 |
+
defineProperty = function (object, name, method, forceAssign) {
|
7266 |
+
if (!forceAssign && (name in object)) {
|
7267 |
+
return;
|
7268 |
+
}
|
7269 |
+
object[name] = method;
|
7270 |
+
};
|
7271 |
+
}
|
7272 |
+
return function defineProperties(object, map, forceAssign) {
|
7273 |
+
for (var name in map) {
|
7274 |
+
if (has.call(map, name)) {
|
7275 |
+
defineProperty(object, name, map[name], forceAssign);
|
7276 |
+
}
|
7277 |
+
}
|
7278 |
+
};
|
7279 |
+
}(ObjectPrototype.hasOwnProperty));
|
7280 |
+
|
7281 |
+
//
|
7282 |
+
// Util
|
7283 |
+
// ======
|
7284 |
+
//
|
7285 |
+
|
7286 |
+
/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */
|
7287 |
+
var isPrimitive = function isPrimitive(input) {
|
7288 |
+
var type = typeof input;
|
7289 |
+
return input === null || (type !== 'object' && type !== 'function');
|
7290 |
+
};
|
7291 |
+
|
7292 |
+
var isActualNaN = $Number.isNaN || function isActualNaN(x) {
|
7293 |
+
return x !== x;
|
7294 |
+
};
|
7295 |
+
|
7296 |
+
var ES = {
|
7297 |
+
// ES5 9.4
|
7298 |
+
// http://es5.github.com/#x9.4
|
7299 |
+
// http://jsperf.com/to-integer
|
7300 |
+
/* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */
|
7301 |
+
ToInteger: function ToInteger(num) {
|
7302 |
+
var n = +num;
|
7303 |
+
if (isActualNaN(n)) {
|
7304 |
+
n = 0;
|
7305 |
+
} else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
|
7306 |
+
n = (n > 0 || -1) * Math.floor(Math.abs(n));
|
7307 |
+
}
|
7308 |
+
return n;
|
7309 |
+
},
|
7310 |
+
|
7311 |
+
/* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */
|
7312 |
+
ToPrimitive: function ToPrimitive(input) {
|
7313 |
+
var val, valueOf, toStr;
|
7314 |
+
if (isPrimitive(input)) {
|
7315 |
+
return input;
|
7316 |
+
}
|
7317 |
+
valueOf = input.valueOf;
|
7318 |
+
if (isCallable(valueOf)) {
|
7319 |
+
val = valueOf.call(input);
|
7320 |
+
if (isPrimitive(val)) {
|
7321 |
+
return val;
|
7322 |
+
}
|
7323 |
+
}
|
7324 |
+
toStr = input.toString;
|
7325 |
+
if (isCallable(toStr)) {
|
7326 |
+
val = toStr.call(input);
|
7327 |
+
if (isPrimitive(val)) {
|
7328 |
+
return val;
|
7329 |
+
}
|
7330 |
+
}
|
7331 |
+
throw new TypeError();
|
7332 |
+
},
|
7333 |
+
|
7334 |
+
// ES5 9.9
|
7335 |
+
// http://es5.github.com/#x9.9
|
7336 |
+
/* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */
|
7337 |
+
ToObject: function (o) {
|
7338 |
+
if (o == null) { // this matches both null and undefined
|
7339 |
+
throw new TypeError("can't convert " + o + ' to object');
|
7340 |
+
}
|
7341 |
+
return $Object(o);
|
7342 |
+
},
|
7343 |
+
|
7344 |
+
/* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */
|
7345 |
+
ToUint32: function ToUint32(x) {
|
7346 |
+
return x >>> 0;
|
7347 |
+
}
|
7348 |
+
};
|
7349 |
+
|
7350 |
+
//
|
7351 |
+
// Function
|
7352 |
+
// ========
|
7353 |
+
//
|
7354 |
+
|
7355 |
+
// ES-5 15.3.4.5
|
7356 |
+
// http://es5.github.com/#x15.3.4.5
|
7357 |
+
|
7358 |
+
var Empty = function Empty() {};
|
7359 |
+
|
7360 |
+
defineProperties(FunctionPrototype, {
|
7361 |
+
bind: function bind(that) { // .length is 1
|
7362 |
+
// 1. Let Target be the this value.
|
7363 |
+
var target = this;
|
7364 |
+
// 2. If IsCallable(Target) is false, throw a TypeError exception.
|
7365 |
+
if (!isCallable(target)) {
|
7366 |
+
throw new TypeError('Function.prototype.bind called on incompatible ' + target);
|
7367 |
+
}
|
7368 |
+
// 3. Let A be a new (possibly empty) internal list of all of the
|
7369 |
+
// argument values provided after thisArg (arg1, arg2 etc), in order.
|
7370 |
+
// XXX slicedArgs will stand in for "A" if used
|
7371 |
+
var args = array_slice.call(arguments, 1); // for normal call
|
7372 |
+
// 4. Let F be a new native ECMAScript object.
|
7373 |
+
// 11. Set the [[Prototype]] internal property of F to the standard
|
7374 |
+
// built-in Function prototype object as specified in 15.3.3.1.
|
7375 |
+
// 12. Set the [[Call]] internal property of F as described in
|
7376 |
+
// 15.3.4.5.1.
|
7377 |
+
// 13. Set the [[Construct]] internal property of F as described in
|
7378 |
+
// 15.3.4.5.2.
|
7379 |
+
// 14. Set the [[HasInstance]] internal property of F as described in
|
7380 |
+
// 15.3.4.5.3.
|
7381 |
+
var bound;
|
7382 |
+
var binder = function () {
|
7383 |
+
|
7384 |
+
if (this instanceof bound) {
|
7385 |
+
// 15.3.4.5.2 [[Construct]]
|
7386 |
+
// When the [[Construct]] internal method of a function object,
|
7387 |
+
// F that was created using the bind function is called with a
|
7388 |
+
// list of arguments ExtraArgs, the following steps are taken:
|
7389 |
+
// 1. Let target be the value of F's [[TargetFunction]]
|
7390 |
+
// internal property.
|
7391 |
+
// 2. If target has no [[Construct]] internal method, a
|
7392 |
+
// TypeError exception is thrown.
|
7393 |
+
// 3. Let boundArgs be the value of F's [[BoundArgs]] internal
|
7394 |
+
// property.
|
7395 |
+
// 4. Let args be a new list containing the same values as the
|
7396 |
+
// list boundArgs in the same order followed by the same
|
7397 |
+
// values as the list ExtraArgs in the same order.
|
7398 |
+
// 5. Return the result of calling the [[Construct]] internal
|
7399 |
+
// method of target providing args as the arguments.
|
7400 |
+
|
7401 |
+
var result = apply.call(
|
7402 |
+
target,
|
7403 |
+
this,
|
7404 |
+
array_concat.call(args, array_slice.call(arguments))
|
7405 |
+
);
|
7406 |
+
if ($Object(result) === result) {
|
7407 |
+
return result;
|
7408 |
+
}
|
7409 |
+
return this;
|
7410 |
+
|
7411 |
+
} else {
|
7412 |
+
// 15.3.4.5.1 [[Call]]
|
7413 |
+
// When the [[Call]] internal method of a function object, F,
|
7414 |
+
// which was created using the bind function is called with a
|
7415 |
+
// this value and a list of arguments ExtraArgs, the following
|
7416 |
+
// steps are taken:
|
7417 |
+
// 1. Let boundArgs be the value of F's [[BoundArgs]] internal
|
7418 |
+
// property.
|
7419 |
+
// 2. Let boundThis be the value of F's [[BoundThis]] internal
|
7420 |
+
// property.
|
7421 |
+
// 3. Let target be the value of F's [[TargetFunction]] internal
|
7422 |
+
// property.
|
7423 |
+
// 4. Let args be a new list containing the same values as the
|
7424 |
+
// list boundArgs in the same order followed by the same
|
7425 |
+
// values as the list ExtraArgs in the same order.
|
7426 |
+
// 5. Return the result of calling the [[Call]] internal method
|
7427 |
+
// of target providing boundThis as the this value and
|
7428 |
+
// providing args as the arguments.
|
7429 |
+
|
7430 |
+
// equiv: target.call(this, ...boundArgs, ...args)
|
7431 |
+
return apply.call(
|
7432 |
+
target,
|
7433 |
+
that,
|
7434 |
+
array_concat.call(args, array_slice.call(arguments))
|
7435 |
+
);
|
7436 |
+
|
7437 |
+
}
|
7438 |
+
|
7439 |
+
};
|
7440 |
+
|
7441 |
+
// 15. If the [[Class]] internal property of Target is "Function", then
|
7442 |
+
// a. Let L be the length property of Target minus the length of A.
|
7443 |
+
// b. Set the length own property of F to either 0 or L, whichever is
|
7444 |
+
// larger.
|
7445 |
+
// 16. Else set the length own property of F to 0.
|
7446 |
+
|
7447 |
+
var boundLength = max(0, target.length - args.length);
|
7448 |
+
|
7449 |
+
// 17. Set the attributes of the length own property of F to the values
|
7450 |
+
// specified in 15.3.5.1.
|
7451 |
+
var boundArgs = [];
|
7452 |
+
for (var i = 0; i < boundLength; i++) {
|
7453 |
+
array_push.call(boundArgs, '$' + i);
|
7454 |
+
}
|
7455 |
+
|
7456 |
+
// XXX Build a dynamic function with desired amount of arguments is the only
|
7457 |
+
// way to set the length property of a function.
|
7458 |
+
// In environments where Content Security Policies enabled (Chrome extensions,
|
7459 |
+
// for ex.) all use of eval or Function costructor throws an exception.
|
7460 |
+
// However in all of these environments Function.prototype.bind exists
|
7461 |
+
// and so this code will never be executed.
|
7462 |
+
bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder);
|
7463 |
+
|
7464 |
+
if (target.prototype) {
|
7465 |
+
Empty.prototype = target.prototype;
|
7466 |
+
bound.prototype = new Empty();
|
7467 |
+
// Clean up dangling references.
|
7468 |
+
Empty.prototype = null;
|
7469 |
+
}
|
7470 |
+
|
7471 |
+
// TODO
|
7472 |
+
// 18. Set the [[Extensible]] internal property of F to true.
|
7473 |
+
|
7474 |
+
// TODO
|
7475 |
+
// 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).
|
7476 |
+
// 20. Call the [[DefineOwnProperty]] internal method of F with
|
7477 |
+
// arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]:
|
7478 |
+
// thrower, [[Enumerable]]: false, [[Configurable]]: false}, and
|
7479 |
+
// false.
|
7480 |
+
// 21. Call the [[DefineOwnProperty]] internal method of F with
|
7481 |
+
// arguments "arguments", PropertyDescriptor {[[Get]]: thrower,
|
7482 |
+
// [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},
|
7483 |
+
// and false.
|
7484 |
+
|
7485 |
+
// TODO
|
7486 |
+
// NOTE Function objects created using Function.prototype.bind do not
|
7487 |
+
// have a prototype property or the [[Code]], [[FormalParameters]], and
|
7488 |
+
// [[Scope]] internal properties.
|
7489 |
+
// XXX can't delete prototype in pure-js.
|
7490 |
+
|
7491 |
+
// 22. Return F.
|
7492 |
+
return bound;
|
7493 |
+
}
|
7494 |
+
});
|
7495 |
+
|
7496 |
+
// _Please note: Shortcuts are defined after `Function.prototype.bind` as we
|
7497 |
+
// use it in defining shortcuts.
|
7498 |
+
var owns = call.bind(ObjectPrototype.hasOwnProperty);
|
7499 |
+
var toStr = call.bind(ObjectPrototype.toString);
|
7500 |
+
var arraySlice = call.bind(array_slice);
|
7501 |
+
var arraySliceApply = apply.bind(array_slice);
|
7502 |
+
var strSlice = call.bind(StringPrototype.slice);
|
7503 |
+
var strSplit = call.bind(StringPrototype.split);
|
7504 |
+
var strIndexOf = call.bind(StringPrototype.indexOf);
|
7505 |
+
var pushCall = call.bind(array_push);
|
7506 |
+
var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable);
|
7507 |
+
var arraySort = call.bind(ArrayPrototype.sort);
|
7508 |
+
|
7509 |
+
//
|
7510 |
+
// Array
|
7511 |
+
// =====
|
7512 |
+
//
|
7513 |
+
|
7514 |
+
var isArray = $Array.isArray || function isArray(obj) {
|
7515 |
+
return toStr(obj) === '[object Array]';
|
7516 |
+
};
|
7517 |
+
|
7518 |
+
// ES5 15.4.4.12
|
7519 |
+
// http://es5.github.com/#x15.4.4.13
|
7520 |
+
// Return len+argCount.
|
7521 |
+
// [bugfix, ielt8]
|
7522 |
+
// IE < 8 bug: [].unshift(0) === undefined but should be "1"
|
7523 |
+
var hasUnshiftReturnValueBug = [].unshift(0) !== 1;
|
7524 |
+
defineProperties(ArrayPrototype, {
|
7525 |
+
unshift: function () {
|
7526 |
+
array_unshift.apply(this, arguments);
|
7527 |
+
return this.length;
|
7528 |
+
}
|
7529 |
+
}, hasUnshiftReturnValueBug);
|
7530 |
+
|
7531 |
+
// ES5 15.4.3.2
|
7532 |
+
// http://es5.github.com/#x15.4.3.2
|
7533 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
|
7534 |
+
defineProperties($Array, { isArray: isArray });
|
7535 |
+
|
7536 |
+
// The IsCallable() check in the Array functions
|
7537 |
+
// has been replaced with a strict check on the
|
7538 |
+
// internal class of the object to trap cases where
|
7539 |
+
// the provided function was actually a regular
|
7540 |
+
// expression literal, which in V8 and
|
7541 |
+
// JavaScriptCore is a typeof "function". Only in
|
7542 |
+
// V8 are regular expression literals permitted as
|
7543 |
+
// reduce parameters, so it is desirable in the
|
7544 |
+
// general case for the shim to match the more
|
7545 |
+
// strict and common behavior of rejecting regular
|
7546 |
+
// expressions.
|
7547 |
+
|
7548 |
+
// ES5 15.4.4.18
|
7549 |
+
// http://es5.github.com/#x15.4.4.18
|
7550 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach
|
7551 |
+
|
7552 |
+
// Check failure of by-index access of string characters (IE < 9)
|
7553 |
+
// and failure of `0 in boxedString` (Rhino)
|
7554 |
+
var boxedString = $Object('a');
|
7555 |
+
var splitString = boxedString[0] !== 'a' || !(0 in boxedString);
|
7556 |
+
|
7557 |
+
var properlyBoxesContext = function properlyBoxed(method) {
|
7558 |
+
// Check node 0.6.21 bug where third parameter is not boxed
|
7559 |
+
var properlyBoxesNonStrict = true;
|
7560 |
+
var properlyBoxesStrict = true;
|
7561 |
+
var threwException = false;
|
7562 |
+
if (method) {
|
7563 |
+
try {
|
7564 |
+
method.call('foo', function (_, __, context) {
|
7565 |
+
if (typeof context !== 'object') {
|
7566 |
+
properlyBoxesNonStrict = false;
|
7567 |
+
}
|
7568 |
+
});
|
7569 |
+
|
7570 |
+
method.call([1], function () {
|
7571 |
+
'use strict';
|
7572 |
+
|
7573 |
+
properlyBoxesStrict = typeof this === 'string';
|
7574 |
+
}, 'x');
|
7575 |
+
} catch (e) {
|
7576 |
+
threwException = true;
|
7577 |
+
}
|
7578 |
+
}
|
7579 |
+
return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict;
|
7580 |
+
};
|
7581 |
+
|
7582 |
+
defineProperties(ArrayPrototype, {
|
7583 |
+
forEach: function forEach(callbackfn/*, thisArg*/) {
|
7584 |
+
var object = ES.ToObject(this);
|
7585 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7586 |
+
var i = -1;
|
7587 |
+
var length = ES.ToUint32(self.length);
|
7588 |
+
var T;
|
7589 |
+
if (arguments.length > 1) {
|
7590 |
+
T = arguments[1];
|
7591 |
+
}
|
7592 |
+
|
7593 |
+
// If no callback function or if callback is not a callable function
|
7594 |
+
if (!isCallable(callbackfn)) {
|
7595 |
+
throw new TypeError('Array.prototype.forEach callback must be a function');
|
7596 |
+
}
|
7597 |
+
|
7598 |
+
while (++i < length) {
|
7599 |
+
if (i in self) {
|
7600 |
+
// Invoke the callback function with call, passing arguments:
|
7601 |
+
// context, property value, property key, thisArg object
|
7602 |
+
if (typeof T === 'undefined') {
|
7603 |
+
callbackfn(self[i], i, object);
|
7604 |
+
} else {
|
7605 |
+
callbackfn.call(T, self[i], i, object);
|
7606 |
+
}
|
7607 |
+
}
|
7608 |
+
}
|
7609 |
+
}
|
7610 |
+
}, !properlyBoxesContext(ArrayPrototype.forEach));
|
7611 |
+
|
7612 |
+
// ES5 15.4.4.19
|
7613 |
+
// http://es5.github.com/#x15.4.4.19
|
7614 |
+
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
|
7615 |
+
defineProperties(ArrayPrototype, {
|
7616 |
+
map: function map(callbackfn/*, thisArg*/) {
|
7617 |
+
var object = ES.ToObject(this);
|
7618 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7619 |
+
var length = ES.ToUint32(self.length);
|
7620 |
+
var result = $Array(length);
|
7621 |
+
var T;
|
7622 |
+
if (arguments.length > 1) {
|
7623 |
+
T = arguments[1];
|
7624 |
+
}
|
7625 |
+
|
7626 |
+
// If no callback function or if callback is not a callable function
|
7627 |
+
if (!isCallable(callbackfn)) {
|
7628 |
+
throw new TypeError('Array.prototype.map callback must be a function');
|
7629 |
+
}
|
7630 |
+
|
7631 |
+
for (var i = 0; i < length; i++) {
|
7632 |
+
if (i in self) {
|
7633 |
+
if (typeof T === 'undefined') {
|
7634 |
+
result[i] = callbackfn(self[i], i, object);
|
7635 |
+
} else {
|
7636 |
+
result[i] = callbackfn.call(T, self[i], i, object);
|
7637 |
+
}
|
7638 |
+
}
|
7639 |
+
}
|
7640 |
+
return result;
|
7641 |
+
}
|
7642 |
+
}, !properlyBoxesContext(ArrayPrototype.map));
|
7643 |
+
|
7644 |
+
// ES5 15.4.4.20
|
7645 |
+
// http://es5.github.com/#x15.4.4.20
|
7646 |
+
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter
|
7647 |
+
defineProperties(ArrayPrototype, {
|
7648 |
+
filter: function filter(callbackfn/*, thisArg*/) {
|
7649 |
+
var object = ES.ToObject(this);
|
7650 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7651 |
+
var length = ES.ToUint32(self.length);
|
7652 |
+
var result = [];
|
7653 |
+
var value;
|
7654 |
+
var T;
|
7655 |
+
if (arguments.length > 1) {
|
7656 |
+
T = arguments[1];
|
7657 |
+
}
|
7658 |
+
|
7659 |
+
// If no callback function or if callback is not a callable function
|
7660 |
+
if (!isCallable(callbackfn)) {
|
7661 |
+
throw new TypeError('Array.prototype.filter callback must be a function');
|
7662 |
+
}
|
7663 |
+
|
7664 |
+
for (var i = 0; i < length; i++) {
|
7665 |
+
if (i in self) {
|
7666 |
+
value = self[i];
|
7667 |
+
if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {
|
7668 |
+
pushCall(result, value);
|
7669 |
+
}
|
7670 |
+
}
|
7671 |
+
}
|
7672 |
+
return result;
|
7673 |
+
}
|
7674 |
+
}, !properlyBoxesContext(ArrayPrototype.filter));
|
7675 |
+
|
7676 |
+
// ES5 15.4.4.16
|
7677 |
+
// http://es5.github.com/#x15.4.4.16
|
7678 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
|
7679 |
+
defineProperties(ArrayPrototype, {
|
7680 |
+
every: function every(callbackfn/*, thisArg*/) {
|
7681 |
+
var object = ES.ToObject(this);
|
7682 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7683 |
+
var length = ES.ToUint32(self.length);
|
7684 |
+
var T;
|
7685 |
+
if (arguments.length > 1) {
|
7686 |
+
T = arguments[1];
|
7687 |
+
}
|
7688 |
+
|
7689 |
+
// If no callback function or if callback is not a callable function
|
7690 |
+
if (!isCallable(callbackfn)) {
|
7691 |
+
throw new TypeError('Array.prototype.every callback must be a function');
|
7692 |
+
}
|
7693 |
+
|
7694 |
+
for (var i = 0; i < length; i++) {
|
7695 |
+
if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
|
7696 |
+
return false;
|
7697 |
+
}
|
7698 |
+
}
|
7699 |
+
return true;
|
7700 |
+
}
|
7701 |
+
}, !properlyBoxesContext(ArrayPrototype.every));
|
7702 |
+
|
7703 |
+
// ES5 15.4.4.17
|
7704 |
+
// http://es5.github.com/#x15.4.4.17
|
7705 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
|
7706 |
+
defineProperties(ArrayPrototype, {
|
7707 |
+
some: function some(callbackfn/*, thisArg */) {
|
7708 |
+
var object = ES.ToObject(this);
|
7709 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7710 |
+
var length = ES.ToUint32(self.length);
|
7711 |
+
var T;
|
7712 |
+
if (arguments.length > 1) {
|
7713 |
+
T = arguments[1];
|
7714 |
+
}
|
7715 |
+
|
7716 |
+
// If no callback function or if callback is not a callable function
|
7717 |
+
if (!isCallable(callbackfn)) {
|
7718 |
+
throw new TypeError('Array.prototype.some callback must be a function');
|
7719 |
+
}
|
7720 |
+
|
7721 |
+
for (var i = 0; i < length; i++) {
|
7722 |
+
if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
|
7723 |
+
return true;
|
7724 |
+
}
|
7725 |
+
}
|
7726 |
+
return false;
|
7727 |
+
}
|
7728 |
+
}, !properlyBoxesContext(ArrayPrototype.some));
|
7729 |
+
|
7730 |
+
// ES5 15.4.4.21
|
7731 |
+
// http://es5.github.com/#x15.4.4.21
|
7732 |
+
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce
|
7733 |
+
var reduceCoercesToObject = false;
|
7734 |
+
if (ArrayPrototype.reduce) {
|
7735 |
+
reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) {
|
7736 |
+
return list;
|
7737 |
+
}) === 'object';
|
7738 |
+
}
|
7739 |
+
defineProperties(ArrayPrototype, {
|
7740 |
+
reduce: function reduce(callbackfn/*, initialValue*/) {
|
7741 |
+
var object = ES.ToObject(this);
|
7742 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7743 |
+
var length = ES.ToUint32(self.length);
|
7744 |
+
|
7745 |
+
// If no callback function or if callback is not a callable function
|
7746 |
+
if (!isCallable(callbackfn)) {
|
7747 |
+
throw new TypeError('Array.prototype.reduce callback must be a function');
|
7748 |
+
}
|
7749 |
+
|
7750 |
+
// no value to return if no initial value and an empty array
|
7751 |
+
if (length === 0 && arguments.length === 1) {
|
7752 |
+
throw new TypeError('reduce of empty array with no initial value');
|
7753 |
+
}
|
7754 |
+
|
7755 |
+
var i = 0;
|
7756 |
+
var result;
|
7757 |
+
if (arguments.length >= 2) {
|
7758 |
+
result = arguments[1];
|
7759 |
+
} else {
|
7760 |
+
do {
|
7761 |
+
if (i in self) {
|
7762 |
+
result = self[i++];
|
7763 |
+
break;
|
7764 |
+
}
|
7765 |
+
|
7766 |
+
// if array contains no values, no initial value to return
|
7767 |
+
if (++i >= length) {
|
7768 |
+
throw new TypeError('reduce of empty array with no initial value');
|
7769 |
+
}
|
7770 |
+
} while (true);
|
7771 |
+
}
|
7772 |
+
|
7773 |
+
for (; i < length; i++) {
|
7774 |
+
if (i in self) {
|
7775 |
+
result = callbackfn(result, self[i], i, object);
|
7776 |
+
}
|
7777 |
+
}
|
7778 |
+
|
7779 |
+
return result;
|
7780 |
+
}
|
7781 |
+
}, !reduceCoercesToObject);
|
7782 |
+
|
7783 |
+
// ES5 15.4.4.22
|
7784 |
+
// http://es5.github.com/#x15.4.4.22
|
7785 |
+
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight
|
7786 |
+
var reduceRightCoercesToObject = false;
|
7787 |
+
if (ArrayPrototype.reduceRight) {
|
7788 |
+
reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) {
|
7789 |
+
return list;
|
7790 |
+
}) === 'object';
|
7791 |
+
}
|
7792 |
+
defineProperties(ArrayPrototype, {
|
7793 |
+
reduceRight: function reduceRight(callbackfn/*, initial*/) {
|
7794 |
+
var object = ES.ToObject(this);
|
7795 |
+
var self = splitString && isString(this) ? strSplit(this, '') : object;
|
7796 |
+
var length = ES.ToUint32(self.length);
|
7797 |
+
|
7798 |
+
// If no callback function or if callback is not a callable function
|
7799 |
+
if (!isCallable(callbackfn)) {
|
7800 |
+
throw new TypeError('Array.prototype.reduceRight callback must be a function');
|
7801 |
+
}
|
7802 |
+
|
7803 |
+
// no value to return if no initial value, empty array
|
7804 |
+
if (length === 0 && arguments.length === 1) {
|
7805 |
+
throw new TypeError('reduceRight of empty array with no initial value');
|
7806 |
+
}
|
7807 |
+
|
7808 |
+
var result;
|
7809 |
+
var i = length - 1;
|
7810 |
+
if (arguments.length >= 2) {
|
7811 |
+
result = arguments[1];
|
7812 |
+
} else {
|
7813 |
+
do {
|
7814 |
+
if (i in self) {
|
7815 |
+
result = self[i--];
|
7816 |
+
break;
|
7817 |
+
}
|
7818 |
+
|
7819 |
+
// if array contains no values, no initial value to return
|
7820 |
+
if (--i < 0) {
|
7821 |
+
throw new TypeError('reduceRight of empty array with no initial value');
|
7822 |
+
}
|
7823 |
+
} while (true);
|
7824 |
+
}
|
7825 |
+
|
7826 |
+
if (i < 0) {
|
7827 |
+
return result;
|
7828 |
+
}
|
7829 |
+
|
7830 |
+
do {
|
7831 |
+
if (i in self) {
|
7832 |
+
result = callbackfn(result, self[i], i, object);
|
7833 |
+
}
|
7834 |
+
} while (i--);
|
7835 |
+
|
7836 |
+
return result;
|
7837 |
+
}
|
7838 |
+
}, !reduceRightCoercesToObject);
|
7839 |
+
|
7840 |
+
// ES5 15.4.4.14
|
7841 |
+
// http://es5.github.com/#x15.4.4.14
|
7842 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
|
7843 |
+
var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;
|
7844 |
+
defineProperties(ArrayPrototype, {
|
7845 |
+
indexOf: function indexOf(searchElement/*, fromIndex */) {
|
7846 |
+
var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);
|
7847 |
+
var length = ES.ToUint32(self.length);
|
7848 |
+
|
7849 |
+
if (length === 0) {
|
7850 |
+
return -1;
|
7851 |
+
}
|
7852 |
+
|
7853 |
+
var i = 0;
|
7854 |
+
if (arguments.length > 1) {
|
7855 |
+
i = ES.ToInteger(arguments[1]);
|
7856 |
+
}
|
7857 |
+
|
7858 |
+
// handle negative indices
|
7859 |
+
i = i >= 0 ? i : max(0, length + i);
|
7860 |
+
for (; i < length; i++) {
|
7861 |
+
if (i in self && self[i] === searchElement) {
|
7862 |
+
return i;
|
7863 |
+
}
|
7864 |
+
}
|
7865 |
+
return -1;
|
7866 |
+
}
|
7867 |
+
}, hasFirefox2IndexOfBug);
|
7868 |
+
|
7869 |
+
// ES5 15.4.4.15
|
7870 |
+
// http://es5.github.com/#x15.4.4.15
|
7871 |
+
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf
|
7872 |
+
var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;
|
7873 |
+
defineProperties(ArrayPrototype, {
|
7874 |
+
lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) {
|
7875 |
+
var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);
|
7876 |
+
var length = ES.ToUint32(self.length);
|
7877 |
+
|
7878 |
+
if (length === 0) {
|
7879 |
+
return -1;
|
7880 |
+
}
|
7881 |
+
var i = length - 1;
|
7882 |
+
if (arguments.length > 1) {
|
7883 |
+
i = min(i, ES.ToInteger(arguments[1]));
|
7884 |
+
}
|
7885 |
+
// handle negative indices
|
7886 |
+
i = i >= 0 ? i : length - Math.abs(i);
|
7887 |
+
for (; i >= 0; i--) {
|
7888 |
+
if (i in self && searchElement === self[i]) {
|
7889 |
+
return i;
|
7890 |
+
}
|
7891 |
+
}
|
7892 |
+
return -1;
|
7893 |
+
}
|
7894 |
+
}, hasFirefox2LastIndexOfBug);
|
7895 |
+
|
7896 |
+
// ES5 15.4.4.12
|
7897 |
+
// http://es5.github.com/#x15.4.4.12
|
7898 |
+
var spliceNoopReturnsEmptyArray = (function () {
|
7899 |
+
var a = [1, 2];
|
7900 |
+
var result = a.splice();
|
7901 |
+
return a.length === 2 && isArray(result) && result.length === 0;
|
7902 |
+
}());
|
7903 |
+
defineProperties(ArrayPrototype, {
|
7904 |
+
// Safari 5.0 bug where .splice() returns undefined
|
7905 |
+
splice: function splice(start, deleteCount) {
|
7906 |
+
if (arguments.length === 0) {
|
7907 |
+
return [];
|
7908 |
+
} else {
|
7909 |
+
return array_splice.apply(this, arguments);
|
7910 |
+
}
|
7911 |
+
}
|
7912 |
+
}, !spliceNoopReturnsEmptyArray);
|
7913 |
+
|
7914 |
+
var spliceWorksWithEmptyObject = (function () {
|
7915 |
+
var obj = {};
|
7916 |
+
ArrayPrototype.splice.call(obj, 0, 0, 1);
|
7917 |
+
return obj.length === 1;
|
7918 |
+
}());
|
7919 |
+
defineProperties(ArrayPrototype, {
|
7920 |
+
splice: function splice(start, deleteCount) {
|
7921 |
+
if (arguments.length === 0) {
|
7922 |
+
return [];
|
7923 |
+
}
|
7924 |
+
var args = arguments;
|
7925 |
+
this.length = max(ES.ToInteger(this.length), 0);
|
7926 |
+
if (arguments.length > 0 && typeof deleteCount !== 'number') {
|
7927 |
+
args = arraySlice(arguments);
|
7928 |
+
if (args.length < 2) {
|
7929 |
+
pushCall(args, this.length - start);
|
7930 |
+
} else {
|
7931 |
+
args[1] = ES.ToInteger(deleteCount);
|
7932 |
+
}
|
7933 |
+
}
|
7934 |
+
return array_splice.apply(this, args);
|
7935 |
+
}
|
7936 |
+
}, !spliceWorksWithEmptyObject);
|
7937 |
+
var spliceWorksWithLargeSparseArrays = (function () {
|
7938 |
+
// Per https://github.com/es-shims/es5-shim/issues/295
|
7939 |
+
// Safari 7/8 breaks with sparse arrays of size 1e5 or greater
|
7940 |
+
var arr = new $Array(1e5);
|
7941 |
+
// note: the index MUST be 8 or larger or the test will false pass
|
7942 |
+
arr[8] = 'x';
|
7943 |
+
arr.splice(1, 1);
|
7944 |
+
// note: this test must be defined *after* the indexOf shim
|
7945 |
+
// per https://github.com/es-shims/es5-shim/issues/313
|
7946 |
+
return arr.indexOf('x') === 7;
|
7947 |
+
}());
|
7948 |
+
var spliceWorksWithSmallSparseArrays = (function () {
|
7949 |
+
// Per https://github.com/es-shims/es5-shim/issues/295
|
7950 |
+
// Opera 12.15 breaks on this, no idea why.
|
7951 |
+
var n = 256;
|
7952 |
+
var arr = [];
|
7953 |
+
arr[n] = 'a';
|
7954 |
+
arr.splice(n + 1, 0, 'b');
|
7955 |
+
return arr[n] === 'a';
|
7956 |
+
}());
|
7957 |
+
defineProperties(ArrayPrototype, {
|
7958 |
+
splice: function splice(start, deleteCount) {
|
7959 |
+
var O = ES.ToObject(this);
|
7960 |
+
var A = [];
|
7961 |
+
var len = ES.ToUint32(O.length);
|
7962 |
+
var relativeStart = ES.ToInteger(start);
|
7963 |
+
var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);
|
7964 |
+
var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);
|
7965 |
+
|
7966 |
+
var k = 0;
|
7967 |
+
var from;
|
7968 |
+
while (k < actualDeleteCount) {
|
7969 |
+
from = $String(actualStart + k);
|
7970 |
+
if (owns(O, from)) {
|
7971 |
+
A[k] = O[from];
|
7972 |
+
}
|
7973 |
+
k += 1;
|
7974 |
+
}
|
7975 |
+
|
7976 |
+
var items = arraySlice(arguments, 2);
|
7977 |
+
var itemCount = items.length;
|
7978 |
+
var to;
|
7979 |
+
if (itemCount < actualDeleteCount) {
|
7980 |
+
k = actualStart;
|
7981 |
+
var maxK = len - actualDeleteCount;
|
7982 |
+
while (k < maxK) {
|
7983 |
+
from = $String(k + actualDeleteCount);
|
7984 |
+
to = $String(k + itemCount);
|
7985 |
+
if (owns(O, from)) {
|
7986 |
+
O[to] = O[from];
|
7987 |
+
} else {
|
7988 |
+
delete O[to];
|
7989 |
+
}
|
7990 |
+
k += 1;
|
7991 |
+
}
|
7992 |
+
k = len;
|
7993 |
+
var minK = len - actualDeleteCount + itemCount;
|
7994 |
+
while (k > minK) {
|
7995 |
+
delete O[k - 1];
|
7996 |
+
k -= 1;
|
7997 |
+
}
|
7998 |
+
} else if (itemCount > actualDeleteCount) {
|
7999 |
+
k = len - actualDeleteCount;
|
8000 |
+
while (k > actualStart) {
|
8001 |
+
from = $String(k + actualDeleteCount - 1);
|
8002 |
+
to = $String(k + itemCount - 1);
|
8003 |
+
if (owns(O, from)) {
|
8004 |
+
O[to] = O[from];
|
8005 |
+
} else {
|
8006 |
+
delete O[to];
|
8007 |
+
}
|
8008 |
+
k -= 1;
|
8009 |
+
}
|
8010 |
+
}
|
8011 |
+
k = actualStart;
|
8012 |
+
for (var i = 0; i < items.length; ++i) {
|
8013 |
+
O[k] = items[i];
|
8014 |
+
k += 1;
|
8015 |
+
}
|
8016 |
+
O.length = len - actualDeleteCount + itemCount;
|
8017 |
+
|
8018 |
+
return A;
|
8019 |
+
}
|
8020 |
+
}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);
|
8021 |
+
|
8022 |
+
var originalJoin = ArrayPrototype.join;
|
8023 |
+
var hasStringJoinBug;
|
8024 |
+
try {
|
8025 |
+
hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3';
|
8026 |
+
} catch (e) {
|
8027 |
+
hasStringJoinBug = true;
|
8028 |
+
}
|
8029 |
+
if (hasStringJoinBug) {
|
8030 |
+
defineProperties(ArrayPrototype, {
|
8031 |
+
join: function join(separator) {
|
8032 |
+
var sep = typeof separator === 'undefined' ? ',' : separator;
|
8033 |
+
return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep);
|
8034 |
+
}
|
8035 |
+
}, hasStringJoinBug);
|
8036 |
+
}
|
8037 |
+
|
8038 |
+
var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';
|
8039 |
+
if (hasJoinUndefinedBug) {
|
8040 |
+
defineProperties(ArrayPrototype, {
|
8041 |
+
join: function join(separator) {
|
8042 |
+
var sep = typeof separator === 'undefined' ? ',' : separator;
|
8043 |
+
return originalJoin.call(this, sep);
|
8044 |
+
}
|
8045 |
+
}, hasJoinUndefinedBug);
|
8046 |
+
}
|
8047 |
+
|
8048 |
+
var pushShim = function push(item) {
|
8049 |
+
var O = ES.ToObject(this);
|
8050 |
+
var n = ES.ToUint32(O.length);
|
8051 |
+
var i = 0;
|
8052 |
+
while (i < arguments.length) {
|
8053 |
+
O[n + i] = arguments[i];
|
8054 |
+
i += 1;
|
8055 |
+
}
|
8056 |
+
O.length = n + i;
|
8057 |
+
return n + i;
|
8058 |
+
};
|
8059 |
+
|
8060 |
+
var pushIsNotGeneric = (function () {
|
8061 |
+
var obj = {};
|
8062 |
+
var result = Array.prototype.push.call(obj, undefined);
|
8063 |
+
return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);
|
8064 |
+
}());
|
8065 |
+
defineProperties(ArrayPrototype, {
|
8066 |
+
push: function push(item) {
|
8067 |
+
if (isArray(this)) {
|
8068 |
+
return array_push.apply(this, arguments);
|
8069 |
+
}
|
8070 |
+
return pushShim.apply(this, arguments);
|
8071 |
+
}
|
8072 |
+
}, pushIsNotGeneric);
|
8073 |
+
|
8074 |
+
// This fixes a very weird bug in Opera 10.6 when pushing `undefined
|
8075 |
+
var pushUndefinedIsWeird = (function () {
|
8076 |
+
var arr = [];
|
8077 |
+
var result = arr.push(undefined);
|
8078 |
+
return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);
|
8079 |
+
}());
|
8080 |
+
defineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird);
|
8081 |
+
|
8082 |
+
// ES5 15.2.3.14
|
8083 |
+
// http://es5.github.io/#x15.4.4.10
|
8084 |
+
// Fix boxed string bug
|
8085 |
+
defineProperties(ArrayPrototype, {
|
8086 |
+
slice: function (start, end) {
|
8087 |
+
var arr = isString(this) ? strSplit(this, '') : this;
|
8088 |
+
return arraySliceApply(arr, arguments);
|
8089 |
+
}
|
8090 |
+
}, splitString);
|
8091 |
+
|
8092 |
+
var sortIgnoresNonFunctions = (function () {
|
8093 |
+
try {
|
8094 |
+
[1, 2].sort(null);
|
8095 |
+
[1, 2].sort({});
|
8096 |
+
return true;
|
8097 |
+
} catch (e) {}
|
8098 |
+
return false;
|
8099 |
+
}());
|
8100 |
+
var sortThrowsOnRegex = (function () {
|
8101 |
+
// this is a problem in Firefox 4, in which `typeof /a/ === 'function'`
|
8102 |
+
try {
|
8103 |
+
[1, 2].sort(/a/);
|
8104 |
+
return false;
|
8105 |
+
} catch (e) {}
|
8106 |
+
return true;
|
8107 |
+
}());
|
8108 |
+
var sortIgnoresUndefined = (function () {
|
8109 |
+
// applies in IE 8, for one.
|
8110 |
+
try {
|
8111 |
+
[1, 2].sort(undefined);
|
8112 |
+
return true;
|
8113 |
+
} catch (e) {}
|
8114 |
+
return false;
|
8115 |
+
}());
|
8116 |
+
defineProperties(ArrayPrototype, {
|
8117 |
+
sort: function sort(compareFn) {
|
8118 |
+
if (typeof compareFn === 'undefined') {
|
8119 |
+
return arraySort(this);
|
8120 |
+
}
|
8121 |
+
if (!isCallable(compareFn)) {
|
8122 |
+
throw new TypeError('Array.prototype.sort callback must be a function');
|
8123 |
+
}
|
8124 |
+
return arraySort(this, compareFn);
|
8125 |
+
}
|
8126 |
+
}, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex);
|
8127 |
+
|
8128 |
+
//
|
8129 |
+
// Object
|
8130 |
+
// ======
|
8131 |
+
//
|
8132 |
+
|
8133 |
+
// ES5 15.2.3.14
|
8134 |
+
// http://es5.github.com/#x15.2.3.14
|
8135 |
+
|
8136 |
+
// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
|
8137 |
+
var hasDontEnumBug = !isEnum({ 'toString': null }, 'toString');
|
8138 |
+
var hasProtoEnumBug = isEnum(function () {}, 'prototype');
|
8139 |
+
var hasStringEnumBug = !owns('x', '0');
|
8140 |
+
var equalsConstructorPrototype = function (o) {
|
8141 |
+
var ctor = o.constructor;
|
8142 |
+
return ctor && ctor.prototype === o;
|
8143 |
+
};
|
8144 |
+
var blacklistedKeys = {
|
8145 |
+
$window: true,
|
8146 |
+
$console: true,
|
8147 |
+
$parent: true,
|
8148 |
+
$self: true,
|
8149 |
+
$frame: true,
|
8150 |
+
$frames: true,
|
8151 |
+
$frameElement: true,
|
8152 |
+
$webkitIndexedDB: true,
|
8153 |
+
$webkitStorageInfo: true,
|
8154 |
+
$external: true
|
8155 |
+
};
|
8156 |
+
var hasAutomationEqualityBug = (function () {
|
8157 |
+
/* globals window */
|
8158 |
+
if (typeof window === 'undefined') {
|
8159 |
+
return false;
|
8160 |
+
}
|
8161 |
+
for (var k in window) {
|
8162 |
+
try {
|
8163 |
+
if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {
|
8164 |
+
equalsConstructorPrototype(window[k]);
|
8165 |
+
}
|
8166 |
+
} catch (e) {
|
8167 |
+
return true;
|
8168 |
+
}
|
8169 |
+
}
|
8170 |
+
return false;
|
8171 |
+
}());
|
8172 |
+
var equalsConstructorPrototypeIfNotBuggy = function (object) {
|
8173 |
+
if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
|
8174 |
+
return equalsConstructorPrototype(object);
|
8175 |
+
}
|
8176 |
+
try {
|
8177 |
+
return equalsConstructorPrototype(object);
|
8178 |
+
} catch (e) {
|
8179 |
+
return false;
|
8180 |
+
}
|
8181 |
+
};
|
8182 |
+
var dontEnums = [
|
8183 |
+
'toString',
|
8184 |
+
'toLocaleString',
|
8185 |
+
'valueOf',
|
8186 |
+
'hasOwnProperty',
|
8187 |
+
'isPrototypeOf',
|
8188 |
+
'propertyIsEnumerable',
|
8189 |
+
'constructor'
|
8190 |
+
];
|
8191 |
+
var dontEnumsLength = dontEnums.length;
|
8192 |
+
|
8193 |
+
// taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js
|
8194 |
+
// can be replaced with require('is-arguments') if we ever use a build process instead
|
8195 |
+
var isStandardArguments = function isArguments(value) {
|
8196 |
+
return toStr(value) === '[object Arguments]';
|
8197 |
+
};
|
8198 |
+
var isLegacyArguments = function isArguments(value) {
|
8199 |
+
return value !== null &&
|
8200 |
+
typeof value === 'object' &&
|
8201 |
+
typeof value.length === 'number' &&
|
8202 |
+
value.length >= 0 &&
|
8203 |
+
!isArray(value) &&
|
8204 |
+
isCallable(value.callee);
|
8205 |
+
};
|
8206 |
+
var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;
|
8207 |
+
|
8208 |
+
defineProperties($Object, {
|
8209 |
+
keys: function keys(object) {
|
8210 |
+
var isFn = isCallable(object);
|
8211 |
+
var isArgs = isArguments(object);
|
8212 |
+
var isObject = object !== null && typeof object === 'object';
|
8213 |
+
var isStr = isObject && isString(object);
|
8214 |
+
|
8215 |
+
if (!isObject && !isFn && !isArgs) {
|
8216 |
+
throw new TypeError('Object.keys called on a non-object');
|
8217 |
+
}
|
8218 |
+
|
8219 |
+
var theKeys = [];
|
8220 |
+
var skipProto = hasProtoEnumBug && isFn;
|
8221 |
+
if ((isStr && hasStringEnumBug) || isArgs) {
|
8222 |
+
for (var i = 0; i < object.length; ++i) {
|
8223 |
+
pushCall(theKeys, $String(i));
|
8224 |
+
}
|
8225 |
+
}
|
8226 |
+
|
8227 |
+
if (!isArgs) {
|
8228 |
+
for (var name in object) {
|
8229 |
+
if (!(skipProto && name === 'prototype') && owns(object, name)) {
|
8230 |
+
pushCall(theKeys, $String(name));
|
8231 |
+
}
|
8232 |
+
}
|
8233 |
+
}
|
8234 |
+
|
8235 |
+
if (hasDontEnumBug) {
|
8236 |
+
var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
|
8237 |
+
for (var j = 0; j < dontEnumsLength; j++) {
|
8238 |
+
var dontEnum = dontEnums[j];
|
8239 |
+
if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {
|
8240 |
+
pushCall(theKeys, dontEnum);
|
8241 |
+
}
|
8242 |
+
}
|
8243 |
+
}
|
8244 |
+
return theKeys;
|
8245 |
+
}
|
8246 |
+
});
|
8247 |
+
|
8248 |
+
var keysWorksWithArguments = $Object.keys && (function () {
|
8249 |
+
// Safari 5.0 bug
|
8250 |
+
return $Object.keys(arguments).length === 2;
|
8251 |
+
}(1, 2));
|
8252 |
+
var keysHasArgumentsLengthBug = $Object.keys && (function () {
|
8253 |
+
var argKeys = $Object.keys(arguments);
|
8254 |
+
return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;
|
8255 |
+
}(1));
|
8256 |
+
var originalKeys = $Object.keys;
|
8257 |
+
defineProperties($Object, {
|
8258 |
+
keys: function keys(object) {
|
8259 |
+
if (isArguments(object)) {
|
8260 |
+
return originalKeys(arraySlice(object));
|
8261 |
+
} else {
|
8262 |
+
return originalKeys(object);
|
8263 |
+
}
|
8264 |
+
}
|
8265 |
+
}, !keysWorksWithArguments || keysHasArgumentsLengthBug);
|
8266 |
+
|
8267 |
+
//
|
8268 |
+
// Date
|
8269 |
+
// ====
|
8270 |
+
//
|
8271 |
+
|
8272 |
+
var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0;
|
8273 |
+
var aNegativeTestDate = new Date(-1509842289600292);
|
8274 |
+
var aPositiveTestDate = new Date(1449662400000);
|
8275 |
+
var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT';
|
8276 |
+
var hasToDateStringFormatBug;
|
8277 |
+
var hasToStringFormatBug;
|
8278 |
+
var timeZoneOffset = aNegativeTestDate.getTimezoneOffset();
|
8279 |
+
if (timeZoneOffset < -720) {
|
8280 |
+
hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875';
|
8281 |
+
hasToStringFormatBug = !(/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString());
|
8282 |
+
} else {
|
8283 |
+
hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875';
|
8284 |
+
hasToStringFormatBug = !(/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString());
|
8285 |
+
}
|
8286 |
+
|
8287 |
+
var originalGetFullYear = call.bind(Date.prototype.getFullYear);
|
8288 |
+
var originalGetMonth = call.bind(Date.prototype.getMonth);
|
8289 |
+
var originalGetDate = call.bind(Date.prototype.getDate);
|
8290 |
+
var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear);
|
8291 |
+
var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth);
|
8292 |
+
var originalGetUTCDate = call.bind(Date.prototype.getUTCDate);
|
8293 |
+
var originalGetUTCDay = call.bind(Date.prototype.getUTCDay);
|
8294 |
+
var originalGetUTCHours = call.bind(Date.prototype.getUTCHours);
|
8295 |
+
var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes);
|
8296 |
+
var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds);
|
8297 |
+
var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds);
|
8298 |
+
var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
8299 |
+
var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
8300 |
+
var daysInMonth = function daysInMonth(month, year) {
|
8301 |
+
return originalGetDate(new Date(year, month, 0));
|
8302 |
+
};
|
8303 |
+
|
8304 |
+
defineProperties(Date.prototype, {
|
8305 |
+
getFullYear: function getFullYear() {
|
8306 |
+
if (!this || !(this instanceof Date)) {
|
8307 |
+
throw new TypeError('this is not a Date object.');
|
8308 |
+
}
|
8309 |
+
var year = originalGetFullYear(this);
|
8310 |
+
if (year < 0 && originalGetMonth(this) > 11) {
|
8311 |
+
return year + 1;
|
8312 |
+
}
|
8313 |
+
return year;
|
8314 |
+
},
|
8315 |
+
getMonth: function getMonth() {
|
8316 |
+
if (!this || !(this instanceof Date)) {
|
8317 |
+
throw new TypeError('this is not a Date object.');
|
8318 |
+
}
|
8319 |
+
var year = originalGetFullYear(this);
|
8320 |
+
var month = originalGetMonth(this);
|
8321 |
+
if (year < 0 && month > 11) {
|
8322 |
+
return 0;
|
8323 |
+
}
|
8324 |
+
return month;
|
8325 |
+
},
|
8326 |
+
getDate: function getDate() {
|
8327 |
+
if (!this || !(this instanceof Date)) {
|
8328 |
+
throw new TypeError('this is not a Date object.');
|
8329 |
+
}
|
8330 |
+
var year = originalGetFullYear(this);
|
8331 |
+
var month = originalGetMonth(this);
|
8332 |
+
var date = originalGetDate(this);
|
8333 |
+
if (year < 0 && month > 11) {
|
8334 |
+
if (month === 12) {
|
8335 |
+
return date;
|
8336 |
+
}
|
8337 |
+
var days = daysInMonth(0, year + 1);
|
8338 |
+
return (days - date) + 1;
|
8339 |
+
}
|
8340 |
+
return date;
|
8341 |
+
},
|
8342 |
+
getUTCFullYear: function getUTCFullYear() {
|
8343 |
+
if (!this || !(this instanceof Date)) {
|
8344 |
+
throw new TypeError('this is not a Date object.');
|
8345 |
+
}
|
8346 |
+
var year = originalGetUTCFullYear(this);
|
8347 |
+
if (year < 0 && originalGetUTCMonth(this) > 11) {
|
8348 |
+
return year + 1;
|
8349 |
+
}
|
8350 |
+
return year;
|
8351 |
+
},
|
8352 |
+
getUTCMonth: function getUTCMonth() {
|
8353 |
+
if (!this || !(this instanceof Date)) {
|
8354 |
+
throw new TypeError('this is not a Date object.');
|
8355 |
+
}
|
8356 |
+
var year = originalGetUTCFullYear(this);
|
8357 |
+
var month = originalGetUTCMonth(this);
|
8358 |
+
if (year < 0 && month > 11) {
|
8359 |
+
return 0;
|
8360 |
+
}
|
8361 |
+
return month;
|
8362 |
+
},
|
8363 |
+
getUTCDate: function getUTCDate() {
|
8364 |
+
if (!this || !(this instanceof Date)) {
|
8365 |
+
throw new TypeError('this is not a Date object.');
|
8366 |
+
}
|
8367 |
+
var year = originalGetUTCFullYear(this);
|
8368 |
+
var month = originalGetUTCMonth(this);
|
8369 |
+
var date = originalGetUTCDate(this);
|
8370 |
+
if (year < 0 && month > 11) {
|
8371 |
+
if (month === 12) {
|
8372 |
+
return date;
|
8373 |
+
}
|
8374 |
+
var days = daysInMonth(0, year + 1);
|
8375 |
+
return (days - date) + 1;
|
8376 |
+
}
|
8377 |
+
return date;
|
8378 |
+
}
|
8379 |
+
}, hasNegativeMonthYearBug);
|
8380 |
+
|
8381 |
+
defineProperties(Date.prototype, {
|
8382 |
+
toUTCString: function toUTCString() {
|
8383 |
+
if (!this || !(this instanceof Date)) {
|
8384 |
+
throw new TypeError('this is not a Date object.');
|
8385 |
+
}
|
8386 |
+
var day = originalGetUTCDay(this);
|
8387 |
+
var date = originalGetUTCDate(this);
|
8388 |
+
var month = originalGetUTCMonth(this);
|
8389 |
+
var year = originalGetUTCFullYear(this);
|
8390 |
+
var hour = originalGetUTCHours(this);
|
8391 |
+
var minute = originalGetUTCMinutes(this);
|
8392 |
+
var second = originalGetUTCSeconds(this);
|
8393 |
+
return dayName[day] + ', ' +
|
8394 |
+
(date < 10 ? '0' + date : date) + ' ' +
|
8395 |
+
monthName[month] + ' ' +
|
8396 |
+
year + ' ' +
|
8397 |
+
(hour < 10 ? '0' + hour : hour) + ':' +
|
8398 |
+
(minute < 10 ? '0' + minute : minute) + ':' +
|
8399 |
+
(second < 10 ? '0' + second : second) + ' GMT';
|
8400 |
+
}
|
8401 |
+
}, hasNegativeMonthYearBug || hasToUTCStringFormatBug);
|
8402 |
+
|
8403 |
+
// Opera 12 has `,`
|
8404 |
+
defineProperties(Date.prototype, {
|
8405 |
+
toDateString: function toDateString() {
|
8406 |
+
if (!this || !(this instanceof Date)) {
|
8407 |
+
throw new TypeError('this is not a Date object.');
|
8408 |
+
}
|
8409 |
+
var day = this.getDay();
|
8410 |
+
var date = this.getDate();
|
8411 |
+
var month = this.getMonth();
|
8412 |
+
var year = this.getFullYear();
|
8413 |
+
return dayName[day] + ' ' +
|
8414 |
+
monthName[month] + ' ' +
|
8415 |
+
(date < 10 ? '0' + date : date) + ' ' +
|
8416 |
+
year;
|
8417 |
+
}
|
8418 |
+
}, hasNegativeMonthYearBug || hasToDateStringFormatBug);
|
8419 |
+
|
8420 |
+
// can't use defineProperties here because of toString enumeration issue in IE <= 8
|
8421 |
+
if (hasNegativeMonthYearBug || hasToStringFormatBug) {
|
8422 |
+
Date.prototype.toString = function toString() {
|
8423 |
+
if (!this || !(this instanceof Date)) {
|
8424 |
+
throw new TypeError('this is not a Date object.');
|
8425 |
+
}
|
8426 |
+
var day = this.getDay();
|
8427 |
+
var date = this.getDate();
|
8428 |
+
var month = this.getMonth();
|
8429 |
+
var year = this.getFullYear();
|
8430 |
+
var hour = this.getHours();
|
8431 |
+
var minute = this.getMinutes();
|
8432 |
+
var second = this.getSeconds();
|
8433 |
+
var timezoneOffset = this.getTimezoneOffset();
|
8434 |
+
var hoursOffset = Math.floor(Math.abs(timezoneOffset) / 60);
|
8435 |
+
var minutesOffset = Math.floor(Math.abs(timezoneOffset) % 60);
|
8436 |
+
return dayName[day] + ' ' +
|
8437 |
+
monthName[month] + ' ' +
|
8438 |
+
(date < 10 ? '0' + date : date) + ' ' +
|
8439 |
+
year + ' ' +
|
8440 |
+
(hour < 10 ? '0' + hour : hour) + ':' +
|
8441 |
+
(minute < 10 ? '0' + minute : minute) + ':' +
|
8442 |
+
(second < 10 ? '0' + second : second) + ' GMT' +
|
8443 |
+
(timezoneOffset > 0 ? '-' : '+') +
|
8444 |
+
(hoursOffset < 10 ? '0' + hoursOffset : hoursOffset) +
|
8445 |
+
(minutesOffset < 10 ? '0' + minutesOffset : minutesOffset);
|
8446 |
+
};
|
8447 |
+
if (supportsDescriptors) {
|
8448 |
+
$Object.defineProperty(Date.prototype, 'toString', {
|
8449 |
+
configurable: true,
|
8450 |
+
enumerable: false,
|
8451 |
+
writable: true
|
8452 |
+
});
|
8453 |
+
}
|
8454 |
+
}
|
8455 |
+
|
8456 |
+
// ES5 15.9.5.43
|
8457 |
+
// http://es5.github.com/#x15.9.5.43
|
8458 |
+
// This function returns a String value represent the instance in time
|
8459 |
+
// represented by this Date object. The format of the String is the Date Time
|
8460 |
+
// string format defined in 15.9.1.15. All fields are present in the String.
|
8461 |
+
// The time zone is always UTC, denoted by the suffix Z. If the time value of
|
8462 |
+
// this object is not a finite Number a RangeError exception is thrown.
|
8463 |
+
var negativeDate = -62198755200000;
|
8464 |
+
var negativeYearString = '-000001';
|
8465 |
+
var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;
|
8466 |
+
var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';
|
8467 |
+
|
8468 |
+
var getTime = call.bind(Date.prototype.getTime);
|
8469 |
+
|
8470 |
+
defineProperties(Date.prototype, {
|
8471 |
+
toISOString: function toISOString() {
|
8472 |
+
if (!isFinite(this) || !isFinite(getTime(this))) {
|
8473 |
+
// Adope Photoshop requires the second check.
|
8474 |
+
throw new RangeError('Date.prototype.toISOString called on non-finite value.');
|
8475 |
+
}
|
8476 |
+
|
8477 |
+
var year = originalGetUTCFullYear(this);
|
8478 |
+
|
8479 |
+
var month = originalGetUTCMonth(this);
|
8480 |
+
// see https://github.com/es-shims/es5-shim/issues/111
|
8481 |
+
year += Math.floor(month / 12);
|
8482 |
+
month = (month % 12 + 12) % 12;
|
8483 |
+
|
8484 |
+
// the date time string format is specified in 15.9.1.15.
|
8485 |
+
var result = [month + 1, originalGetUTCDate(this), originalGetUTCHours(this), originalGetUTCMinutes(this), originalGetUTCSeconds(this)];
|
8486 |
+
year = (
|
8487 |
+
(year < 0 ? '-' : (year > 9999 ? '+' : '')) +
|
8488 |
+
strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)
|
8489 |
+
);
|
8490 |
+
|
8491 |
+
for (var i = 0; i < result.length; ++i) {
|
8492 |
+
// pad months, days, hours, minutes, and seconds to have two digits.
|
8493 |
+
result[i] = strSlice('00' + result[i], -2);
|
8494 |
+
}
|
8495 |
+
// pad milliseconds to have three digits.
|
8496 |
+
return (
|
8497 |
+
year + '-' + arraySlice(result, 0, 2).join('-') +
|
8498 |
+
'T' + arraySlice(result, 2).join(':') + '.' +
|
8499 |
+
strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z'
|
8500 |
+
);
|
8501 |
+
}
|
8502 |
+
}, hasNegativeDateBug || hasSafari51DateBug);
|
8503 |
+
|
8504 |
+
// ES5 15.9.5.44
|
8505 |
+
// http://es5.github.com/#x15.9.5.44
|
8506 |
+
// This function provides a String representation of a Date object for use by
|
8507 |
+
// JSON.stringify (15.12.3).
|
8508 |
+
var dateToJSONIsSupported = (function () {
|
8509 |
+
try {
|
8510 |
+
return Date.prototype.toJSON &&
|
8511 |
+
new Date(NaN).toJSON() === null &&
|
8512 |
+
new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&
|
8513 |
+
Date.prototype.toJSON.call({ // generic
|
8514 |
+
toISOString: function () { return true; }
|
8515 |
+
});
|
8516 |
+
} catch (e) {
|
8517 |
+
return false;
|
8518 |
+
}
|
8519 |
+
}());
|
8520 |
+
if (!dateToJSONIsSupported) {
|
8521 |
+
Date.prototype.toJSON = function toJSON(key) {
|
8522 |
+
// When the toJSON method is called with argument key, the following
|
8523 |
+
// steps are taken:
|
8524 |
+
|
8525 |
+
// 1. Let O be the result of calling ToObject, giving it the this
|
8526 |
+
// value as its argument.
|
8527 |
+
// 2. Let tv be ES.ToPrimitive(O, hint Number).
|
8528 |
+
var O = $Object(this);
|
8529 |
+
var tv = ES.ToPrimitive(O);
|
8530 |
+
// 3. If tv is a Number and is not finite, return null.
|
8531 |
+
if (typeof tv === 'number' && !isFinite(tv)) {
|
8532 |
+
return null;
|
8533 |
+
}
|
8534 |
+
// 4. Let toISO be the result of calling the [[Get]] internal method of
|
8535 |
+
// O with argument "toISOString".
|
8536 |
+
var toISO = O.toISOString;
|
8537 |
+
// 5. If IsCallable(toISO) is false, throw a TypeError exception.
|
8538 |
+
if (!isCallable(toISO)) {
|
8539 |
+
throw new TypeError('toISOString property is not callable');
|
8540 |
+
}
|
8541 |
+
// 6. Return the result of calling the [[Call]] internal method of
|
8542 |
+
// toISO with O as the this value and an empty argument list.
|
8543 |
+
return toISO.call(O);
|
8544 |
+
|
8545 |
+
// NOTE 1 The argument is ignored.
|
8546 |
+
|
8547 |
+
// NOTE 2 The toJSON function is intentionally generic; it does not
|
8548 |
+
// require that its this value be a Date object. Therefore, it can be
|
8549 |
+
// transferred to other kinds of objects for use as a method. However,
|
8550 |
+
// it does require that any such object have a toISOString method. An
|
8551 |
+
// object is free to use the argument key to filter its
|
8552 |
+
// stringification.
|
8553 |
+
};
|
8554 |
+
}
|
8555 |
+
|
8556 |
+
// ES5 15.9.4.2
|
8557 |
+
// http://es5.github.com/#x15.9.4.2
|
8558 |
+
// based on work shared by Daniel Friesen (dantman)
|
8559 |
+
// http://gist.github.com/303249
|
8560 |
+
var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;
|
8561 |
+
var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));
|
8562 |
+
var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));
|
8563 |
+
if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {
|
8564 |
+
// XXX global assignment won't work in embeddings that use
|
8565 |
+
// an alternate object for the context.
|
8566 |
+
/* global Date: true */
|
8567 |
+
/* eslint-disable no-undef */
|
8568 |
+
var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1;
|
8569 |
+
var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime());
|
8570 |
+
/* eslint-disable no-implicit-globals */
|
8571 |
+
Date = (function (NativeDate) {
|
8572 |
+
/* eslint-enable no-implicit-globals */
|
8573 |
+
/* eslint-enable no-undef */
|
8574 |
+
// Date.length === 7
|
8575 |
+
var DateShim = function Date(Y, M, D, h, m, s, ms) {
|
8576 |
+
var length = arguments.length;
|
8577 |
+
var date;
|
8578 |
+
if (this instanceof NativeDate) {
|
8579 |
+
var seconds = s;
|
8580 |
+
var millis = ms;
|
8581 |
+
if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {
|
8582 |
+
// work around a Safari 8/9 bug where it treats the seconds as signed
|
8583 |
+
var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;
|
8584 |
+
var sToShift = Math.floor(msToShift / 1e3);
|
8585 |
+
seconds += sToShift;
|
8586 |
+
millis -= sToShift * 1e3;
|
8587 |
+
}
|
8588 |
+
date = length === 1 && $String(Y) === Y ? // isString(Y)
|
8589 |
+
// We explicitly pass it through parse:
|
8590 |
+
new NativeDate(DateShim.parse(Y)) :
|
8591 |
+
// We have to manually make calls depending on argument
|
8592 |
+
// length here
|
8593 |
+
length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) :
|
8594 |
+
length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) :
|
8595 |
+
length >= 5 ? new NativeDate(Y, M, D, h, m) :
|
8596 |
+
length >= 4 ? new NativeDate(Y, M, D, h) :
|
8597 |
+
length >= 3 ? new NativeDate(Y, M, D) :
|
8598 |
+
length >= 2 ? new NativeDate(Y, M) :
|
8599 |
+
length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y) :
|
8600 |
+
new NativeDate();
|
8601 |
+
} else {
|
8602 |
+
date = NativeDate.apply(this, arguments);
|
8603 |
+
}
|
8604 |
+
if (!isPrimitive(date)) {
|
8605 |
+
// Prevent mixups with unfixed Date object
|
8606 |
+
defineProperties(date, { constructor: DateShim }, true);
|
8607 |
+
}
|
8608 |
+
return date;
|
8609 |
+
};
|
8610 |
+
|
8611 |
+
// 15.9.1.15 Date Time String Format.
|
8612 |
+
var isoDateExpression = new RegExp('^' +
|
8613 |
+
'(\\d{4}|[+-]\\d{6})' + // four-digit year capture or sign +
|
8614 |
+
// 6-digit extended year
|
8615 |
+
'(?:-(\\d{2})' + // optional month capture
|
8616 |
+
'(?:-(\\d{2})' + // optional day capture
|
8617 |
+
'(?:' + // capture hours:minutes:seconds.milliseconds
|
8618 |
+
'T(\\d{2})' + // hours capture
|
8619 |
+
':(\\d{2})' + // minutes capture
|
8620 |
+
'(?:' + // optional :seconds.milliseconds
|
8621 |
+
':(\\d{2})' + // seconds capture
|
8622 |
+
'(?:(\\.\\d{1,}))?' + // milliseconds capture
|
8623 |
+
')?' +
|
8624 |
+
'(' + // capture UTC offset component
|
8625 |
+
'Z|' + // UTC capture
|
8626 |
+
'(?:' + // offset specifier +/-hours:minutes
|
8627 |
+
'([-+])' + // sign capture
|
8628 |
+
'(\\d{2})' + // hours offset capture
|
8629 |
+
':(\\d{2})' + // minutes offset capture
|
8630 |
+
')' +
|
8631 |
+
')?)?)?)?' +
|
8632 |
+
'$');
|
8633 |
+
|
8634 |
+
var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];
|
8635 |
+
|
8636 |
+
var dayFromMonth = function dayFromMonth(year, month) {
|
8637 |
+
var t = month > 1 ? 1 : 0;
|
8638 |
+
return (
|
8639 |
+
months[month] +
|
8640 |
+
Math.floor((year - 1969 + t) / 4) -
|
8641 |
+
Math.floor((year - 1901 + t) / 100) +
|
8642 |
+
Math.floor((year - 1601 + t) / 400) +
|
8643 |
+
365 * (year - 1970)
|
8644 |
+
);
|
8645 |
+
};
|
8646 |
+
|
8647 |
+
var toUTC = function toUTC(t) {
|
8648 |
+
var s = 0;
|
8649 |
+
var ms = t;
|
8650 |
+
if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {
|
8651 |
+
// work around a Safari 8/9 bug where it treats the seconds as signed
|
8652 |
+
var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;
|
8653 |
+
var sToShift = Math.floor(msToShift / 1e3);
|
8654 |
+
s += sToShift;
|
8655 |
+
ms -= sToShift * 1e3;
|
8656 |
+
}
|
8657 |
+
return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));
|
8658 |
+
};
|
8659 |
+
|
8660 |
+
// Copy any custom methods a 3rd party library may have added
|
8661 |
+
for (var key in NativeDate) {
|
8662 |
+
if (owns(NativeDate, key)) {
|
8663 |
+
DateShim[key] = NativeDate[key];
|
8664 |
+
}
|
8665 |
+
}
|
8666 |
+
|
8667 |
+
// Copy "native" methods explicitly; they may be non-enumerable
|
8668 |
+
defineProperties(DateShim, {
|
8669 |
+
now: NativeDate.now,
|
8670 |
+
UTC: NativeDate.UTC
|
8671 |
+
}, true);
|
8672 |
+
DateShim.prototype = NativeDate.prototype;
|
8673 |
+
defineProperties(DateShim.prototype, {
|
8674 |
+
constructor: DateShim
|
8675 |
+
}, true);
|
8676 |
+
|
8677 |
+
// Upgrade Date.parse to handle simplified ISO 8601 strings
|
8678 |
+
var parseShim = function parse(string) {
|
8679 |
+
var match = isoDateExpression.exec(string);
|
8680 |
+
if (match) {
|
8681 |
+
// parse months, days, hours, minutes, seconds, and milliseconds
|
8682 |
+
// provide default values if necessary
|
8683 |
+
// parse the UTC offset component
|
8684 |
+
var year = $Number(match[1]),
|
8685 |
+
month = $Number(match[2] || 1) - 1,
|
8686 |
+
day = $Number(match[3] || 1) - 1,
|
8687 |
+
hour = $Number(match[4] || 0),
|
8688 |
+
minute = $Number(match[5] || 0),
|
8689 |
+
second = $Number(match[6] || 0),
|
8690 |
+
millisecond = Math.floor($Number(match[7] || 0) * 1000),
|
8691 |
+
// When time zone is missed, local offset should be used
|
8692 |
+
// (ES 5.1 bug)
|
8693 |
+
// see https://bugs.ecmascript.org/show_bug.cgi?id=112
|
8694 |
+
isLocalTime = Boolean(match[4] && !match[8]),
|
8695 |
+
signOffset = match[9] === '-' ? 1 : -1,
|
8696 |
+
hourOffset = $Number(match[10] || 0),
|
8697 |
+
minuteOffset = $Number(match[11] || 0),
|
8698 |
+
result;
|
8699 |
+
var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;
|
8700 |
+
if (
|
8701 |
+
hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) &&
|
8702 |
+
minute < 60 && second < 60 && millisecond < 1000 &&
|
8703 |
+
month > -1 && month < 12 && hourOffset < 24 &&
|
8704 |
+
minuteOffset < 60 && // detect invalid offsets
|
8705 |
+
day > -1 &&
|
8706 |
+
day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month))
|
8707 |
+
) {
|
8708 |
+
result = (
|
8709 |
+
(dayFromMonth(year, month) + day) * 24 +
|
8710 |
+
hour +
|
8711 |
+
hourOffset * signOffset
|
8712 |
+
) * 60;
|
8713 |
+
result = (
|
8714 |
+
(result + minute + minuteOffset * signOffset) * 60 +
|
8715 |
+
second
|
8716 |
+
) * 1000 + millisecond;
|
8717 |
+
if (isLocalTime) {
|
8718 |
+
result = toUTC(result);
|
8719 |
+
}
|
8720 |
+
if (-8.64e15 <= result && result <= 8.64e15) {
|
8721 |
+
return result;
|
8722 |
+
}
|
8723 |
+
}
|
8724 |
+
return NaN;
|
8725 |
+
}
|
8726 |
+
return NativeDate.parse.apply(this, arguments);
|
8727 |
+
};
|
8728 |
+
defineProperties(DateShim, { parse: parseShim });
|
8729 |
+
|
8730 |
+
return DateShim;
|
8731 |
+
}(Date));
|
8732 |
+
/* global Date: false */
|
8733 |
+
}
|
8734 |
+
|
8735 |
+
// ES5 15.9.4.4
|
8736 |
+
// http://es5.github.com/#x15.9.4.4
|
8737 |
+
if (!Date.now) {
|
8738 |
+
Date.now = function now() {
|
8739 |
+
return new Date().getTime();
|
8740 |
+
};
|
8741 |
+
}
|
8742 |
+
|
8743 |
+
//
|
8744 |
+
// Number
|
8745 |
+
// ======
|
8746 |
+
//
|
8747 |
+
|
8748 |
+
// ES5.1 15.7.4.5
|
8749 |
+
// http://es5.github.com/#x15.7.4.5
|
8750 |
+
var hasToFixedBugs = NumberPrototype.toFixed && (
|
8751 |
+
(0.00008).toFixed(3) !== '0.000' ||
|
8752 |
+
(0.9).toFixed(0) !== '1' ||
|
8753 |
+
(1.255).toFixed(2) !== '1.25' ||
|
8754 |
+
(1000000000000000128).toFixed(0) !== '1000000000000000128'
|
8755 |
+
);
|
8756 |
+
|
8757 |
+
var toFixedHelpers = {
|
8758 |
+
base: 1e7,
|
8759 |
+
size: 6,
|
8760 |
+
data: [0, 0, 0, 0, 0, 0],
|
8761 |
+
multiply: function multiply(n, c) {
|
8762 |
+
var i = -1;
|
8763 |
+
var c2 = c;
|
8764 |
+
while (++i < toFixedHelpers.size) {
|
8765 |
+
c2 += n * toFixedHelpers.data[i];
|
8766 |
+
toFixedHelpers.data[i] = c2 % toFixedHelpers.base;
|
8767 |
+
c2 = Math.floor(c2 / toFixedHelpers.base);
|
8768 |
+
}
|
8769 |
+
},
|
8770 |
+
divide: function divide(n) {
|
8771 |
+
var i = toFixedHelpers.size;
|
8772 |
+
var c = 0;
|
8773 |
+
while (--i >= 0) {
|
8774 |
+
c += toFixedHelpers.data[i];
|
8775 |
+
toFixedHelpers.data[i] = Math.floor(c / n);
|
8776 |
+
c = (c % n) * toFixedHelpers.base;
|
8777 |
+
}
|
8778 |
+
},
|
8779 |
+
numToString: function numToString() {
|
8780 |
+
var i = toFixedHelpers.size;
|
8781 |
+
var s = '';
|
8782 |
+
while (--i >= 0) {
|
8783 |
+
if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {
|
8784 |
+
var t = $String(toFixedHelpers.data[i]);
|
8785 |
+
if (s === '') {
|
8786 |
+
s = t;
|
8787 |
+
} else {
|
8788 |
+
s += strSlice('0000000', 0, 7 - t.length) + t;
|
8789 |
+
}
|
8790 |
+
}
|
8791 |
+
}
|
8792 |
+
return s;
|
8793 |
+
},
|
8794 |
+
pow: function pow(x, n, acc) {
|
8795 |
+
return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));
|
8796 |
+
},
|
8797 |
+
log: function log(x) {
|
8798 |
+
var n = 0;
|
8799 |
+
var x2 = x;
|
8800 |
+
while (x2 >= 4096) {
|
8801 |
+
n += 12;
|
8802 |
+
x2 /= 4096;
|
8803 |
+
}
|
8804 |
+
while (x2 >= 2) {
|
8805 |
+
n += 1;
|
8806 |
+
x2 /= 2;
|
8807 |
+
}
|
8808 |
+
return n;
|
8809 |
+
}
|
8810 |
+
};
|
8811 |
+
|
8812 |
+
var toFixedShim = function toFixed(fractionDigits) {
|
8813 |
+
var f, x, s, m, e, z, j, k;
|
8814 |
+
|
8815 |
+
// Test for NaN and round fractionDigits down
|
8816 |
+
f = $Number(fractionDigits);
|
8817 |
+
f = isActualNaN(f) ? 0 : Math.floor(f);
|
8818 |
+
|
8819 |
+
if (f < 0 || f > 20) {
|
8820 |
+
throw new RangeError('Number.toFixed called with invalid number of decimals');
|
8821 |
+
}
|
8822 |
+
|
8823 |
+
x = $Number(this);
|
8824 |
+
|
8825 |
+
if (isActualNaN(x)) {
|
8826 |
+
return 'NaN';
|
8827 |
+
}
|
8828 |
+
|
8829 |
+
// If it is too big or small, return the string value of the number
|
8830 |
+
if (x <= -1e21 || x >= 1e21) {
|
8831 |
+
return $String(x);
|
8832 |
+
}
|
8833 |
+
|
8834 |
+
s = '';
|
8835 |
+
|
8836 |
+
if (x < 0) {
|
8837 |
+
s = '-';
|
8838 |
+
x = -x;
|
8839 |
+
}
|
8840 |
+
|
8841 |
+
m = '0';
|
8842 |
+
|
8843 |
+
if (x > 1e-21) {
|
8844 |
+
// 1e-21 < x < 1e21
|
8845 |
+
// -70 < log2(x) < 70
|
8846 |
+
e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;
|
8847 |
+
z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));
|
8848 |
+
z *= 0x10000000000000; // Math.pow(2, 52);
|
8849 |
+
e = 52 - e;
|
8850 |
+
|
8851 |
+
// -18 < e < 122
|
8852 |
+
// x = z / 2 ^ e
|
8853 |
+
if (e > 0) {
|
8854 |
+
toFixedHelpers.multiply(0, z);
|
8855 |
+
j = f;
|
8856 |
+
|
8857 |
+
while (j >= 7) {
|
8858 |
+
toFixedHelpers.multiply(1e7, 0);
|
8859 |
+
j -= 7;
|
8860 |
+
}
|
8861 |
+
|
8862 |
+
toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);
|
8863 |
+
j = e - 1;
|
8864 |
+
|
8865 |
+
while (j >= 23) {
|
8866 |
+
toFixedHelpers.divide(1 << 23);
|
8867 |
+
j -= 23;
|
8868 |
+
}
|
8869 |
+
|
8870 |
+
toFixedHelpers.divide(1 << j);
|
8871 |
+
toFixedHelpers.multiply(1, 1);
|
8872 |
+
toFixedHelpers.divide(2);
|
8873 |
+
m = toFixedHelpers.numToString();
|
8874 |
+
} else {
|
8875 |
+
toFixedHelpers.multiply(0, z);
|
8876 |
+
toFixedHelpers.multiply(1 << (-e), 0);
|
8877 |
+
m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);
|
8878 |
+
}
|
8879 |
+
}
|
8880 |
+
|
8881 |
+
if (f > 0) {
|
8882 |
+
k = m.length;
|
8883 |
+
|
8884 |
+
if (k <= f) {
|
8885 |
+
m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;
|
8886 |
+
} else {
|
8887 |
+
m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);
|
8888 |
+
}
|
8889 |
+
} else {
|
8890 |
+
m = s + m;
|
8891 |
+
}
|
8892 |
+
|
8893 |
+
return m;
|
8894 |
+
};
|
8895 |
+
defineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs);
|
8896 |
+
|
8897 |
+
var hasToPrecisionUndefinedBug = (function () {
|
8898 |
+
try {
|
8899 |
+
return 1.0.toPrecision(undefined) === '1';
|
8900 |
+
} catch (e) {
|
8901 |
+
return true;
|
8902 |
+
}
|
8903 |
+
}());
|
8904 |
+
var originalToPrecision = NumberPrototype.toPrecision;
|
8905 |
+
defineProperties(NumberPrototype, {
|
8906 |
+
toPrecision: function toPrecision(precision) {
|
8907 |
+
return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision);
|
8908 |
+
}
|
8909 |
+
}, hasToPrecisionUndefinedBug);
|
8910 |
+
|
8911 |
+
//
|
8912 |
+
// String
|
8913 |
+
// ======
|
8914 |
+
//
|
8915 |
+
|
8916 |
+
// ES5 15.5.4.14
|
8917 |
+
// http://es5.github.com/#x15.5.4.14
|
8918 |
+
|
8919 |
+
// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]
|
8920 |
+
// Many browsers do not split properly with regular expressions or they
|
8921 |
+
// do not perform the split correctly under obscure conditions.
|
8922 |
+
// See http://blog.stevenlevithan.com/archives/cross-browser-split
|
8923 |
+
// I've tested in many browsers and this seems to cover the deviant ones:
|
8924 |
+
// 'ab'.split(/(?:ab)*/) should be ["", ""], not [""]
|
8925 |
+
// '.'.split(/(.?)(.?)/) should be ["", ".", "", ""], not ["", ""]
|
8926 |
+
// 'tesst'.split(/(s)*/) should be ["t", undefined, "e", "s", "t"], not
|
8927 |
+
// [undefined, "t", undefined, "e", ...]
|
8928 |
+
// ''.split(/.?/) should be [], not [""]
|
8929 |
+
// '.'.split(/()()/) should be ["."], not ["", "", "."]
|
8930 |
+
|
8931 |
+
if (
|
8932 |
+
'ab'.split(/(?:ab)*/).length !== 2 ||
|
8933 |
+
'.'.split(/(.?)(.?)/).length !== 4 ||
|
8934 |
+
'tesst'.split(/(s)*/)[1] === 't' ||
|
8935 |
+
'test'.split(/(?:)/, -1).length !== 4 ||
|
8936 |
+
''.split(/.?/).length ||
|
8937 |
+
'.'.split(/()()/).length > 1
|
8938 |
+
) {
|
8939 |
+
(function () {
|
8940 |
+
var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group
|
8941 |
+
var maxSafe32BitInt = Math.pow(2, 32) - 1;
|
8942 |
+
|
8943 |
+
StringPrototype.split = function (separator, limit) {
|
8944 |
+
var string = String(this);
|
8945 |
+
if (typeof separator === 'undefined' && limit === 0) {
|
8946 |
+
return [];
|
8947 |
+
}
|
8948 |
+
|
8949 |
+
// If `separator` is not a regex, use native split
|
8950 |
+
if (!isRegex(separator)) {
|
8951 |
+
return strSplit(this, separator, limit);
|
8952 |
+
}
|
8953 |
+
|
8954 |
+
var output = [];
|
8955 |
+
var flags = (separator.ignoreCase ? 'i' : '') +
|
8956 |
+
(separator.multiline ? 'm' : '') +
|
8957 |
+
(separator.unicode ? 'u' : '') + // in ES6
|
8958 |
+
(separator.sticky ? 'y' : ''), // Firefox 3+ and ES6
|
8959 |
+
lastLastIndex = 0,
|
8960 |
+
// Make `global` and avoid `lastIndex` issues by working with a copy
|
8961 |
+
separator2, match, lastIndex, lastLength;
|
8962 |
+
var separatorCopy = new RegExp(separator.source, flags + 'g');
|
8963 |
+
if (!compliantExecNpcg) {
|
8964 |
+
// Doesn't need flags gy, but they don't hurt
|
8965 |
+
separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
|
8966 |
+
}
|
8967 |
+
/* Values for `limit`, per the spec:
|
8968 |
+
* If undefined: 4294967295 // maxSafe32BitInt
|
8969 |
+
* If 0, Infinity, or NaN: 0
|
8970 |
+
* If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;
|
8971 |
+
* If negative number: 4294967296 - Math.floor(Math.abs(limit))
|
8972 |
+
* If other: Type-convert, then use the above rules
|
8973 |
+
*/
|
8974 |
+
var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);
|
8975 |
+
match = separatorCopy.exec(string);
|
8976 |
+
while (match) {
|
8977 |
+
// `separatorCopy.lastIndex` is not reliable cross-browser
|
8978 |
+
lastIndex = match.index + match[0].length;
|
8979 |
+
if (lastIndex > lastLastIndex) {
|
8980 |
+
pushCall(output, strSlice(string, lastLastIndex, match.index));
|
8981 |
+
// Fix browsers whose `exec` methods don't consistently return `undefined` for
|
8982 |
+
// nonparticipating capturing groups
|
8983 |
+
if (!compliantExecNpcg && match.length > 1) {
|
8984 |
+
/* eslint-disable no-loop-func */
|
8985 |
+
match[0].replace(separator2, function () {
|
8986 |
+
for (var i = 1; i < arguments.length - 2; i++) {
|
8987 |
+
if (typeof arguments[i] === 'undefined') {
|
8988 |
+
match[i] = void 0;
|
8989 |
+
}
|
8990 |
+
}
|
8991 |
+
});
|
8992 |
+
/* eslint-enable no-loop-func */
|
8993 |
+
}
|
8994 |
+
if (match.length > 1 && match.index < string.length) {
|
8995 |
+
array_push.apply(output, arraySlice(match, 1));
|
8996 |
+
}
|
8997 |
+
lastLength = match[0].length;
|
8998 |
+
lastLastIndex = lastIndex;
|
8999 |
+
if (output.length >= splitLimit) {
|
9000 |
+
break;
|
9001 |
+
}
|
9002 |
+
}
|
9003 |
+
if (separatorCopy.lastIndex === match.index) {
|
9004 |
+
separatorCopy.lastIndex++; // Avoid an infinite loop
|
9005 |
+
}
|
9006 |
+
match = separatorCopy.exec(string);
|
9007 |
+
}
|
9008 |
+
if (lastLastIndex === string.length) {
|
9009 |
+
if (lastLength || !separatorCopy.test('')) {
|
9010 |
+
pushCall(output, '');
|
9011 |
+
}
|
9012 |
+
} else {
|
9013 |
+
pushCall(output, strSlice(string, lastLastIndex));
|
9014 |
+
}
|
9015 |
+
return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output;
|
9016 |
+
};
|
9017 |
+
}());
|
9018 |
+
|
9019 |
+
// [bugfix, chrome]
|
9020 |
+
// If separator is undefined, then the result array contains just one String,
|
9021 |
+
// which is the this value (converted to a String). If limit is not undefined,
|
9022 |
+
// then the output array is truncated so that it contains no more than limit
|
9023 |
+
// elements.
|
9024 |
+
// "0".split(undefined, 0) -> []
|
9025 |
+
} else if ('0'.split(void 0, 0).length) {
|
9026 |
+
StringPrototype.split = function split(separator, limit) {
|
9027 |
+
if (typeof separator === 'undefined' && limit === 0) {
|
9028 |
+
return [];
|
9029 |
+
}
|
9030 |
+
return strSplit(this, separator, limit);
|
9031 |
+
};
|
9032 |
+
}
|
9033 |
+
|
9034 |
+
var str_replace = StringPrototype.replace;
|
9035 |
+
var replaceReportsGroupsCorrectly = (function () {
|
9036 |
+
var groups = [];
|
9037 |
+
'x'.replace(/x(.)?/g, function (match, group) {
|
9038 |
+
pushCall(groups, group);
|
9039 |
+
});
|
9040 |
+
return groups.length === 1 && typeof groups[0] === 'undefined';
|
9041 |
+
}());
|
9042 |
+
|
9043 |
+
if (!replaceReportsGroupsCorrectly) {
|
9044 |
+
StringPrototype.replace = function replace(searchValue, replaceValue) {
|
9045 |
+
var isFn = isCallable(replaceValue);
|
9046 |
+
var hasCapturingGroups = isRegex(searchValue) && (/\)[*?]/).test(searchValue.source);
|
9047 |
+
if (!isFn || !hasCapturingGroups) {
|
9048 |
+
return str_replace.call(this, searchValue, replaceValue);
|
9049 |
+
} else {
|
9050 |
+
var wrappedReplaceValue = function (match) {
|
9051 |
+
var length = arguments.length;
|
9052 |
+
var originalLastIndex = searchValue.lastIndex;
|
9053 |
+
searchValue.lastIndex = 0;
|
9054 |
+
var args = searchValue.exec(match) || [];
|
9055 |
+
searchValue.lastIndex = originalLastIndex;
|
9056 |
+
pushCall(args, arguments[length - 2], arguments[length - 1]);
|
9057 |
+
return replaceValue.apply(this, args);
|
9058 |
+
};
|
9059 |
+
return str_replace.call(this, searchValue, wrappedReplaceValue);
|
9060 |
+
}
|
9061 |
+
};
|
9062 |
+
}
|
9063 |
+
|
9064 |
+
// ECMA-262, 3rd B.2.3
|
9065 |
+
// Not an ECMAScript standard, although ECMAScript 3rd Edition has a
|
9066 |
+
// non-normative section suggesting uniform semantics and it should be
|
9067 |
+
// normalized across all browsers
|
9068 |
+
// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE
|
9069 |
+
var string_substr = StringPrototype.substr;
|
9070 |
+
var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';
|
9071 |
+
defineProperties(StringPrototype, {
|
9072 |
+
substr: function substr(start, length) {
|
9073 |
+
var normalizedStart = start;
|
9074 |
+
if (start < 0) {
|
9075 |
+
normalizedStart = max(this.length + start, 0);
|
9076 |
+
}
|
9077 |
+
return string_substr.call(this, normalizedStart, length);
|
9078 |
+
}
|
9079 |
+
}, hasNegativeSubstrBug);
|
9080 |
+
|
9081 |
+
// ES5 15.5.4.20
|
9082 |
+
// whitespace from: http://es5.github.io/#x15.5.4.20
|
9083 |
+
var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
|
9084 |
+
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' +
|
9085 |
+
'\u2029\uFEFF';
|
9086 |
+
var zeroWidth = '\u200b';
|
9087 |
+
var wsRegexChars = '[' + ws + ']';
|
9088 |
+
var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');
|
9089 |
+
var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');
|
9090 |
+
var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());
|
9091 |
+
defineProperties(StringPrototype, {
|
9092 |
+
// http://blog.stevenlevithan.com/archives/faster-trim-javascript
|
9093 |
+
// http://perfectionkills.com/whitespace-deviations/
|
9094 |
+
trim: function trim() {
|
9095 |
+
if (typeof this === 'undefined' || this === null) {
|
9096 |
+
throw new TypeError("can't convert " + this + ' to object');
|
9097 |
+
}
|
9098 |
+
return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');
|
9099 |
+
}
|
9100 |
+
}, hasTrimWhitespaceBug);
|
9101 |
+
var trim = call.bind(String.prototype.trim);
|
9102 |
+
|
9103 |
+
var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;
|
9104 |
+
defineProperties(StringPrototype, {
|
9105 |
+
lastIndexOf: function lastIndexOf(searchString) {
|
9106 |
+
if (typeof this === 'undefined' || this === null) {
|
9107 |
+
throw new TypeError("can't convert " + this + ' to object');
|
9108 |
+
}
|
9109 |
+
var S = $String(this);
|
9110 |
+
var searchStr = $String(searchString);
|
9111 |
+
var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;
|
9112 |
+
var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);
|
9113 |
+
var start = min(max(pos, 0), S.length);
|
9114 |
+
var searchLen = searchStr.length;
|
9115 |
+
var k = start + searchLen;
|
9116 |
+
while (k > 0) {
|
9117 |
+
k = max(0, k - searchLen);
|
9118 |
+
var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);
|
9119 |
+
if (index !== -1) {
|
9120 |
+
return k + index;
|
9121 |
+
}
|
9122 |
+
}
|
9123 |
+
return -1;
|
9124 |
+
}
|
9125 |
+
}, hasLastIndexBug);
|
9126 |
+
|
9127 |
+
var originalLastIndexOf = StringPrototype.lastIndexOf;
|
9128 |
+
defineProperties(StringPrototype, {
|
9129 |
+
lastIndexOf: function lastIndexOf(searchString) {
|
9130 |
+
return originalLastIndexOf.apply(this, arguments);
|
9131 |
+
}
|
9132 |
+
}, StringPrototype.lastIndexOf.length !== 1);
|
9133 |
+
|
9134 |
+
// ES-5 15.1.2.2
|
9135 |
+
/* eslint-disable radix */
|
9136 |
+
if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {
|
9137 |
+
/* eslint-enable radix */
|
9138 |
+
/* global parseInt: true */
|
9139 |
+
parseInt = (function (origParseInt) {
|
9140 |
+
var hexRegex = /^[\-+]?0[xX]/;
|
9141 |
+
return function parseInt(str, radix) {
|
9142 |
+
var string = trim(String(str));
|
9143 |
+
var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);
|
9144 |
+
return origParseInt(string, defaultedRadix);
|
9145 |
+
};
|
9146 |
+
}(parseInt));
|
9147 |
+
}
|
9148 |
+
|
9149 |
+
// https://es5.github.io/#x15.1.2.3
|
9150 |
+
if (1 / parseFloat('-0') !== -Infinity) {
|
9151 |
+
/* global parseFloat: true */
|
9152 |
+
parseFloat = (function (origParseFloat) {
|
9153 |
+
return function parseFloat(string) {
|
9154 |
+
var inputString = trim(String(string));
|
9155 |
+
var result = origParseFloat(inputString);
|
9156 |
+
return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result;
|
9157 |
+
};
|
9158 |
+
}(parseFloat));
|
9159 |
+
}
|
9160 |
+
|
9161 |
+
if (String(new RangeError('test')) !== 'RangeError: test') {
|
9162 |
+
var errorToStringShim = function toString() {
|
9163 |
+
if (typeof this === 'undefined' || this === null) {
|
9164 |
+
throw new TypeError("can't convert " + this + ' to object');
|
9165 |
+
}
|
9166 |
+
var name = this.name;
|
9167 |
+
if (typeof name === 'undefined') {
|
9168 |
+
name = 'Error';
|
9169 |
+
} else if (typeof name !== 'string') {
|
9170 |
+
name = $String(name);
|
9171 |
+
}
|
9172 |
+
var msg = this.message;
|
9173 |
+
if (typeof msg === 'undefined') {
|
9174 |
+
msg = '';
|
9175 |
+
} else if (typeof msg !== 'string') {
|
9176 |
+
msg = $String(msg);
|
9177 |
+
}
|
9178 |
+
if (!name) {
|
9179 |
+
return msg;
|
9180 |
+
}
|
9181 |
+
if (!msg) {
|
9182 |
+
return name;
|
9183 |
+
}
|
9184 |
+
return name + ': ' + msg;
|
9185 |
+
};
|
9186 |
+
// can't use defineProperties here because of toString enumeration issue in IE <= 8
|
9187 |
+
Error.prototype.toString = errorToStringShim;
|
9188 |
+
}
|
9189 |
+
|
9190 |
+
if (supportsDescriptors) {
|
9191 |
+
var ensureNonEnumerable = function (obj, prop) {
|
9192 |
+
if (isEnum(obj, prop)) {
|
9193 |
+
var desc = Object.getOwnPropertyDescriptor(obj, prop);
|
9194 |
+
if (desc.configurable) {
|
9195 |
+
desc.enumerable = false;
|
9196 |
+
Object.defineProperty(obj, prop, desc);
|
9197 |
+
}
|
9198 |
+
}
|
9199 |
+
};
|
9200 |
+
ensureNonEnumerable(Error.prototype, 'message');
|
9201 |
+
if (Error.prototype.message !== '') {
|
9202 |
+
Error.prototype.message = '';
|
9203 |
+
}
|
9204 |
+
ensureNonEnumerable(Error.prototype, 'name');
|
9205 |
+
}
|
9206 |
+
|
9207 |
+
if (String(/a/mig) !== '/a/gim') {
|
9208 |
+
var regexToString = function toString() {
|
9209 |
+
var str = '/' + this.source + '/';
|
9210 |
+
if (this.global) {
|
9211 |
+
str += 'g';
|
9212 |
+
}
|
9213 |
+
if (this.ignoreCase) {
|
9214 |
+
str += 'i';
|
9215 |
+
}
|
9216 |
+
if (this.multiline) {
|
9217 |
+
str += 'm';
|
9218 |
+
}
|
9219 |
+
return str;
|
9220 |
+
};
|
9221 |
+
// can't use defineProperties here because of toString enumeration issue in IE <= 8
|
9222 |
+
RegExp.prototype.toString = regexToString;
|
9223 |
+
}
|
9224 |
+
}));
|
9225 |
+
|
9226 |
+
},{}],36:[function(_dereq_,module,exports){
|
9227 |
+
var arr = [];
|
9228 |
+
var each = arr.forEach;
|
9229 |
+
var slice = arr.slice;
|
9230 |
+
|
9231 |
+
|
9232 |
+
module.exports = function(obj) {
|
9233 |
+
each.call(slice.call(arguments, 1), function(source) {
|
9234 |
+
if (source) {
|
9235 |
+
for (var prop in source) {
|
9236 |
+
obj[prop] = source[prop];
|
9237 |
+
}
|
9238 |
+
}
|
9239 |
+
});
|
9240 |
+
return obj;
|
9241 |
+
};
|
9242 |
+
|
9243 |
+
},{}],37:[function(_dereq_,module,exports){
|
9244 |
+
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
|
9245 |
+
var e, m
|
9246 |
+
var eLen = nBytes * 8 - mLen - 1
|
9247 |
+
var eMax = (1 << eLen) - 1
|
9248 |
+
var eBias = eMax >> 1
|
9249 |
+
var nBits = -7
|
9250 |
+
var i = isLE ? (nBytes - 1) : 0
|
9251 |
+
var d = isLE ? -1 : 1
|
9252 |
+
var s = buffer[offset + i]
|
9253 |
+
|
9254 |
+
i += d
|
9255 |
+
|
9256 |
+
e = s & ((1 << (-nBits)) - 1)
|
9257 |
+
s >>= (-nBits)
|
9258 |
+
nBits += eLen
|
9259 |
+
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
9260 |
+
|
9261 |
+
m = e & ((1 << (-nBits)) - 1)
|
9262 |
+
e >>= (-nBits)
|
9263 |
+
nBits += mLen
|
9264 |
+
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
9265 |
+
|
9266 |
+
if (e === 0) {
|
9267 |
+
e = 1 - eBias
|
9268 |
+
} else if (e === eMax) {
|
9269 |
+
return m ? NaN : ((s ? -1 : 1) * Infinity)
|
9270 |
+
} else {
|
9271 |
+
m = m + Math.pow(2, mLen)
|
9272 |
+
e = e - eBias
|
9273 |
+
}
|
9274 |
+
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
|
9275 |
+
}
|
9276 |
+
|
9277 |
+
exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
|
9278 |
+
var e, m, c
|
9279 |
+
var eLen = nBytes * 8 - mLen - 1
|
9280 |
+
var eMax = (1 << eLen) - 1
|
9281 |
+
var eBias = eMax >> 1
|
9282 |
+
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
|
9283 |
+
var i = isLE ? 0 : (nBytes - 1)
|
9284 |
+
var d = isLE ? 1 : -1
|
9285 |
+
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
|
9286 |
+
|
9287 |
+
value = Math.abs(value)
|
9288 |
+
|
9289 |
+
if (isNaN(value) || value === Infinity) {
|
9290 |
+
m = isNaN(value) ? 1 : 0
|
9291 |
+
e = eMax
|
9292 |
+
} else {
|
9293 |
+
e = Math.floor(Math.log(value) / Math.LN2)
|
9294 |
+
if (value * (c = Math.pow(2, -e)) < 1) {
|
9295 |
+
e--
|
9296 |
+
c *= 2
|
9297 |
+
}
|
9298 |
+
if (e + eBias >= 1) {
|
9299 |
+
value += rt / c
|
9300 |
+
} else {
|
9301 |
+
value += rt * Math.pow(2, 1 - eBias)
|
9302 |
+
}
|
9303 |
+
if (value * c >= 2) {
|
9304 |
+
e++
|
9305 |
+
c /= 2
|
9306 |
+
}
|
9307 |
+
|
9308 |
+
if (e + eBias >= eMax) {
|
9309 |
+
m = 0
|
9310 |
+
e = eMax
|
9311 |
+
} else if (e + eBias >= 1) {
|
9312 |
+
m = (value * c - 1) * Math.pow(2, mLen)
|
9313 |
+
e = e + eBias
|
9314 |
+
} else {
|
9315 |
+
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
|
9316 |
+
e = 0
|
9317 |
+
}
|
9318 |
+
}
|
9319 |
+
|
9320 |
+
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
|
9321 |
+
|
9322 |
+
e = (e << mLen) | m
|
9323 |
+
eLen += mLen
|
9324 |
+
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
|
9325 |
+
|
9326 |
+
buffer[offset + i - d] |= s * 128
|
9327 |
+
}
|
9328 |
+
|
9329 |
+
},{}],38:[function(_dereq_,module,exports){
|
9330 |
+
|
9331 |
+
var indexOf = [].indexOf;
|
9332 |
+
|
9333 |
+
module.exports = function(arr, obj){
|
9334 |
+
if (indexOf) return arr.indexOf(obj);
|
9335 |
+
for (var i = 0; i < arr.length; ++i) {
|
9336 |
+
if (arr[i] === obj) return i;
|
9337 |
+
}
|
9338 |
+
return -1;
|
9339 |
+
};
|
9340 |
+
},{}],39:[function(_dereq_,module,exports){
|
9341 |
+
module.exports = isFunction
|
9342 |
+
|
9343 |
+
var toString = Object.prototype.toString
|
9344 |
+
|
9345 |
+
function isFunction (fn) {
|
9346 |
+
var string = toString.call(fn)
|
9347 |
+
return string === '[object Function]' ||
|
9348 |
+
(typeof fn === 'function' && string !== '[object RegExp]') ||
|
9349 |
+
(typeof window !== 'undefined' &&
|
9350 |
+
// IE8 and below
|
9351 |
+
(fn === window.setTimeout ||
|
9352 |
+
fn === window.alert ||
|
9353 |
+
fn === window.confirm ||
|
9354 |
+
fn === window.prompt))
|
9355 |
+
};
|
9356 |
+
|
9357 |
+
},{}],40:[function(_dereq_,module,exports){
|
9358 |
+
var toString = {}.toString;
|
9359 |
+
|
9360 |
+
module.exports = Array.isArray || function (arr) {
|
9361 |
+
return toString.call(arr) == '[object Array]';
|
9362 |
+
};
|
9363 |
+
|
9364 |
+
},{}],41:[function(_dereq_,module,exports){
|
9365 |
+
(function (global){
|
9366 |
+
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
9367 |
+
;(function(root) {
|
9368 |
+
|
9369 |
+
/** Detect free variables */
|
9370 |
+
var freeExports = typeof exports == 'object' && exports &&
|
9371 |
+
!exports.nodeType && exports;
|
9372 |
+
var freeModule = typeof module == 'object' && module &&
|
9373 |
+
!module.nodeType && module;
|
9374 |
+
var freeGlobal = typeof global == 'object' && global;
|
9375 |
+
if (
|
9376 |
+
freeGlobal.global === freeGlobal ||
|
9377 |
+
freeGlobal.window === freeGlobal ||
|
9378 |
+
freeGlobal.self === freeGlobal
|
9379 |
+
) {
|
9380 |
+
root = freeGlobal;
|
9381 |
+
}
|
9382 |
+
|
9383 |
+
/**
|
9384 |
+
* The `punycode` object.
|
9385 |
+
* @name punycode
|
9386 |
+
* @type Object
|
9387 |
+
*/
|
9388 |
+
var punycode,
|
9389 |
+
|
9390 |
+
/** Highest positive signed 32-bit float value */
|
9391 |
+
maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
|
9392 |
+
|
9393 |
+
/** Bootstring parameters */
|
9394 |
+
base = 36,
|
9395 |
+
tMin = 1,
|
9396 |
+
tMax = 26,
|
9397 |
+
skew = 38,
|
9398 |
+
damp = 700,
|
9399 |
+
initialBias = 72,
|
9400 |
+
initialN = 128, // 0x80
|
9401 |
+
delimiter = '-', // '\x2D'
|
9402 |
+
|
9403 |
+
/** Regular expressions */
|
9404 |
+
regexPunycode = /^xn--/,
|
9405 |
+
regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
|
9406 |
+
regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
|
9407 |
+
|
9408 |
+
/** Error messages */
|
9409 |
+
errors = {
|
9410 |
+
'overflow': 'Overflow: input needs wider integers to process',
|
9411 |
+
'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
|
9412 |
+
'invalid-input': 'Invalid input'
|
9413 |
+
},
|
9414 |
+
|
9415 |
+
/** Convenience shortcuts */
|
9416 |
+
baseMinusTMin = base - tMin,
|
9417 |
+
floor = Math.floor,
|
9418 |
+
stringFromCharCode = String.fromCharCode,
|
9419 |
+
|
9420 |
+
/** Temporary variable */
|
9421 |
+
key;
|
9422 |
+
|
9423 |
+
/*--------------------------------------------------------------------------*/
|
9424 |
+
|
9425 |
+
/**
|
9426 |
+
* A generic error utility function.
|
9427 |
+
* @private
|
9428 |
+
* @param {String} type The error type.
|
9429 |
+
* @returns {Error} Throws a `RangeError` with the applicable error message.
|
9430 |
+
*/
|
9431 |
+
function error(type) {
|
9432 |
+
throw new RangeError(errors[type]);
|
9433 |
+
}
|
9434 |
+
|
9435 |
+
/**
|
9436 |
+
* A generic `Array#map` utility function.
|
9437 |
+
* @private
|
9438 |
+
* @param {Array} array The array to iterate over.
|
9439 |
+
* @param {Function} callback The function that gets called for every array
|
9440 |
+
* item.
|
9441 |
+
* @returns {Array} A new array of values returned by the callback function.
|
9442 |
+
*/
|
9443 |
+
function map(array, fn) {
|
9444 |
+
var length = array.length;
|
9445 |
+
var result = [];
|
9446 |
+
while (length--) {
|
9447 |
+
result[length] = fn(array[length]);
|
9448 |
+
}
|
9449 |
+
return result;
|
9450 |
+
}
|
9451 |
+
|
9452 |
+
/**
|
9453 |
+
* A simple `Array#map`-like wrapper to work with domain name strings or email
|
9454 |
+
* addresses.
|
9455 |
+
* @private
|
9456 |
+
* @param {String} domain The domain name or email address.
|
9457 |
+
* @param {Function} callback The function that gets called for every
|
9458 |
+
* character.
|
9459 |
+
* @returns {Array} A new string of characters returned by the callback
|
9460 |
+
* function.
|
9461 |
+
*/
|
9462 |
+
function mapDomain(string, fn) {
|
9463 |
+
var parts = string.split('@');
|
9464 |
+
var result = '';
|
9465 |
+
if (parts.length > 1) {
|
9466 |
+
// In email addresses, only the domain name should be punycoded. Leave
|
9467 |
+
// the local part (i.e. everything up to `@`) intact.
|
9468 |
+
result = parts[0] + '@';
|
9469 |
+
string = parts[1];
|
9470 |
+
}
|
9471 |
+
// Avoid `split(regex)` for IE8 compatibility. See #17.
|
9472 |
+
string = string.replace(regexSeparators, '\x2E');
|
9473 |
+
var labels = string.split('.');
|
9474 |
+
var encoded = map(labels, fn).join('.');
|
9475 |
+
return result + encoded;
|
9476 |
+
}
|
9477 |
+
|
9478 |
+
/**
|
9479 |
+
* Creates an array containing the numeric code points of each Unicode
|
9480 |
+
* character in the string. While JavaScript uses UCS-2 internally,
|
9481 |
+
* this function will convert a pair of surrogate halves (each of which
|
9482 |
+
* UCS-2 exposes as separate characters) into a single code point,
|
9483 |
+
* matching UTF-16.
|
9484 |
+
* @see `punycode.ucs2.encode`
|
9485 |
+
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
9486 |
+
* @memberOf punycode.ucs2
|
9487 |
+
* @name decode
|
9488 |
+
* @param {String} string The Unicode input string (UCS-2).
|
9489 |
+
* @returns {Array} The new array of code points.
|
9490 |
+
*/
|
9491 |
+
function ucs2decode(string) {
|
9492 |
+
var output = [],
|
9493 |
+
counter = 0,
|
9494 |
+
length = string.length,
|
9495 |
+
value,
|
9496 |
+
extra;
|
9497 |
+
while (counter < length) {
|
9498 |
+
value = string.charCodeAt(counter++);
|
9499 |
+
if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
|
9500 |
+
// high surrogate, and there is a next character
|
9501 |
+
extra = string.charCodeAt(counter++);
|
9502 |
+
if ((extra & 0xFC00) == 0xDC00) { // low surrogate
|
9503 |
+
output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
|
9504 |
+
} else {
|
9505 |
+
// unmatched surrogate; only append this code unit, in case the next
|
9506 |
+
// code unit is the high surrogate of a surrogate pair
|
9507 |
+
output.push(value);
|
9508 |
+
counter--;
|
9509 |
+
}
|
9510 |
+
} else {
|
9511 |
+
output.push(value);
|
9512 |
+
}
|
9513 |
+
}
|
9514 |
+
return output;
|
9515 |
+
}
|
9516 |
+
|
9517 |
+
/**
|
9518 |
+
* Creates a string based on an array of numeric code points.
|
9519 |
+
* @see `punycode.ucs2.decode`
|
9520 |
+
* @memberOf punycode.ucs2
|
9521 |
+
* @name encode
|
9522 |
+
* @param {Array} codePoints The array of numeric code points.
|
9523 |
+
* @returns {String} The new Unicode string (UCS-2).
|
9524 |
+
*/
|
9525 |
+
function ucs2encode(array) {
|
9526 |
+
return map(array, function(value) {
|
9527 |
+
var output = '';
|
9528 |
+
if (value > 0xFFFF) {
|
9529 |
+
value -= 0x10000;
|
9530 |
+
output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
|
9531 |
+
value = 0xDC00 | value & 0x3FF;
|
9532 |
+
}
|
9533 |
+
output += stringFromCharCode(value);
|
9534 |
+
return output;
|
9535 |
+
}).join('');
|
9536 |
+
}
|
9537 |
+
|
9538 |
+
/**
|
9539 |
+
* Converts a basic code point into a digit/integer.
|
9540 |
+
* @see `digitToBasic()`
|
9541 |
+
* @private
|
9542 |
+
* @param {Number} codePoint The basic numeric code point value.
|
9543 |
+
* @returns {Number} The numeric value of a basic code point (for use in
|
9544 |
+
* representing integers) in the range `0` to `base - 1`, or `base` if
|
9545 |
+
* the code point does not represent a value.
|
9546 |
+
*/
|
9547 |
+
function basicToDigit(codePoint) {
|
9548 |
+
if (codePoint - 48 < 10) {
|
9549 |
+
return codePoint - 22;
|
9550 |
+
}
|
9551 |
+
if (codePoint - 65 < 26) {
|
9552 |
+
return codePoint - 65;
|
9553 |
+
}
|
9554 |
+
if (codePoint - 97 < 26) {
|
9555 |
+
return codePoint - 97;
|
9556 |
+
}
|
9557 |
+
return base;
|
9558 |
+
}
|
9559 |
+
|
9560 |
+
/**
|
9561 |
+
* Converts a digit/integer into a basic code point.
|
9562 |
+
* @see `basicToDigit()`
|
9563 |
+
* @private
|
9564 |
+
* @param {Number} digit The numeric value of a basic code point.
|
9565 |
+
* @returns {Number} The basic code point whose value (when used for
|
9566 |
+
* representing integers) is `digit`, which needs to be in the range
|
9567 |
+
* `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
|
9568 |
+
* used; else, the lowercase form is used. The behavior is undefined
|
9569 |
+
* if `flag` is non-zero and `digit` has no uppercase form.
|
9570 |
+
*/
|
9571 |
+
function digitToBasic(digit, flag) {
|
9572 |
+
// 0..25 map to ASCII a..z or A..Z
|
9573 |
+
// 26..35 map to ASCII 0..9
|
9574 |
+
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
|
9575 |
+
}
|
9576 |
+
|
9577 |
+
/**
|
9578 |
+
* Bias adaptation function as per section 3.4 of RFC 3492.
|
9579 |
+
* https://tools.ietf.org/html/rfc3492#section-3.4
|
9580 |
+
* @private
|
9581 |
+
*/
|
9582 |
+
function adapt(delta, numPoints, firstTime) {
|
9583 |
+
var k = 0;
|
9584 |
+
delta = firstTime ? floor(delta / damp) : delta >> 1;
|
9585 |
+
delta += floor(delta / numPoints);
|
9586 |
+
for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
|
9587 |
+
delta = floor(delta / baseMinusTMin);
|
9588 |
+
}
|
9589 |
+
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
|
9590 |
+
}
|
9591 |
+
|
9592 |
+
/**
|
9593 |
+
* Converts a Punycode string of ASCII-only symbols to a string of Unicode
|
9594 |
+
* symbols.
|
9595 |
+
* @memberOf punycode
|
9596 |
+
* @param {String} input The Punycode string of ASCII-only symbols.
|
9597 |
+
* @returns {String} The resulting string of Unicode symbols.
|
9598 |
+
*/
|
9599 |
+
function decode(input) {
|
9600 |
+
// Don't use UCS-2
|
9601 |
+
var output = [],
|
9602 |
+
inputLength = input.length,
|
9603 |
+
out,
|
9604 |
+
i = 0,
|
9605 |
+
n = initialN,
|
9606 |
+
bias = initialBias,
|
9607 |
+
basic,
|
9608 |
+
j,
|
9609 |
+
index,
|
9610 |
+
oldi,
|
9611 |
+
w,
|
9612 |
+
k,
|
9613 |
+
digit,
|
9614 |
+
t,
|
9615 |
+
/** Cached calculation results */
|
9616 |
+
baseMinusT;
|
9617 |
+
|
9618 |
+
// Handle the basic code points: let `basic` be the number of input code
|
9619 |
+
// points before the last delimiter, or `0` if there is none, then copy
|
9620 |
+
// the first basic code points to the output.
|
9621 |
+
|
9622 |
+
basic = input.lastIndexOf(delimiter);
|
9623 |
+
if (basic < 0) {
|
9624 |
+
basic = 0;
|
9625 |
+
}
|
9626 |
+
|
9627 |
+
for (j = 0; j < basic; ++j) {
|
9628 |
+
// if it's not a basic code point
|
9629 |
+
if (input.charCodeAt(j) >= 0x80) {
|
9630 |
+
error('not-basic');
|
9631 |
+
}
|
9632 |
+
output.push(input.charCodeAt(j));
|
9633 |
+
}
|
9634 |
+
|
9635 |
+
// Main decoding loop: start just after the last delimiter if any basic code
|
9636 |
+
// points were copied; start at the beginning otherwise.
|
9637 |
+
|
9638 |
+
for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
|
9639 |
+
|
9640 |
+
// `index` is the index of the next character to be consumed.
|
9641 |
+
// Decode a generalized variable-length integer into `delta`,
|
9642 |
+
// which gets added to `i`. The overflow checking is easier
|
9643 |
+
// if we increase `i` as we go, then subtract off its starting
|
9644 |
+
// value at the end to obtain `delta`.
|
9645 |
+
for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
|
9646 |
+
|
9647 |
+
if (index >= inputLength) {
|
9648 |
+
error('invalid-input');
|
9649 |
+
}
|
9650 |
+
|
9651 |
+
digit = basicToDigit(input.charCodeAt(index++));
|
9652 |
+
|
9653 |
+
if (digit >= base || digit > floor((maxInt - i) / w)) {
|
9654 |
+
error('overflow');
|
9655 |
+
}
|
9656 |
+
|
9657 |
+
i += digit * w;
|
9658 |
+
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
9659 |
+
|
9660 |
+
if (digit < t) {
|
9661 |
+
break;
|
9662 |
+
}
|
9663 |
+
|
9664 |
+
baseMinusT = base - t;
|
9665 |
+
if (w > floor(maxInt / baseMinusT)) {
|
9666 |
+
error('overflow');
|
9667 |
+
}
|
9668 |
+
|
9669 |
+
w *= baseMinusT;
|
9670 |
+
|
9671 |
+
}
|
9672 |
+
|
9673 |
+
out = output.length + 1;
|
9674 |
+
bias = adapt(i - oldi, out, oldi == 0);
|
9675 |
+
|
9676 |
+
// `i` was supposed to wrap around from `out` to `0`,
|
9677 |
+
// incrementing `n` each time, so we'll fix that now:
|
9678 |
+
if (floor(i / out) > maxInt - n) {
|
9679 |
+
error('overflow');
|
9680 |
+
}
|
9681 |
+
|
9682 |
+
n += floor(i / out);
|
9683 |
+
i %= out;
|
9684 |
+
|
9685 |
+
// Insert `n` at position `i` of the output
|
9686 |
+
output.splice(i++, 0, n);
|
9687 |
+
|
9688 |
+
}
|
9689 |
+
|
9690 |
+
return ucs2encode(output);
|
9691 |
+
}
|
9692 |
+
|
9693 |
+
/**
|
9694 |
+
* Converts a string of Unicode symbols (e.g. a domain name label) to a
|
9695 |
+
* Punycode string of ASCII-only symbols.
|
9696 |
+
* @memberOf punycode
|
9697 |
+
* @param {String} input The string of Unicode symbols.
|
9698 |
+
* @returns {String} The resulting Punycode string of ASCII-only symbols.
|
9699 |
+
*/
|
9700 |
+
function encode(input) {
|
9701 |
+
var n,
|
9702 |
+
delta,
|
9703 |
+
handledCPCount,
|
9704 |
+
basicLength,
|
9705 |
+
bias,
|
9706 |
+
j,
|
9707 |
+
m,
|
9708 |
+
q,
|
9709 |
+
k,
|
9710 |
+
t,
|
9711 |
+
currentValue,
|
9712 |
+
output = [],
|
9713 |
+
/** `inputLength` will hold the number of code points in `input`. */
|
9714 |
+
inputLength,
|
9715 |
+
/** Cached calculation results */
|
9716 |
+
handledCPCountPlusOne,
|
9717 |
+
baseMinusT,
|
9718 |
+
qMinusT;
|
9719 |
+
|
9720 |
+
// Convert the input in UCS-2 to Unicode
|
9721 |
+
input = ucs2decode(input);
|
9722 |
+
|
9723 |
+
// Cache the length
|
9724 |
+
inputLength = input.length;
|
9725 |
+
|
9726 |
+
// Initialize the state
|
9727 |
+
n = initialN;
|
9728 |
+
delta = 0;
|
9729 |
+
bias = initialBias;
|
9730 |
+
|
9731 |
+
// Handle the basic code points
|
9732 |
+
for (j = 0; j < inputLength; ++j) {
|
9733 |
+
currentValue = input[j];
|
9734 |
+
if (currentValue < 0x80) {
|
9735 |
+
output.push(stringFromCharCode(currentValue));
|
9736 |
+
}
|
9737 |
+
}
|
9738 |
+
|
9739 |
+
handledCPCount = basicLength = output.length;
|
9740 |
+
|
9741 |
+
// `handledCPCount` is the number of code points that have been handled;
|
9742 |
+
// `basicLength` is the number of basic code points.
|
9743 |
+
|
9744 |
+
// Finish the basic string - if it is not empty - with a delimiter
|
9745 |
+
if (basicLength) {
|
9746 |
+
output.push(delimiter);
|
9747 |
+
}
|
9748 |
+
|
9749 |
+
// Main encoding loop:
|
9750 |
+
while (handledCPCount < inputLength) {
|
9751 |
+
|
9752 |
+
// All non-basic code points < n have been handled already. Find the next
|
9753 |
+
// larger one:
|
9754 |
+
for (m = maxInt, j = 0; j < inputLength; ++j) {
|
9755 |
+
currentValue = input[j];
|
9756 |
+
if (currentValue >= n && currentValue < m) {
|
9757 |
+
m = currentValue;
|
9758 |
+
}
|
9759 |
+
}
|
9760 |
+
|
9761 |
+
// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
|
9762 |
+
// but guard against overflow
|
9763 |
+
handledCPCountPlusOne = handledCPCount + 1;
|
9764 |
+
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
|
9765 |
+
error('overflow');
|
9766 |
+
}
|
9767 |
+
|
9768 |
+
delta += (m - n) * handledCPCountPlusOne;
|
9769 |
+
n = m;
|
9770 |
+
|
9771 |
+
for (j = 0; j < inputLength; ++j) {
|
9772 |
+
currentValue = input[j];
|
9773 |
+
|
9774 |
+
if (currentValue < n && ++delta > maxInt) {
|
9775 |
+
error('overflow');
|
9776 |
+
}
|
9777 |
+
|
9778 |
+
if (currentValue == n) {
|
9779 |
+
// Represent delta as a generalized variable-length integer
|
9780 |
+
for (q = delta, k = base; /* no condition */; k += base) {
|
9781 |
+
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
9782 |
+
if (q < t) {
|
9783 |
+
break;
|
9784 |
+
}
|
9785 |
+
qMinusT = q - t;
|
9786 |
+
baseMinusT = base - t;
|
9787 |
+
output.push(
|
9788 |
+
stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
|
9789 |
+
);
|
9790 |
+
q = floor(qMinusT / baseMinusT);
|
9791 |
+
}
|
9792 |
+
|
9793 |
+
output.push(stringFromCharCode(digitToBasic(q, 0)));
|
9794 |
+
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
|
9795 |
+
delta = 0;
|
9796 |
+
++handledCPCount;
|
9797 |
+
}
|
9798 |
+
}
|
9799 |
+
|
9800 |
+
++delta;
|
9801 |
+
++n;
|
9802 |
+
|
9803 |
+
}
|
9804 |
+
return output.join('');
|
9805 |
+
}
|
9806 |
+
|
9807 |
+
/**
|
9808 |
+
* Converts a Punycode string representing a domain name or an email address
|
9809 |
+
* to Unicode. Only the Punycoded parts of the input will be converted, i.e.
|
9810 |
+
* it doesn't matter if you call it on a string that has already been
|
9811 |
+
* converted to Unicode.
|
9812 |
+
* @memberOf punycode
|
9813 |
+
* @param {String} input The Punycoded domain name or email address to
|
9814 |
+
* convert to Unicode.
|
9815 |
+
* @returns {String} The Unicode representation of the given Punycode
|
9816 |
+
* string.
|
9817 |
+
*/
|
9818 |
+
function toUnicode(input) {
|
9819 |
+
return mapDomain(input, function(string) {
|
9820 |
+
return regexPunycode.test(string)
|
9821 |
+
? decode(string.slice(4).toLowerCase())
|
9822 |
+
: string;
|
9823 |
+
});
|
9824 |
+
}
|
9825 |
+
|
9826 |
+
/**
|
9827 |
+
* Converts a Unicode string representing a domain name or an email address to
|
9828 |
+
* Punycode. Only the non-ASCII parts of the domain name will be converted,
|
9829 |
+
* i.e. it doesn't matter if you call it with a domain that's already in
|
9830 |
+
* ASCII.
|
9831 |
+
* @memberOf punycode
|
9832 |
+
* @param {String} input The domain name or email address to convert, as a
|
9833 |
+
* Unicode string.
|
9834 |
+
* @returns {String} The Punycode representation of the given domain name or
|
9835 |
+
* email address.
|
9836 |
+
*/
|
9837 |
+
function toASCII(input) {
|
9838 |
+
return mapDomain(input, function(string) {
|
9839 |
+
return regexNonASCII.test(string)
|
9840 |
+
? 'xn--' + encode(string)
|
9841 |
+
: string;
|
9842 |
+
});
|
9843 |
+
}
|
9844 |
+
|
9845 |
+
/*--------------------------------------------------------------------------*/
|
9846 |
+
|
9847 |
+
/** Define the public API */
|
9848 |
+
punycode = {
|
9849 |
+
/**
|
9850 |
+
* A string representing the current Punycode.js version number.
|
9851 |
+
* @memberOf punycode
|
9852 |
+
* @type String
|
9853 |
+
*/
|
9854 |
+
'version': '1.4.1',
|
9855 |
+
/**
|
9856 |
+
* An object of methods to convert from JavaScript's internal character
|
9857 |
+
* representation (UCS-2) to Unicode code points, and back.
|
9858 |
+
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
9859 |
+
* @memberOf punycode
|
9860 |
+
* @type Object
|
9861 |
+
*/
|
9862 |
+
'ucs2': {
|
9863 |
+
'decode': ucs2decode,
|
9864 |
+
'encode': ucs2encode
|
9865 |
+
},
|
9866 |
+
'decode': decode,
|
9867 |
+
'encode': encode,
|
9868 |
+
'toASCII': toASCII,
|
9869 |
+
'toUnicode': toUnicode
|
9870 |
+
};
|
9871 |
+
|
9872 |
+
/** Expose `punycode` */
|
9873 |
+
// Some AMD build optimizers, like r.js, check for specific condition patterns
|
9874 |
+
// like the following:
|
9875 |
+
if (
|
9876 |
+
typeof define == 'function' &&
|
9877 |
+
typeof define.amd == 'object' &&
|
9878 |
+
define.amd
|
9879 |
+
) {
|
9880 |
+
define('punycode', function() {
|
9881 |
+
return punycode;
|
9882 |
+
});
|
9883 |
+
} else if (freeExports && freeModule) {
|
9884 |
+
if (module.exports == freeExports) {
|
9885 |
+
// in Node.js, io.js, or RingoJS v0.8.0+
|
9886 |
+
freeModule.exports = punycode;
|
9887 |
+
} else {
|
9888 |
+
// in Narwhal or RingoJS v0.7.0-
|
9889 |
+
for (key in punycode) {
|
9890 |
+
punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
|
9891 |
+
}
|
9892 |
+
}
|
9893 |
+
} else {
|
9894 |
+
// in Rhino or a web browser
|
9895 |
+
root.punycode = punycode;
|
9896 |
+
}
|
9897 |
+
|
9898 |
+
}(this));
|
9899 |
+
|
9900 |
+
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
9901 |
+
},{}],42:[function(_dereq_,module,exports){
|
9902 |
+
/*!
|
9903 |
+
* $script.js JS loader & dependency manager
|
9904 |
+
* https://github.com/ded/script.js
|
9905 |
+
* (c) Dustin Diaz 2014 | License MIT
|
9906 |
+
*/
|
9907 |
+
|
9908 |
+
(function (name, definition) {
|
9909 |
+
if (typeof module != 'undefined' && module.exports) module.exports = definition()
|
9910 |
+
else if (typeof define == 'function' && define.amd) define(definition)
|
9911 |
+
else this[name] = definition()
|
9912 |
+
})('$script', function () {
|
9913 |
+
var doc = document
|
9914 |
+
, head = doc.getElementsByTagName('head')[0]
|
9915 |
+
, s = 'string'
|
9916 |
+
, f = false
|
9917 |
+
, push = 'push'
|
9918 |
+
, readyState = 'readyState'
|
9919 |
+
, onreadystatechange = 'onreadystatechange'
|
9920 |
+
, list = {}
|
9921 |
+
, ids = {}
|
9922 |
+
, delay = {}
|
9923 |
+
, scripts = {}
|
9924 |
+
, scriptpath
|
9925 |
+
, urlArgs
|
9926 |
+
|
9927 |
+
function every(ar, fn) {
|
9928 |
+
for (var i = 0, j = ar.length; i < j; ++i) if (!fn(ar[i])) return f
|
9929 |
+
return 1
|
9930 |
+
}
|
9931 |
+
function each(ar, fn) {
|
9932 |
+
every(ar, function (el) {
|
9933 |
+
return !fn(el)
|
9934 |
+
})
|
9935 |
+
}
|
9936 |
+
|
9937 |
+
function $script(paths, idOrDone, optDone) {
|
9938 |
+
paths = paths[push] ? paths : [paths]
|
9939 |
+
var idOrDoneIsDone = idOrDone && idOrDone.call
|
9940 |
+
, done = idOrDoneIsDone ? idOrDone : optDone
|
9941 |
+
, id = idOrDoneIsDone ? paths.join('') : idOrDone
|
9942 |
+
, queue = paths.length
|
9943 |
+
function loopFn(item) {
|
9944 |
+
return item.call ? item() : list[item]
|
9945 |
+
}
|
9946 |
+
function callback() {
|
9947 |
+
if (!--queue) {
|
9948 |
+
list[id] = 1
|
9949 |
+
done && done()
|
9950 |
+
for (var dset in delay) {
|
9951 |
+
every(dset.split('|'), loopFn) && !each(delay[dset], loopFn) && (delay[dset] = [])
|
9952 |
+
}
|
9953 |
+
}
|
9954 |
+
}
|
9955 |
+
setTimeout(function () {
|
9956 |
+
each(paths, function loading(path, force) {
|
9957 |
+
if (path === null) return callback()
|
9958 |
+
|
9959 |
+
if (!force && !/^https?:\/\//.test(path) && scriptpath) {
|
9960 |
+
path = (path.indexOf('.js') === -1) ? scriptpath + path + '.js' : scriptpath + path;
|
9961 |
+
}
|
9962 |
+
|
9963 |
+
if (scripts[path]) {
|
9964 |
+
if (id) ids[id] = 1
|
9965 |
+
return (scripts[path] == 2) ? callback() : setTimeout(function () { loading(path, true) }, 0)
|
9966 |
+
}
|
9967 |
+
|
9968 |
+
scripts[path] = 1
|
9969 |
+
if (id) ids[id] = 1
|
9970 |
+
create(path, callback)
|
9971 |
+
})
|
9972 |
+
}, 0)
|
9973 |
+
return $script
|
9974 |
+
}
|
9975 |
+
|
9976 |
+
function create(path, fn) {
|
9977 |
+
var el = doc.createElement('script'), loaded
|
9978 |
+
el.onload = el.onerror = el[onreadystatechange] = function () {
|
9979 |
+
if ((el[readyState] && !(/^c|loade/.test(el[readyState]))) || loaded) return;
|
9980 |
+
el.onload = el[onreadystatechange] = null
|
9981 |
+
loaded = 1
|
9982 |
+
scripts[path] = 2
|
9983 |
+
fn()
|
9984 |
+
}
|
9985 |
+
el.async = 1
|
9986 |
+
el.src = urlArgs ? path + (path.indexOf('?') === -1 ? '?' : '&') + urlArgs : path;
|
9987 |
+
head.insertBefore(el, head.lastChild)
|
9988 |
+
}
|
9989 |
+
|
9990 |
+
$script.get = create
|
9991 |
+
|
9992 |
+
$script.order = function (scripts, id, done) {
|
9993 |
+
(function callback(s) {
|
9994 |
+
s = scripts.shift()
|
9995 |
+
!scripts.length ? $script(s, id, done) : $script(s, callback)
|
9996 |
+
}())
|
9997 |
+
}
|
9998 |
+
|
9999 |
+
$script.path = function (p) {
|
10000 |
+
scriptpath = p
|
10001 |
+
}
|
10002 |
+
$script.urlArgs = function (str) {
|
10003 |
+
urlArgs = str;
|
10004 |
+
}
|
10005 |
+
$script.ready = function (deps, ready, req) {
|
10006 |
+
deps = deps[push] ? deps : [deps]
|
10007 |
+
var missing = [];
|
10008 |
+
!each(deps, function (dep) {
|
10009 |
+
list[dep] || missing[push](dep);
|
10010 |
+
}) && every(deps, function (dep) {return list[dep]}) ?
|
10011 |
+
ready() : !function (key) {
|
10012 |
+
delay[key] = delay[key] || []
|
10013 |
+
delay[key][push](ready)
|
10014 |
+
req && req(missing)
|
10015 |
+
}(deps.join('|'))
|
10016 |
+
return $script
|
10017 |
+
}
|
10018 |
+
|
10019 |
+
$script.done = function (idOrDone) {
|
10020 |
+
$script([null], idOrDone)
|
10021 |
+
}
|
10022 |
+
|
10023 |
+
return $script
|
10024 |
+
});
|
10025 |
+
|
10026 |
+
},{}]},{},[29])(29)
|
10027 |
+
});
|
lib/flowplayer.min.js
CHANGED
@@ -1,7 +1,10 @@
|
|
1 |
/*!
|
2 |
|
3 |
-
Flowplayer
|
4 |
|
5 |
*/
|
6 |
-
!function(e){function t(t,n,i){i=i||"transparent";var a="obj"+(""+Math.random()).slice(2,15),o='<object class="fp-engine" id="'+a+'" name="'+a+'" ';o+=e.browser.msie?'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">':' data="'+t+'" type="application/x-shockwave-flash">';var r={width:"100%",height:"100%",allowscriptaccess:"always",wmode:i,quality:"high",flashvars:"",movie:t+(e.browser.msie?"?"+a:""),name:a};return e.each(n,function(e,t){r.flashvars+=e+"="+t+"&"}),e.each(r,function(e,t){o+='<param name="'+e+'" value="'+t+'"/>'}),o+="</object>",e(o)}function n(e,t){return t=t||100,Math.round(e*t)/t}function i(e){return/mpegurl/i.test(e)?"application/x-mpegurl":"video/"+e}function a(e){return/^(video|application)/i.test(e)||(e=i(e)),!!b.canPlayType(e).replace("no","")}function o(t,n){var i=e.grep(t,function(e){return e.type===n});return i.length?i[0]:null}function r(e){var t=e.attr("src"),n=e.attr("type")||"",i=t.split(x)[1];return n=/mpegurl/i.test(n)?"mpegurl":n.replace("video/",""),{src:t,suffix:i||n,type:n||i}}function s(t){var n=this,i=[];e("source",t).each(function(){i.push(r(e(this)))}),i.length||i.push(r(t)),n.initialSources=i,n.resolve=function(t){return t?(e.isArray(t)?t={sources:e.map(t,function(t){var n,i=e.extend({},t);return e.each(t,function(e){n=e}),i.type=n,i.src=t[n],delete i[n],i})}:"string"==typeof t&&(t={src:t,sources:[]},e.each(i,function(e,n){"flash"!=n.type&&t.sources.push({type:n.type,src:t.src.replace(x,"."+n.suffix+"$2")})})),t):{sources:i}}}function l(e){return e=parseInt(e,10),e>=10?e:"0"+e}function d(e){e=e||0;var t=Math.floor(e/3600),n=Math.floor(e/60);return e-=60*n,t>=1?(n-=60*t,t+":"+l(n)+":"+l(e)):l(n)+":"+l(e)}!function(e){if(!e.browser){var t=e.browser={},n=navigator.userAgent.toLowerCase(),i=/(chrome)[ \/]([\w.]+)/.exec(n)||/(safari)[ \/]([\w.]+)/.exec(n)||/(webkit)[ \/]([\w.]+)/.exec(n)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(n)||/(msie) ([\w.]+)/.exec(n)||0>n.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(n)||[];i[1]&&(t[i[1]]=!0,t.version=i[2]||"0")}}(jQuery),e(function(){"function"==typeof e.fn.flowplayer&&e("video").parent(".flowplayer").flowplayer()});var u=[],c=[],f=window.navigator.userAgent;window.flowplayer=function(t){return e.isFunction(t)?c.push(t):"number"==typeof t||void 0===t?u[t||0]:e(t).data("flowplayer")},e(window).on("beforeunload",function(){e.each(u,function(t,n){n.conf.splash?n.unload():n.bind("error",function(){e(".flowplayer.is-error .fp-message").remove()})})});var p=!1;try{"object"==typeof window.localStorage&&(window.localStorage.flowplayerTestStorage="test",p=!0)}catch(v){}var g=/Safari/.exec(navigator.userAgent)&&!/Chrome/.exec(navigator.userAgent);m=/(\d+\.\d+) Safari/.exec(navigator.userAgent),safariVersion=m?Number(m[1]):100,e.extend(flowplayer,{version:"5.5.2",engine:{},conf:{},support:{},defaults:{debug:!1,disabled:!1,engine:"html5",fullscreen:window==window.top,keyboard:!0,ratio:9/16,adaptiveRatio:!1,flashfit:!1,rtmp:0,splash:!1,live:!1,swf:"//releases.flowplayer.org/5.5.2/flowplayer.swf",speeds:[.25,.5,1,1.5,2],tooltip:!0,volume:p?"true"==localStorage.muted?0:isNaN(localStorage.volume)?1:localStorage.volume||1:1,errors:["","Video loading aborted","Network error","Video not properly encoded","Video file not found","Unsupported video","Skin not found","SWF file not found","Subtitles not found","Invalid RTMP URL","Unsupported video format. Try installing Adobe Flash."],errorUrls:["","","","","","","","","","","http://get.adobe.com/flashplayer/"],playlist:[],hlsFix:g&&8>safariVersion}});var h=1;e.fn.flowplayer=function(t,n){return"string"==typeof t&&(t={swf:t}),e.isFunction(t)&&(n=t,t={}),!t&&this.data("flowplayer")||this.each(function(){var i,a,o=e(this).addClass("is-loading"),r=e.extend({},flowplayer.defaults,flowplayer.conf,t,o.data()),l=e("video",o).addClass("fp-engine").removeAttr("controls"),d=l.length?new s(l):null,f={};if(r.playlist.length){var v,m=r.preload||l.attr("preload");l.length&&l.replaceWith(v=e("<p />")),l=e("<video />").addClass("fp-engine"),v?v.replaceWith(l):o.prepend(l),flowplayer.support.video&&l.attr("preload",m),"string"==typeof r.playlist[0]?l.attr("src",r.playlist[0]):e.each(r.playlist[0],function(t,n){for(var i in n)n.hasOwnProperty(i)&&l.append(e("<source />").attr({type:"video/"+i,src:n[i]}))}),d=new s(l)}var g=o.data("flowplayer");g&&g.unload(),o.data("fp-player_id",o.data("fp-player_id")||h++);try{f=p?window.localStorage:f}catch(y){}var b=this.currentStyle&&"rtl"===this.currentStyle.direction||window.getComputedStyle&&"rtl"===window.getComputedStyle(this,null).getPropertyValue("direction");b&&o.addClass("is-rtl");var w=g||{conf:r,currentSpeed:1,volumeLevel:r.volume===void 0?1*f.volume:r.volume,video:{},disabled:!1,finished:!1,loading:!1,muted:"true"==f.muted||r.muted,paused:!1,playing:!1,ready:!1,splash:!1,rtl:b,load:function(t,n){if(!(w.error||w.loading||w.disabled)){if(t=d.resolve(t),e.extend(t,a.pick(t.sources)),t.src){var i=e.Event("load");o.trigger(i,[w,t,a]),i.isDefaultPrevented()?w.loading=!1:(a.load(t),e.isFunction(t)&&(n=t),n&&o.one("ready",n))}return w}},pause:function(e){return!w.ready||w.seeking||w.disabled||w.loading||(a.pause(),w.one("pause",e)),w},resume:function(){return w.ready&&w.paused&&!w.disabled&&(a.resume(),w.finished&&(w.trigger("resume",[w]),w.finished=!1)),w},toggle:function(){return w.ready?w.paused?w.resume():w.pause():w.load()},seek:function(t,n){if(w.ready&&!w.live){if("boolean"==typeof t){var r=.1*w.video.duration;t=w.video.time+(t?r:-r)}t=i=Math.min(Math.max(t,0),w.video.duration).toFixed(1);var s=e.Event("beforeseek");o.trigger(s,[w,t]),s.isDefaultPrevented()?(w.seeking=!1,o.toggleClass("is-seeking",w.seeking)):(a.seek(t),e.isFunction(n)&&o.one("seek",n))}return w},seekTo:function(e,t){var n=void 0===e?i:.1*w.video.duration*e;return w.seek(n,t)},mute:function(e){return void 0===e&&(e=!w.muted),f.muted=w.muted=e,f.volume=isNaN(f.volume)?r.volume:f.volume,w.volume(e?0:f.volume,!0),w.trigger("mute",e),w},volume:function(e,t){return w.ready&&(e=Math.min(Math.max(e,0),1),t||(f.volume=e),a.volume(e)),w},speed:function(t,n){return w.ready&&("boolean"==typeof t&&(t=r.speeds[e.inArray(w.currentSpeed,r.speeds)+(t?1:-1)]||w.currentSpeed),a.speed(t),n&&o.one("speed",n)),w},stop:function(){return w.ready&&(w.pause(),w.seek(0,function(){o.trigger("stop")})),w},unload:function(){return o.hasClass("is-embedding")||(r.splash?(w.trigger("unload"),a.unload()):w.stop()),w},disable:function(e){return void 0===e&&(e=!w.disabled),e!=w.disabled&&(w.disabled=e,w.trigger("disable",e)),w}};w.conf=e.extend(w.conf,r),e.each(["bind","one","unbind"],function(e,t){w[t]=function(e,n){return o[t](e,n),w}}),w.trigger=function(e,t){return o.trigger(e,[w,t]),w},o.data("flowplayer")||o.bind("boot",function(){return e.each(["autoplay","loop","preload","poster"],function(e,t){var n=l.attr(t);void 0!==n&&(r[t]=n?n:!0)}),(r.splash||o.hasClass("is-splash")||!flowplayer.support.firstframe)&&(w.forcedSplash=!r.splash&&!o.hasClass("is-splash"),w.splash=r.splash=r.autoplay=!0,o.addClass("is-splash"),flowplayer.support.video&&l.attr("preload","none")),(r.live||o.hasClass("is-live"))&&(w.live=r.live=!0,o.addClass("is-live")),e.each(c,function(){this(w,o)}),a=flowplayer.engine[r.engine],a&&(a=a(w,o)),a.pick(d.initialSources)?w.engine=r.engine:e.each(flowplayer.engine,function(e){return e!=r.engine&&(a=this(w,o),a.pick(d.initialSources))?(w.engine=e,!1):void 0}),u.push(w),w.engine?(r.splash?w.unload():w.load(),r.disabled&&w.disable(),a.volume(w.volumeLevel),o.one("ready",n),void 0):w.trigger("error",{code:flowplayer.support.flashVideo?5:10})}).bind("load",function(t,n){r.splash&&e(".flowplayer").filter(".is-ready, .is-loading").not(o).each(function(){var t=e(this).data("flowplayer");t.conf.splash&&t.unload()}),o.addClass("is-loading"),n.loading=!0}).bind("ready",function(e,t,n){function i(){o.removeClass("is-loading"),t.loading=!1}n.time=0,t.video=n,r.splash?o.one("progress",i):i(),t.muted?t.mute(!0):t.volume(t.volumeLevel);var a=t.conf.hlsFix&&/mpegurl/i.exec(n.type);o.toggleClass("hls-fix",!!a)}).bind("unload",function(){r.splash&&l.remove(),o.removeClass("is-loading"),w.loading=!1}).bind("ready unload",function(e){var t="ready"==e.type;o.toggleClass("is-splash",!t).toggleClass("is-ready",t),w.ready=t,w.splash=!t}).bind("progress",function(e,t,n){t.video.time=n}).bind("speed",function(e,t,n){t.currentSpeed=n}).bind("volume",function(e,t,n){t.volumeLevel=Math.round(100*n)/100,t.muted?n&&t.mute(!1):f.volume=n}).bind("beforeseek seek",function(e){w.seeking="beforeseek"==e.type,o.toggleClass("is-seeking",w.seeking)}).bind("ready pause resume unload finish stop",function(e,t,n){w.paused=/pause|finish|unload|stop/.test(e.type),"ready"==e.type&&(w.paused="none"==r.preload,n&&(w.paused=!n.duration||!r.autoplay&&"none"!=r.preload)),w.playing=!w.paused,o.toggleClass("is-paused",w.paused).toggleClass("is-playing",w.playing),w.load.ed||w.pause()}).bind("finish",function(){w.finished=!0}).bind("error",function(){l.remove()}),o.trigger("boot",[w,o]).data("flowplayer",w)})},!function(){var t=function(e){var t=/Version\/(\d\.\d)/.exec(e);return t&&t.length>1?parseFloat(t[1],10):0},n=flowplayer.support,i=e.browser,a=e("<video loop autoplay preload/>")[0],o=navigator.userAgent,r=i.msie||/Trident\/7/.test(o),s=/iPad|MeeGo/.test(o)&&!/CriOS/.test(o),l=/iPad/.test(o)&&/CriOS/.test(o),d=/iP(hone|od)/i.test(o)&&!/iPad/.test(o),u=/Android/.test(o)&&!/Firefox/.test(o),c=/Android/.test(o)&&/Firefox/.test(o),f=/Silk/.test(o),p=/IEMobile/.test(o),v=p?parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(o)[1],10):0,m=p?parseFloat(/IEMobile\/(\d+\.\d+)/.exec(o)[1],10):0,g=(s?t(o):0,u?parseFloat(/Android\ (\d\.\d)/.exec(o)[1],10):0);e.extend(n,{subtitles:!!a.addTextTrack,fullscreen:"function"==typeof document.webkitCancelFullScreen&&!/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(o)||document.mozFullScreenEnabled||"function"==typeof document.exitFullscreen||"function"==typeof document.msExitFullscreen,inlineBlock:!(r&&8>i.version),touch:"ontouchstart"in window,dataload:!s&&!d&&!p,zeropreload:!r&&!u,volume:!(s||u||d||f||l),cachedVideoTag:!(s||d||l||p),firstframe:!(d||s||u||f||l||p||c),inlineVideo:!d&&(!p||v>=8.1&&m>=11)&&(!u||g>=3),hlsDuration:!u&&(!i.safari||s||d||l),seekable:!s&&!l});try{var h=navigator.plugins["Shockwave Flash"],y=r?new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version"):h.description;r||h[0].enabledPlugin?(y=y.split(/\D+/),y.length&&!y[0]&&(y=y.slice(1)),n.flashVideo=y[0]>9||9==y[0]&&y[3]>=115):n.flashVideo=!1}catch(b){}try{n.video=!!a.canPlayType,n.video&&a.canPlayType("video/mp4")}catch(w){n.video=!1}n.animation=function(){for(var t=["","Webkit","Moz","O","ms","Khtml"],n=e("<p/>")[0],i=0;t.length>i;i++)if("undefined"!==n.style[t[i]+"AnimationName"])return!0}()}(),window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_savedUnloadHandler=__flash_unloadHandler=function(){}}),flowplayer.engine.flash=function(n,i){var a,o,r,s=n.conf;n.video;var l=e(window),d=function(){if("webkit"==_||P){var t=e("object param[name='flashvars']",i),a=(t.attr("value")||"").split("&");e.each(a,function(e,i){return i=i.split("="),"url"==i[0]&&i[1]!=n.video.url?(a[e]="url="+n.video.url,t.attr({value:a.join("&")}),!1):void 0})}},u=function(t){var a=i.height(),o=i.width();if(n.conf.flashfit||/full/.test(t.type)){var r,s,d=n.isFullscreen,u=d&&A,c=!flowplayer.support.inlineBlock,f=d?u?screen.width:l.width():o,p=d?u?screen.height:l.height():a,v=0,m=0,g=c?o:"",h=c?a:"";(n.conf.flashfit||"fullscreen"===t.type)&&(r=n.video.width/n.video.height,s=n.video.height/n.video.width,h=Math.max(s*f),g=Math.max(r*p),h=h>p?g*s:h,h=Math.min(Math.round(h),p),g=g>f?h*r:g,g=Math.min(Math.round(g),f),m=Math.max(Math.round((p+m-h)/2),0),v=Math.max(Math.round((f+v-g)/2),0)),e("object",i).css({width:g,height:h,marginTop:m,marginLeft:v})}},c={pick:function(t){if(flowplayer.support.flashVideo){var n=e.grep(t,function(e){return"flash"==e.type})[0];if(n)return n;for(var i,a=0;t.length>a;a++)if(i=t[a],/mp4|flv/i.test(i.type))return i}},load:function(l){function c(e){return e.replace(/&/g,"%26").replace(/&/g,"%26").replace(/=/g,"%3D")}var f=e("video",i),p=c(l.src);is_absolute=/^https?:/.test(p);var v=function(){f.remove()},m=function(t){return e.grep(t,function(e){return!!f[0].canPlayType("video/"+e.type)}).length>0};if(flowplayer.support.video&&f.prop("autoplay")&&m(l.sources)?f.one("timeupdate",v):v(),is_absolute||s.rtmp||(p=e("<img/>").attr("src",p)[0].src),r)r.__play(p);else{n.bind("ready",d).bind("ready fullscreen fullscreen-exit",u),a="fp"+(""+Math.random()).slice(3,15);var g={hostname:s.embedded?s.hostname:location.hostname,url:p,callback:"jQuery."+a};i.data("origin")&&(g.origin=i.data("origin")),is_absolute&&delete s.rtmp,e.each(["key","autoplay","preload","rtmp","subscribe","live","loop","debug","splash","poster","rtmpt"],function(e,t){s.hasOwnProperty(t)&&(g[t]=s[t])}),void 0!==s.bufferTime&&(g.bufferTime=s.bufferTime),g.rtmp&&(g.rtmp=c(g.rtmp)),g.initialVolume=n.volumeLevel,o=t(s.swf,g,s.wmode),o.prependTo(i),r=o[0],setTimeout(function(){try{if(!r.PercentLoaded())return i.trigger("error",[n,{code:7,url:s.swf}])}catch(e){}},5e3),setTimeout(function(){r.PercentLoaded===void 0&&i.trigger("flashdisabled",[n])},1e3),r.pollInterval=setInterval(function(){if(r){var e=r.__status?r.__status():null;e&&(n.trigger("progress",e.time),l.buffer=e.buffer/l.bytes*l.duration,n.trigger("buffer",l.buffer),!l.buffered&&e.time>0&&(l.buffered=!0,n.trigger("buffered")))}},250),e[a]=function(t,i){s.debug&&console.log("--",t,i);var a=e.Event(t);switch(t){case"ready":i=e.extend(l,i);break;case"click":a.flash=!0;break;case"keydown":a.which=i;break;case"seek":l.time=i}"buffered"!=t&&setTimeout(function(){n.trigger(a,i)},1)}}},speed:e.noop,unload:function(){r&&r.__unload&&r.__unload(),delete e[a],e("object",i).remove(),r=0,n.unbind("ready",d).unbind("ready fullscreen fullscreen-exit",u),clearInterval(r.pollInterval)}};return e.each("pause,resume,seek,volume".split(","),function(e,t){c[t]=function(e){try{n.ready&&("seek"==t&&n.video.time&&!n.paused&&n.trigger("beforeseek"),void 0===e?r["__"+t]():r["__"+t](e))}catch(a){if(r["__"+t]===void 0)return i.trigger("flashdisabled",[n]);throw a}}}),c};var y,b=e("<video/>")[0],w={ended:"finish",pause:"pause",play:"resume",progress:"buffer",timeupdate:"progress",volumechange:"volume",ratechange:"speed",seeked:"seek",loadeddata:"ready",error:"error",dataunavailable:"error"},k=function(t){return y?y.attr({type:i(t.type),src:t.src}):y=e("<video/>",{src:t.src,type:i(t.type),"class":"fp-engine",autoplay:"autoplay",preload:"none","x-webkit-airplay":"allow"})};flowplayer.engine.html5=function(t,i){function r(o,r,s){o.listeners&&o.listeners.hasOwnProperty(i.data("fp-player_id"))||((o.listeners||(o.listeners={}))[i.data("fp-player_id")]=!0,r.bind("error",function(n){try{if(n.originalEvent&&e(n.originalEvent.originalTarget).is("img"))return n.preventDefault();a(e(n.target).attr("type"))&&t.trigger("error",{code:4})}catch(i){}}),e.each(w,function(a,r){o.addEventListener(a,function(d){if("progress"==r&&d.srcElement&&0===d.srcElement.readyState&&setTimeout(function(){t.video.duration||t.conf.live&&("mpegurl"!==t.video.type||!f.hlsDuration)||(r="error",t.trigger(r,{code:4}))},1e4),p.debug&&!/progress/.test(r)&&console.log(a,"->",r,d),(t.ready||/ready|error/.test(r))&&r&&e("video",i).length){var u,c=e.Event(r);switch(r){case"ready":u=e.extend(s,{duration:o.duration,width:o.videoWidth,height:o.videoHeight,url:o.currentSrc,src:o.currentSrc});try{u.seekable=!p.live&&/mpegurl/i.test(s?s.type||"":"")&&o.duration||o.seekable&&o.seekable.end(null)}catch(v){}if(l=l||setInterval(function(){try{u.buffer=o.buffered.end(null)}catch(e){}u.buffer&&(n(u.buffer,1e3)<n(u.duration,1e3)&&!u.buffered?t.trigger("buffer",d):u.buffered||(u.buffered=!0,t.trigger("buffer",d).trigger("buffered",d),clearInterval(l),l=0))},250),!p.live&&!u.duration&&!f.hlsDuration&&"loadeddata"===a){var m=function(){u.duration=o.duration;try{u.seekable=o.seekable&&o.seekable.end(null)}catch(e){}t.trigger(c,u),o.removeEventListener("durationchange",m)};return o.addEventListener("durationchange",m),void 0}break;case"progress":case"seek":if(t.video.duration,o.currentTime>0||t.live){u=Math.max(o.currentTime,0);break}if("progress"==r)return;case"speed":u=n(o.playbackRate);break;case"volume":u=n(o.volume);break;case"error":try{u=(d.srcElement||d.originalTarget).error}catch(g){return}}t.trigger(c,u)}},!1)}))}var s,l,d,u,c=e("video",i),f=flowplayer.support,p=(e("track",c),t.conf);return s={pick:function(e){if(f.video){if(p.videoTypePreference){var t=o(e,p.videoTypePreference);if(t)return t}for(var n=0;e.length>n;n++)if(a(e[n].type))return e[n]}},load:function(n){if(p.splash&&!d)c=k(n).prependTo(i),f.inlineVideo||c.css({position:"absolute",top:"-9999em"}),p.loop&&c.attr("loop","loop"),d=c[0],u!==void 0&&(d.volume=u);else{d=c[0];var a=c.find("source");!d.src&&a.length&&(d.src=n.src,a.remove()),t.video.src&&n.src!=t.video.src?(c.attr("autoplay","autoplay"),d.src=n.src):"none"!=p.preload&&f.dataload||(f.zeropreload?t.trigger("ready",n).trigger("pause").one("ready",function(){i.trigger("resume",[t])}):t.one("ready",function(){i.trigger("pause",[t])}))}r(d,e("source",c).add(c),n),("none"!=p.preload&&"mpegurl"!=n.type||!f.zeropreload||!f.dataload)&&d.load(),p.splash&&d.load()},pause:function(){d.pause()},resume:function(){d.play()},speed:function(e){d.playbackRate=e},seek:function(e){try{var n=t.paused;d.currentTime=e,n&&d.pause()}catch(i){}},volume:function(e){u=e,d&&(d.volume=e)},unload:function(){e("video.fp-engine",i).remove(),f.cachedVideoTag||(y=null),l=clearInterval(l),d=0}}};var x=/\.(\w{3,4})(\?.*)?$/i;e.throttle=function(e,t){var n;return function(){n||(e.apply(this,arguments),n=1,setTimeout(function(){n=0},t))}},e.fn.slider2=function(t){var n=/iPad/.test(navigator.userAgent)&&!/CriOS/.test(navigator.userAgent);return this.each(function(){var i,a,o,r,s,l,d,u,c=e(this),f=e(document),p=c.children(":last"),v=!1,m=function(){a=c.offset(),o=c.width(),r=c.height(),l=s?r:o,u=b(d)},g=function(e){i||e==w.value||d&&!(d>e)||(c.trigger("slide",[e]),w.value=e)},h=function(e){var n=e.pageX;!n&&e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length&&(n=e.originalEvent.touches[0].pageX);var i=s?e.pageY-a.top:n-a.left;i=Math.max(0,Math.min(u||l,i));var o=i/l;return s&&(o=1-o),t&&(o=1-o),y(o,0,!0)},y=function(e,t){void 0===t&&(t=0),e>1&&(e=1);var i=Math.round(1e3*e)/10+"%";return(!d||d>=e)&&(n||v||p.stop(),v?p.css("width",i):p.animate(s?{height:i}:{width:i},t,"linear")),e},b=function(e){return Math.max(0,Math.min(l,s?(1-e)*r:e*o))},w={max:function(e){d=e},disable:function(e){i=e},slide:function(e,t,n){m(),n&&g(e),y(e,t)},disableAnimation:function(e,t){v=e!==!1,c.toggleClass("no-animation",!!t)}};m(),c.data("api",w).bind("mousedown.sld touchstart",function(t){if(t.preventDefault(),!i){var n=e.throttle(g,100);m(),w.dragging=!0,c.addClass("is-dragging"),g(h(t)),f.bind("mousemove.sld touchmove",function(e){e.preventDefault(),n(h(e))}).one("mouseup touchend",function(){w.dragging=!1,c.removeClass("is-dragging"),f.unbind("mousemove.sld touchmove")})}})})},flowplayer(function(t,n){function i(t){return e(".fp-"+t,n)}function a(t){("0px"===n.css("width")||"0px"===n.css("height")||t!==flowplayer.defaults.ratio)&&(parseInt(y,10)||m.css("paddingTop",100*t+"%")),l.inlineBlock||e("object",n).height(n.height())}function o(e){n.toggleClass("is-mouseover",e).toggleClass("is-mouseout",!e)}var r,s=t.conf,l=flowplayer.support;n.find(".fp-ratio,.fp-ui").remove(),n.addClass("flowplayer").append(' <div class="ratio"/> <div class="ui"> <div class="waiting"><em/><em/><em/></div> <a class="fullscreen"/> <a class="unload"/> <p class="speed"/> <div class="controls"> <a class="play"></a> <div class="timeline"> <div class="buffer"/> <div class="progress"/> </div> <div class="volume"> <a class="mute"></a> <div class="volumeslider"> <div class="volumelevel"/> </div> </div> </div> <div class="time"> <em class="elapsed">00:00</em> <em class="remaining"/> <em class="duration">00:00</em> </div> <div class="message"><h2/><p/></div> </div>'.replace(/class="/g,'class="fp-'));var u=i("progress"),c=i("buffer"),f=i("elapsed"),p=i("remaining"),v=i("waiting"),m=i("ratio"),g=i("speed"),h=i("duration"),y=m.css("paddingTop"),b=i("timeline").slider2(t.rtl),w=b.data("api"),k=(i("volume"),i("fullscreen")),x=i("volumeslider").slider2(t.rtl),C=x.data("api"),T=n.is(".fixed-controls, .no-toggle");w.disableAnimation(n.hasClass("is-touch")),l.animation||v.html("<p>loading …</p>"),a(s.ratio);try{s.fullscreen||k.remove()}catch(S){k.remove()}t.bind("ready",function(){var e=t.video.duration;w.disable(t.disabled||!e),s.adaptiveRatio&&a(t.video.height/t.video.width),h.add(p).html(d(e)),e>=3600&&n.addClass("is-long")||n.removeClass("is-long"),C.slide(t.volumeLevel),"flash"===t.engine&&w.disableAnimation(!0,!0)}).bind("unload",function(){y||m.css("paddingTop","")}).bind("buffer",function(){var e=t.video,n=e.buffer/e.duration;!e.seekable&&l.seekable&&w.max(n),1>n?c.css("width",100*n+"%"):c.css({width:"100%"})}).bind("speed",function(e,t,n){g.text(n+"x").addClass("fp-hilite"),setTimeout(function(){g.removeClass("fp-hilite")},1e3)}).bind("buffered",function(){c.css({width:"100%"}),w.max(1)}).bind("progress",function(){var e=t.video.time,n=t.video.duration;w.dragging||w.slide(e/n,t.seeking?0:250),f.html(d(e)),p.html("-"+d(n-e))}).bind("finish resume seek",function(e){n.toggleClass("is-finished","finish"==e.type)}).bind("stop",function(){f.html(d(0)),w.slide(0,100)}).bind("finish",function(){f.html(d(t.video.duration)),w.slide(1,100),n.removeClass("is-seeking")}).bind("beforeseek",function(){u.stop()}).bind("volume",function(){C.slide(t.volumeLevel)}).bind("disable",function(){var e=t.disabled;w.disable(e),C.disable(e),n.toggleClass("is-disabled",t.disabled)}).bind("mute",function(e,t,i){n.toggleClass("is-muted",i)}).bind("error",function(t,i,a){if(n.removeClass("is-loading").addClass("is-error"),a){a.message=s.errors[a.code],i.error=!0;var o=e(".fp-message",n);e("h2",o).text((i.engine||"html5")+": "+a.message),e("p",o).text(a.url||i.video.url||i.video.src||s.errorUrls[a.code]),n.unbind("mouseenter click").removeClass("is-mouseover")}}).bind("mouseenter mouseleave",function(e){if(!T){var t,i="mouseenter"==e.type;o(i),i?(n.bind("pause.x mousemove.x volume.x",function(){o(!0),t=new Date}),r=setInterval(function(){new Date-t>5e3&&(o(!1),t=new Date)},100)):(n.unbind(".x"),clearInterval(r))}}).bind("mouseleave",function(){(w.dragging||C.dragging)&&n.addClass("is-mouseover").removeClass("is-mouseout")}).bind("click.player",function(n){return e(n.target).is(".fp-ui, .fp-engine")||n.flash?(n.preventDefault(),t.toggle()):void 0}).bind("contextmenu",function(t){t.preventDefault();var i=n.offset(),a=e(window),o=t.clientX-i.left,r=t.clientY-i.top+a.scrollTop(),s=n.find(".fp-context-menu").css({left:o+"px",top:r+"px",display:"block"}).on("click",function(e){e.stopPropagation()});e("html").on("click.outsidemenu",function(){s.hide(),e("html").off("click.outsidemenu")})}).bind("flashdisabled",function(){n.addClass("is-flash-disabled").one("ready",function(){n.removeClass("is-flash-disabled").find(".fp-flash-disabled").remove()}).append('<div class="fp-flash-disabled">Adobe Flash is disabled for this page, click player area to enable.</div>')}),s.poster&&n.css("backgroundImage","url("+s.poster+")");var F=n.css("backgroundColor"),_="none"!=n.css("backgroundImage")||F&&"rgba(0, 0, 0, 0)"!=F&&"transparent"!=F;!_||s.splash||s.autoplay||t.bind("ready stop",function(){n.addClass("is-poster").one("progress",function(){n.removeClass("is-poster")})}),!_&&t.forcedSplash&&n.css("backgroundColor","#555"),e(".fp-toggle, .fp-play",n).click(t.toggle),e.each(["mute","fullscreen","unload"],function(e,n){i(n).click(function(){t[n]()})}),b.bind("slide",function(e,n){t.seeking=!0,t.seek(n*t.video.duration)}),x.bind("slide",function(e,n){t.volume(n)}),i("time").click(function(){e(this).toggleClass("is-inverted")}),o(T)});var C,T,S="is-help";e(document).bind("keydown.fp",function(t){var n=C,i=t.ctrlKey||t.metaKey||t.altKey,a=t.which,o=n&&n.conf;if(n&&o.keyboard&&!n.disabled){if(-1!=e.inArray(a,[63,187,191]))return T.toggleClass(S),!1;if(27==a&&T.hasClass(S))return T.toggleClass(S),!1;if(!i&&n.ready){if(t.preventDefault(),t.shiftKey)return 39==a?n.speed(!0):37==a&&n.speed(!1),void 0;if(58>a&&a>47)return n.seekTo(a-48);switch(a){case 38:case 75:n.volume(n.volumeLevel+.15);break;case 40:case 74:n.volume(n.volumeLevel-.15);break;case 39:case 76:n.seeking=!0,n.seek(!0);break;case 37:case 72:n.seeking=!0,n.seek(!1);break;case 190:n.seekTo();break;case 32:n.toggle();break;case 70:o.fullscreen&&n.fullscreen();break;case 77:n.mute();break;case 81:n.unload()}}}}),flowplayer(function(t,n){if(t.conf.keyboard){n.bind("mouseenter mouseleave",function(e){C=t.disabled||"mouseenter"!=e.type?0:t,C&&(T=n)});var i=flowplayer.support.video&&"flash"!==t.conf.engine&&e("<video/>")[0].playbackRate?"<p><em>shift</em> + <em>←</em><em>→</em>slower / faster</p>":"";n.append(' <div class="fp-help"> <a class="fp-close"></a> <div class="fp-help-section fp-help-basics"> <p><em>space</em>play / pause</p> <p><em>q</em>unload | stop</p> <p><em>f</em>fullscreen</p>'+i+' </div> <div class="fp-help-section"> <p><em>↑</em><em>↓</em>volume</p> <p><em>m</em>mute</p> </div> <div class="fp-help-section"> <p><em>←</em><em>→</em>seek</p> <p><em> . </em>seek to previous </p><p><em>1</em><em>2</em>… <em>6</em> seek to 10%, 20% … 60% </p> </div> </div> '),t.conf.tooltip&&e(".fp-ui",n).attr("title","Hit ? for help").on("mouseout.tip",function(){e(this).removeAttr("title").off("mouseout.tip")}),e(".fp-close",n).click(function(){n.toggleClass(S)})}});var F,_=e.browser.mozilla?"moz":"webkit",E="fullscreen",M="fullscreen-exit",A=flowplayer.support.fullscreen,D=("function"==typeof document.exitFullscreen,navigator.userAgent.toLowerCase()),P=/(safari)[ \/]([\w.]+)/.exec(D)&&!/(chrome)[ \/]([\w.]+)/.exec(D);e(document).bind("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",function(t){var n=e(document.webkitCurrentFullScreenElement||document.mozFullScreenElement||document.fullscreenElement||document.msFullscreenElement||t.target);n.length&&!F?F=n.trigger(E,[n]):(F.trigger(M,[F]),F=null)}),flowplayer(function(t,n){if(t.conf.fullscreen){var i,a=e(window),o={apply:!1,pos:0,play:!1};t.isFullscreen=!1,t.fullscreen=function(r){if(!t.disabled){if(void 0===r&&(r=!t.isFullscreen),r&&(i=a.scrollTop()),"webkit"!=_&&!P||"flash"!=t.engine||(o={apply:!0,pos:t.video.time,play:t.playing}),A)if(r){var s=n[0];e.each(["requestFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"],function(e,t){return"function"==typeof s[t]?(s[t](Element.ALLOW_KEYBOARD_INPUT),!P||document.webkitCurrentFullScreenElement||document.mozFullScreenElement||s[t](),!1):void 0})}else e.each(["exitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"],function(e,t){return"function"==typeof document[t]?(document[t](),!1):void 0});else t.trigger(r?E:M,[t]);return t}};var r;n.bind("mousedown.fs",function(){150>+new Date-r&&t.ready&&t.fullscreen(),r=+new Date}),t.bind(E,function(){n.addClass("is-fullscreen"),t.isFullscreen=!0}).bind(M,function(){var e;A||"html5"!==t.engine||(e=n.css("opacity")||"",n.css("opacity",0)),n.removeClass("is-fullscreen"),A||"html5"!==t.engine||setTimeout(function(){n.css("opacity",e)}),t.isFullscreen=!1,a.scrollTop(i)}).bind("ready",function(){if(o.apply){var n=function(){o.play||t.conf.live?t.resume():t.pause(),e.extend(o,{pos:0,play:!1})};t.conf.live?n():t.conf.rtmp&&o.pos&&!isNaN(o.pos)?(t.resume(),t.seek(o.pos,n)):n()}})}}),flowplayer(function(t,n){function i(){return e(o.query,n)}function a(){return e(o.query+"."+r,n)}var o=e.extend({active:"is-active",advance:!0,query:".fp-playlist a"},t.conf),r=o.active;t.play=function(n){return void 0===n?t.resume():"number"!=typeof n||t.conf.playlist[n]?("number"!=typeof n&&t.load.apply(null,arguments),t.unbind("resume.fromfirst"),t.video.index=n,t.load("string"==typeof t.conf.playlist[n]?""+t.conf.playlist[n]:e.map(t.conf.playlist[n],function(t){return e.extend({},t)})),t):t},t.next=function(e){e&&e.preventDefault();var n=t.video.index;return-1!=n&&(n=n===t.conf.playlist.length-1?0:n+1,t.play(n)),t},t.prev=function(e){e&&e.preventDefault();var n=t.video.index;return-1!=n&&(n=0===n?t.conf.playlist.length-1:n-1,t.play(n)),t},e(".fp-next",n).click(t.next),e(".fp-prev",n).click(t.prev),o.advance&&n.unbind("finish.pl").bind("finish.pl",function(e,t){var i=t.video.index>=0?t.video.index+1:void 0;t.conf.playlist.length>i||o.loop?(i=i===t.conf.playlist.length?0:i,n.removeClass("is-finished"),setTimeout(function(){t.play(i)})):(n.addClass("is-playing"),t.conf.playlist.length>1&&t.one("resume.fromfirst",function(){return t.play(0),!1}))});var s=!1;if(t.conf.playlist.length){s=!0;var l=n.find(".fp-playlist");if(!l.length){l=e('<div class="fp-playlist"></div>');var d=e(".fp-next,.fp-prev",n);d.length?d.eq(0).before(l):e("video",n).after(l)}l.empty(),e.each(t.conf.playlist,function(t,n){var i;if("string"==typeof n)i=n;else for(var a in n[0])if(n[0].hasOwnProperty(a)){i=n[0][a];break}l.append(e("<a />").attr({href:i,"data-index":t}))})}if(i().length){s||(t.conf.playlist=[],i().each(function(){var n=e(this).attr("href");e(this).attr("data-index",t.conf.playlist.length),t.conf.playlist.push(n)})),n.on("click",o.query,function(n){n.preventDefault();var i=e(n.target).closest(o.query),a=Number(i.attr("data-index"));-1!=a&&t.play(a)});var u=i().filter("[data-cuepoints]").length;t.bind("load",function(i,o,s){var l=a().removeClass(r),d=l.attr("data-index"),c=s.index=t.video.index||0,f=e('a[data-index="'+c+'"]',n).addClass(r),p=c==t.conf.playlist.length-1;n.removeClass("video"+d).addClass("video"+c).toggleClass("last-video",p),s.index=o.video.index=c,s.is_last=o.video.is_last=p,u&&(t.cuepoints=f.data("cuepoints"))}).bind("unload.pl",function(){a().toggleClass(r)})}t.conf.playlist.length&&(t.conf.loop=!1)});var L=/ ?cue\d+ ?/;flowplayer(function(t,n){function i(e){n[0].className=n[0].className.replace(L," "),e>=0&&n.addClass("cue"+e)}var a=0;t.cuepoints=t.conf.cuepoints||[],t.bind("progress",function(e,o,r){if(a&&.015>r-a)return a=r;a=r;for(var s,l=t.cuepoints||[],d=0;l.length>d;d++)s=l[d],isNaN(s)||(s={time:s}),0>s.time&&(s.time=t.video.duration+s.time),s.index=d,Math.abs(s.time-r)<.125*t.currentSpeed&&(i(d),n.trigger("cuepoint",[t,s]))}).bind("unload seek",i),t.conf.generate_cuepoints&&t.bind("load",function(){e(".fp-cuepoint",n).remove()}).bind("ready",function(){var i=t.cuepoints||[],a=t.video.duration,o=e(".fp-timeline",n).css("overflow","visible");e.each(i,function(n,i){var r=i.time||i;0>r&&(r=a+i);var s=e("<a/>").addClass("fp-cuepoint fp-cuepoint"+n).css("left",100*(r/a)+"%");s.appendTo(o).mousedown(function(){return t.seek(r),!1})})})}),flowplayer(function(t,n){function i(e){var t=e.split(":");return 2==t.length&&t.unshift(0),60*60*t[0]+60*t[1]+parseFloat(t[2].replace(",","."))}var a=e("track",n),o=t.conf;if(flowplayer.support.subtitles&&(t.subtitles=a.length&&a[0].track,o.nativesubtitles&&"html5"==o.engine)){if(!t.subtitles)return;var r=function(t){var i=e("video",n)[0].textTracks;i.length&&(i[0].mode=t)};return r("disabled"),t.one("ready",function(){t.conf.splash&&e("video.fp-engine",n).append(e("<track />").attr({kind:"subtitles",srclang:t.subtitles.language||"en",label:t.subtitles.language||"en",src:a.attr("src"),"default":"default"})),r("disabled"),r("showing")
|
7 |
-
}),void 0}a.remove();var s=/^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/;t.subtitles=[];var l=a.attr("src");if(l){setTimeout(function(){e.get(l,function(n){for(var a,o,r,l,d=0,u=n.split("\n"),c=u.length,f={};c>d;d++)if(o=s.exec(u[d])){for(a=u[d-1],r="<p>"+u[++d]+"</p><br/>";e.trim(u[++d])&&u.length>d;)r+="<p>"+u[d]+"</p><br/>";f={title:a,startTime:i(o[1]),endTime:i(o[3]),text:r},l={time:f.startTime,subtitle:f},t.subtitles.push(f),t.cuepoints.push(l),t.cuepoints.push({time:f.endTime,subtitleEnd:a}),0===f.startTime&&t.trigger("cuepoint",l)}}).fail(function(){return t.trigger("error",{code:8,url:l}),!1})});var d,u=e("<div class='fp-subtitle'/>").appendTo(n);t.bind("cuepoint",function(e,t,n){n.subtitle?(d=n.index,u.html(n.subtitle.text).addClass("fp-active")):n.subtitleEnd&&(u.removeClass("fp-active"),d=n.index)}).bind("seek",function(n,i,a){d&&t.cuepoints[d]&&t.cuepoints[d].time>a&&(u.removeClass("fp-active"),d=null),e.each(t.cuepoints||[],function(e,n){var i=n.subtitle;i&&d!=n.index?a>=n.time&&(!i.endTime||i.endTime>=a)&&t.trigger("cuepoint",n):n.subtitleEnd&&a>=n.time&&n.index==d+1&&t.trigger("cuepoint",n)})})}}),flowplayer(function(t,n){function i(){if(o&&"undefined"!=typeof _gat){var e=_gat._getTracker(a),i=t.video;e._setAllowLinker(!0),e._trackEvent("Video / Seconds played",t.engine+"/"+i.type,n.attr("title")||i.src.split("/").slice(-1)[0].replace(x,""),Math.round(o/1e3)),o=0}}var a=t.conf.analytics,o=0,r=0;a&&("undefined"==typeof _gat&&e.getScript("//google-analytics.com/ga.js"),t.bind("load unload",i).bind("progress",function(){t.seeking||(o+=r?+new Date-r:0,r=+new Date)}).bind("pause",function(){r=0}),e(window).unload(i))});var I=/IEMobile/.test(f);(flowplayer.support.touch||I)&&flowplayer(function(t,n){var i=/Android/.test(f)&&!/Firefox/.test(f)&&!/Opera/.test(f),a=/Silk/.test(f),o=i?parseFloat(/Android\ (\d\.\d)/.exec(f)[1],10):0;if(i){if(!/Chrome/.test(f)&&4>o){var r=t.load;t.load=function(){var e=r.apply(t,arguments);return t.trigger("ready",[t,t.video]),e}}var s,l=0,u=function(e){s=setInterval(function(){e.video.time=++l,e.trigger("progress",l)},1e3)};t.bind("ready pause unload",function(){s&&(clearInterval(s),s=null)}),t.bind("ready",function(){l=0}),t.bind("resume",function(e,n){return n.live?l?u(n):(t.one("progress",function(e,t,n){0===n&&u(t)}),void 0):void 0})}flowplayer.support.volume||n.addClass("no-volume no-mute"),n.addClass("is-touch"),n.find(".fp-timeline").data("api").disableAnimation(),(!flowplayer.support.inlineVideo||t.conf.native_fullscreen)&&(t.conf.nativesubtitles=!0);var c=!1;n.bind("touchmove",function(){c=!0}).bind("touchend click",function(){return c?(c=!1,void 0):t.playing&&!n.hasClass("is-mouseover")?(n.addClass("is-mouseover").removeClass("is-mouseout"),!1):(t.paused&&n.hasClass("is-mouseout")&&!t.splash&&t.toggle(),t.paused&&I&&e("video.fp-engine",n)[0].play(),void 0)}),t.conf.native_fullscreen&&"function"==typeof e("<video />")[0].webkitEnterFullScreen&&(t.fullscreen=function(){var t=e("video.fp-engine",n);t[0].webkitEnterFullScreen(),t.one("webkitendfullscreen",function(){t.prop("controls",!0).prop("controls",!1)})}),(i||a)&&t.bind("ready",function(){var i=e("video.fp-engine",n);i.one("canplay",function(){i[0].play()}),i[0].play(),t.bind("progress.dur",function(){var a=i[0].duration;1!==a&&(t.video.duration=a,e(".fp-duration",n).html(d(a)),t.unbind("progress.dur"))})})}),flowplayer(function(t,n){if(t.conf.embed!==!1){var i=t.conf,a=e(".fp-ui",n),o=e("<a/>",{"class":"fp-embed",title:"Copy to your site"}).appendTo(a),r=e("<div/>",{"class":"fp-embed-code"}).append("<label>Paste this HTML code on your site to embed.</label><textarea/>").appendTo(a),s=e("textarea",r);t.embedCode=function(){var a=t.video,o=a.width||n.width(),r=a.height||n.height(),s=e("<div/>",{"class":"flowplayer",css:{width:o,height:r}}),l=e("<video/>").appendTo(s);e.each(["origin","analytics","key","rtmp","subscribe","bufferTime"],function(e,t){i.hasOwnProperty(t)&&s.attr("data-"+t,i[t])}),i.logo&&s.attr("data-logo",e("<img />").attr("src",i.logo)[0].src),e.each(a.sources,function(t,n){var a=n.src;(!/^https?:/.test(n.src)&&"flash"!==n.type||!i.rtmp)&&(a=e("<img/>").attr("src",n.src)[0].src),l.append(e("<source/>",{type:"mpegurl"!=n.type?"video/"+n.type:"application/x-mpegurl",src:a}))});var d={src:"//embed.flowplayer.org/5.5.2/embed.min.js"};e.isPlainObject(i.embed)&&(d["data-swf"]=i.embed.swf,d["data-library"]=i.embed.library,d.src=i.embed.script||d.src,i.embed.skin&&(d["data-skin"]=i.embed.skin));var u=e("<foo/>",d).append(s);return e("<p/>").append(u).html().replace(/<(\/?)foo/g,"<$1script")},n.fptip(".fp-embed","is-embedding"),s.click(function(){this.select()}),o.click(function(){s.text(t.embedCode()),s[0].focus(),s[0].select()})}}),e.fn.fptip=function(t,n){return this.each(function(){function i(){a.removeClass(n),e(document).unbind(".st")}var a=e(this);e(t||"a",this).click(function(t){t.preventDefault(),a.toggleClass(n),a.hasClass(n)&&e(document).bind("keydown.st",function(e){27==e.which&&i()}).bind("click.st",function(t){e(t.target).parents("."+n).length||i()})})})}}(jQuery);flowplayer(function(e,o){function l(e){var o=a("<a/>")[0];return o.href=e,o.hostname}var a=jQuery,r=e.conf,i=r.swf.indexOf("flowplayer.org")&&r.e&&o.data("origin"),n=i?l(i):location.hostname,t=r.key;if("file:"==location.protocol&&(n="localhost"),e.load.ed=1,r.hostname=n,r.origin=i||location.href,i&&o.addClass("is-embedded"),"string"==typeof t&&(t=t.split(/,\s*/)),t&&"function"==typeof key_check&&key_check(t,n))r.logo&&o.append(a("<a>",{"class":"fp-logo",href:i}).append(a("<img/>",{src:r.logo})));else{var s=a("<a/>").attr("href","http://flowplayer.org").appendTo(o);a(".fp-controls",o);var p=a('<div class="fp-context-menu"><ul><li class="copyright">© 2014</li><li><a href="http://flowplayer.org">About Flowplayer</a></li><li><a href="http://flowplayer.org/license">GPL based license</a></li></ul></div>').appendTo(o);e.bind("pause resume finish unload",function(e,l){var r=-1;l.video.src&&a.each([["org","flowplayer","drive"],["org","flowplayer","my"]],function(e,o){return r=l.video.src.indexOf("://"+o.reverse().join(".")),-1===r}),/pause|resume/.test(e.type)&&"flash"!=l.engine&&4!=r&&5!=r?(s.show().css({position:"absolute",left:16,bottom:36,zIndex:99999,width:100,height:20,backgroundImage:"url("+[".png","logo","/",".net",".cloudfront","d32wqyuo10o653","//"].reverse().join("")+")"}),l.load.ed=s.is(":visible")&&a.contains(o[0],p[0]),l.load.ed||l.pause()):s.hide()})}});
|
|
|
|
|
|
1 |
/*!
|
2 |
|
3 |
+
Flowplayer v7.0.2 (Tuesday, 07. February 2017 10:39PM) | flowplayer.org/license
|
4 |
|
5 |
*/
|
6 |
+
!function(e){function t(e,t,n,i){for(var o,a=n.slice(),s=r(t,e),l=0,u=a.length;u>l&&(handler=a[l],"object"==typeof handler&&"function"==typeof handler.handleEvent?handler.handleEvent(s):handler.call(e,s),!s.stoppedImmediatePropagation);l++);return o=!s.stoppedPropagation,i&&o&&e.parentNode?e.parentNode.dispatchEvent(s):!s.defaultPrevented}function n(e,t){return{configurable:!0,get:e,set:t}}function i(e,t,i){var r=y(t||e,i);m(e,"textContent",n(function(){return r.get.call(this)},function(e){r.set.call(this,e)}))}function r(e,t){return e.currentTarget=t,e.eventPhase=e.target===e.currentTarget?2:3,e}function o(e,t){for(var n=e.length;n--&&e[n]!==t;);return n}function a(){if("BR"===this.tagName)return"\n";for(var e=this.firstChild,t=[];e;)8!==e.nodeType&&7!==e.nodeType&&t.push(e.textContent),e=e.nextSibling;return t.join("")}function s(e){!f&&M.test(document.readyState)&&(f=!f,document.detachEvent(d,s),e=document.createEvent("Event"),e.initEvent(p,!0,!0),document.dispatchEvent(e))}function l(e){for(var t;t=this.lastChild;)this.removeChild(t);null!=e&&this.appendChild(document.createTextNode(e))}function u(t,n){return n||(n=e.event),n.target||(n.target=n.srcElement||n.fromElement||document),n.timeStamp||(n.timeStamp=(new Date).getTime()),n}if(!document.createEvent){var c=!0,f=!1,d="onreadystatechange",p="DOMContentLoaded",h="__IE8__"+Math.random(),g=e.Object,m=g.defineProperty||function(e,t,n){e[t]=n.value},v=g.defineProperties||function(t,n){for(var i in n)if(w.call(n,i))try{m(t,i,n[i])}catch(r){e.console&&console.log(i+" failed on object:",t,r.message)}},y=g.getOwnPropertyDescriptor,w=g.prototype.hasOwnProperty,b=e.Element.prototype,I=e.Text.prototype,C=/^[a-z]+$/,M=/loaded|complete/,A={},S=document.createElement("div");i(e.HTMLCommentElement.prototype,b,"nodeValue"),i(e.HTMLScriptElement.prototype,null,"text"),i(I,null,"nodeValue"),i(e.HTMLTitleElement.prototype,null,"text"),m(e.HTMLStyleElement.prototype,"textContent",function(e){return n(function(){return e.get.call(this.styleSheet)},function(t){e.set.call(this.styleSheet,t)})}(y(e.CSSStyleSheet.prototype,"cssText"))),v(b,{textContent:{get:a,set:l},firstElementChild:{get:function(){for(var e=this.childNodes||[],t=0,n=e.length;n>t;t++)if(1==e[t].nodeType)return e[t]}},lastElementChild:{get:function(){for(var e=this.childNodes||[],t=e.length;t--;)if(1==e[t].nodeType)return e[t]}},previousElementSibling:{get:function(){for(var e=this.previousSibling;e&&1!=e.nodeType;)e=e.previousSibling;return e}},nextElementSibling:{get:function(){for(var e=this.nextSibling;e&&1!=e.nodeType;)e=e.nextSibling;return e}},childElementCount:{get:function(){for(var e=0,t=this.childNodes||[],n=t.length;n--;e+=1==t[n].nodeType);return e}},addEventListener:{value:function(e,n,i){var r,a=this,s="on"+e,l=a[h]||m(a,h,{value:{}})[h],c=l[s]||(l[s]={}),f=c.h||(c.h=[]);if(!w.call(c,"w")){if(c.w=function(e){return e[h]||t(a,u(a,e),f,!1)},!w.call(A,s))if(C.test(e))try{r=document.createEventObject(),r[h]=!0,9!=a.nodeType&&null==a.parentNode&&S.appendChild(a),a.fireEvent(s,r),A[s]=!0}catch(r){for(A[s]=!1;S.hasChildNodes();)S.removeChild(S.firstChild)}else A[s]=!1;(c.n=A[s])&&a.attachEvent(s,c.w)}o(f,n)<0&&f[i?"unshift":"push"](n)}},dispatchEvent:{value:function(e){var n,i=this,r="on"+e.type,o=i[h],a=o&&o[r],s=!!a;return e.target||(e.target=i),s?a.n?i.fireEvent(r,e):t(i,e,a.h,!0):(n=i.parentNode)?n.dispatchEvent(e):!0,!e.defaultPrevented}},removeEventListener:{value:function(e,t,n){var i=this,r="on"+e,a=i[h],s=a&&a[r],l=s&&s.h,u=l?o(l,t):-1;u>-1&&l.splice(u,1)}}}),v(I,{addEventListener:{value:b.addEventListener},dispatchEvent:{value:b.dispatchEvent},removeEventListener:{value:b.removeEventListener}}),v(e.XMLHttpRequest.prototype,{addEventListener:{value:function(e,t,n){var i=this,r="on"+e,a=i[h]||m(i,h,{value:{}})[h],s=a[r]||(a[r]={}),l=s.h||(s.h=[]);o(l,t)<0&&(i[r]||(i[r]=function(){var t=document.createEvent("Event");t.initEvent(e,!0,!0),i.dispatchEvent(t)}),l[n?"unshift":"push"](t))}},dispatchEvent:{value:function(e){var n=this,i="on"+e.type,r=n[h],o=r&&r[i],a=!!o;return a&&(o.n?n.fireEvent(i,e):t(n,e,o.h,!0))}},removeEventListener:{value:b.removeEventListener}}),v(e.Event.prototype,{bubbles:{value:!0,writable:!0},cancelable:{value:!0,writable:!0},preventDefault:{value:function(){this.cancelable&&(this.defaultPrevented=!0,this.returnValue=!1)}},stopPropagation:{value:function(){this.stoppedPropagation=!0,this.cancelBubble=!0}},stopImmediatePropagation:{value:function(){this.stoppedImmediatePropagation=!0,this.stopPropagation()}},initEvent:{value:function(e,t,n){this.type=e,this.bubbles=!!t,this.cancelable=!!n,this.bubbles||this.stopPropagation()}}}),v(e.HTMLDocument.prototype,{textContent:{get:function(){return 11===this.nodeType?a.call(this):null},set:function(e){11===this.nodeType&&l.call(this,e)}},addEventListener:{value:function(t,n,i){var r=this;b.addEventListener.call(r,t,n,i),c&&t===p&&!M.test(r.readyState)&&(c=!1,r.attachEvent(d,s),e==top&&function o(e){try{r.documentElement.doScroll("left"),s()}catch(t){setTimeout(o,50)}}())}},dispatchEvent:{value:b.dispatchEvent},removeEventListener:{value:b.removeEventListener},createEvent:{value:function(e){var t;if("Event"!==e)throw new Error("unsupported "+e);return t=document.createEventObject(),t.timeStamp=(new Date).getTime(),t}}}),v(e.Window.prototype,{getComputedStyle:{value:function(){function e(e){this._=e}function t(){}var n=/^(?:[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/,i=/^(top|right|bottom|left)$/,r=/\-([a-z])/g,o=function(e,t){return t.toUpperCase()};return e.prototype.getPropertyValue=function(e){var t,a,s,l=this._,u=l.style,c=l.currentStyle,f=l.runtimeStyle;return e=("float"===e?"style-float":e).replace(r,o),t=c?c[e]:u[e],n.test(t)&&!i.test(e)&&(a=u.left,s=f&&f.left,s&&(f.left=c.left),u.left="fontSize"===e?"1em":t,t=u.pixelLeft+"px",u.left=a,s&&(f.left=s)),null==t?t:t+""||"auto"},t.prototype.getPropertyValue=function(){return null},function(n,i){return i?new t(n):new e(n)}}()},addEventListener:{value:function(n,i,r){var a,s=e,l="on"+n;s[l]||(s[l]=function(e){return t(s,u(s,e),a,!1)}),a=s[l][h]||(s[l][h]=[]),o(a,i)<0&&a[r?"unshift":"push"](i)}},dispatchEvent:{value:function(t){var n=e["on"+t.type];return n?n.call(e,t)!==!1&&!t.defaultPrevented:!0}},removeEventListener:{value:function(t,n,i){var r="on"+t,a=(e[r]||g)[h],s=a?o(a,n):-1;s>-1&&a.splice(s,1)}}})}}(this),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.flowplayer=e()}}(function(){var e;return function t(e,n,i){function r(a,s){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return r(n?n:t)},c,c.exports,t,e,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){"use strict";var i=t.exports={},r=e("class-list"),o=window.jQuery,a=e("punycode"),s=e("computed-style");i.noop=function(){},i.identity=function(e){return e},i.removeNode=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},i.find=function(e,t){return o?o(e,t).toArray():(t=t||document,Array.prototype.map.call(t.querySelectorAll(e),function(e){return e}))},i.text=function(e,t){e["innerText"in e?"innerText":"textContent"]=t},i.findDirect=function(e,t){return i.find(e,t).filter(function(e){return e.parentNode===t})},i.hasClass=function(e,t){return"string"!=typeof e.className?!1:r(e).contains(t)},i.isSameDomain=function(e){var t=window.location,n=i.createElement("a",{href:e});return t.hostname===n.hostname&&t.protocol===n.protocol&&t.port===n.port},i.css=function(e,t,n){return"object"==typeof t?Object.keys(t).forEach(function(n){i.css(e,n,t[n])}):"undefined"!=typeof n?""===n?e?e.style.removeProperty(t):void 0:e?e.style.setProperty(t,n):void 0:e?s(e,t):void 0},i.createElement=function(e,t,n){try{var r=document.createElement(e);for(var a in t)t.hasOwnProperty(a)&&("css"===a?i.css(r,t[a]):i.attr(r,a,t[a]));return r.innerHTML=n||"",r}catch(s){if(!o)throw s;return o("<"+e+">"+n+"</"+e+">").attr(t)[0]}},i.toggleClass=function(e,t,n){if(e){var i=r(e);"undefined"==typeof n?i.toggle(t):n?i.add(t):n||i.remove(t)}},i.addClass=function(e,t){return i.toggleClass(e,t,!0)},i.removeClass=function(e,t){return i.toggleClass(e,t,!1)},i.append=function(e,t){return e.appendChild(t),e},i.appendTo=function(e,t){return i.append(t,e),e},i.prepend=function(e,t){e.insertBefore(t,e.firstChild)},i.insertAfter=function(e,t,n){t==i.lastChild(e)&&e.appendChild(n);var r=Array.prototype.indexOf.call(e.children,t);e.insertBefore(n,e.children[r+1])},i.html=function(e,t){e=e.length?e:[e],e.forEach(function(e){e.innerHTML=t})},i.attr=function(e,t,n){if("class"===t&&(t="className"),i.hasOwnOrPrototypeProperty(e,t))try{e[t]=n}catch(r){if(!o)throw r;o(e).attr(t,n)}else n===!1?e.removeAttribute(t):e.setAttribute(t,n);return e},i.prop=function(e,t,n){return"undefined"==typeof n?e&&e[t]:void(e[t]=n)},i.offset=function(e){var t=e.getBoundingClientRect();return e.offsetWidth/e.offsetHeight>e.clientWidth/e.clientHeight&&(t={left:100*t.left,right:100*t.right,top:100*t.top,bottom:100*t.bottom,width:100*t.width,height:100*t.height}),t},i.width=function(e,t){if(t)return e.style.width=(""+t).replace(/px$/,"")+"px";var n=i.offset(e).width;return"undefined"==typeof n?e.offsetWidth:n},i.height=function(e,t){if(t)return e.style.height=(""+t).replace(/px$/,"")+"px";var n=i.offset(e).height;return"undefined"==typeof n?e.offsetHeight:n},i.lastChild=function(e){return e.children[e.children.length-1]},i.hasParent=function(e,t){for(var n=e.parentElement;n;){if(i.matches(n,t))return!0;n=n.parentElement}return!1},i.createAbsoluteUrl=function(e){return i.createElement("a",{href:e}).href},i.xhrGet=function(e,t,n){var i=new XMLHttpRequest;i.onreadystatechange=function(){return 4===this.readyState?this.status>=400?n():void t(this.responseText):void 0},i.open("get",e,!0),i.send()},i.pick=function(e,t){var n={};return t.forEach(function(t){e.hasOwnProperty(t)&&(n[t]=e[t])}),n},i.hostname=function(e){return a.toUnicode(e||window.location.hostname)},i.browser={webkit:"WebkitAppearance"in document.documentElement.style},i.getPrototype=function(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__},i.hasOwnOrPrototypeProperty=function(e,t){for(var n=e;n;){if(Object.prototype.hasOwnProperty.call(n,t))return!0;n=i.getPrototype(n)}return!1},i.matches=function(e,t){var n=Element.prototype,i=n.matches||n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector||function(e){for(var t=this,n=(t.document||t.ownerDocument).querySelectorAll(e),i=0;n[i]&&n[i]!==t;)i++;return n[i]?!0:!1};return i.call(e,t)},function(e){function t(e){return e.replace(/-[a-z]/g,function(e){return e[1].toUpperCase()})}"undefined"!=typeof e.setAttribute&&(e.setProperty=function(e,n){return this.setAttribute(t(e),String(n))},e.getPropertyValue=function(e){return this.getAttribute(t(e))||null},e.removeProperty=function(e){var n=this.getPropertyValue(e);return this.removeAttribute(t(e)),n})}(window.CSSStyleDeclaration.prototype)},{"class-list":33,"computed-style":34,punycode:41}],2:[function(e,t,n){"use strict";var i=e("../common");t.exports=function(e,t,n,r){n=n||"opaque";var o="obj"+(""+Math.random()).slice(2,15),a='<object class="fp-engine" id="'+o+'" name="'+o+'" ',s=navigator.userAgent.indexOf("MSIE")>-1;a+=s?'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">':' data="'+e+'" type="application/x-shockwave-flash">';var l={width:"100%",height:"100%",allowscriptaccess:"always",wmode:n,quality:"high",flashvars:"",movie:e+(s?"?"+o:""),name:o};"transparent"!==n&&(l.bgcolor=r||"#333333"),Object.keys(t).forEach(function(e){l.flashvars+=e+"="+t[e]+"&"}),Object.keys(l).forEach(function(e){a+='<param name="'+e+'" value="'+l[e]+'"/>'}),a+="</object>";var u=i.createElement("div",{},a);return i.find("object",u)},window.attachEvent&&window.attachEvent("onbeforeunload",function(){window.__flash_savedUnloadHandler=window.__flash_unloadHandler=function(){}})},{"../common":1}],3:[function(e,t,n){"use strict";function i(e){return/^https?:/.test(e)}var r,o=e("../flowplayer"),a=e("../common"),s=e("./embed"),l=e("extend-object"),u=e("bean");r=function(e,t){function n(e){function t(e){return("0"+parseInt(e).toString(16)).slice(-2)}return(e=e.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))?"#"+t(e[1])+t(e[2])+t(e[3]):void 0}function c(e){if(7===e.length)return e;var t=e.split("").slice(1);return"#"+t.map(function(e){return e+e}).join("")}function f(e){return/application\/x-mpegurl/i.test(e.type)}var d,p,h,g,m=e.conf,v=[],y={engineName:r.engineName,pick:function(t){var n=l({},function(){if(o.support.flashVideo){for(var n,i,r=0;r<t.length;r++)if(i=t[r],/mp4|flv|flash/i.test(i.type)&&(n=i),e.conf.swfHls&&/mpegurl/i.test(i.type)&&(n=i),n&&!/mp4/i.test(n.type))return n;return n}}());if(n)return!n.src||i(n.src)||e.conf.rtmp||n.rtmp||(n.src=a.createAbsoluteUrl(n.src)),n},suspendEngine:function(){g=!0},resumeEngine:function(){g=!1},load:function(r){function w(e){return e.replace(/&/g,"%26").replace(/&/g,"%26").replace(/=/g,"%3D")}d=r,v.forEach(function(e){clearTimeout(e)});var b=a.findDirect("video",t)[0]||a.find(".fp-player > video",t)[0],I=r.src,C=i(I),M=function(){a.removeNode(b)},A=function(e){return e.some(function(e){return!!b.canPlayType(e.type)})};o.support.video&&a.prop(b,"autoplay")&&A(r.sources)?u.one(b,"timeupdate",M):M();var S=r.rtmp||m.rtmp;if(C||S||(I=a.createAbsoluteUrl(I)),h&&f(r)&&h.data!==a.createAbsoluteUrl(m.swfHls)&&y.unload(),h){["live","preload","loop"].forEach(function(e){r.hasOwnProperty(e)&&h.__set(e,r[e])}),Object.keys(r.flashls||{}).forEach(function(e){h.__set("hls_"+e,r.flashls[e])});var D=!1;if(!C&&S)h.__set("rtmp",S.url||S);else{var E=h.__get("rtmp");D=!!E,h.__set("rtmp",null)}h.__play(I,D||r.rtmp&&r.rtmp!==m.rtmp)}else{p="fpCallback"+(""+Math.random()).slice(3,15),I=w(I);var N={hostname:m.embedded?a.hostname(m.hostname):a.hostname(location.hostname),url:I,callback:p};t.getAttribute("data-origin")&&(N.origin=t.getAttribute("data-origin")),["proxy","key","autoplay","preload","subscribe","live","loop","debug","splash","poster","rtmpt"].forEach(function(e){m.hasOwnProperty(e)&&(N[e]=m[e]),r.hasOwnProperty(e)&&(N[e]=r[e]),(m.rtmp||{}).hasOwnProperty(e)&&(N[e]=(m.rtmp||{})[e]),(r.rtmp||{}).hasOwnProperty(e)&&(N[e]=(r.rtmp||{})[e])}),m.rtmp&&(N.rtmp=m.rtmp.url||m.rtmp),r.rtmp&&(N.rtmp=r.rtmp.url||r.rtmp),Object.keys(r.flashls||{}).forEach(function(e){var t=r.flashls[e];N["hls_"+e]=t});var j="undefined"!=typeof r.hlsQualities?r.hlsQualities:m.hlsQualities;"undefined"!=typeof j&&(N.hlsQualities=j?encodeURIComponent(JSON.stringify(j)):j),void 0!==m.bufferTime&&(N.bufferTime=m.bufferTime),C&&delete N.rtmp,N.rtmp&&(N.rtmp=w(N.rtmp));var L,x=m.bgcolor||a.css(t,"background-color")||"";0===x.indexOf("rgb")?L=n(x):0===x.indexOf("#")&&(L=c(x)),N.initialVolume=e.volumeLevel;var T=f(r)?m.swfHls:m.swf;h=s(T,N,m.wmode,L)[0];var Z=a.find(".fp-player",t)[0];a.prepend(Z,h),e.off("quality.flashengine").on("quality.flashengine",function(t,n,i){var r="undefined"!=typeof e.video.hlsQualities?e.video.hlsQualities:e.conf.hlsQualities;r&&h.__quality(i)}),setTimeout(function(){try{if(!h.PercentLoaded())return e.trigger("error",[e,{code:7,url:m.swf}])}catch(t){}},5e3),v.push(setTimeout(function(){"undefined"==typeof h.PercentLoaded&&e.trigger("flashdisabled",[e])},15e3)),v.push(setTimeout(function(){"undefined"==typeof h.PercentLoaded&&e.trigger("flashdisabled",[e,!1])},500)),e.off("resume.flashhack").on("resume.flashhack",function(){var t=setTimeout(function(){var t=h.__status().time,n=setTimeout(function(){e.playing&&!e.loading&&h.__status().time===t&&e.trigger("flashdisabled",[e])},400);v.push(n),e.one("seek.flashhack pause.flashhack load.flashack",function(){clearTimeout(n)})},800);v.push(t),e.one("progress",function(){clearTimeout(t)})}),h.pollInterval=setInterval(function(){if(h&&!g){var t=h.__status?h.__status():null;t&&((e.conf.live||e.live||r.live)&&(r.seekOffset=t.seekOffset,r.duration=t.duration+t.seekOffset),e.playing&&t.time&&t.time!==e.video.time&&e.trigger("progress",[e,t.time]),r.buffer=t.buffer/r.bytes*r.duration,e.trigger("buffer",[e,r.buffer]),!r.buffered&&t.time>0&&(r.buffered=!0,e.trigger("buffered",[e])))}},250),window[p]=function(n,i){var r=d;m.debug&&(0===n.indexOf("debug")&&i&&i.length?console.log.apply(console,["-- "+n].concat(i)):console.log("--",n,i));var o={type:n};switch(n){case"ready":i=l(r,i);break;case"click":o.flash=!0;break;case"keydown":o.which=i;break;case"seek":r.time=i;break;case"status":e.trigger("progress",[e,i.time]),i.buffer<r.bytes&&!r.buffered?(r.buffer=i.buffer/r.bytes*r.duration,e.trigger("buffer",r.buffer)):r.buffered||(r.buffered=!0,e.trigger("buffered"));break;case"metadata":var a=atob(i);i={key:a.substr(10,4),data:a.substr(21)}}"click"===n||"keydown"===n?(o.target=t,u.fire(t,n,[o])):"buffered"!=n&&"unload"!==n?setTimeout(function(){e.trigger(o,[e,i])},1):"unload"===n&&e.trigger(o,[e,i])}}},speed:a.noop,unload:function(){h&&h.__unload&&h.__unload();try{p&&window[p]&&delete window[p]}catch(n){}a.find("object",t).forEach(a.removeNode),h=0,e.off(".flashengine"),e.off(".flashhack"),clearInterval(h.pollInterval),v.forEach(function(e){clearTimeout(e)})}};return["pause","resume","seek","volume"].forEach(function(t){y[t]=function(n){try{e.ready&&(void 0===n?h["__"+t]():h["__"+t](n))}catch(i){if("undefined"==typeof h["__"+t])return e.trigger("flashdisabled",[e]);throw i}}}),y},r.engineName="flash",r.canPlay=function(e,t){return o.support.flashVideo&&/video\/(mp4|flash|flv)/i.test(e)||o.support.flashVideo&&t.swfHls&&/mpegurl/i.test(e)},o.engines.push(r)},{"../common":1,"../flowplayer":28,"./embed":2,bean:31,"extend-object":36}],4:[function(e,t,n){"use strict";function i(e,t){return t=t||100,Math.round(e*t)/t}function r(e){return/mpegurl/i.test(e)?"application/x-mpegurl":e}function o(e){return/^(video|application)/i.test(e)||(e=r(e)),!!p.canPlayType(e).replace("no","")}function a(e,t){var n=e.filter(function(e){return e.type===t});return n.length?n[0]:null}var s,l,u=e("../flowplayer"),c=e("bean"),f=e("extend-object"),d=e("../common"),p=document.createElement("video"),h={ended:"finish",pause:"pause",play:"resume",timeupdate:"progress",volumechange:"volume",ratechange:"speed",seeked:"seek",loadeddata:"ready",error:"error",dataunavailable:"error",webkitendfullscreen:!u.support.inlineVideo&&"unload"},g=function(e,t,n,i){if("undefined"==typeof t&&(t=!0),"undefined"==typeof n&&(n="none"),"undefined"==typeof i&&(i=!0),i&&s)return s.type=r(e.type),s.src=e.src,d.find("track",s).forEach(d.removeNode),s.removeAttribute("crossorigin"),s;var o=document.createElement("video");return o.src=e.src,o.type=r(e.type),o.className="fp-engine",u.support.autoplay&&(o.autoplay=t?"autoplay":!1),u.support.dataload&&(o.preload=n),o.setAttribute("webkit-playsinline","true"),o.setAttribute("playsinline","true"),i&&(s=o),o};l=function(e,t){function n(n,r,a){var s=t.getAttribute("data-flowplayer-instance-id");if(n.listeners&&n.listeners.hasOwnProperty(s))return void(n.listeners[s]=a);(n.listeners||(n.listeners={}))[s]=a,c.on(r,"error",function(t){try{o(t.target.getAttribute("type"))&&e.trigger("error",[e,{code:4,video:f(a,{src:n.src,url:n.src})}])}catch(i){}}),e.on("shutdown",function(){c.off(r),c.off(n,".dvrhack"),e.off(".loophack")});var l={},u=function(t){"metadata"===t.kind&&(t.mode="hidden",t.addEventListener("cuechange",function(){e.trigger("metadata",[e,t.activeCues[0].value])},!1))};return n&&n.textTracks.length&&Array.prototype.forEach.call(n.textTracks,u),"function"==typeof n.textTracks.addEventListener&&n.textTracks.addEventListener("addtrack",function(e){u(e.track)},!1),(e.conf.dvr||e.dvr||a.dvr)&&c.on(n,"progress.dvrhack",function(){n.seekable.length&&(e.video.duration=n.seekable.end(null),e.video.seekOffset=n.seekable.start(null),e.trigger("dvrwindow",[e,{start:n.seekable.start(null),end:n.seekable.end(null)}]),n.currentTime>=n.seekable.start(null)||(n.currentTime=n.seekable.start(null)))}),Object.keys(h).forEach(function(r){var o=h[r];if(o){var u=function(l){if(a=n.listeners[s],l.target&&d.hasClass(l.target,"fp-engine")){b.debug&&!/progress/.test(o)&&console.log(r,"->",o,l);var u=function(){e.trigger(o,[e,c])};if(!e.ready&&!/ready|error/.test(o)||!o||!d.find("video",t).length)return void("resume"===o&&e.one("ready",function(){setTimeout(function(){u()})}));var c;if("unload"===o)return void e.unload();switch(o){case"ready":c=f(a,{duration:n.duration<Number.MAX_VALUE?n.duration:0,width:n.videoWidth,height:n.videoHeight,url:n.currentSrc,src:n.currentSrc});try{c.seekable=/mpegurl/i.test(a?a.type||"":"")&&n.duration||n.seekable&&n.seekable.end(null)||e.live}catch(h){}if(p=p||setInterval(function(){try{c.buffer=n.buffered.end(null)}catch(t){}c.buffer&&(i(c.buffer,1e3)<i(c.duration,1e3)&&!c.buffered&&c.buffer!==m?(e.trigger("buffer",[e,c.buffer]),m=c.buffer):c.buffered||c.buffer===m||(c.buffered=!0,e.trigger("buffer",[e,c.buffer]).trigger("buffered",l),m=c.buffer,clearInterval(p),p=0))},250),!e.live&&!c.duration&&!w.hlsDuration&&"loadeddata"===r){var g=function(){c.duration=n.duration;try{c.seekable=n.seekable&&n.seekable.end(null)}catch(e){}u(),n.removeEventListener("durationchange",g),d.toggleClass(t,"is-live",!1)};n.addEventListener("durationchange",g);var v=function(){e.ready||n.duration||(c.duration=0,d.addClass(t,"is-live"),u()),n.removeEventListener("timeupdate",v)};return void n.addEventListener("timeupdate",v)}break;case"progress":case"seek":if(n.currentTime>0||e.live)c=Math.max(n.currentTime,0);else if("progress"==o)return;break;case"speed":c=i(n.playbackRate);break;case"volume":c=i(n.volume);break;case"error":try{c=(l.srcElement||l.originalTarget).error,c.video=f(a,{src:n.src,url:n.src})}catch(y){return}}u()}};t.addEventListener(r,u,!0),l[r]||(l[r]=[]),l[r].push(u)}}),l}var r,p,m,v,y=d.findDirect("video",t)[0]||d.find(".fp-player > video",t)[0],w=u.support,b=e.conf;return r={engineName:l.engineName,pick:function(e){var t=function(){if(w.video){if(b.videoTypePreference){var t=a(e,b.videoTypePreference);if(t)return t}for(var n=0;n<e.length;n++)if(o(e[n].type))return e[n]}}();if(t)return"string"==typeof t.src&&(t.src=d.createAbsoluteUrl(t.src)),t},load:function(i){var o=d.find(".fp-player",t)[0],a=!1,s=!1;b.splash&&!y?(y=g(i),d.prepend(o,y),s=!0):y?(d.addClass(y,"fp-engine"),d.find("source,track",y).forEach(d.removeNode),e.conf.nativesubtitles||d.attr(y,"crossorigin",!1),a=y.src===i.src):(y=g(i,!!i.autoplay||!!b.autoplay,b.clip.preload||!0,!1),d.prepend(o,y),s=!0),w.inlineVideo||d.css(y,{position:"absolute",top:"-9999em"}),c.off(y,"timeupdate",d.noop),c.on(y,"timeupdate",d.noop),d.prop(y,"loop",!1),e.off(".loophack"),(i.loop||b.loop)&&(/mpegurl/i.test(i.type)?e.on("finish.loophack",function(){e.resume()}):d.prop(y,"loop",!0)),"undefined"!=typeof v&&(y.volume=v),(e.video.src&&i.src!=e.video.src||i.index)&&d.attr(y,"autoplay","autoplay"),y.src=i.src,y.type=i.type,r._listeners=n(y,d.find("source",y).concat(y),i)||r._listeners,(a||s&&!b.splash)&&y.load(),w.iOS.iPad&&w.iOS.chrome&&y.load(),y.paused&&(i.autoplay||b.autoplay||b.splash)&&y.play()},pause:function(){y.pause()},resume:function(){y.play()},speed:function(e){y.playbackRate=e},seek:function(t){try{var n=e.paused;y.currentTime=t,n&&y.pause()}catch(i){}},volume:function(e){v=e,y&&(y.volume=e)},unload:function(){d.find("video.fp-engine",t).forEach(function(e){d.attr(e,"src",""),d.removeNode(e)}),w.cachedVideoTag||(s=null),p=clearInterval(p);var e=t.getAttribute("data-flowplayer-instance-id");delete y.listeners[e],y=0,r._listeners&&Object.keys(r._listeners).forEach(function(e){r._listeners[e].forEach(function(n){t.removeEventListener(e,n,!0)})})}}},l.canPlay=function(e){return u.support.video&&o(e)},l.engineName="html5",u.engines.push(l)},{"../common":1,"../flowplayer":28,bean:31,"extend-object":36}],5:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){e.on("ready",function(){var e=r.find("video.fp-engine",t)[0];e&&(e.setAttribute("x-webkit-airplay","allow"),window.WebKitPlaybackTargetAvailabilityEvent&&(e.addEventListener("webkitplaybacktargetavailabilitychanged",function(e){if("available"===e.availability){var n=r.find(".fp-header",t)[0];r.find(".fp-airplay",n).forEach(r.removeNode);var i=r.createElement("a",{"class":"fp-airplay fp-icon",title:"Play on AirPlay device"});n.insertBefore(i,r.find(".fp-fullscreen",n)[0])}}),e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",function(){var n=r.find(".fp-airplay",t)[0];n&&r.toggleClass(n,"fp-active",e.webkitCurrentPlaybackTargetIsWireless)})))}),o.on(t,"click",".fp-airplay",function(e){e.preventDefault();var n=r.find("video.fp-engine",t)[0];n.webkitShowPlaybackTargetPicker()})})},{"../common":1,"../flowplayer":28,bean:31}],6:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("./resolve").TYPE_RE,o=e("scriptjs"),a=e("bean");i(function(e,t){var n,i=e.conf.analytics,s=0,l=0;if(i){"undefined"==typeof _gat&&o("//google-analytics.com/ga.js");var u=function(){var e=_gat._getTracker(i);return e._setAllowLinker(!0),e},c=function(i,o,a){if(a=a||e.video,s&&"undefined"!=typeof _gat){var l=u();l._trackEvent("Video / Seconds played",e.engine.engineName+"/"+a.type,a.title||t.getAttribute("title")||a.src.split("/").slice(-1)[0].replace(r,""),Math.round(s/1e3)),s=0,n&&(clearTimeout(n),n=null)}};e.bind("load unload",c).bind("progress",function(){e.seeking||(s+=l?+new Date-l:0,l=+new Date),n||(n=setTimeout(function(){n=null;var e=u();e._trackEvent("Flowplayer heartbeat","Heartbeat","",0,!0)},6e5))}).bind("pause",function(){l=0}),e.bind("shutdown",function(){a.off(window,"unload",c)}),a.on(window,"unload",c)}})},{"../flowplayer":28,"./resolve":19,bean:31,scriptjs:42}],7:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean"),a=e("scriptjs");i(function(e,t){function n(){var e,t,n;e=g.applicationId||chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,t=new chrome.cast.SessionRequest(e),n=new chrome.cast.ApiConfig(t,i,s),chrome.cast.initialize(n,l,u)}function i(){console.log("sessionListener")}function s(e){e===chrome.cast.ReceiverAvailability.AVAILABLE&&c()}function l(){}function u(){console.log("onError")}function c(){var e=r.find(".fp-header",t)[0];r.find(".fp-chromecast",e).forEach(r.removeNode),r.find(".fp-chromecast-engine",t).forEach(r.removeNode),h=r.createElement("a",{"class":"fp-chromecast fp-icon",title:"Play on Cast device"}),e.insertBefore(h,r.find(".fp-fullscreen",e)[0]);var n=r.createElement("div",{"class":"fp-chromecast-engine"}),i=r.createElement("p",{"class":"fp-chromecast-engine-status"}),o=r.createElement("p",{"class":"fp-chromecast-engine-icon"});n.appendChild(o),n.appendChild(i);var a=r.find(".fp-engine",t)[0];a?a.parentNode.insertBefore(n,a):r.prepend(r.find(".fp-player",t)[0]||t,n)}function f(){clearInterval(p),p=null,e.release(),r.toggleClass(t,"is-chromecast",!1),r.toggleClass(h,"fp-active",!1)}a("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),window.__onGCastApiAvailable=function(e){e&&n()};var d,p,h,g=e.conf.chromecast||{};o.on(t,"click",".fp-chromecast",function(n){return n.preventDefault(),d?(e.trigger("pause",[e]),d.stop(),d=null,void f()):(e.playing&&e.pause(),void chrome.cast.requestSession(function(n){function i(n){n.addUpdateListener(function(i){if(d){p=p||setInterval(function(){e.trigger("progress",[e,n.getEstimatedTime()])},500),i?(r.toggleClass(t,"is-chromecast",!0),r.toggleClass(h,"fp-active",!0),e.hijack({pause:function(){n.pause()},resume:function(){n.play()},seek:function(e){var t=new chrome.cast.media.SeekRequest;t.currentTime=e,n.seek(t)}})):(f(),e.trigger("finish",[e]));var o=n.playerState;e.paused&&o===chrome.cast.media.PlayerState.PLAYING&&e.trigger("resume",[e]),e.playing&&o===chrome.cast.media.PlayerState.PAUSED&&e.trigger("pause",[e]),r.toggleClass(t,"is-loading",o===chrome.cast.media.PlayerState.BUFFERING)}})}d=n;var o=d.receiver.friendlyName;r.html(r.find(".fp-chromecast-engine-status")[0],"Playing on device "+o);var a=new chrome.cast.media.MediaInfo(e.video.src),s=new chrome.cast.media.LoadRequest(a);d.loadMedia(s,i,function(){})},function(e){console.error("requestSession error",e)}))})})},{"../common":1,"../flowplayer":28,bean:31,scriptjs:42}],8:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){function n(e){t.className=t.className.replace(a," "),e>=0&&r.addClass(t,"cue"+e)}function i(t){var n=t&&!isNaN(t.time)?t.time:t;return 0>n&&(n=e.video.duration+n),.125*Math.round(n/.125)}var a=/ ?cue\d+ ?/,s=!1,l={},u=-.125,c=function(t){var i=e.cuepoints.indexOf(t);isNaN(t)||(t={time:t}),t.index=i,n(i),e.trigger("cuepoint",[e,t])};e.on("progress",function(e,t,n){if(!s)for(var r=i(n);r>u;)u+=.125,l[u]&&l[u].forEach(c)}).on("unload",n).on("beforeseek",function(e){setTimeout(function(){e.defaultPrevented||(s=!0)})}).on("seek",function(e,t,r){n(),u=i(r||0)-.125,s=!1,!r&&l[0]&&l[0].forEach(c)}).on("ready",function(t,n,i){u=-.125;var r=i.cuepoints||e.conf.cuepoints||[];e.setCuepoints(r)}).on("finish",function(){u=-.125}),e.conf.generate_cuepoints&&e.bind("load",function(){r.find(".fp-cuepoint",t).forEach(r.removeNode)}),e.setCuepoints=function(t){return e.cuepoints=[],l={},t.forEach(e.addCuepoint),e},e.addCuepoint=function(n){e.cuepoints||(e.cuepoints=[]);var a=i(n);if(l[a]||(l[a]=[]),l[a].push(n),e.cuepoints.push(n),e.conf.generate_cuepoints&&n.visible!==!1){var s=e.video.duration,u=r.find(".fp-timeline",t)[0];r.css(u,"overflow","visible");var c=n.time||n;0>c&&(c=s+c);var f=r.createElement("a",{className:"fp-cuepoint fp-cuepoint"+(e.cuepoints.length-1)});r.css(f,"left",c/s*100+"%"),u.appendChild(f),o.on(f,"mousedown",function(t){t.preventDefault(),t.stopPropagation(),e.seek(c)})}return e},e.removeCuepoint=function(t){var n=e.cuepoints.indexOf(t),r=i(t);if(-1!==n){e.cuepoints=e.cuepoints.slice(0,n).concat(e.cuepoints.slice(n+1));var o=l[r].indexOf(t);if(-1!==o)return l[r]=l[r].slice(0,o).concat(l[r].slice(o+1)),e}}})},{"../common":1,"../flowplayer":28,bean:31}],9:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("bean"),o=e("../common"),a=e("./util/clipboard");i(function(e,t){if(e.conf.embed!==!1&&e.conf.share!==!1){var n=o.find(".fp-share-menu",t)[0],i=o.createElement("a",{"class":"fp-icon fp-embed",title:"Copy to your site"},"Embed");o.append(n,i),e.embedCode=function(){var n=e.conf.embed||{},i=e.video,r=n.width||i.width||o.width(t),a=n.height||i.height||o.height(t),s=e.conf.ratio,l='<iframe src="'+e.shareUrl(!0)+'" allowfullscreen style="border:none;';return n.width||n.height?(isNaN(r)||(r+="px"),isNaN(a)||(a+="px"),l+"width:"+r+";height:"+a+';"></iframe>'):((!s||e.conf.adaptiveRatio)&&(s=a/r),'<div style="position:relative;width:100%;display:inline-block;">'+l+'position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top:'+100*s+'%;"></div></div>')},r.on(t,"click",".fp-embed",function(){a(e.embedCode(),function(){e.message("The embed code is now on your clipboard",2e3)},function(){e.textarea(e.embedCode(),"Copy the code below to embed your video")})})}})},{"../common":1,"../flowplayer":28,"./util/clipboard":27,bean:31}],10:[function(e,t,n){"use strict";t.exports=function(e,t){t||(t=document.createElement("div"));var n={},i={},r=function(e,r,o){var a=e.split(".")[0],s=function(l){o&&(t.removeEventListener(a,s),n[e].splice(n[e].indexOf(s),1));var u=[l].concat(i[l.timeStamp+l.type]||[]);r&&r.apply(void 0,u)};t.addEventListener(a,s),n[e]||(n[e]=[]),n[e].push(s)};e.on=e.bind=function(t,n){var i=t.split(" ");return i.forEach(function(e){r(e,n)}),e},e.one=function(t,n){var i=t.split(" ");return i.forEach(function(e){r(e,n,!0)}),e};var o=function(e,t){
|
7 |
+
return 0===t.filter(function(t){return-1===e.indexOf(t)}).length};e.off=e.unbind=function(i){var r=i.split(" ");return r.forEach(function(e){var i=e.split(".").slice(1),r=e.split(".")[0];Object.keys(n).filter(function(e){var t=e.split(".").slice(1);return(!r||0===e.indexOf(r))&&o(t,i)}).forEach(function(e){var i=n[e],r=e.split(".")[0];n[e]=i.filter(function(e){return t.removeEventListener(r,e),!1})})}),e},e.trigger=function(n,r,o){if(n){r=(r||[]).length?r||[]:[r];var a,s=document.createEvent("Event");return a=n.type||n,s.initEvent(a,!1,!0),Object.defineProperty&&(s.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}),i[s.timeStamp+s.type]=r,t.dispatchEvent(s),o?s:e}}},t.exports.EVENTS=["beforeseek","disable","error","finish","fullscreen","fullscreen-exit","load","mute","pause","progress","ready","resume","seek","speed","stop","unload","volume","boot","shutdown"]},{}],11:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){var n=e.conf;if(n.share!==!1&&n.facebook){e.facebook=function(){var e,t,i=550,r=420,o=screen.height,a=screen.width,s="scrollbars=yes,resizable=yes,toolbar=no,location=yes",l="string"==typeof n.facebook?n.facebook:window.location.toString();e=Math.round(a/2-i/2),t=0,o>r&&(t=Math.round(o/2-r/2)),window.open("https://www.facebook.com/sharer.php?s=100&p[url]="+encodeURIComponent(l),"sharer",s+",width="+i+",height="+r+",left="+e+",top="+t)};var i=r.find(".fp-share-menu",t)[0],a=r.createElement("a",{"class":"fp-icon fp-facebook"},"Facebook");r.append(i,a),o.on(t,"click",".fp-facebook",function(){e.facebook()})}})},{"../common":1,"../flowplayer":28,bean:31}],12:[function(e,t,n){"use strict";var i,r=e("../flowplayer"),o=e("bean"),a=e("../common"),s="fullscreen",l="fullscreen-exit",u=r.support.fullscreen,c=navigator.userAgent.toLowerCase(),f=/(safari)[ \/]([\w.]+)/.exec(c)&&!/(chrome)[ \/]([\w.]+)/.exec(c);o.on(document,"fullscreenchange.ffscr webkitfullscreenchange.ffscr mozfullscreenchange.ffscr MSFullscreenChange.ffscr",function(e){var t=document.webkitCurrentFullScreenElement||document.mozFullScreenElement||document.fullscreenElement||document.msFullscreenElement||e.target;if(i||t.parentNode&&t.parentNode.getAttribute("data-flowplayer-instance-id")){var n=i||r(t.parentNode);t&&!i?i=n.trigger(s,[t]):(i.trigger(l,[i]),i=null)}}),r(function(e,t){var n=a.createElement("div",{className:"fp-player"});if(Array.prototype.map.call(t.children,a.identity).forEach(function(e){a.matches(e,".fp-ratio,script")||n.appendChild(e)}),t.appendChild(n),e.conf.fullscreen){var r,o,c=window;e.isFullscreen=!1,e.fullscreen=function(t){return e.disabled?void 0:(void 0===t&&(t=!e.isFullscreen),t&&(r=c.scrollY,o=c.scrollX),u?t?["requestFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].forEach(function(e){return"function"==typeof n[e]?(n[e](Element.ALLOW_KEYBOARD_INPUT),!f||document.webkitCurrentFullScreenElement||document.mozFullScreenElement||n[e](),!1):void 0}):["exitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].forEach(function(e){return"function"==typeof document[e]?(document[e](),!1):void 0}):e.trigger(t?s:l,[e]),e)};var d;e.on("mousedown.fs",function(){+new Date-d<150&&e.ready&&e.fullscreen(),d=+new Date}),e.on(s,function(){a.addClass(t,"is-fullscreen"),a.toggleClass(t,"fp-minimal-fullscreen",a.hasClass(t,"fp-minimal")),a.removeClass(t,"fp-minimal"),u||a.css(t,"position","fixed"),e.isFullscreen=!0}).on(l,function(){var n;a.toggleClass(t,"fp-minimal",a.hasClass(t,"fp-minimal-fullscreen")),a.removeClass(t,"fp-minimal-fullscreen"),u||"html5"!==e.engine||(n=t.css("opacity")||"",a.css(t,"opacity",0)),u||a.css(t,"position",""),a.removeClass(t,"is-fullscreen"),u||"html5"!==e.engine||setTimeout(function(){t.css("opacity",n)}),e.isFullscreen=!1,c.scrollTo(o,r)}).on("unload",function(){e.isFullscreen&&e.fullscreen()}),e.on("shutdown",function(){i=null})}})},{"../common":1,"../flowplayer":28,bean:31}],13:[function(e,t,n){"use strict";var i,r,o=e("../flowplayer"),a=e("bean"),s="is-help",l=e("../common");a.on(document,"keydown.fp",function(e){var t=i,n=e.ctrlKey||e.metaKey||e.altKey,o=e.which,a=t&&t.conf;if(t&&a.keyboard&&!t.disabled){if(-1!=[63,187,191].indexOf(o))return l.toggleClass(r,s),!1;if(27==o&&l.hasClass(r,s))return l.toggleClass(r,s),!1;if(!n&&t.ready){if(e.preventDefault(),e.shiftKey)return void(39==o?t.speed(!0):37==o&&t.speed(!1));if(58>o&&o>47)return t.seekTo(o-48);switch(o){case 38:case 75:t.volume(t.volumeLevel+.15);break;case 40:case 74:t.volume(t.volumeLevel-.15);break;case 39:case 76:t.seeking=!0,t.seek(!0);break;case 37:case 72:t.seeking=!0,t.seek(!1);break;case 190:t.seekTo();break;case 32:t.toggle();break;case 70:a.fullscreen&&t.fullscreen();break;case 77:t.mute();break;case 81:t.unload()}}}}),o(function(e,t){if(e.conf.keyboard){a.on(t,"mouseenter mouseleave",function(n){i=e.disabled||"mouseover"!=n.type?0:e,i&&(r=t)});var n=o.support.video&&"flash"!==e.conf.engine&&document.createElement("video").playbackRate?"<p><em>shift</em> + <em>←</em><em>→</em>slower / faster</p>":"";t.appendChild(l.createElement("div",{className:"fp-help"},' <a class="fp-close"></a> <div class="fp-help-section fp-help-basics"> <p><em>space</em>play / pause</p> <p><em>q</em>unload | stop</p> <p><em>f</em>fullscreen</p>'+n+' </div> <div class="fp-help-section"> <p><em>↑</em><em>↓</em>volume</p> <p><em>m</em>mute</p> </div> <div class="fp-help-section"> <p><em>←</em><em>→</em>seek</p> <p><em> . </em>seek to previous </p><p><em>1</em><em>2</em>… <em>6</em> seek to 10%, 20% … 60% </p> </div> ')),a.on(t,"click",".fp-close",function(){l.toggleClass(t,s)}),e.bind("shutdown",function(){r==t&&(r=null)})}})},{"../common":1,"../flowplayer":28,bean:31}],14:[function(e,t,n){var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){e.showMenu=function(n,i){var a=r.find(".fp-ui",t)[0];r.toggleClass(n,"fp-active",!0),setTimeout(function(){o.one(document,"click",function(){e.hideMenu(n)})});var s=i;if(i&&i.tagName&&(s={left:r.offset(i).left,rightFallbackOffset:r.width(i),top:r.offset(i).top+r.height(i)}),s){s.rightFallbackOffset=s.rightFallbackOffset||0;var l=s.top-r.offset(a).top,u=s.left-r.offset(a).left;r.width(n)+u>r.width(a)&&(u=u-r.width(n)+s.rightFallbackOffset),r.height(n)+l>r.height(a)&&(l-=r.height(n)),r.css(n,{top:l+"px",left:u+"px"})}},e.hideMenu=function(e){r.toggleClass(e,"fp-active",!1)}})},{"../common":1,"../flowplayer":28,bean:31}],15:[function(e,t,n){var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){function n(e){var t=r.createElement("div",{className:"fp-message"},e);return s.insertBefore(t,a),setTimeout(function(){r.toggleClass(t,"fp-shown")}),t}function i(e){r.removeNode(e)}var a=r.find(".fp-header",t)[0],s=r.find(".fp-ui",t)[0];e.message=function(e,t){var o=n(e),a=function(){r.toggleClass(o,"fp-shown"),setTimeout(function(){i(o)},500)};return t&&setTimeout(a,t),a},e.textarea=function(e){var t=document.createElement("textarea");t.value=e,t.className="fp-textarea",s.appendChild(t),o.on(document,"click.fptextarea",function(e){return e.target===t?t.select():(e.stopPropagation(),e.preventDefault(),r.removeNode(t),void o.off(document,"click.fptextarea"))})}})},{"../common":1,"../flowplayer":28,bean:31}],16:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=/IEMobile/.test(window.navigator.userAgent),o=e("../common"),a=e("bean"),s=e("./ui").format,l=window.navigator.userAgent;(i.support.touch||r)&&i(function(e,t){var n=/Android/.test(l)&&!/Firefox/.test(l)&&!/Opera/.test(l),u=/Silk/.test(l),c=n?parseFloat(/Android\ (\d\.\d)/.exec(l)[1],10):0;if(n&&!r){if(!/Chrome/.test(l)&&4>c){var f=e.load;e.load=function(){var t=f.apply(e,arguments);return e.trigger("ready",[e,e.video]),t}}var d,p=0,h=function(e){d=setInterval(function(){e.video.time=++p,e.trigger("progress",[e,p])},1e3)};e.bind("ready pause unload",function(){d&&(clearInterval(d),d=null)}),e.bind("ready",function(){p=0}),e.bind("resume",function(t,n){return n.live?p?h(n):void e.one("progress",function(e,t,n){0===n&&h(t)}):void 0})}i.support.volume||o.addClass(t,"no-volume"),o.addClass(t,"is-touch"),e.sliders&&e.sliders.timeline&&e.sliders.timeline.disableAnimation(),(!i.support.inlineVideo||e.conf.native_fullscreen)&&(e.conf.nativesubtitles=!0);var g=!1;if(a.on(t,"touchmove",function(){g=!0}),a.on(t,"touchend click",function(n){return g?void(g=!1):e.playing&&!o.hasClass(t,"is-mouseover")?(o.addClass(t,"is-mouseover"),o.removeClass(t,"is-mouseout"),n.preventDefault(),void n.stopPropagation()):void(e.playing||e.splash||!o.hasClass(t,"is-mouseout")||o.hasClass(t,"is-mouseover")||setTimeout(function(){e.disabled||e.playing||e.splash||e.resume()},400))}),!i.support.fullscreen&&e.conf.native_fullscreen&&"function"==typeof document.createElement("video").webkitEnterFullScreen){var m=e.fullscreen;e.fullscreen=function(){var n=o.find("video.fp-engine",t)[0];return n?(e.trigger("fullscreen",[e]),a.on(document,"webkitfullscreenchange.nativefullscreen",function(){document.webkitFullscreenElement===n&&(a.off(document,".nativefullscreen"),a.on(document,"webkitfullscreenchange.nativefullscreen",function(){document.webkitFullscreenElement||(a.off(document,".nativefullscreen"),e.trigger("fullscreen-exit",[e]))}))}),n.webkitEnterFullScreen(),void a.one(n,"webkitendfullscreen",function(){a.off(document,"fullscreenchange.nativefullscreen"),e.trigger("fullscreen-exit",[e]),o.prop(n,"controls",!0),o.prop(n,"controls",!1)})):m.apply(e)}}(n||u)&&e.bind("ready",function(){var n=o.find("video.fp-engine",t)[0];a.one(n,"canplay",function(){n.play()}),n.play(),e.bind("progress.dur",function(){if(!e.live&&!e.conf.live){var i=n.duration;1!==i&&(e.video.duration=i,o.find(".fp-duration",t)[0].innerHTML=s(i),e.unbind("progress.dur"))}})})})},{"../common":1,"../flowplayer":28,"./ui":24,bean:31}],17:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("extend-object"),o=e("bean"),a=e("../common"),s=e("./resolve"),l=new s,u=window.jQuery,c=/^#/;i(function(e,t){function n(){return a.find(h.query,i())}function i(){return c.test(h.query)?void 0:t}function f(){return a.find(h.query+"."+g,i())}function d(){var n=a.find(".fp-playlist",t)[0];if(!n){n=a.createElement("div",{className:"fp-playlist"});var i=a.find(".fp-next,.fp-prev",t);i.length?i[0].parentElement.insertBefore(n,i[0]):a.insertAfter(t,a.find("video",t)[0],n)}n.innerHTML="",e.conf.playlist[0].length&&(e.conf.playlist=e.conf.playlist.map(function(e){if("string"==typeof e){var t=e.split(s.TYPE_RE)[1];return{sources:[{type:"m3u8"===t.toLowerCase()?"application/x-mpegurl":"video/"+t,src:e}]}}return{sources:e.map(function(e){var t={};return Object.keys(e).forEach(function(n){t.type=/mpegurl/i.test(n)?"application/x-mpegurl":"video/"+n,t.src=e[n]}),t})}})),e.conf.playlist.forEach(function(e,t){var i=e.sources[0].src;n.appendChild(a.createElement("a",{href:i,"data-index":t}))})}function p(t){return"undefined"!=typeof t.index?t.index:"undefined"!=typeof e.video.index?e.video.index:e.conf.startIndex||0}var h=r({active:"is-active",advance:!0,query:".fp-playlist a"},e.conf),g=h.active,m=a.find(".fp-ui",t)[0],v=a.hasClass(t,"fp-custom-playlist")||!!h.customPlaylist;a.toggleClass(t,"fp-custom-playlist",v),a.toggleClass(t,"fp-default-playlist",!v),e.play=function(t){if(void 0===t)return e.resume();if("number"==typeof t&&!e.conf.playlist[t])return e;if("number"!=typeof t)return e.load.apply(null,arguments);var n=r({index:t},e.conf.playlist[t]);return t===e.video.index?e.load(n,function(){e.resume()}):(e.off("beforeresume.fromfirst"),e.load(n,function(){e.video.index=t}),e)},e.next=function(t){t&&t.preventDefault();var n=e.video.index;return-1!=n&&(n=n===e.conf.playlist.length-1?0:n+1,e.play(n)),e},e.prev=function(t){t&&t.preventDefault();var n=e.video.index;return-1!=n&&(n=0===n?e.conf.playlist.length-1:n-1,e.play(n)),e},e.setPlaylist=function(t){return e.conf.playlist=t,delete e.video.index,d(),e},e.addPlaylistItem=function(t){return e.setPlaylist(e.conf.playlist.concat([t]))},e.removePlaylistItem=function(t){var n=e.conf.playlist;return e.setPlaylist(n.slice(0,t).concat(n.slice(t+1)))},o.on(t,"click",".fp-next",e.next),o.on(t,"click",".fp-prev",e.prev),h.advance&&e.off("finish.pl").on("finish.pl",function(e,n){if(n.video.loop)return n.seek(0,function(){n.resume()});var i=n.video.index>=0?n.video.index+1:void 0;i<n.conf.playlist.length||h.loop?(i=i===n.conf.playlist.length?0:i,a.removeClass(t,"is-finished"),setTimeout(function(){n.play(i)})):n.conf.playlist.length>1&&(n.one("beforeresume.fromfirst",function(e){e.preventDefault(),n.play(0)}),n.one("seek",function(){n.off("beforeresume.fromfirst")}))});var y=!1;e.conf.playlist.length&&(y=!0,d(),e.conf.clip&&e.conf.clip.sources.length||(e.conf.clip=e.conf.playlist[e.conf.startIndex||0])),n().length&&!y&&(e.conf.playlist=[],delete e.conf.startIndex,n().forEach(function(t){var n=t.href;t.setAttribute("data-index",e.conf.playlist.length);var i=l.resolve(n,e.conf.clip.sources);u&&r(i,u(t).data()),e.conf.playlist.push(i)})),a.find(".fp-prev,.fp-next,.fp-playlist",t).forEach(function(e){m.appendChild(e)}),o.on(c.test(h.query)?document:t,"click",h.query,function(t){t.preventDefault();var n=t.currentTarget,i=Number(n.getAttribute("data-index"));-1!=i&&e.play(i)}),e.on("load",function(n,r,o){if(e.conf.playlist.length){var s=f()[0],l=s&&s.getAttribute("data-index"),u=o.index=p(o),c=a.find(h.query+'[data-index="'+u+'"]',i())[0],d=u==e.conf.playlist.length-1;s&&a.removeClass(s,g),c&&a.addClass(c,g),a.removeClass(t,"video"+l),a.addClass(t,"video"+u),a.toggleClass(t,"last-video",d),o.index=r.video.index=u,o.is_last=r.video.is_last=d}}).on("unload.pl",function(){e.conf.playlist.length&&(f().forEach(function(e){a.toggleClass(e,g)}),e.conf.playlist.forEach(function(e,n){a.removeClass(t,"video"+n)}))}),e.conf.playlist.length&&(e.conf.loop=!1)})},{"../common":1,"../flowplayer":28,"./resolve":19,bean:31,"extend-object":36}],18:[function(e,t,n){var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){function n(){r.find(".fp-qsel-menu",t).forEach(r.removeNode),r.find(".fp-qsel",t).forEach(r.removeNode)}function i(e){l.appendChild(r.createElement("strong",{className:"fp-qsel"},"HD"));var t=r.createElement("div",{className:"fp-menu fp-qsel-menu"},"<strong>Quality</strong>");e.forEach(function(e){var n=document.createElement("a"),i="undefined"!=typeof e.value?e.value:e;n.setAttribute("data-quality",i),n.innerHTML=e.label||e,t.appendChild(n)}),s.appendChild(t)}function a(e){r.find(".fp-qsel-menu a",t).forEach(function(t){r.toggleClass(t,"fp-selected",t.getAttribute("data-quality")==e),r.toggleClass(t,"fp-color",t.getAttribute("data-quality")==e)})}var s=r.find(".fp-ui",t)[0],l=r.find(".fp-controls",s)[0];o.on(t,"click",".fp-qsel",function(){var n=r.find(".fp-qsel-menu",t)[0];r.hasClass(n,"fp-active")?e.hideMenu():e.showMenu(n)}),o.on(t,"click",".fp-qsel-menu a",function(t){var n=t.target.getAttribute("data-quality");e.quality(n)}),e.quality=function(t){t=isNaN(Number(t))?t:Number(t),e.trigger("quality",[e,t])},e.on("quality",function(e,t,n){a(n,t.video.qualities)}),e.on("ready",function(e,t,r){n(),!r.qualities||r.qualities.filter(function(e){return"undefined"!=typeof e.value?e.value>-1:!0}).length<2||(i(r.qualities,r.quality),a(r.quality,r.qualities))})})},{"../common":1,"../flowplayer":28,bean:31}],19:[function(e,t,n){"use strict";function i(e){var t=e.attr("src"),n=e.attr("type")||"",i=t.split(o)[1];return n=n.toLowerCase(),a(e.data(),{src:t,suffix:i||n,type:n||i})}function r(e){return/mpegurl/i.test(e)?"application/x-mpegurl":"video/"+e}var o=/\.(\w{3,4})(\?.*)?$/i,a=e("extend-object");t.exports=function(){var e=this;e.sourcesFromVideoTag=function(e,t){var n=[];return t("source",e).each(function(){n.push(i(t(this)))}),!n.length&&e.length&&n.push(i(e)),n},e.resolve=function(e,t){return e?("string"==typeof e&&(e={src:e,sources:[]},e.sources=(t||[]).map(function(t){var n=t.src.split(o)[1];return{type:t.type,src:e.src.replace(o,"."+n+"$2")}})),e instanceof Array&&(e={sources:e.map(function(e){return e.type&&e.src?e:Object.keys(e).reduce(function(t,n){return a(t,{type:r(n),src:e[n]})},{})})}),e):{sources:t}}},t.exports.TYPE_RE=o},{"extend-object":36}],20:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("extend-object"),a=e("bean");i(function(e,t){var n=e.conf;if(n.share===!1)return void r.find(".fp-share",t).forEach(r.removeNode);e.shareUrl=function(t){if(t&&n.embed&&n.embed.iframe)return n.embed.iframe;if("string"==typeof e.conf.share)return e.conf.share;var i=encodeURIComponent(e.video.title||(r.find("title")[0]||{}).innerHTML||"Flowplayer video"),a=encodeURIComponent(btoa(JSON.stringify(o({},e.conf,e.extensions)))),s=encodeURIComponent(window.location.toString()),l=t?"https://flowplayer.org/e/":"https://flowplayer.org/s/";return l+"?t="+i+"&c="+a+"&r="+s};var i=r.createElement("div",{className:"fp-menu fp-share-menu"},"<strong>Share</strong>"),s=r.find(".fp-ui",t)[0];s.appendChild(i);var l=r.find(".fp-share",t)[0];a.on(t,"click",".fp-share",function(t){t.preventDefault(),r.hasClass(i,"fp-active")?e.hideMenu():e.showMenu(i,l)})})},{"../common":1,"../flowplayer":28,bean:31,"extend-object":36}],21:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean");i.defaults.subtitleParser=function(e){function t(e){var t=e.split(":");return 2==t.length&&t.unshift(0),60*t[0]*60+60*t[1]+parseFloat(t[2].replace(",","."))}for(var n,i,r,o=/^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/,a=[],s=0,l=e.split("\n"),u=l.length,c={};u>s;s++)if(i=o.exec(l[s])){for(n=l[s-1],r="<p>"+l[++s]+"</p><br/>";"string"==typeof l[++s]&&l[s].trim()&&s<l.length;)r+="<p>"+l[s]+"</p><br/>";c={title:n,startTime:t(i[1]),endTime:t(i[3]),text:r},a.push(c)}return a},i(function(e,t){var n,a,s,l,u=function(){return s=r.createElement("strong",{className:"fp-cc"},"CC"),l=r.createElement("div",{className:"fp-menu fp-subtitle-menu"},"<strong>Closed Captions</strong>"),l.appendChild(r.createElement("a",{"data-subtitle-index":-1},"No subtitles")),(e.video.subtitles||[]).forEach(function(e,t){var n=e.srclang||"en",i=e.label||"Default ("+n+")",o=r.createElement("a",{"data-subtitle-index":t},i);l.appendChild(o)}),r.find(".fp-ui",t)[0].appendChild(l),r.find(".fp-controls",t)[0].appendChild(s),s};o.on(t,"click",".fp-cc",function(){r.toggleClass(l,"fp-active")}),o.on(t,"click",".fp-subtitle-menu [data-subtitle-index]",function(t){t.preventDefault();var n=t.target.getAttribute("data-subtitle-index");return"-1"===n?e.disableSubtitles():void e.loadSubtitles(n)});var c=function(){a=r.find(".fp-subtitle",t)[0],a=a||r.appendTo(r.createElement("div",{"class":"fp-captions"}),r.find(".fp-player",t)[0]),Array.prototype.forEach.call(a.children,r.removeNode),r.find(".fp-subtitle-menu",t).forEach(r.removeNode),u()};e.on("ready",function(n,o,a){var l=o.conf;if(i.support.subtitles&&l.nativesubtitles&&"html5"==o.engine.engineName){var u=function(e){var n=r.find("video",t)[0].textTracks;n.length&&(n[0].mode=e)};if(!a.subtitles||!a.subtitles.length)return;var f=r.find("video.fp-engine",t)[0];return a.subtitles.some(function(e){return!r.isSameDomain(e.src)})&&r.attr(f,"crossorigin","anonymous"),"function"==typeof f.textTracks.addEventListener&&f.textTracks.addEventListener("addtrack",function(){u("disabled"),u("showing")}),void a.subtitles.forEach(function(e){f.appendChild(r.createElement("track",{kind:"subtitles",srclang:e.srclang||"en",label:e.label||"en",src:e.src,"default":e["default"]}))})}if(o.subtitles=[],c(),r.removeClass(t,"has-menu"),e.disableSubtitles(),r.toggleClass(s,"fp-hidden",!a.subtitles||!a.subtitles.length),a.subtitles&&a.subtitles.length){var d=a.subtitles.filter(function(e){return e["default"]})[0];d&&o.loadSubtitles(a.subtitles.indexOf(d))}}),e.bind("cuepoint",function(e,t,i){i.subtitle?(n=i.index,r.html(a,i.subtitle.text),r.addClass(a,"fp-shown")):i.subtitleEnd&&(r.removeClass(a,"fp-shown"),n=i.index)}),e.bind("seek",function(t,i,o){n&&e.cuepoints[n]&&e.cuepoints[n].time>o&&(r.removeClass(a,"fp-shown"),n=null),(e.cuepoints||[]).forEach(function(t){var i=t.subtitle;i&&n!=t.index?o>=t.time&&(!i.endTime||o<=i.endTime)&&e.trigger("cuepoint",[e,t]):t.subtitleEnd&&o>=t.time&&t.index==n+1&&e.trigger("cuepoint",[e,t])})});var f=function(e){r.toggleClass(r.find("a.fp-selected",l)[0],"fp-selected"),r.toggleClass(r.find('a[data-subtitle-index="'+e+'"]',l)[0],"fp-selected")};e.disableSubtitles=function(){return e.subtitles=[],(e.cuepoints||[]).forEach(function(t){(t.subtitle||t.subtitleEnd)&&e.removeCuepoint(t)}),a&&Array.prototype.forEach.call(a.children,r.removeNode),f(-1),e},e.loadSubtitles=function(t){e.disableSubtitles();var n=e.video.subtitles[t],i=n.src;return i?(f(t),r.xhrGet(i,function(t){var n=e.conf.subtitleParser(t);n.forEach(function(t){var n={time:t.startTime,subtitle:t,visible:!1};e.subtitles.push(t),e.addCuepoint(n),e.addCuepoint({time:t.endTime,subtitleEnd:t.title,visible:!1}),0!==t.startTime||e.video.time||e.trigger("cuepoint",[e,n])})},function(){return e.trigger("error",{code:8,url:i}),!1}),e):void 0}})},{"../common":1,"../flowplayer":28,bean:31}],22:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("extend-object");!function(){var e=function(e){var t=/iP(ad|hone)(; CPU)? OS (\d+_\d)/.exec(e);return t&&t.length>1?parseFloat(t[t.length-1].replace("_","."),10):0},t=function(){var e=document.createElement("video");return e.loop=!0,e.autoplay=!0,e.preload=!0,e},n={},o=document.documentElement.style,a=navigator.userAgent.toLowerCase(),s=/(chrome)[ \/]([\w.]+)/.exec(a)||/(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];s[1]&&(n[s[1]]=!0,n.version=s[2]||"0");var l=t(),u=navigator.userAgent,c=n.msie||/Trident\/7/.test(u),f=/iPad|MeeGo/.test(u)&&!/CriOS/.test(u),d=/iPad/.test(u)&&/CriOS/.test(u),p=/iP(hone|od)/i.test(u)&&!/iPad/.test(u)&&!/IEMobile/i.test(u),h=/Android/.test(u)&&!/Firefox/.test(u),g=/Android/.test(u)&&/Firefox/.test(u),m=/Silk/.test(u),v=/IEMobile/.test(u),y=v?parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(u)[1],10):0,w=v?parseFloat(/IEMobile\/(\d+\.\d+)/.exec(u)[1],10):0,b=f||p?e(u):0,I=h?parseFloat(/Android\ (\d\.\d)/.exec(u)[1],10):0,C=r(i.support,{browser:n,iOS:{iPhone:p,iPad:f||d,version:b,chrome:d},subtitles:!!l.addTextTrack,fullscreen:"function"==typeof document.webkitCancelFullScreen&&!/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(u)||document.mozFullScreenEnabled||"function"==typeof document.exitFullscreen||"function"==typeof document.msExitFullscreen,inlineBlock:!(c&&n.version<8),touch:"ontouchstart"in window,dataload:!f&&!p&&!v,flex:"flexWrap"in o||"WebkitFlexWrap"in o||"msFlexWrap"in o,svg:!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,zeropreload:!c&&!h,volume:!(f||p||m||d),cachedVideoTag:!(f||p||d||v),firstframe:!(p||f||h||m||d||v||g),inlineVideo:(!p||b>=10)&&(!v||y>=8.1&&w>=11)&&(!h||I>=3),hlsDuration:!h&&(!n.safari||f||p||d),seekable:!f&&!d});C.autoplay=C.firstframe;try{var M=navigator.plugins["Shockwave Flash"],A=c?new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version"):M.description;c||M[0].enabledPlugin?(A=A.split(/\D+/),A.length&&!A[0]&&(A=A.slice(1)),C.flashVideo=A[0]>9||9==A[0]&&A[3]>=115):C.flashVideo=!1}catch(S){}try{C.video=!!l.canPlayType,C.video&&l.canPlayType("video/mp4")}catch(D){C.video=!1}C.animation=function(){for(var e=["","Webkit","Moz","O","ms","Khtml"],t=document.createElement("p"),n=0;n<e.length;n++)if("undefined"!=typeof t.style[e[n]+"AnimationName"])return!0}()}()},{"../flowplayer":28,"extend-object":36}],23:[function(e,t,n){"use strict";var i=e("../flowplayer"),r=e("../common"),o=e("bean");i(function(e,t){var n=e.conf;if(n.share!==!1&&n.twitter!==!1){e.tweet=function(){var t,i,r=550,o=420,a=screen.height,s=screen.width,l="scrollbars=yes,resizable=yes,toolbar=no,location=yes",u="string"==typeof n.twitter?n.twitter:e.shareUrl();t=Math.round(s/2-r/2),i=0,a>o&&(i=Math.round(a/2-o/2)),window.open("https://twitter.com/intent/tweet?url="+encodeURIComponent(u),"intent",l+",width="+r+",height="+o+",left="+t+",top="+i)};var i=r.find(".fp-share-menu",t)[0],a=r.createElement("a",{"class":"fp-icon fp-twitter"},"Twitter");r.append(i,a),o.on(t,"click",".fp-twitter",function(){e.tweet()})}})},{"../common":1,"../flowplayer":28,bean:31}],24:[function(e,t,n){(function(n){"use strict";function i(e){return e=parseInt(e,10),e>=10?e:"0"+e}function r(e,t){e=Math.max(e||0,0),e=t?Math.ceil(e):Math.floor(e);var n=Math.floor(e/3600),r=Math.floor(e/60);return e-=60*r,n>=1?(r-=60*n,n+":"+i(r)+":"+i(e)):i(r)+":"+i(e)}var o=e("../flowplayer"),a=e("../common"),s=e("bean"),l=e("./ui/slider"),u=e("./ui/bar-slider"),c=n("PHN2ZyBjbGFzcz0iZnAtcGxheS1yb3VuZGVkLW91dGxpbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDk5Ljg0NCA5OS44NDM0Ij48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30uY29udHJvbGJ1dHRvbntmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz4KPHRpdGxlPnBsYXktcm91bmRlZC1vdXRsaW5lPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxwYXRoIGNsYXNzPSJjb250cm9sYnV0dG9uIiBkPSJNNDEuMDM1OSw3MS4xOWE1LjA0OTIsNS4wNDkyLDAsMCwxLTIuNTU3NS0uNjY3M2MtMS44MDMxLTEuMDQxLTIuNzk1OC0zLjEyNDgtMi43OTU4LTUuODY2NFYzNS4xODg3YzAtMi43NDI5Ljk5MzMtNC44MjcyLDIuNzk3LTUuODY3NiwxLjgwMjUtMS4wNDIyLDQuMTAzNC0uODYsNi40OC41MTQzTDcwLjQ3ODIsNDQuNTY3MmMyLjM3NTEsMS4zNzExLDMuNjgyNiwzLjI3MjUsMy42ODMyLDUuMzU0NXMtMS4zMDc2LDMuOTg0NS0zLjY4MzIsNS4zNTYyTDQ0Ljk1OTIsNzAuMDExNEE3LjkzODQsNy45Mzg0LDAsMCwxLDQxLjAzNTksNzEuMTlabS4wMDY1LTQwLjEyM2EyLjY3OTQsMi42Nzk0LDAsMCwwLTEuMzU4Mi4zNDEzYy0xLjAyNjMuNTkyNi0xLjU5MTIsMS45MzQ5LTEuNTkxMiwzLjc4VjY0LjY1NjNjMCwxLjg0NDkuNTY0OSwzLjE4NjYsMS41OTA2LDMuNzc5MSwxLjAyODEuNTkzMiwyLjQ3MzMuNDEwOCw0LjA3LS41MTJMNjkuMjczLDUzLjE5MDZjMS41OTgzLS45MjI3LDIuNDc4LTIuMDgzOCwyLjQ3OC0zLjI2ODlzLS44OC0yLjM0NDUtMi40NzgtMy4yNjY2TDQzLjc1NCwzMS45MjI3QTUuNTY4NSw1LjU2ODUsMCwwLDAsNDEuMDQyMywzMS4wNjcxWiIgZmlsdGVyPSJ1cmwoI2YxKSIvPjwvc3ZnPgo=","base64"),f=n("PHN2ZyBjbGFzcz0iZnAtcGxheS1yb3VuZGVkLWZpbGwiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogIDxkZWZzPjxzdHlsZT4uYXtmaWxsOiMwMDA7b3BhY2l0eTowLjY1O30uYntmaWxsOiNmZmY7b3BhY2l0eToxLjA7fTwvc3R5bGU+CiAgPC9kZWZzPjx0aXRsZT5wbGF5LXJvdW5kZWQtZmlsbDwvdGl0bGU+CiAgPHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjE3LS4wNzhhNTAsNTAsMCwxLDAsNTAsNTBBNTAuMDU2NCw1MC4wNTY0LDAsMCwwLDQ5LjkyMTctLjA3OFoiLz4KICA8cGF0aCBjbGFzcz0iYiIgZD0iTTM1Ljk0MiwzNS4yMzIzYzAtNC43Mjg5LDMuMzUwNi02LjY2MzcsNy40NDYtNC4yOTcxTDY4LjgzLDQ1LjYyMzVjNC4wOTU2LDIuMzY0LDQuMDk1Niw2LjIzMTksMCw4LjU5NzdMNDMuMzg4LDY4LjkxYy00LjA5NTQsMi4zNjQtNy40NDYuNDMtNy40NDYtNC4yOTc5WiIgZmlsdGVyPSJ1cmwoI2YxKSIvPgogIDwvc3ZnPgogIAo=","base64"),d=n("PHN2ZyBjbGFzcz0iZnAtcGxheS1zaGFycC1maWxsIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8ZGVmcz4KICAgIDxzdHlsZT4uZnAtY29sb3ItcGxheXtvcGFjaXR5OjAuNjU7fS5jb250cm9sYnV0dG9ue2ZpbGw6I2ZmZjt9PC9zdHlsZT4KICA8L2RlZnM+CiAgPHRpdGxlPnBsYXktc2hhcnAtZmlsbDwvdGl0bGU+CiAgPHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjE3LS4wNzhhNTAsNTAsMCwxLDAsNTAsNTBBNTAuMDU2NCw1MC4wNTY0LDAsMCwwLDQ5LjkyMTctLjA3OFoiLz4KICA8cG9seWdvbiBjbGFzcz0iY29udHJvbGJ1dHRvbiIgcG9pbnRzPSI3My42MDEgNTAgMzcuOTY4IDcwLjU3MyAzNy45NjggMjkuNDI3IDczLjYwMSA1MCIgZmlsdGVyPSJ1cmwoI2YxKSIvPgo8L3N2Zz4K","base64"),p=n("PHN2ZyBjbGFzcz0iZnAtcGxheS1zaGFycC1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OS44NDQgOTkuODQzNCI+PGRlZnM+PHN0eWxlPi5jb250cm9sYnV0dG9uYmd7b3BhY2l0eTowLjY1O30uY29udHJvbGJ1dHRvbntmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGxheS1zaGFycC1vdXRsaW5lPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxwYXRoIGNsYXNzPSJjb250cm9sYnV0dG9uIiBkPSJNMzYuOTQ0Myw3Mi4yNDczVjI3LjI5MTZMNzUuODc3Niw0OS43N1ptMi4yLTQxLjE0NTVWNjguNDM3MUw3MS40Nzc2LDQ5Ljc3WiIgZmlsdGVyPSJ1cmwoI2YxKSIvPjwvc3ZnPgo=","base64"),h=n("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utcm91bmRlZC1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OS44NDM0IDk5Ljg0MzQiPjxkZWZzPjxzdHlsZT4uZnAtY29sb3ItcGxheXtvcGFjaXR5OjAuNjU7fS5yZWN0e2ZpbGw6I2ZmZjt9PC9zdHlsZT4KPC9kZWZzPjx0aXRsZT5wYXVzZS1yb3VuZGVkLW91dGxpbmU8L3RpdGxlPjxwYXRoIGNsYXNzPSJmcC1jb2xvci1wbGF5IiBkPSJNNDkuOTIxMi0uMDc4M2E1MCw1MCwwLDEsMCw1MC4wMDA2LDUwQTUwLjA1NjIsNTAuMDU2MiwwLDAsMCw0OS45MjEyLS4wNzgzWiIvPjxnIGNsYXNzPSJjb250cm9sYnV0dG9uIj48cGF0aCBjbGFzcz0icmVjdCIgZD0iTTM5LjAwMzYsNzEuOTcyNmE3LjU2NSw3LjU2NSwwLDAsMS03LjU1Ny03LjU1NnYtMjguOTlhNy41NTY1LDcuNTU2NSwwLDAsMSwxNS4xMTMsMHYyOC45OUE3LjU2NDgsNy41NjQ4LDAsMCwxLDM5LjAwMzYsNzEuOTcyNlptMC00MS45MDRhNS4zNjQ3LDUuMzY0NywwLDAsMC01LjM1OTMsNS4zNTgydjI4Ljk5YTUuMzU4Nyw1LjM1ODcsMCwwLDAsMTAuNzE3NCwwdi0yOC45OUE1LjM2NDUsNS4zNjQ1LDAsMCwwLDM5LjAwMzYsMzAuMDY4NloiIGZpbHRlcj0idXJsKCNmMSkiLz48cGF0aCBjbGFzcz0icmVjdCIgZD0iTTYwLjg0LDcxLjk3MjZhNy41NjQ4LDcuNTY0OCwwLDAsMS03LjU1Ni03LjU1NnYtMjguOTlhNy41NTY1LDcuNTU2NSwwLDAsMSwxNS4xMTMsMHYyOC45OUE3LjU2NSw3LjU2NSwwLDAsMSw2MC44NCw3MS45NzI2Wm0wLTQxLjkwNGE1LjM2NDUsNS4zNjQ1LDAsMCwwLTUuMzU4Miw1LjM1ODJ2MjguOTlhNS4zNTg3LDUuMzU4NywwLDAsMCwxMC43MTc0LDB2LTI4Ljk5QTUuMzY0Nyw1LjM2NDcsMCwwLDAsNjAuODQsMzAuMDY4NloiIGZpbHRlcj0idXJsKCNmMSkiLz48L2c+PC9zdmc+Cg==","base64"),g=n("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utcm91bmRlZC1maWxsIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30ucmVjdHtmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGF1c2Utcm91bmRlZC1maWxsPC90aXRsZT48cGF0aCBjbGFzcz0iZnAtY29sb3ItcGxheSIgZD0iTTQ5LjkyMTctLjA3OGE1MCw1MCwwLDEsMCw1MCw1MEE1MC4wNTY0LDUwLjA1NjQsMCwwLDAsNDkuOTIxNy0uMDc4WiIvPjxnIGNsYXNzPSJjb250cm9sYnV0dG9uIiBmaWx0ZXI9InVybCgjZjEpIj48cmVjdCBjbGFzcz0icmVjdCIgeD0iMzEuODQ0IiB5PSIyOC4xMjMxIiB3aWR0aD0iMTMuNDM2MiIgaGVpZ2h0PSI0My41OTczIiByeD0iNi43MTgxIiByeT0iNi43MTgxIi8+PHJlY3QgY2xhc3M9InJlY3QiIHg9IjU0LjU2MzgiIHk9IjI4LjEyMzEiIHdpZHRoPSIxMy40MzYyIiBoZWlnaHQ9IjQzLjU5NzMiIHJ4PSI2LjcxODEiIHJ5PSI2LjcxODEiLz48L2c+PC9zdmc+Cg==","base64"),m=n("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utc2hhcnAtZmlsbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PGRlZnM+PHN0eWxlPi5mcC1jb2xvci1wbGF5e29wYWNpdHk6MC42NTt9LnJlY3R7ZmlsbDojZmZmO308L3N0eWxlPgo8L2RlZnM+PHRpdGxlPnBhdXNlLXNoYXJwLWZpbGw8L3RpdGxlPjxwYXRoIGNsYXNzPSJmcC1jb2xvci1wbGF5IiBkPSJNNDkuOTIxNy0uMDc4YTUwLDUwLDAsMSwwLDUwLDUwQTUwLjA1NjQsNTAuMDU2NCwwLDAsMCw0OS45MjE3LS4wNzhaIi8+PGcgY2xhc3M9ImNvbnRyb2xidXR0b24iIGZpbHRlcj0idXJsKCNmMSkiPjxyZWN0IGNsYXNzPSJyZWN0IiB4PSIzMy41IiB5PSIzMC4xMDQyIiB3aWR0aD0iMTIuMjYzNCIgaGVpZ2h0PSIzOS43OTE3Ii8+PHJlY3QgY2xhc3M9InJlY3QiIHg9IjU0LjIzNjYiIHk9IjMwLjEwNDIiIHdpZHRoPSIxMi4yNjM0IiBoZWlnaHQ9IjM5Ljc5MTciLz48L2c+PC9zdmc+Cg==","base64"),v=n("PHN2ZyBjbGFzcz0iZnAtcGF1c2Utc2hhcnAtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOTkuODQzNCA5OS44NDM0Ij48ZGVmcz48c3R5bGU+LmZwLWNvbG9yLXBsYXl7b3BhY2l0eTowLjY1O30ucmVjdHtmaWxsOiNmZmY7fTwvc3R5bGU+CjwvZGVmcz48dGl0bGU+cGF1c2Utc2hhcnAtb3V0bGluZTwvdGl0bGU+PHBhdGggY2xhc3M9ImZwLWNvbG9yLXBsYXkiIGQ9Ik00OS45MjEyLS4wNzgzYTUwLDUwLDAsMSwwLDUwLjAwMDYsNTBBNTAuMDU2Miw1MC4wNTYyLDAsMCwwLDQ5LjkyMTItLjA3ODNaIi8+PGcgY2xhc3M9ImNvbnRyb2xidXR0b24iIGZpbHRlcj0idXJsKCNmMSkiPjxwYXRoIGNsYXNzPSJyZWN0IiBkPSJNNDYuODcwOSw2OS45NTMxSDMzLjEzODVWMjkuODlINDYuODcwOVpNMzUuMTQxNiw2Ny45NWg5LjcyNjJWMzEuODkzNUgzNS4xNDE2WiIvPjxwYXRoIGNsYXNzPSJyZWN0IiBkPSJNNjYuNzA0Nyw2OS45NTMxSDUyLjk3MjJWMjkuODlINjYuNzA0N1pNNTQuOTc1NCw2Ny45NWg5LjcyNjJWMzEuODkzNUg1NC45NzU0WiIvPjwvZz48L3N2Zz4K","base64"),y=n("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1yb3VuZGVkLW91dGxpbmUiIHdpZHRoPScxMTJweCcgaGVpZ2h0PScxMTJweCcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijc2IiBoZWlnaHQ9Ijc2IiBmaWxsPSJyZ2JhKDAsMCwwLDApIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgMjUpIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuMHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC4wcyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMCIgY3k9IjAiIHI9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCAyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZSIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjRzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDUwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDAsMCwwLC41KSIgc3Ryb2tlLXdpZHRoPSIzJSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgNTApIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjEuMnMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMS4ycyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgo8L3N2Zz4K","base64"),w=n("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1yb3VuZGVkLWZpbGwiIHdpZHRoPScxMTJweCcgaGVpZ2h0PScxMTJweCcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijc2IiBoZWlnaHQ9Ijc2IiBmaWxsPSJyZ2JhKDAsMCwwLDApIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgMjUpIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC4wcyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjBzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDI1KSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuNHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC40cyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMCIgY3k9IjAiIHI9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCA1MCkiIGZpbGw9InJnYmEoMCwwLDAsLjUpIiBjbGFzcz0ic3EiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUgNTApIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMS4ycyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIxLjJzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogICAgPC9jaXJjbGU+Cjwvc3ZnPgo=","base64"),b=n("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1zaGFycC1maWxsIiB3aWR0aD0nMTEycHgnIGhlaWdodD0nMTEycHgnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNzYiIGhlaWdodD0iNzYiIGZpbGw9InJnYmEoMCwwLDAsMCkiIGNsYXNzPSJiayI+PC9yZWN0PgogIDxyZWN0IHg9Ii0xMCIgeT0iLTEwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1IDI1KSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjBzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjBzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMTAiIHk9Ii0xMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCAyNSkiIGZpbGw9InJnYmEoMCwwLDAsLjUpIiBjbGFzcz0ic3EiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC40cyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iLTEwIiB5PSItMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAgNTApIiBmaWxsPSJyZ2JhKDAsMCwwLC41KSIgY2xhc3M9InNxIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuOHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgogIDxyZWN0IHg9Ii0xMCIgeT0iLTEwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1IDUwKSIgZmlsbD0icmdiYSgwLDAsMCwuNSkiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIxLjJzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIxLjJzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KPC9zdmc+Cg==","base64"),I=n("PHN2ZyBjbGFzcz0iZnAtbG9hZGluZy1zaGFycC1vdXRsaW5lIiB3aWR0aD0nMTEycHgnIGhlaWdodD0nMTEycHgnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNzYiIGhlaWdodD0iNzYiIGZpbGw9InJnYmEoMCwwLDAsMCkiIGNsYXNzPSJiayI+PC9yZWN0PgogIDxyZWN0IHg9Ii05IiB5PSItOSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNSAyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjAuMHMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMC4wcyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iLTkiIHk9Ii05IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwIDI1KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZ2JhKDAsMCwwLC41KSIgc3Ryb2tlLXdpZHRoPSIzJSIgY2xhc3M9InNxIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZSIgZnJvbT0icmdiYSgwLDAsMCwwKSIgdG89InJnYmEoMCwwLDAsLjUpIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjZzIiBiZWdpbj0iMC40cyIgdmFsdWVzPSJyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwuNSkiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZT4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgYWRkaXRpdmU9InN1bSIgZnJvbT0iMC44IiB0bz0iMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGJlZ2luPSIwLjRzIiBkdXI9IjEuNnMiIHZhbHVlcz0iMTswLjg7MC44OzE7MSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlVHJhbnNmb3JtPgogIDwvcmVjdD4KICA8cmVjdCB4PSItOSIgeT0iLTkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAgNTApIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMCwwLDAsLjUpIiBzdHJva2Utd2lkdGg9IjMlIiBjbGFzcz0ic3EiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlIiBmcm9tPSJyZ2JhKDAsMCwwLDApIiB0bz0icmdiYSgwLDAsMCwuNSkiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNnMiIGJlZ2luPSIwLjhzIiB2YWx1ZXM9InJnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsMCk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLC41KTtyZ2JhKDAsMCwwLC41KSIga2V5VGltZXM9IjA7MC4xOzAuMjswLjQ7MSI+PC9hbmltYXRlPgogICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBhZGRpdGl2ZT0ic3VtIiBmcm9tPSIwLjgiIHRvPSIxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjAuOHMiIGR1cj0iMS42cyIgdmFsdWVzPSIxOzAuODswLjg7MTsxIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgogIDxyZWN0IHg9Ii05IiB5PSItOSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNSA1MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgwLDAsMCwuNSkiIHN0cm9rZS13aWR0aD0iMyUiIGNsYXNzPSJzcSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2UiIGZyb209InJnYmEoMCwwLDAsMCkiIHRvPSJyZ2JhKDAsMCwwLC41KSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS42cyIgYmVnaW49IjEuMnMiIHZhbHVlcz0icmdiYSgwLDAsMCwuNSk7cmdiYSgwLDAsMCwwKTtyZ2JhKDAsMCwwLDApO3JnYmEoMCwwLDAsLjUpO3JnYmEoMCwwLDAsLjUpIiBrZXlUaW1lcz0iMDswLjE7MC4yOzAuNDsxIj48L2FuaW1hdGU+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGFkZGl0aXZlPSJzdW0iIGZyb209IjAuOCIgdG89IjEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBiZWdpbj0iMS4ycyIgZHVyPSIxLjZzIiB2YWx1ZXM9IjE7MC44OzAuODsxOzEiIGtleVRpbWVzPSIwOzAuMTswLjI7MC40OzEiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+Cjwvc3ZnPgo=","base64");
|
8 |
+
o(function(e,t){function i(e){return a.find(".fp-"+e,t)[0]}function C(e){a.css(Z,"padding-top",100*e+"%"),N.inlineBlock||a.height(a.find("object",t)[0],a.height(t))}function M(e){e?(a.addClass(t,"is-mouseover"),a.removeClass(t,"is-mouseout")):(a.addClass(t,"is-mouseout"),a.removeClass(t,"is-mouseover"))}a.find(".fp-filters").forEach(a.removeNode);try{var A;document.body.appendChild(A=a.createElement("div",{},n("PHN2ZyBjbGFzcz0iZnAtZmlsdGVycyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMCAwIj4KICA8ZGVmcz4KICAgIDxmaWx0ZXIgaWQ9ImYxIiB4PSItMjAlIiB5PSItMjAlIiB3aWR0aD0iMjAwJSIgaGVpZ2h0PSIyMDAlIj4KICAgICAgPGZlT2Zmc2V0IHJlc3VsdD0ib2ZmT3V0IiBpbj0iU291cmNlQWxwaGEiIGR4PSIwIiBkeT0iMCIgLz4KICAgICAgPGZlQ29sb3JNYXRyaXggcmVzdWx0PSJtYXRyaXhPdXQiIGluPSJvZmZPdXQiIHR5cGU9Im1hdHJpeCIKICAgICAgdmFsdWVzPSIwLjMgMCAwIDAgMCAwIDAuMyAwIDAgMCAwIDAgMC4zIDAgMCAwIDAgMCAwLjQgMCIgLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iYmx1ck91dCIgaW49Im1hdHJpeE91dCIgc3RkRGV2aWF0aW9uPSI0IiAvPgogICAgICA8ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJibHVyT3V0IiBtb2RlPSJub3JtYWwiIC8+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+Cjwvc3ZnPgo=","base64"))),a.css(A,{width:0,height:0,overflow:"hidden",position:"absolute",margin:0,padding:0})}catch(S){}var D,E=e.conf,N=o.support;a.find(".fp-ratio,.fp-ui",t).forEach(a.removeNode),a.addClass(t,"flowplayer"),t.appendChild(a.createElement("div",{className:"fp-ratio"}));var j=a.createElement("div",{className:"fp-ui"},' <div class="fp-waiting"> {{ LOADING_SHARP_OUTLINE }} {{ LOADING_SHARP_FILL }} {{ LOADING_ROUNDED_FILL }} {{ LOADING_ROUNDED_OUTLINE }} </div> <div class="fp-header"> <a class="fp-share fp-icon"></a> <a class="fp-fullscreen fp-icon"></a> <a class="fp-unload fp-icon"></a> </div> <p class="fp-speed-flash"></p> <div class="fp-play fp-visible"> <a class="fp-icon fp-playbtn"></a> {{ PLAY_ROUNDED_FILL }} {{ PLAY_ROUNDED_OUTLINE }} {{ PLAY_SHARP_FILL }} {{ PLAY_SHARP_OUTLINE }} </div> <div class="fp-pause"> <a class="fp-icon fp-playbtn"></a> {{ PAUSE_SHARP_OUTLINE }} {{ PAUSE_SHARP_FILL }} {{ PAUSE_ROUNDED_OUTLINE }} {{ PAUSE_ROUNDED_FILL }} </div> <div class="fp-controls"> <a class="fp-icon fp-playbtn"></a> <span class="fp-elapsed">00:00</span> <div class="fp-timeline fp-bar"> <div class="fp-buffer"></div> <span class="fp-timestamp"></span> <div class="fp-progress fp-color"></div> </div> <span class="fp-duration"></span> <span class="fp-remaining"></span> <div class="fp-volume"> <a class="fp-icon fp-volumebtn"></a> <div class="fp-volumebar fp-bar-slider"> <em></em><em></em><em></em><em></em><em></em><em></em><em></em> </div> </div> <strong class="fp-speed fp-hidden"></strong> </div>'.replace("{{ PAUSE_ROUNDED_FILL }}",g).replace("{{ PAUSE_ROUNDED_OUTLINE }}",h).replace("{{ PAUSE_SHARP_FILL }}",m).replace("{{ PAUSE_SHARP_OUTLINE }}",v).replace("{{ PLAY_SHARP_OUTLINE }}",p).replace("{{ PLAY_SHARP_FILL }}",d).replace("{{ PLAY_ROUNDED_OUTLINE }}",c).replace("{{ PLAY_ROUNDED_FILL }}",f).replace("{{ LOADING_ROUNDED_OUTLINE }}",y).replace("{{ LOADING_ROUNDED_FILL }}",w).replace("{{ LOADING_SHARP_FILL }}",b).replace("{{ LOADING_SHARP_OUTLINE }}",I).replace(/url\(#/g,"url("+window.location.href.replace(window.location.hash,"").replace(/\#$/g,"")+"#"));t.appendChild(j);var L=i("buffer"),x=i("waiting"),T=i("elapsed"),Z=i("ratio"),P=i("speed-flash"),Y=i("duration"),k=i("remaining"),z=i("timestamp"),G=a.css(Z,"padding-top"),O=i("play"),R=i("pause"),W=i("timeline"),U=l(W,e.rtl),J=i("fullscreen"),B=i("volumebar"),V=u(B,{rtl:e.rtl}),H=a.hasClass(t,"no-toggle");U.disableAnimation(a.hasClass(t,"is-touch")),e.sliders=e.sliders||{},e.sliders.timeline=U,e.sliders.volume=V;var F=[];N.svg||a.html(x,"<p>loading …</p>"),E.ratio&&C(E.ratio);try{E.fullscreen||a.removeNode(J)}catch(S){a.removeNode(J)}e.on("dvrwindow",function(){U.disable(!1)}),e.on("ready",function(e,n,i){var o=n.video.duration;U.disable(n.disabled||!o),E.adaptiveRatio&&!isNaN(i.height/i.width)&&C(i.height/i.width,!0),a.html([Y,k],n.live?"Live":r(o)),a.toggleClass(t,"is-long",o>=3600),V.slide(n.volumeLevel),"flash"===n.engine.engineName?U.disableAnimation(!0,!0):U.disableAnimation(!1),a.find(".fp-title",j).forEach(a.removeNode),i.title&&a.prepend(j,a.createElement("div",{className:"fp-message fp-title"},i.title)),a.toggleClass(t,"has-title",!!i.title)}).on("unload",function(){G||E.splash||a.css(Z,"paddingTop",""),U.slide(0),a.addClass(O,"fp-visible")}).on("buffer",function(){var t=e.video,n=t.buffer/t.duration;!t.seekable&&N.seekable&&U.max(e.conf.live?1/0:n),1>n?a.css(L,"width",100*n+"%"):a.css(L,"width","100%")}).on("speed",function(e,t,n){t.video.time&&(a.text(P,n+"x"),a.addClass(P,"fp-shown"),F=F.filter(function(e){return clearTimeout(e),!1}),F.push(setTimeout(function(){a.addClass(P,"fp-hilite"),F.push(setTimeout(function(){a.removeClass(P,"fp-hilite"),F.push(setTimeout(function(){a.removeClass(P,"fp-shown")},300))},1e3))})))}).on("buffered",function(){a.css(L,"width","100%"),U.max(1)}).on("progress seek",function(n,i,o){var s=e.video.duration,l=e.video.seekOffset||0;o=o||e.video.time;var u=(o-l)/(s-l);U.dragging||U.slide(u,e.seeking?0:250),a.toggleClass(t,"is-live-position",s-o<E.livePositionOffset),a.html(T,r(o)),a.html(k,r(s-o,!0))}).on("finish resume seek",function(e){a.toggleClass(t,"is-finished","finish"==e.type)}).on("resume",function(){a.addClass(O,"fp-visible"),setTimeout(function(){a.removeClass(O,"fp-visible")},300)}).on("pause",function(){a.addClass(R,"fp-visible"),setTimeout(function(){a.removeClass(R,"fp-visible")},300)}).on("stop",function(){a.html(T,r(0)),U.slide(0,100)}).on("finish",function(){a.html(T,r(e.video.duration)),U.slide(1,100),a.removeClass(t,"is-seeking")}).on("beforeseek",function(){}).on("volume",function(){V.slide(e.volumeLevel)}).on("disable",function(){var n=e.disabled;U.disable(n),V.disable(n),a.toggleClass(t,"is-disabled",e.disabled)}).on("mute",function(e,n,i){a.toggleClass(t,"is-muted",i)}).on("error",function(e,n,i){if(a.removeClass(t,"is-loading"),a.removeClass(t,"is-seeking"),a.addClass(t,"is-error"),i){i.message=E.errors[i.code],n.error=!0;var r=n.message((n.engine&&n.engine.engineName||"html5")+": "+i.message);a.removeClass(t,"is-mouseover"),n.one("load progress",function(){r()})}}),s.on(t,"mouseenter mouseleave",function(n){if(!H){var i,r="mouseover"==n.type;if(M(r),r){var o=function(){M(!0),i=new Date};e.on("pause.x volume.x",o),s.on(t,"mousemove.x",o),D=setInterval(function(){new Date-i>E.mouseoutTimeout&&(M(!1),i=new Date)},100)}else s.off(t,"mousemove.x"),e.off("pause.x volume.x"),clearInterval(D)}}),s.on(t,"mouseleave",function(){(U.dragging||V.dragging)&&(a.addClass(t,"is-mouseover"),a.removeClass(t,"is-mouseout"))}),s.on(t,"click.player",function(t){return e.disabled?void 0:a.hasClass(t.target,"fp-ui")||a.hasClass(t.target,"fp-engine")||t.flash||a.hasParent(t.target,".fp-play,.fp-pause")?(t.preventDefault&&t.preventDefault(),e.toggle()):void 0}),s.on(t,"mousemove",".fp-timeline",function(t){var n=t.pageX||t.clientX,i=n-a.offset(W).left,o=i/a.width(W),s=(e.rtl?1-o:o)*e.video.duration;if(!(0>o)){a.html(z,r(s));var l=i-a.width(z)/2;0>l&&(l=0),l>a.width(W)-a.width(z)&&(l=!1),l!==!1?a.css(z,{left:l+"px",right:"auto"}):a.css(z,{left:"auto",right:"0px"})}}),s.on(t,"contextmenu",function(n){var i=window;if(!a.hasClass(t,"is-flash-disabled")){var r=a.find(".fp-context-menu",t)[0];r&&(n.preventDefault(),e.showMenu(r,{left:n.clientX-i.scrollX,top:n.clientY-i.scrollY}),s.on(t,"click",".fp-context-menu",function(e){e.stopPropagation()}))}}),e.on("flashdisabled",function(n,i,r){a.addClass(t,"is-flash-disabled");var o;r!==!1&&(o=e.message("Seems something is blocking Adobe Flash from running")),e.one("ready progress",function(){a.removeClass(t,"is-flash-disabled"),o&&o()})}),E.poster&&a.css(t,"background-image","url("+E.poster+")");var X=a.css(t,"background-color"),_="none"!=a.css(t,"background-image")||X&&"rgba(0, 0, 0, 0)"!=X&&"transparent"!=X;if(_&&!E.splash){E.poster||(E.poster=!0);var K=function(){a.addClass(t,"is-poster"),a.addClass(O,"fp-visible"),e.poster=!0,e.one(E.autoplay?"progress seek":"resume seek",function(){a.removeClass(t,"is-poster"),a.removeClass(O,"fp-visible"),e.poster=!1})};e.on("stop",function(){K()}),e.on("ready",function(e,t,n){n.index||n.autoplay||K()})}"string"==typeof E.splash&&a.css(t,"background-image","url('"+E.splash+"')"),!_&&e.forcedSplash&&a.css(t,"background-color","#555"),s.on(t,"click",".fp-toggle, .fp-play, .fp-playbtn",function(){e.disabled||e.toggle()}),s.on(t,"click",".fp-volumebtn",function(){e.mute()}),s.on(t,"click",".fp-fullscreen",function(){e.fullscreen()}),s.on(t,"click",".fp-unload",function(){e.unload()}),s.on(W,"slide",function(t){e.seeking=!0,e.seekTo(10*t)}),s.on(B,"slide",function(t){e.volume(t)}),s.on(t,"click",".fp-duration,.fp-remaining",function(){return e.dvr?e.seekTo(10):void a.toggleClass(t,"is-inverted")}),M(H),e.on("shutdown",function(){s.off(W),s.off(B)})}),t.exports.format=r}).call(this,e("buffer").Buffer)},{"../common":1,"../flowplayer":28,"./ui/bar-slider":25,"./ui/slider":26,bean:31,buffer:32}],25:[function(e,t,n){function i(e,t){function n(t){var n=t.pageX||t.clientX,i=o.offset(e),r=o.width(e);!n&&t.originalEvent&&t.originalEvent.touches&&t.originalEvent.touches.length&&(n=t.originalEvent.touches[0].pageX);var a=n-i.left;a=Math.max(0,Math.min(r,a));var s=a/r;return l&&(s=1-s),s}t=t||{};var i=t.activeClass||"fp-color",a=t.inactiveClass||"fp-grey",s=t.childSelector||"em",l=!!t.rtl,u=!1,c=o.find(s,e).length,f={unload:function(){r.off(e,".barslider")},slide:function(t,n){o.find(s,e).forEach(function(e,n){var r=t>n/c;o.toggleClass(e,i,r),o.toggleClass(e,a,!r)}),n&&r.fire(e,"slide",[t])},disable:function(e){u=e}};return r.on(e,"mousedown.sld touchstart.sld",function(t){t.preventDefault(),u||(f.slide(n(t),!0),r.on(e,"mousemove.sld touchmove.sld",function(e){e.preventDefault(),f.slide(n(e),!0)}),r.one(document,"mouseup.sld touchup.sld",function(){r.off(e,"mousemove.sld touchmove.sld")}))}),f}var r=e("bean"),o=e("../../common");t.exports=i},{"../../common":1,bean:31}],26:[function(e,t,n){"use strict";var i=e("bean"),r=e("../../common"),o=function(e,t){var n;return function(){n||(e.apply(this,arguments),n=1,setTimeout(function(){n=0},t))}},a=function(e,t){var n,a,s,l,u,c,f,d,p=r.lastChild(e),h=!1,g=function(){a=r.offset(e),s=r.width(e),l=r.height(e),c=u?l:s,d=w(f)},m=function(t){n||t==b.value||f&&!(f>t)||(i.fire(e,"slide",[t]),b.value=t)},v=function(e){var n=e.pageX||e.clientX;!n&&e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length&&(n=e.originalEvent.touches[0].pageX);var i=u?e.pageY-a.top:n-a.left;i=Math.max(0,Math.min(d||c,i));var r=i/c;return u&&(r=1-r),t&&(r=1-r),y(r,0,!0)},y=function(e,t){void 0===t&&(t=0),e>1&&(e=1);var n=Math.round(1e3*e)/10+"%";return(!f||f>=e)&&(h?r.removeClass(p,"animated"):(r.addClass(p,"animated"),r.css(p,"transition-duration",(t||0)+"ms")),r.css(p,"width",n)),e},w=function(e){return Math.max(0,Math.min(c,u?(1-e)*l:e*s))},b={max:function(e){f=e},disable:function(e){n=e},slide:function(e,t,n){g(),n&&m(e),y(e,t)},disableAnimation:function(t,n){h=t!==!1,r.toggleClass(e,"no-animation",!!n)}};return g(),i.on(e,"mousedown.sld touchstart",function(t){if(t.preventDefault(),!n){var a=o(m,100);g(),b.dragging=!0,r.addClass(e,"is-dragging"),m(v(t)),i.on(document,"mousemove.sld touchmove.sld",function(e){e.preventDefault(),a(v(e))}),i.one(document,"mouseup touchend",function(){b.dragging=!1,r.removeClass(e,"is-dragging"),i.off(document,"mousemove.sld touchmove.sld")})}}),b};t.exports=a},{"../../common":1,bean:31}],27:[function(e,t,n){function i(e){var t=document.createElement("textarea");t.value=e,t.style.opacity=0,t.style.position="absolute",document.body.appendChild(t),t.select();var n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("Unsuccessfull")}t.exports=function(e,t,n){try{i(e),t()}catch(r){n(r)}}},{}],28:[function(e,t,n){"use strict";function i(e,t,n){t&&t.embed&&(t.embed=r({},w.defaults.embed,t.embed));var i,s,l=e,p=r({},w.defaults,w.conf,t),g={},m=new I;u.addClass(l,"is-loading"),u.toggleClass(l,"no-flex",!w.support.flex),u.toggleClass(l,"no-svg",!w.support.svg);try{g=h?window.localStorage:g}catch(v){}if(p.aspectRatio&&"string"==typeof p.aspectRatio){var y=p.aspectRatio.split(/[:\/]/);p.ratio=y[1]/y[0]}var C=l.currentStyle&&"rtl"===l.currentStyle.direction||window.getComputedStyle&&null!==window.getComputedStyle(l,null)&&"rtl"===window.getComputedStyle(l,null).getPropertyValue("direction");C&&u.addClass(l,"is-rtl");var M={conf:p,currentSpeed:1,volumeLevel:p.muted?0:"undefined"==typeof p.volume?1*g.volume:p.volume,video:{},disabled:!1,finished:!1,loading:!1,muted:"true"==g.muted||p.muted,paused:!1,playing:!1,ready:!1,splash:!1,rtl:C,hijack:function(e){try{M.engine.suspendEngine()}catch(t){}M.hijacked=e},release:function(){try{M.engine.resumeEngine()}catch(e){}M.hijacked=!1},load:function(e,t){if(!M.error&&!M.loading){M.video={},M.finished=!1,e=e||p.clip,e=r({},m.resolve(e,p.clip.sources)),(M.playing||M.engine)&&(e.autoplay=!0);var n=A(e);if(!n)return setTimeout(function(){M.trigger("error",[M,{code:w.support.flashVideo?5:10}])})&&M;if(!n.engineName)throw new Error("engineName property of factory should be exposed");if(M.engine&&n.engineName===M.engine.engineName||(M.ready=!1,M.engine&&(M.engine.unload(),M.conf.autoplay=!0),s=M.engine=n(M,l),M.one("ready",function(){setTimeout(function(){M.muted?M.mute(!0,!0):s.volume(M.volumeLevel)})})),r(e,s.pick(e.sources.filter(function(e){return e.engine?e.engine===s.engineName:!0}))),e.src){var i=M.trigger("load",[M,e,s],!0);i.defaultPrevented?M.loading=!1:(s.load(e),o(e)&&(t=e),t&&M.one("ready",t))}return M}},pause:function(e){return M.hijacked?M.hijacked.pause(e)|M:(!M.ready||M.seeking||M.loading||(s.pause(),M.one("pause",e)),M)},resume:function(){var e=M.trigger("beforeresume",[M],!0);if(!e.defaultPrevented)return M.hijacked?M.hijacked.resume()|M:(M.ready&&M.paused&&(s.resume(),M.finished&&(M.trigger("resume",[M]),M.finished=!1)),M)},toggle:function(){return M.ready?M.paused?M.resume():M.pause():M.load()},seek:function(e,t){if("boolean"==typeof e){var n=.1*M.video.duration;e=M.video.time+(e?n:-n),e=Math.min(Math.max(e,0),M.video.duration-.1)}if(M.hijacked)return M.hijacked.seek(e,t)|M;if(M.ready){i=e;var r=M.trigger("beforeseek",[M,e],!0);r.defaultPrevented?(M.seeking=!1,u.toggleClass(l,"is-seeking",M.seeking)):(s.seek(e),o(t)&&M.one("seek",t))}return M},seekTo:function(e,t){return void 0===e?M.seek(i,t):void 0!==M.video.seekOffset?M.seek(M.video.seekOffset+.1*(M.video.duration-M.video.seekOffset)*e,t):M.seek(.1*M.video.duration*e,t)},mute:function(e,t){return void 0===e&&(e=!M.muted),t||(g.muted=M.muted=e,g.volume=isNaN(g.volume)?p.volume:g.volume),M.volume(e?0:g.volume,!0),M.trigger("mute",[M,e]),M},volume:function(e,t){return M.ready&&(e=Math.min(Math.max(e,0),1),t||(g.volume=e),s.volume(e)),M},speed:function(e,t){return M.ready&&("boolean"==typeof e&&(e=p.speeds[p.speeds.indexOf(M.currentSpeed)+(e?1:-1)]||M.currentSpeed),s.speed(e),t&&l.one("speed",t)),M},stop:function(){return M.ready&&(M.pause(),M.seek(0,function(){M.trigger("stop",[M])})),M},unload:function(){return p.splash?(M.trigger("unload",[M]),s&&(s.unload(),M.engine=s=0)):M.stop(),M},shutdown:function(){M.unload(),M.trigger("shutdown",[M]),a.off(l),delete f[l.getAttribute("data-flowplayer-instance-id")],l.removeAttribute("data-flowplayer-instance-id")},disable:function(e){return void 0===e&&(e=!M.disabled),e!=M.disabled&&(M.disabled=e,M.trigger("disable",e)),M},registerExtension:function(e,t){e=e||[],t=t||[],"string"==typeof e&&(e=[e]),"string"==typeof t&&(t=[t]),e.forEach(function(e){M.extensions.js.push(e)}),t.forEach(function(e){M.extensions.css.push(e)})}};M.conf=r(M.conf,p),M.extensions={js:[],css:[]},w.extensions.forEach(function(e){M.registerExtension(e[0],e[1])}),c(M);var A=function(e){var t,n=w.engines;if(p.engine){var i=n.filter(function(e){return e.engineName===p.engine})[0];if(i&&e.sources.some(function(e){return e.engine&&e.engine!==i.engineName?!1:i.canPlay(e.type,M.conf)}))return i}return p.enginePreference&&(n=w.engines.filter(function(e){return p.enginePreference.indexOf(e.engineName)>-1}).sort(function(e,t){return p.enginePreference.indexOf(e.engineName)-p.enginePreference.indexOf(t.engineName)})),e.sources.some(function(e){var i=n.filter(function(t){return e.engine&&e.engine!==t.engineName?!1:t.canPlay(e.type,M.conf)}).shift();return i&&(t=i),!!i}),t};return l.getAttribute("data-flowplayer-instance-id")||(l.setAttribute("data-flowplayer-instance-id",b++),M.on("boot",function(){(p.splash||u.hasClass(l,"is-splash")||!w.support.firstframe)&&(M.forcedSplash=!p.splash&&!u.hasClass(l,"is-splash"),M.splash=p.autoplay=!0,p.splash||(p.splash=!0),u.addClass(l,"is-splash")),p.splash&&u.find("video",l).forEach(u.removeNode),(p.dvr||p.live||u.hasClass(l,"is-live"))&&(M.live=p.live=!0,M.dvr=p.dvr=!!p.dvr||u.hasClass(l,"is-dvr"),u.addClass(l,"is-live"),u.toggleClass(l,"is-dvr",M.dvr)),d.forEach(function(e){e(M,l)}),f.push(M),p.splash?M.unload():M.load(),p.disabled&&M.disable(),M.one("ready",n)}).on("load",function(e,t,n){p.splash&&u.find(".flowplayer.is-ready,.flowplayer.is-loading").forEach(function(e){var t=e.getAttribute("data-flowplayer-instance-id");if(t!==l.getAttribute("data-flowplayer-instance-id")){var n=f[Number(t)];n&&n.conf.splash&&n.unload()}}),u.addClass(l,"is-loading"),t.loading=!0,("undefined"!=typeof n.live||"undefined"!=typeof n.dvr)&&(u.toggleClass(l,"is-live",n.dvr||n.live),u.toggleClass(l,"is-dvr",!!n.dvr),t.live=n.dvr||n.live,t.dvr=!!n.dvr)}).on("ready",function(e,t,n){n.time=0,t.video=n,u.removeClass(l,"is-loading"),t.loading=!1,t.muted?t.mute(!0,!0):t.volume(t.volumeLevel);var i=t.conf.hlsFix&&/mpegurl/i.exec(n.type);u.toggleClass(l,"hls-fix",!!i)}).on("unload",function(){u.removeClass(l,"is-loading"),M.loading=!1}).on("ready unload",function(e){var t="ready"==e.type;u.toggleClass(l,"is-splash",!t),u.toggleClass(l,"is-ready",t),M.ready=t,M.splash=!t}).on("progress",function(e,t,n){t.video.time=n}).on("buffer",function(e,t,n){t.video.buffer=n}).on("speed",function(e,t,n){t.currentSpeed=n}).on("volume",function(e,t,n){t.volumeLevel=Math.round(100*n)/100,t.muted?n&&t.mute(!1):g.volume=n}).on("beforeseek seek",function(e){M.seeking="beforeseek"==e.type,u.toggleClass(l,"is-seeking",M.seeking)}).on("ready pause resume unload finish stop",function(e){M.paused=/pause|finish|unload|stop/.test(e.type),M.paused=M.paused||"ready"===e.type&&!p.autoplay&&!M.playing,M.playing=!M.paused,u.toggleClass(l,"is-paused",M.paused),u.toggleClass(l,"is-playing",M.playing),M.load.ed||M.pause()}).on("finish",function(){M.finished=!0}).on("error",function(){})),M.trigger("boot",[M,l]),M}var r=e("extend-object"),o=e("is-function"),a=e("bean"),s=e("./ext/ui/slider"),l=e("./ext/ui/bar-slider"),u=e("./common"),c=e("./ext/events"),f=[],d=[],p=window.onbeforeunload;window.onbeforeunload=function(e){return f.forEach(function(e){e.conf.splash?e.unload():e.bind("error",function(){u.find(".flowplayer.is-error .fp-message").forEach(u.removeNode)})}),p?p(e):void 0};var h=!1;try{"object"==typeof window.localStorage&&(window.localStorage.flowplayerTestStorage="test",h=!0)}catch(g){}var m=/Safari/.exec(navigator.userAgent)&&!/Chrome/.exec(navigator.userAgent),v=/(\d+\.\d+) Safari/.exec(navigator.userAgent),y=v?Number(v[1]):100,w=t.exports=function(e,t,n){if(o(e))return d.push(e);if("number"==typeof e||"undefined"==typeof e)return f[e||0];if(e.nodeType){if(null!==e.getAttribute("data-flowplayer-instance-id"))return f[e.getAttribute("data-flowplayer-instance-id")];if(!t)return;return i(e,t,n)}if(e.jquery)return w(e[0],t,n);if("string"==typeof e){var r=u.find(e)[0];return r&&w(r,t,n)}};r(w,{version:"7.0.2",engines:[],extensions:[],conf:{},set:function(e,t){"string"==typeof e?w.conf[e]=t:r(w.conf,e)},registerExtension:function(e,t){w.extensions.push([e,t])},support:{},defaults:{debug:h?!!localStorage.flowplayerDebug:!1,disabled:!1,fullscreen:window==window.top,keyboard:!0,ratio:9/16,adaptiveRatio:!1,rtmp:0,proxy:"best",hlsQualities:!0,splash:!1,live:!1,livePositionOffset:120,swf:"//releases.flowplayer.org/7.0.2/flowplayer.swf",swfHls:"//releases.flowplayer.org/7.0.2/flowplayerhls.swf",speeds:[.25,.5,1,1.5,2],tooltip:!0,mouseoutTimeout:5e3,volume:h?"true"==localStorage.muted?0:isNaN(localStorage.volume)?1:localStorage.volume||1:1,errors:["","Video loading aborted","Network error","Video not properly encoded","Video file not found","Unsupported video","Skin not found","SWF file not found","Subtitles not found","Invalid RTMP URL","Unsupported video format. Try installing Adobe Flash."],errorUrls:["","","","","","","","","","","http://get.adobe.com/flashplayer/"],playlist:[],hlsFix:m&&8>y},bean:a,common:u,slider:s,barSlider:l,extend:r});var b=0,I=e("./ext/resolve");if("undefined"!=typeof window.jQuery){var C=window.jQuery;C(function(){"function"==typeof C.fn.flowplayer&&C('.flowplayer:has(video,script[type="application/json"])').flowplayer()});var M=function(e){if(!e.length)return{};var t=e.data()||{},n={};return C.each(["autoplay","loop","preload","poster"],function(i,r){var o=e.attr(r);void 0!==o&&-1!==["autoplay","poster"].indexOf(r)?n[r]=o?o:!0:void 0!==o&&(t[r]=o?o:!0)}),t.subtitles=e.find("track").map(function(){var e=C(this);return{src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label"),srclang:e.attr("srclang"),"default":e.prop("default")}}).get(),t.sources=(new I).sourcesFromVideoTag(e,C),r(n,{clip:t})};C.fn.flowplayer=function(e,t){return this.each(function(){"string"==typeof e&&(e={swf:e}),o(e)&&(t=e,e={});var n=C(this),r=n.find('script[type="application/json"]'),a=r.length?JSON.parse(r.text()):M(n.find("video")),s=C.extend({},e||{},a,n.data()),l=i(this,s,t);c.EVENTS.forEach(function(e){l.on(e+".jquery",function(e){n.trigger.call(n,e.type,e.detail&&e.detail.args)})}),n.data("flowplayer",l)})}}},{"./common":1,"./ext/events":10,"./ext/resolve":19,"./ext/ui/bar-slider":25,"./ext/ui/slider":26,bean:31,"extend-object":36,"is-function":39}],29:[function(e,t,n){e("es5-shim");var i=t.exports=e("./flowplayer");e("./ext/support"),e("./engine/embed"),e("./engine/html5"),e("./engine/flash"),e("./ext/ui"),e("./ext/message"),e("./ext/keyboard"),e("./ext/playlist"),e("./ext/cuepoint"),e("./ext/subtitle"),e("./ext/analytics"),e("./ext/share"),e("./ext/facebook"),e("./ext/twitter"),e("./ext/embed"),e("./ext/airplay"),e("./ext/chromecast"),e("./ext/qsel"),e("./ext/menu"),e("./ext/fullscreen"),e("./ext/mobile"),i(function(e,t){function n(e){var t=document.createElement("a");return t.href=e,s.hostname(t.hostname)}var r=function(e,t){var n=e.className.split(" ");-1===n.indexOf(t)&&(e.className+=" "+t)},o=function(e){return"none"!==window.getComputedStyle(e).display},a=e.conf,s=i.common,l=s.createElement,u=a.swf.indexOf("flowplayer.org")&&a.e&&t.getAttribute("data-origin"),c=u?n(u):s.hostname(),f=(document,a.key);if("file:"==location.protocol&&(c="localhost"),e.load.ed=1,a.hostname=c,a.origin=u||location.href,u&&r(t,"is-embedded"),"string"==typeof f&&(f=f.split(/,\s*/)),f&&"function"==typeof key_check&&key_check(f,c)){if(a.logo){var d=s.find(".fp-player",t)[0],p=l("a",{className:"fp-logo"});u&&(p.href=u),a.embed&&a.embed.popup&&(p.target="_blank");var h=l("img",{src:a.logo});p.appendChild(h),(d||t).appendChild(p)}}else{var p=l("a",{href:"https://flowplayer.org/hello"});t.appendChild(p);var g=l("div",{className:"fp-context-menu fp-menu"},'<strong>© 2017 Flowplayer</strong><a href="https://flowplayer.org/hello">About Flowplayer</a><a href="https://flowplayer.org/license">GPL based license</a>'),m=window.location.href.indexOf("localhost"),d=s.find(".fp-player",t)[0];7!==m&&(d||t).appendChild(g),e.on("pause resume finish unload ready",function(e,n){var i=-1;if(n.video.src)for(var r=[["org","flowplayer","drive"],["org","flowplayer","my"],["org","flowplayer","cdn"]],a=0;a<r.length&&(i=n.video.src.indexOf("://"+r[a].reverse().join(".")),-1===i);a++);if(/pause|resume/.test(e.type)&&"flash"!=n.engine.engineName&&4!=i&&5!=i){var s={display:"block",position:"absolute",left:"16px",bottom:"70px",zIndex:99999,width:"100px",height:"20px",backgroundImage:"url("+[".png","logo","/",".net",".cloudfront","d32wqyuo10o653","//"].reverse().join("")+")"};for(var l in s)s.hasOwnProperty(l)&&(p.style[l]=s[l]);n.load.ed=o(p)&&(7===m||g.parentNode==t||g.parentNode==d),n.load.ed||n.pause()}else p.style.display="none"})}})},{"./engine/embed":2,"./engine/flash":3,"./engine/html5":4,"./ext/airplay":5,"./ext/analytics":6,"./ext/chromecast":7,"./ext/cuepoint":8,"./ext/embed":9,"./ext/facebook":11,"./ext/fullscreen":12,"./ext/keyboard":13,"./ext/menu":14,"./ext/message":15,"./ext/mobile":16,"./ext/playlist":17,"./ext/qsel":18,"./ext/share":20,"./ext/subtitle":21,"./ext/support":22,"./ext/twitter":23,"./ext/ui":24,"./flowplayer":28,"es5-shim":35}],30:[function(e,t,n){"use strict";function i(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-i(e)}function o(e){var t,n,r,o,a,s,l=e.length;a=i(e),s=new f(3*l/4-a),r=a>0?l-4:l;var u=0;for(t=0,n=0;r>t;t+=4,n+=3)o=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],s[u++]=o>>16&255,s[u++]=o>>8&255,s[u++]=255&o;return 2===a?(o=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,s[u++]=255&o):1===a&&(o=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,s[u++]=o>>8&255,s[u++]=255&o),s}function a(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function s(e,t,n){for(var i,r=[],o=t;n>o;o+=3)i=(e[o]<<16)+(e[o+1]<<8)+e[o+2],r.push(a(i));return r.join("")}function l(e){for(var t,n=e.length,i=n%3,r="",o=[],a=16383,l=0,c=n-i;c>l;l+=a)o.push(s(e,l,l+a>c?c:l+a));return 1===i?(t=e[n-1],r+=u[t>>2],r+=u[t<<4&63],r+="=="):2===i&&(t=(e[n-2]<<8)+e[n-1],r+=u[t>>10],r+=u[t>>4&63],r+=u[t<<2&63],r+="="),o.push(r),o.join("")}n.byteLength=r,n.toByteArray=o,n.fromByteArray=l;for(var u=[],c=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,h=d.length;h>p;++p)u[p]=d[p],c[d.charCodeAt(p)]=p;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],31:[function(t,n,i){!function(t,i,r){"undefined"!=typeof n&&n.exports?n.exports=r():"function"==typeof e&&e.amd?e(r):i[t]=r()}("bean",this,function(e,t){e=e||"bean",t=t||this;var n,i=window,r=t[e],o=/[^\.]*(?=\..*)\.|.*/,a=/\..*/,s="addEventListener",l="removeEventListener",u=document||{},c=u.documentElement||{},f=c[s],d=f?s:"attachEvent",p={},h=Array.prototype.slice,g=function(e,t){return e.split(t||" ")},m=function(e){return"string"==typeof e},v=function(e){return"function"==typeof e},y="click dblclick mouseup mousedown contextmenu mousewheel mousemultiwheel DOMMouseScroll mouseover mouseout mousemove selectstart selectend keydown keypress keyup orientationchange focus blur change reset select submit load unload beforeunload resize move DOMContentLoaded readystatechange message error abort scroll ",w="show input invalid touchstart touchmove touchend touchcancel gesturestart gesturechange gestureend textinput readystatechange pageshow pagehide popstate hashchange offline online afterprint beforeprint dragstart dragenter dragover dragleave drag drop dragend loadstart progress suspend emptied stalled loadmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate play pause ratechange volumechange cuechange checking noupdate downloading cached updateready obsolete ",b=function(e,t,n){for(n=0;n<t.length;n++)t[n]&&(e[t[n]]=1);return e}({},g(y+(f?w:""))),I=function(){var e="compareDocumentPosition"in c?function(e,t){return t.compareDocumentPosition&&16===(16&t.compareDocumentPosition(e))}:"contains"in c?function(e,t){return t=9===t.nodeType||t===window?c:t,t!==e&&t.contains(e)}:function(e,t){for(;e=e.parentNode;)if(e===t)return 1;return 0},t=function(t){var n=t.relatedTarget;return n?n!==this&&"xul"!==n.prefix&&!/document/.test(this.toString())&&!e(n,this):null==n};return{mouseenter:{base:"mouseover",condition:t},mouseleave:{base:"mouseout",condition:t},mousewheel:{base:/Firefox/.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel"}}}(),C=function(){var e=g("altKey attrChange attrName bubbles cancelable ctrlKey currentTarget detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey srcElement target timeStamp type view which propertyName"),t=e.concat(g("button buttons clientX clientY dataTransfer fromElement offsetX offsetY pageX pageY screenX screenY toElement")),n=t.concat(g("wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ axis")),r=e.concat(g("char charCode key keyCode keyIdentifier keyLocation location")),o=e.concat(g("data")),a=e.concat(g("touches targetTouches changedTouches scale rotation")),s=e.concat(g("data origin source")),l=e.concat(g("state")),f=/over|out/,d=[{reg:/key/i,fix:function(e,t){return t.keyCode=e.keyCode||e.which,r}},{reg:/click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i,fix:function(e,n,i){return n.rightClick=3===e.which||2===e.button,n.pos={x:0,y:0},e.pageX||e.pageY?(n.clientX=e.pageX,n.clientY=e.pageY):(e.clientX||e.clientY)&&(n.clientX=e.clientX+u.body.scrollLeft+c.scrollLeft,n.clientY=e.clientY+u.body.scrollTop+c.scrollTop),f.test(i)&&(n.relatedTarget=e.relatedTarget||e[("mouseover"==i?"from":"to")+"Element"]),t}},{reg:/mouse.*(wheel|scroll)/i,fix:function(){return n}},{reg:/^text/i,fix:function(){return o}},{reg:/^touch|^gesture/i,fix:function(){return a}},{reg:/^message$/i,fix:function(){return s}},{reg:/^popstate$/i,fix:function(){return l}},{reg:/.*/,fix:function(){return e}}],p={},h=function(e,t,n){if(arguments.length&&(e=e||((t.ownerDocument||t.document||t).parentWindow||i).event,this.originalEvent=e,this.isNative=n,this.isBean=!0,e)){var r,o,a,s,l,u=e.type,c=e.target||e.srcElement;if(this.target=c&&3===c.nodeType?c.parentNode:c,n){if(l=p[u],!l)for(r=0,o=d.length;o>r;r++)if(d[r].reg.test(u)){p[u]=l=d[r].fix;break}for(s=l(e,this,u),r=s.length;r--;)!((a=s[r])in this)&&a in e&&(this[a]=e[a])}}};return h.prototype.preventDefault=function(){this.originalEvent.preventDefault?this.originalEvent.preventDefault():this.originalEvent.returnValue=!1},h.prototype.stopPropagation=function(){this.originalEvent.stopPropagation?this.originalEvent.stopPropagation():this.originalEvent.cancelBubble=!0},h.prototype.stop=function(){this.preventDefault(),this.stopPropagation(),this.stopped=!0},h.prototype.stopImmediatePropagation=function(){this.originalEvent.stopImmediatePropagation&&this.originalEvent.stopImmediatePropagation(),this.isImmediatePropagationStopped=function(){return!0}},h.prototype.isImmediatePropagationStopped=function(){return this.originalEvent.isImmediatePropagationStopped&&this.originalEvent.isImmediatePropagationStopped()},h.prototype.clone=function(e){var t=new h(this,this.element,this.isNative);return t.currentTarget=e,t},h}(),M=function(e,t){return f||t||e!==u&&e!==i?e:c},A=function(){var e=function(e,t,n,i){var r=function(n,r){return t.apply(e,i?h.call(r,n?0:1).concat(i):r)},o=function(n,i){return t.__beanDel?t.__beanDel.ft(n.target,e):i},a=n?function(e){var t=o(e,this);return n.apply(t,arguments)?(e&&(e.currentTarget=t),r(e,arguments)):void 0}:function(e){return t.__beanDel&&(e=e.clone(o(e))),r(e,arguments)};return a.__beanDel=t.__beanDel,a},t=function(t,n,i,r,o,a,s){var l,u=I[n];"unload"==n&&(i=j(L,t,n,i,r)),u&&(u.condition&&(i=e(t,i,u.condition,a)),n=u.base||n),this.isNative=l=b[n]&&!!t[d],this.customType=!f&&!l&&n,this.element=t,this.type=n,this.original=r,
|
9 |
+
this.namespaces=o,this.eventType=f||l?n:"propertychange",this.target=M(t,l),this[d]=!!this.target[d],this.root=s,this.handler=e(t,i,null,a)};return t.prototype.inNamespaces=function(e){var t,n,i=0;if(!e)return!0;if(!this.namespaces)return!1;for(t=e.length;t--;)for(n=this.namespaces.length;n--;)e[t]==this.namespaces[n]&&i++;return e.length===i},t.prototype.matches=function(e,t,n){return!(this.element!==e||t&&this.original!==t||n&&this.handler!==n)},t}(),S=function(){var e={},t=function(n,i,r,o,a,s){var l=a?"r":"$";if(i&&"*"!=i){var u,c=0,f=e[l+i],d="*"==n;if(!f)return;for(u=f.length;u>c;c++)if((d||f[c].matches(n,r,o))&&!s(f[c],f,c,i))return}else for(var p in e)p.charAt(0)==l&&t(n,p.substr(1),r,o,a,s)},n=function(t,n,i,r){var o,a=e[(r?"r":"$")+n];if(a)for(o=a.length;o--;)if(!a[o].root&&a[o].matches(t,i,null))return!0;return!1},i=function(e,n,i,r){var o=[];return t(e,n,i,null,r,function(e){return o.push(e)}),o},r=function(t){var n=!t.root&&!this.has(t.element,t.type,null,!1),i=(t.root?"r":"$")+t.type;return(e[i]||(e[i]=[])).push(t),n},o=function(n){t(n.element,n.type,null,n.handler,n.root,function(t,n,i){return n.splice(i,1),t.removed=!0,0===n.length&&delete e[(t.root?"r":"$")+t.type],!1})},a=function(){var t,n=[];for(t in e)"$"==t.charAt(0)&&(n=n.concat(e[t]));return n};return{has:n,get:i,put:r,del:o,entries:a}}(),D=function(e){n=arguments.length?e:u.querySelectorAll?function(e,t){return t.querySelectorAll(e)}:function(){throw new Error("Bean: No selector engine installed")}},E=function(e,t){if(f||!t||!e||e.propertyName=="_on"+t){var n=S.get(this,t||e.type,null,!1),i=n.length,r=0;for(e=new C(e,this,!0),t&&(e.type=t);i>r&&!e.isImmediatePropagationStopped();r++)n[r].removed||n[r].handler.call(this,e)}},N=f?function(e,t,n){e[n?s:l](t,E,!1)}:function(e,t,n,i){var r;n?(S.put(r=new A(e,i||t,function(t){E.call(e,t,i)},E,null,null,!0)),i&&null==e["_on"+i]&&(e["_on"+i]=0),r.target.attachEvent("on"+r.eventType,r.handler)):(r=S.get(e,i||t,E,!0)[0],r&&(r.target.detachEvent("on"+r.eventType,r.handler),S.del(r)))},j=function(e,t,n,i,r){return function(){i.apply(this,arguments),e(t,n,r)}},L=function(e,t,n,i){var r,o,s=t&&t.replace(a,""),l=S.get(e,s,null,!1),u={};for(r=0,o=l.length;o>r;r++)n&&l[r].original!==n||!l[r].inNamespaces(i)||(S.del(l[r]),!u[l[r].eventType]&&l[r][d]&&(u[l[r].eventType]={t:l[r].eventType,c:l[r].type}));for(r in u)S.has(e,u[r].t,null,!1)||N(e,u[r].t,!1,u[r].c)},x=function(e,t){var i=function(t,i){for(var r,o=m(e)?n(e,i):e;t&&t!==i;t=t.parentNode)for(r=o.length;r--;)if(o[r]===t)return t},r=function(e){var n=i(e.target,this);n&&t.apply(n,arguments)};return r.__beanDel={ft:i,selector:e},r},T=f?function(e,t,n){var r=u.createEvent(e?"HTMLEvents":"UIEvents");r[e?"initEvent":"initUIEvent"](t,!0,!0,i,1),n.dispatchEvent(r)}:function(e,t,n){n=M(n,e),e?n.fireEvent("on"+t,u.createEventObject()):n["_on"+t]++},Z=function(e,t,n){var i,r,s,l,u=m(t);if(u&&t.indexOf(" ")>0){for(t=g(t),l=t.length;l--;)Z(e,t[l],n);return e}if(r=u&&t.replace(a,""),r&&I[r]&&(r=I[r].base),!t||u)(s=u&&t.replace(o,""))&&(s=g(s,".")),L(e,r,n,s);else if(v(t))L(e,null,t);else for(i in t)t.hasOwnProperty(i)&&Z(e,i,t[i]);return e},P=function(e,t,i,r){var s,l,u,c,f,m,y;{if(void 0!==i||"object"!=typeof t){for(v(i)?(f=h.call(arguments,3),r=s=i):(s=r,f=h.call(arguments,4),r=x(i,s,n)),u=g(t),this===p&&(r=j(Z,e,t,r,s)),c=u.length;c--;)y=S.put(m=new A(e,u[c].replace(a,""),r,s,g(u[c].replace(o,""),"."),f,!1)),m[d]&&y&&N(e,m.eventType,!0,m.customType);return e}for(l in t)t.hasOwnProperty(l)&&P.call(this,e,l,t[l])}},Y=function(e,t,n,i){return P.apply(null,m(n)?[e,n,t,i].concat(arguments.length>3?h.call(arguments,5):[]):h.call(arguments))},k=function(){return P.apply(p,arguments)},z=function(e,t,n){var i,r,s,l,u,c=g(t);for(i=c.length;i--;)if(t=c[i].replace(a,""),(l=c[i].replace(o,""))&&(l=g(l,".")),l||n||!e[d])for(u=S.get(e,t,null,!1),n=[!1].concat(n),r=0,s=u.length;s>r;r++)u[r].inNamespaces(l)&&u[r].handler.apply(e,n);else T(b[t],t,e);return e},G=function(e,t,n){for(var i,r,o=S.get(t,n,null,!1),a=o.length,s=0;a>s;s++)o[s].original&&(i=[e,o[s].type],(r=o[s].handler.__beanDel)&&i.push(r.selector),i.push(o[s].original),P.apply(null,i));return e},O={on:P,add:Y,one:k,off:Z,remove:Z,clone:G,fire:z,Event:C,setSelectorEngine:D,noConflict:function(){return t[e]=r,this}};if(i.attachEvent){var R=function(){var e,t=S.entries();for(e in t)t[e].type&&"unload"!==t[e].type&&Z(t[e].element,t[e].type);i.detachEvent("onunload",R),i.CollectGarbage&&i.CollectGarbage()};i.attachEvent("onunload",R)}return D(),O})},{}],32:[function(e,t,n){(function(t){"use strict";function i(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function r(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(r()<t)throw new RangeError("Invalid typed array length");return a.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=a.prototype):(null===e&&(e=new a(t)),e.length=t),e}function a(e,t,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return c(this,e)}return s(this,e,t,n)}function s(e,t,n,i){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?p(e,t,n,i):"string"==typeof t?f(e,t,n):h(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(0>e)throw new RangeError('"size" argument must not be negative')}function u(e,t,n,i){return l(t),0>=t?o(e,t):void 0!==n?"string"==typeof i?o(e,t).fill(n,i):o(e,t).fill(n):o(e,t)}function c(e,t){if(l(t),e=o(e,0>t?0:0|g(t)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;t>n;++n)e[n]=0;return e}function f(e,t,n){if(("string"!=typeof n||""===n)&&(n="utf8"),!a.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var i=0|v(t,n);e=o(e,i);var r=e.write(t,n);return r!==i&&(e=e.slice(0,r)),e}function d(e,t){var n=t.length<0?0:0|g(t.length);e=o(e,n);for(var i=0;n>i;i+=1)e[i]=255&t[i];return e}function p(e,t,n,i){if(t.byteLength,0>n||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(i||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,n):new Uint8Array(t,n,i),a.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=a.prototype):e=d(e,t),e}function h(e,t){if(a.isBuffer(t)){var n=0|g(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||K(t.length)?o(e,0):d(e,t);if("Buffer"===t.type&&$(t.data))return d(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function g(e){if(e>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return X(e).length;default:if(i)return V(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,n){var i=!1;if((void 0===t||0>t)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),0>=n)return"";if(n>>>=0,t>>>=0,t>=n)return"";for(e||(e="utf8");;)switch(e){case"hex":return Z(this,t,n);case"utf8":case"utf-8":return j(this,t,n);case"ascii":return x(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return N(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function w(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function b(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:-2147483648>n&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),0>n&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(0>n){if(!r)return-1;n=0}if("string"==typeof t&&(t=a.from(t,i)),a.isBuffer(t))return 0===t.length?-1:I(e,t,n,i,r);if("number"==typeof t)return t=255&t,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):I(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function I(e,t,n,i,r){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,l=t.length;if(void 0!==i&&(i=String(i).toLowerCase(),"ucs2"===i||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}var u;if(r){var c=-1;for(u=n;s>u;u++)if(o(e,u)===o(t,-1===c?0:u-c)){if(-1===c&&(c=u),u-c+1===l)return c*a}else-1!==c&&(u-=u-c),c=-1}else for(n+l>s&&(n=s-l),u=n;u>=0;u--){for(var f=!0,d=0;l>d;d++)if(o(e,u+d)!==o(t,d)){f=!1;break}if(f)return u}return-1}function C(e,t,n,i){n=Number(n)||0;var r=e.length-n;i?(i=Number(i),i>r&&(i=r)):i=r;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var a=0;i>a;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function M(e,t,n,i){return _(V(t,e.length-n),e,n,i)}function A(e,t,n,i){return _(H(t),e,n,i)}function S(e,t,n,i){return A(e,t,n,i)}function D(e,t,n,i){return _(X(t),e,n,i)}function E(e,t,n,i){return _(F(t,e.length-n),e,n,i)}function N(e,t,n){return 0===t&&n===e.length?Q.fromByteArray(e):Q.fromByteArray(e.slice(t,n))}function j(e,t,n){n=Math.min(e.length,n);for(var i=[],r=t;n>r;){var o=e[r],a=null,s=o>239?4:o>223?3:o>191?2:1;if(n>=r+s){var l,u,c,f;switch(s){case 1:128>o&&(a=o);break;case 2:l=e[r+1],128===(192&l)&&(f=(31&o)<<6|63&l,f>127&&(a=f));break;case 3:l=e[r+1],u=e[r+2],128===(192&l)&&128===(192&u)&&(f=(15&o)<<12|(63&l)<<6|63&u,f>2047&&(55296>f||f>57343)&&(a=f));break;case 4:l=e[r+1],u=e[r+2],c=e[r+3],128===(192&l)&&128===(192&u)&&128===(192&c)&&(f=(15&o)<<18|(63&l)<<12|(63&u)<<6|63&c,f>65535&&1114112>f&&(a=f))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,i.push(a>>>10&1023|55296),a=56320|1023&a),i.push(a),r+=s}return L(i)}function L(e){var t=e.length;if(ee>=t)return String.fromCharCode.apply(String,e);for(var n="",i=0;t>i;)n+=String.fromCharCode.apply(String,e.slice(i,i+=ee));return n}function x(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;n>r;++r)i+=String.fromCharCode(127&e[r]);return i}function T(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;n>r;++r)i+=String.fromCharCode(e[r]);return i}function Z(e,t,n){var i=e.length;(!t||0>t)&&(t=0),(!n||0>n||n>i)&&(n=i);for(var r="",o=t;n>o;++o)r+=B(e[o]);return r}function P(e,t,n){for(var i=e.slice(t,n),r="",o=0;o<i.length;o+=2)r+=String.fromCharCode(i[o]+256*i[o+1]);return r}function Y(e,t,n){if(e%1!==0||0>e)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function k(e,t,n,i,r,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||o>t)throw new RangeError('"value" argument is out of bounds');if(n+i>e.length)throw new RangeError("Index out of range")}function z(e,t,n,i){0>t&&(t=65535+t+1);for(var r=0,o=Math.min(e.length-n,2);o>r;++r)e[n+r]=(t&255<<8*(i?r:1-r))>>>8*(i?r:1-r)}function G(e,t,n,i){0>t&&(t=4294967295+t+1);for(var r=0,o=Math.min(e.length-n,4);o>r;++r)e[n+r]=t>>>8*(i?r:3-r)&255}function O(e,t,n,i,r,o){if(n+i>e.length)throw new RangeError("Index out of range");if(0>n)throw new RangeError("Index out of range")}function R(e,t,n,i,r){return r||O(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),q.write(e,t,n,i,23,4),n+4}function W(e,t,n,i,r){return r||O(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),q.write(e,t,n,i,52,8),n+8}function U(e){if(e=J(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function J(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function B(e){return 16>e?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var n,i=e.length,r=null,o=[],a=0;i>a;++a){if(n=e.charCodeAt(a),n>55295&&57344>n){if(!r){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(t-=3)>-1&&o.push(239,191,189);continue}r=n;continue}if(56320>n){(t-=3)>-1&&o.push(239,191,189),r=n;continue}n=(r-55296<<10|n-56320)+65536}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,128>n){if((t-=1)<0)break;o.push(n)}else if(2048>n){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(65536>n){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(1114112>n))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function H(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function F(e,t){for(var n,i,r,o=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),i=n>>8,r=n%256,o.push(r),o.push(i);return o}function X(e){return Q.toByteArray(U(e))}function _(e,t,n,i){for(var r=0;i>r&&!(r+n>=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function K(e){return e!==e}var Q=e("base64-js"),q=e("ieee754"),$=e("isarray");n.Buffer=a,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),n.kMaxLength=r(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return s(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return u(null,e,t,n)},a.allocUnsafe=function(e){return c(null,e)},a.allocUnsafeSlow=function(e){return c(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,r=0,o=Math.min(n,i);o>r;++r)if(e[r]!==t[r]){n=e[r],i=t[r];break}return i>n?-1:n>i?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!$(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=a.allocUnsafe(t),r=0;for(n=0;n<e.length;++n){var o=e[n];if(!a.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,r),r+=o.length}return i},a.byteLength=v,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;e>t;t+=2)w(this,t,t+1);return this},a.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;e>t;t+=4)w(this,t,t+3),w(this,t+1,t+2);return this},a.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;e>t;t+=8)w(this,t,t+7),w(this,t+1,t+6),w(this,t+2,t+5),w(this,t+3,t+4);return this},a.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?j(this,0,e):y.apply(this,arguments)},a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:0===a.compare(this,e)},a.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},a.prototype.compare=function(e,t,n,i,r){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),0>t||n>e.length||0>i||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,i>>>=0,r>>>=0,this===e)return 0;for(var o=r-i,s=n-t,l=Math.min(o,s),u=this.slice(i,r),c=e.slice(t,n),f=0;l>f;++f)if(u[f]!==c[f]){o=u[f],s=c[f];break}return s>o?-1:o>s?1:0},a.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},a.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},a.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},a.prototype.write=function(e,t,n,i){if(void 0===t)i="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)i=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t=0|t,isFinite(n)?(n=0|n,void 0===i&&(i="utf8")):(i=n,n=void 0)}var r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(0>n||0>t)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return C(this,e,t,n);case"utf8":case"utf-8":return M(this,e,t,n);case"ascii":return A(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return D(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),e>t&&(t=e);var i;if(a.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=a.prototype;else{var r=t-e;i=new a(r,void 0);for(var o=0;r>o;++o)i[o]=this[o+e]}return i},a.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||Y(e,t,this.length);for(var i=this[e],r=1,o=0;++o<t&&(r*=256);)i+=this[e+o]*r;return i},a.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||Y(e,t,this.length);for(var i=this[e+--t],r=1;t>0&&(r*=256);)i+=this[e+--t]*r;return i},a.prototype.readUInt8=function(e,t){return t||Y(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||Y(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||Y(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||Y(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||Y(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||Y(e,t,this.length);for(var i=this[e],r=1,o=0;++o<t&&(r*=256);)i+=this[e+o]*r;return r*=128,i>=r&&(i-=Math.pow(2,8*t)),i},a.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||Y(e,t,this.length);for(var i=t,r=1,o=this[e+--i];i>0&&(r*=256);)o+=this[e+--i]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||Y(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||Y(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||Y(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||Y(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||Y(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||Y(e,4,this.length),q.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||Y(e,4,this.length),q.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||Y(e,8,this.length),q.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||Y(e,8,this.length),q.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t=0|t,n=0|n,!i){var r=Math.pow(2,8*n)-1;k(this,e,t,n,r,0)}var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},a.prototype.writeUIntBE=function(e,t,n,i){if(e=+e,t=0|t,n=0|n,!i){var r=Math.pow(2,8*n)-1;k(this,e,t,n,r,0)}var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):G(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):G(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t=0|t,!i){var r=Math.pow(2,8*n-1);k(this,e,t,n,r-1,-r)}var o=0,a=1,s=0;for(this[t]=255&e;++o<n&&(a*=256);)0>e&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t=0|t,!i){var r=Math.pow(2,8*n-1);k(this,e,t,n,r-1,-r)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)0>e&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):G(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||k(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):G(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return W(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return W(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&n>i&&(i=n),i===n)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>i)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var r,o=i-n;if(this===e&&t>n&&i>t)for(r=o-1;r>=0;--r)e[r+t]=this[r+n];else if(1e3>o||!a.TYPED_ARRAY_SUPPORT)for(r=0;o>r;++r)e[r+t]=this[r+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},a.prototype.fill=function(e,t,n,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),1===e.length){var r=e.charCodeAt(0);256>r&&(e=r)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!a.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e=255&e);if(0>t||this.length<t||this.length<n)throw new RangeError("Out of range index");if(t>=n)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;n>o;++o)this[o]=e;else{var s=a.isBuffer(e)?e:V(new a(e,i).toString()),l=s.length;for(o=0;n-t>o;++o)this[o+t]=s[o%l]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":30,ieee754:37,isarray:40}],33:[function(e,t,n){function i(e){function t(e){var t=c();a(t,e)>-1||(t.push(e),f(t))}function n(e){var t=c(),n=a(t,e);-1!==n&&(t.splice(n,1),f(t))}function i(e){return a(c(),e)>-1}function s(e){return i(e)?(n(e),!1):(t(e),!0)}function l(){return e.className}function u(e){var t=c();return t[e]||null}function c(){var t=e.className;return r(t.split(" "),o)}function f(t){var n=t.length;e.className=t.join(" "),p.length=n;for(var i=0;i<t.length;i++)p[i]=t[i];delete t[n]}var d=e.classList;if(d)return d;var p={add:t,remove:n,contains:i,toggle:s,toString:l,length:0,item:u};return p}function r(e,t){for(var n=[],i=0;i<e.length;i++)t(e[i])&&n.push(e[i]);return n}function o(e){return!!e}var a=e("indexof");t.exports=i},{indexof:38}],34:[function(e,t,n){function i(e,t,n,i){return n=window.getComputedStyle,i=n?n(e):e.currentStyle,i?i[t.replace(/-(\w)/gi,function(e,t){return t.toUpperCase()})]:void 0}t.exports=i},{}],35:[function(t,n,i){!function(t,r){"use strict";"function"==typeof e&&e.amd?e(r):"object"==typeof i?n.exports=r():t.returnExports=r()}(this,function(){var e,t,n=Array,i=n.prototype,r=Object,o=r.prototype,a=Function,s=a.prototype,l=String,u=l.prototype,c=Number,f=c.prototype,d=i.slice,p=i.splice,h=i.push,g=i.unshift,m=i.concat,v=i.join,y=s.call,w=s.apply,b=Math.max,I=Math.min,C=o.toString,M="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,A=Function.prototype.toString,S=/^\s*class /,D=function(e){try{var t=A.call(e),n=t.replace(/\/\/.*\n/g,""),i=n.replace(/\/\*[.\s\S]*\*\//g,""),r=i.replace(/\n/gm," ").replace(/ {2}/g," ");return S.test(r)}catch(o){return!1}},E=function(e){try{return D(e)?!1:(A.call(e),!0)}catch(t){return!1}},N="[object Function]",j="[object GeneratorFunction]",e=function(e){if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(M)return E(e);if(D(e))return!1;var t=C.call(e);return t===N||t===j},L=RegExp.prototype.exec,x=function(e){try{return L.call(e),!0}catch(t){return!1}},T="[object RegExp]";t=function(e){return"object"!=typeof e?!1:M?x(e):C.call(e)===T};var Z,P=String.prototype.valueOf,Y=function(e){try{return P.call(e),!0}catch(t){return!1}},k="[object String]";Z=function(e){return"string"==typeof e?!0:"object"!=typeof e?!1:M?Y(e):C.call(e)===k};var z=r.defineProperty&&function(){try{var e={};r.defineProperty(e,"x",{enumerable:!1,value:e});for(var t in e)return!1;return e.x===e}catch(n){return!1}}(),G=function(e){var t;return t=z?function(e,t,n,i){!i&&t in e||r.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:!0,value:n})}:function(e,t,n,i){!i&&t in e||(e[t]=n)},function(n,i,r){for(var o in i)e.call(i,o)&&t(n,o,i[o],r)}}(o.hasOwnProperty),O=function(e){var t=typeof e;return null===e||"object"!==t&&"function"!==t},R=c.isNaN||function(e){return e!==e},W={ToInteger:function(e){var t=+e;return R(t)?t=0:0!==t&&t!==1/0&&t!==-(1/0)&&(t=(t>0||-1)*Math.floor(Math.abs(t))),t},ToPrimitive:function(t){var n,i,r;if(O(t))return t;if(i=t.valueOf,e(i)&&(n=i.call(t),O(n)))return n;if(r=t.toString,e(r)&&(n=r.call(t),O(n)))return n;throw new TypeError},ToObject:function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return r(e)},ToUint32:function(e){return e>>>0}},U=function(){};G(s,{bind:function(t){var n=this;if(!e(n))throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var i,o=d.call(arguments,1),s=function(){if(this instanceof i){var e=w.call(n,this,m.call(o,d.call(arguments)));return r(e)===e?e:this}return w.call(n,t,m.call(o,d.call(arguments)))},l=b(0,n.length-o.length),u=[],c=0;l>c;c++)h.call(u,"$"+c);return i=a("binder","return function ("+v.call(u,",")+"){ return binder.apply(this, arguments); }")(s),n.prototype&&(U.prototype=n.prototype,i.prototype=new U,U.prototype=null),i}});var J=y.bind(o.hasOwnProperty),B=y.bind(o.toString),V=y.bind(d),H=w.bind(d),F=y.bind(u.slice),X=y.bind(u.split),_=y.bind(u.indexOf),K=y.bind(h),Q=y.bind(o.propertyIsEnumerable),q=y.bind(i.sort),$=n.isArray||function(e){return"[object Array]"===B(e)},ee=1!==[].unshift(0);G(i,{unshift:function(){return g.apply(this,arguments),this.length}},ee),G(n,{isArray:$});var te=r("a"),ne="a"!==te[0]||!(0 in te),ie=function(e){var t=!0,n=!0,i=!1;if(e)try{e.call("foo",function(e,n,i){"object"!=typeof i&&(t=!1)}),e.call([1],function(){"use strict";n="string"==typeof this},"x")}catch(r){i=!0}return!!e&&!i&&t&&n};G(i,{forEach:function(t){var n,i=W.ToObject(this),r=ne&&Z(this)?X(this,""):i,o=-1,a=W.ToUint32(r.length);if(arguments.length>1&&(n=arguments[1]),!e(t))throw new TypeError("Array.prototype.forEach callback must be a function");for(;++o<a;)o in r&&("undefined"==typeof n?t(r[o],o,i):t.call(n,r[o],o,i))}},!ie(i.forEach)),G(i,{map:function(t){var i,r=W.ToObject(this),o=ne&&Z(this)?X(this,""):r,a=W.ToUint32(o.length),s=n(a);if(arguments.length>1&&(i=arguments[1]),!e(t))throw new TypeError("Array.prototype.map callback must be a function");for(var l=0;a>l;l++)l in o&&("undefined"==typeof i?s[l]=t(o[l],l,r):s[l]=t.call(i,o[l],l,r));return s}},!ie(i.map)),G(i,{filter:function(t){var n,i,r=W.ToObject(this),o=ne&&Z(this)?X(this,""):r,a=W.ToUint32(o.length),s=[];if(arguments.length>1&&(i=arguments[1]),!e(t))throw new TypeError("Array.prototype.filter callback must be a function");for(var l=0;a>l;l++)l in o&&(n=o[l],("undefined"==typeof i?t(n,l,r):t.call(i,n,l,r))&&K(s,n));return s}},!ie(i.filter)),G(i,{every:function(t){var n,i=W.ToObject(this),r=ne&&Z(this)?X(this,""):i,o=W.ToUint32(r.length);if(arguments.length>1&&(n=arguments[1]),!e(t))throw new TypeError("Array.prototype.every callback must be a function");for(var a=0;o>a;a++)if(a in r&&!("undefined"==typeof n?t(r[a],a,i):t.call(n,r[a],a,i)))return!1;return!0}},!ie(i.every)),G(i,{some:function(t){var n,i=W.ToObject(this),r=ne&&Z(this)?X(this,""):i,o=W.ToUint32(r.length);if(arguments.length>1&&(n=arguments[1]),!e(t))throw new TypeError("Array.prototype.some callback must be a function");for(var a=0;o>a;a++)if(a in r&&("undefined"==typeof n?t(r[a],a,i):t.call(n,r[a],a,i)))return!0;return!1}},!ie(i.some));var re=!1;i.reduce&&(re="object"==typeof i.reduce.call("es5",function(e,t,n,i){return i})),G(i,{reduce:function(t){var n=W.ToObject(this),i=ne&&Z(this)?X(this,""):n,r=W.ToUint32(i.length);if(!e(t))throw new TypeError("Array.prototype.reduce callback must be a function");if(0===r&&1===arguments.length)throw new TypeError("reduce of empty array with no initial value");var o,a=0;if(arguments.length>=2)o=arguments[1];else for(;;){if(a in i){o=i[a++];break}if(++a>=r)throw new TypeError("reduce of empty array with no initial value")}for(;r>a;a++)a in i&&(o=t(o,i[a],a,n));return o}},!re);var oe=!1;i.reduceRight&&(oe="object"==typeof i.reduceRight.call("es5",function(e,t,n,i){return i})),G(i,{reduceRight:function(t){var n=W.ToObject(this),i=ne&&Z(this)?X(this,""):n,r=W.ToUint32(i.length);if(!e(t))throw new TypeError("Array.prototype.reduceRight callback must be a function");if(0===r&&1===arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var o,a=r-1;if(arguments.length>=2)o=arguments[1];else for(;;){if(a in i){o=i[a--];break}if(--a<0)throw new TypeError("reduceRight of empty array with no initial value")}if(0>a)return o;do a in i&&(o=t(o,i[a],a,n));while(a--);return o}},!oe);var ae=i.indexOf&&-1!==[0,1].indexOf(1,2);G(i,{indexOf:function(e){var t=ne&&Z(this)?X(this,""):W.ToObject(this),n=W.ToUint32(t.length);
|
10 |
+
if(0===n)return-1;var i=0;for(arguments.length>1&&(i=W.ToInteger(arguments[1])),i=i>=0?i:b(0,n+i);n>i;i++)if(i in t&&t[i]===e)return i;return-1}},ae);var se=i.lastIndexOf&&-1!==[0,1].lastIndexOf(0,-3);G(i,{lastIndexOf:function(e){var t=ne&&Z(this)?X(this,""):W.ToObject(this),n=W.ToUint32(t.length);if(0===n)return-1;var i=n-1;for(arguments.length>1&&(i=I(i,W.ToInteger(arguments[1]))),i=i>=0?i:n-Math.abs(i);i>=0;i--)if(i in t&&e===t[i])return i;return-1}},se);var le=function(){var e=[1,2],t=e.splice();return 2===e.length&&$(t)&&0===t.length}();G(i,{splice:function(e,t){return 0===arguments.length?[]:p.apply(this,arguments)}},!le);var ue=function(){var e={};return i.splice.call(e,0,0,1),1===e.length}();G(i,{splice:function(e,t){if(0===arguments.length)return[];var n=arguments;return this.length=b(W.ToInteger(this.length),0),arguments.length>0&&"number"!=typeof t&&(n=V(arguments),n.length<2?K(n,this.length-e):n[1]=W.ToInteger(t)),p.apply(this,n)}},!ue);var ce=function(){var e=new n(1e5);return e[8]="x",e.splice(1,1),7===e.indexOf("x")}(),fe=function(){var e=256,t=[];return t[e]="a",t.splice(e+1,0,"b"),"a"===t[e]}();G(i,{splice:function(e,t){for(var n,i=W.ToObject(this),r=[],o=W.ToUint32(i.length),a=W.ToInteger(e),s=0>a?b(o+a,0):I(a,o),u=I(b(W.ToInteger(t),0),o-s),c=0;u>c;)n=l(s+c),J(i,n)&&(r[c]=i[n]),c+=1;var f,d=V(arguments,2),p=d.length;if(u>p){c=s;for(var h=o-u;h>c;)n=l(c+u),f=l(c+p),J(i,n)?i[f]=i[n]:delete i[f],c+=1;c=o;for(var g=o-u+p;c>g;)delete i[c-1],c-=1}else if(p>u)for(c=o-u;c>s;)n=l(c+u-1),f=l(c+p-1),J(i,n)?i[f]=i[n]:delete i[f],c-=1;c=s;for(var m=0;m<d.length;++m)i[c]=d[m],c+=1;return i.length=o-u+p,r}},!ce||!fe);var de,pe=i.join;try{de="1,2,3"!==Array.prototype.join.call("123",",")}catch(he){de=!0}de&&G(i,{join:function(e){var t="undefined"==typeof e?",":e;return pe.call(Z(this)?X(this,""):this,t)}},de);var ge="1,2"!==[1,2].join(void 0);ge&&G(i,{join:function(e){var t="undefined"==typeof e?",":e;return pe.call(this,t)}},ge);var me=function(e){for(var t=W.ToObject(this),n=W.ToUint32(t.length),i=0;i<arguments.length;)t[n+i]=arguments[i],i+=1;return t.length=n+i,n+i},ve=function(){var e={},t=Array.prototype.push.call(e,void 0);return 1!==t||1!==e.length||"undefined"!=typeof e[0]||!J(e,0)}();G(i,{push:function(e){return $(this)?h.apply(this,arguments):me.apply(this,arguments)}},ve);var ye=function(){var e=[],t=e.push(void 0);return 1!==t||1!==e.length||"undefined"!=typeof e[0]||!J(e,0)}();G(i,{push:me},ye),G(i,{slice:function(e,t){var n=Z(this)?X(this,""):this;return H(n,arguments)}},ne);var we=function(){try{return[1,2].sort(null),[1,2].sort({}),!0}catch(e){}return!1}(),be=function(){try{return[1,2].sort(/a/),!1}catch(e){}return!0}(),Ie=function(){try{return[1,2].sort(void 0),!0}catch(e){}return!1}();G(i,{sort:function(t){if("undefined"==typeof t)return q(this);if(!e(t))throw new TypeError("Array.prototype.sort callback must be a function");return q(this,t)}},we||!Ie||!be);var Ce=!Q({toString:null},"toString"),Me=Q(function(){},"prototype"),Ae=!J("x","0"),Se=function(e){var t=e.constructor;return t&&t.prototype===e},De={$window:!0,$console:!0,$parent:!0,$self:!0,$frame:!0,$frames:!0,$frameElement:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$external:!0},Ee=function(){if("undefined"==typeof window)return!1;for(var e in window)try{!De["$"+e]&&J(window,e)&&null!==window[e]&&"object"==typeof window[e]&&Se(window[e])}catch(t){return!0}return!1}(),Ne=function(e){if("undefined"==typeof window||!Ee)return Se(e);try{return Se(e)}catch(t){return!1}},je=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Le=je.length,xe=function(e){return"[object Arguments]"===B(e)},Te=function(t){return null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&!$(t)&&e(t.callee)},Ze=xe(arguments)?xe:Te;G(r,{keys:function(t){var n=e(t),i=Ze(t),r=null!==t&&"object"==typeof t,o=r&&Z(t);if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var a=[],s=Me&&n;if(o&&Ae||i)for(var u=0;u<t.length;++u)K(a,l(u));if(!i)for(var c in t)s&&"prototype"===c||!J(t,c)||K(a,l(c));if(Ce)for(var f=Ne(t),d=0;Le>d;d++){var p=je[d];f&&"constructor"===p||!J(t,p)||K(a,p)}return a}});var Pe=r.keys&&function(){return 2===r.keys(arguments).length}(1,2),Ye=r.keys&&function(){var e=r.keys(arguments);return 1!==arguments.length||1!==e.length||1!==e[0]}(1),ke=r.keys;G(r,{keys:function(e){return ke(Ze(e)?V(e):e)}},!Pe||Ye);var ze,Ge,Oe=0!==new Date(-0xc782b5b342b24).getUTCMonth(),Re=new Date(-0x55d318d56a724),We=new Date(14496624e5),Ue="Mon, 01 Jan -45875 11:59:59 GMT"!==Re.toUTCString(),Je=Re.getTimezoneOffset();-720>Je?(ze="Tue Jan 02 -45875"!==Re.toDateString(),Ge=!/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(We.toString())):(ze="Mon Jan 01 -45875"!==Re.toDateString(),Ge=!/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(We.toString()));var Be=y.bind(Date.prototype.getFullYear),Ve=y.bind(Date.prototype.getMonth),He=y.bind(Date.prototype.getDate),Fe=y.bind(Date.prototype.getUTCFullYear),Xe=y.bind(Date.prototype.getUTCMonth),_e=y.bind(Date.prototype.getUTCDate),Ke=y.bind(Date.prototype.getUTCDay),Qe=y.bind(Date.prototype.getUTCHours),qe=y.bind(Date.prototype.getUTCMinutes),$e=y.bind(Date.prototype.getUTCSeconds),et=y.bind(Date.prototype.getUTCMilliseconds),tt=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],nt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],it=function(e,t){return He(new Date(t,e,0))};G(Date.prototype,{getFullYear:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Be(this);return 0>e&&Ve(this)>11?e+1:e},getMonth:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Be(this),t=Ve(this);return 0>e&&t>11?0:t},getDate:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Be(this),t=Ve(this),n=He(this);if(0>e&&t>11){if(12===t)return n;var i=it(0,e+1);return i-n+1}return n},getUTCFullYear:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Fe(this);return 0>e&&Xe(this)>11?e+1:e},getUTCMonth:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Fe(this),t=Xe(this);return 0>e&&t>11?0:t},getUTCDate:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Fe(this),t=Xe(this),n=_e(this);if(0>e&&t>11){if(12===t)return n;var i=it(0,e+1);return i-n+1}return n}},Oe),G(Date.prototype,{toUTCString:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=Ke(this),t=_e(this),n=Xe(this),i=Fe(this),r=Qe(this),o=qe(this),a=$e(this);return tt[e]+", "+(10>t?"0"+t:t)+" "+nt[n]+" "+i+" "+(10>r?"0"+r:r)+":"+(10>o?"0"+o:o)+":"+(10>a?"0"+a:a)+" GMT"}},Oe||Ue),G(Date.prototype,{toDateString:function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=this.getDay(),t=this.getDate(),n=this.getMonth(),i=this.getFullYear();return tt[e]+" "+nt[n]+" "+(10>t?"0"+t:t)+" "+i}},Oe||ze),(Oe||Ge)&&(Date.prototype.toString=function(){if(!(this&&this instanceof Date))throw new TypeError("this is not a Date object.");var e=this.getDay(),t=this.getDate(),n=this.getMonth(),i=this.getFullYear(),r=this.getHours(),o=this.getMinutes(),a=this.getSeconds(),s=this.getTimezoneOffset(),l=Math.floor(Math.abs(s)/60),u=Math.floor(Math.abs(s)%60);return tt[e]+" "+nt[n]+" "+(10>t?"0"+t:t)+" "+i+" "+(10>r?"0"+r:r)+":"+(10>o?"0"+o:o)+":"+(10>a?"0"+a:a)+" GMT"+(s>0?"-":"+")+(10>l?"0"+l:l)+(10>u?"0"+u:u)},z&&r.defineProperty(Date.prototype,"toString",{configurable:!0,enumerable:!1,writable:!0}));var rt=-621987552e5,ot="-000001",at=Date.prototype.toISOString&&-1===new Date(rt).toISOString().indexOf(ot),st=Date.prototype.toISOString&&"1969-12-31T23:59:59.999Z"!==new Date(-1).toISOString(),lt=y.bind(Date.prototype.getTime);G(Date.prototype,{toISOString:function(){if(!isFinite(this)||!isFinite(lt(this)))throw new RangeError("Date.prototype.toISOString called on non-finite value.");var e=Fe(this),t=Xe(this);e+=Math.floor(t/12),t=(t%12+12)%12;var n=[t+1,_e(this),Qe(this),qe(this),$e(this)];e=(0>e?"-":e>9999?"+":"")+F("00000"+Math.abs(e),e>=0&&9999>=e?-4:-6);for(var i=0;i<n.length;++i)n[i]=F("00"+n[i],-2);return e+"-"+V(n,0,2).join("-")+"T"+V(n,2).join(":")+"."+F("000"+et(this),-3)+"Z"}},at||st);var ut=function(){try{return Date.prototype.toJSON&&null===new Date(NaN).toJSON()&&-1!==new Date(rt).toJSON().indexOf(ot)&&Date.prototype.toJSON.call({toISOString:function(){return!0}})}catch(e){return!1}}();ut||(Date.prototype.toJSON=function(t){var n=r(this),i=W.ToPrimitive(n);if("number"==typeof i&&!isFinite(i))return null;var o=n.toISOString;if(!e(o))throw new TypeError("toISOString property is not callable");return o.call(n)});var ct=1e15===Date.parse("+033658-09-27T01:46:40.000Z"),ft=!isNaN(Date.parse("2012-04-04T24:00:00.500Z"))||!isNaN(Date.parse("2012-11-31T23:59:59.000Z"))||!isNaN(Date.parse("2012-12-31T23:59:60.000Z")),dt=isNaN(Date.parse("2000-01-01T00:00:00.000Z"));if(dt||ft||!ct){var pt=Math.pow(2,31)-1,ht=R(new Date(1970,0,1,0,0,0,pt+1).getTime());Date=function(e){var t=function(n,i,r,o,a,s,u){var c,f=arguments.length;if(this instanceof e){var d=s,p=u;if(ht&&f>=7&&u>pt){var h=Math.floor(u/pt)*pt,g=Math.floor(h/1e3);d+=g,p-=1e3*g}c=1===f&&l(n)===n?new e(t.parse(n)):f>=7?new e(n,i,r,o,a,d,p):f>=6?new e(n,i,r,o,a,d):f>=5?new e(n,i,r,o,a):f>=4?new e(n,i,r,o):f>=3?new e(n,i,r):f>=2?new e(n,i):f>=1?new e(n instanceof e?+n:n):new e}else c=e.apply(this,arguments);return O(c)||G(c,{constructor:t},!0),c},n=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),i=[0,31,59,90,120,151,181,212,243,273,304,334,365],r=function(e,t){var n=t>1?1:0;return i[t]+Math.floor((e-1969+n)/4)-Math.floor((e-1901+n)/100)+Math.floor((e-1601+n)/400)+365*(e-1970)},o=function(t){var n=0,i=t;if(ht&&i>pt){var r=Math.floor(i/pt)*pt,o=Math.floor(r/1e3);n+=o,i-=1e3*o}return c(new e(1970,0,1,0,0,n,i))};for(var a in e)J(e,a)&&(t[a]=e[a]);G(t,{now:e.now,UTC:e.UTC},!0),t.prototype=e.prototype,G(t.prototype,{constructor:t},!0);var s=function(t){var i=n.exec(t);if(i){var a,s=c(i[1]),l=c(i[2]||1)-1,u=c(i[3]||1)-1,f=c(i[4]||0),d=c(i[5]||0),p=c(i[6]||0),h=Math.floor(1e3*c(i[7]||0)),g=Boolean(i[4]&&!i[8]),m="-"===i[9]?1:-1,v=c(i[10]||0),y=c(i[11]||0),w=d>0||p>0||h>0;return(w?24:25)>f&&60>d&&60>p&&1e3>h&&l>-1&&12>l&&24>v&&60>y&&u>-1&&u<r(s,l+1)-r(s,l)&&(a=60*(24*(r(s,l)+u)+f+v*m),a=1e3*(60*(a+d+y*m)+p)+h,g&&(a=o(a)),a>=-864e13&&864e13>=a)?a:NaN}return e.parse.apply(this,arguments)};return G(t,{parse:s}),t}(Date)}Date.now||(Date.now=function(){return(new Date).getTime()});var gt=f.toFixed&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==0xde0b6b3a7640080.toFixed(0)),mt={base:1e7,size:6,data:[0,0,0,0,0,0],multiply:function(e,t){for(var n=-1,i=t;++n<mt.size;)i+=e*mt.data[n],mt.data[n]=i%mt.base,i=Math.floor(i/mt.base)},divide:function(e){for(var t=mt.size,n=0;--t>=0;)n+=mt.data[t],mt.data[t]=Math.floor(n/e),n=n%e*mt.base},numToString:function(){for(var e=mt.size,t="";--e>=0;)if(""!==t||0===e||0!==mt.data[e]){var n=l(mt.data[e]);""===t?t=n:t+=F("0000000",0,7-n.length)+n}return t},pow:function kt(e,t,n){return 0===t?n:t%2===1?kt(e,t-1,n*e):kt(e*e,t/2,n)},log:function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}},vt=function(e){var t,n,i,r,o,a,s,u;if(t=c(e),t=R(t)?0:Math.floor(t),0>t||t>20)throw new RangeError("Number.toFixed called with invalid number of decimals");if(n=c(this),R(n))return"NaN";if(-1e21>=n||n>=1e21)return l(n);if(i="",0>n&&(i="-",n=-n),r="0",n>1e-21)if(o=mt.log(n*mt.pow(2,69,1))-69,a=0>o?n*mt.pow(2,-o,1):n/mt.pow(2,o,1),a*=4503599627370496,o=52-o,o>0){for(mt.multiply(0,a),s=t;s>=7;)mt.multiply(1e7,0),s-=7;for(mt.multiply(mt.pow(10,s,1),0),s=o-1;s>=23;)mt.divide(1<<23),s-=23;mt.divide(1<<s),mt.multiply(1,1),mt.divide(2),r=mt.numToString()}else mt.multiply(0,a),mt.multiply(1<<-o,0),r=mt.numToString()+F("0.00000000000000000000",2,2+t);return t>0?(u=r.length,r=t>=u?i+F("0.0000000000000000000",0,t-u+2)+r:i+F(r,0,u-t)+"."+F(r,u-t)):r=i+r,r};G(f,{toFixed:vt},gt);var yt=function(){try{return"1"===1..toPrecision(void 0)}catch(e){return!0}}(),wt=f.toPrecision;G(f,{toPrecision:function(e){return"undefined"==typeof e?wt.call(this):wt.call(this,e)}},yt),2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||"t"==="tesst".split(/(s)*/)[1]||4!=="test".split(/(?:)/,-1).length||"".split(/.?/).length||".".split(/()()/).length>1?!function(){var e="undefined"==typeof/()??/.exec("")[1],n=Math.pow(2,32)-1;u.split=function(i,r){var o=String(this);if("undefined"==typeof i&&0===r)return[];if(!t(i))return X(this,i,r);var a,s,l,u,c=[],f=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(i.sticky?"y":""),d=0,p=new RegExp(i.source,f+"g");e||(a=new RegExp("^"+p.source+"$(?!\\s)",f));var g="undefined"==typeof r?n:W.ToUint32(r);for(s=p.exec(o);s&&(l=s.index+s[0].length,!(l>d&&(K(c,F(o,d,s.index)),!e&&s.length>1&&s[0].replace(a,function(){for(var e=1;e<arguments.length-2;e++)"undefined"==typeof arguments[e]&&(s[e]=void 0)}),s.length>1&&s.index<o.length&&h.apply(c,V(s,1)),u=s[0].length,d=l,c.length>=g)));)p.lastIndex===s.index&&p.lastIndex++,s=p.exec(o);return d===o.length?(u||!p.test(""))&&K(c,""):K(c,F(o,d)),c.length>g?V(c,0,g):c}}():"0".split(void 0,0).length&&(u.split=function(e,t){return"undefined"==typeof e&&0===t?[]:X(this,e,t)});var bt=u.replace,It=function(){var e=[];return"x".replace(/x(.)?/g,function(t,n){K(e,n)}),1===e.length&&"undefined"==typeof e[0]}();It||(u.replace=function(n,i){var r=e(i),o=t(n)&&/\)[*?]/.test(n.source);if(r&&o){var a=function(e){var t=arguments.length,r=n.lastIndex;n.lastIndex=0;var o=n.exec(e)||[];return n.lastIndex=r,K(o,arguments[t-2],arguments[t-1]),i.apply(this,o)};return bt.call(this,n,a)}return bt.call(this,n,i)});var Ct=u.substr,Mt="".substr&&"b"!=="0b".substr(-1);G(u,{substr:function(e,t){var n=e;return 0>e&&(n=b(this.length+e,0)),Ct.call(this,n,t)}},Mt);var At=" \n\f\r \u2028\u2029\ufeff",St="",Dt="["+At+"]",Et=new RegExp("^"+Dt+Dt+"*"),Nt=new RegExp(Dt+Dt+"*$"),jt=u.trim&&(At.trim()||!St.trim());G(u,{trim:function(){if("undefined"==typeof this||null===this)throw new TypeError("can't convert "+this+" to object");return l(this).replace(Et,"").replace(Nt,"")}},jt);var Lt=y.bind(String.prototype.trim),xt=u.lastIndexOf&&-1!=="abcあい".lastIndexOf("あい",2);G(u,{lastIndexOf:function(e){if("undefined"==typeof this||null===this)throw new TypeError("can't convert "+this+" to object");for(var t=l(this),n=l(e),i=arguments.length>1?c(arguments[1]):NaN,r=R(i)?1/0:W.ToInteger(i),o=I(b(r,0),t.length),a=n.length,s=o+a;s>0;){s=b(0,s-a);var u=_(F(t,s,o+a),n);if(-1!==u)return s+u}return-1}},xt);var Tt=u.lastIndexOf;if(G(u,{lastIndexOf:function(e){return Tt.apply(this,arguments)}},1!==u.lastIndexOf.length),(8!==parseInt(At+"08")||22!==parseInt(At+"0x16"))&&(parseInt=function(e){var t=/^[\-+]?0[xX]/;return function(n,i){var r=Lt(String(n)),o=c(i)||(t.test(r)?16:10);return e(r,o)}}(parseInt)),1/parseFloat("-0")!==-(1/0)&&(parseFloat=function(e){return function(t){var n=Lt(String(t)),i=e(n);return 0===i&&"-"===F(n,0,1)?-0:i}}(parseFloat)),"RangeError: test"!==String(new RangeError("test"))){var Zt=function(){if("undefined"==typeof this||null===this)throw new TypeError("can't convert "+this+" to object");var e=this.name;"undefined"==typeof e?e="Error":"string"!=typeof e&&(e=l(e));var t=this.message;return"undefined"==typeof t?t="":"string"!=typeof t&&(t=l(t)),e?t?e+": "+t:e:t};Error.prototype.toString=Zt}if(z){var Pt=function(e,t){if(Q(e,t)){var n=Object.getOwnPropertyDescriptor(e,t);n.configurable&&(n.enumerable=!1,Object.defineProperty(e,t,n))}};Pt(Error.prototype,"message"),""!==Error.prototype.message&&(Error.prototype.message=""),Pt(Error.prototype,"name")}if("/a/gim"!==String(/a/gim)){var Yt=function(){var e="/"+this.source+"/";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),e};RegExp.prototype.toString=Yt}})},{}],36:[function(e,t,n){var i=[],r=i.forEach,o=i.slice;t.exports=function(e){return r.call(o.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e}},{}],37:[function(e,t,n){n.read=function(e,t,n,i,r){var o,a,s=8*r-i-1,l=(1<<s)-1,u=l>>1,c=-7,f=n?r-1:0,d=n?-1:1,p=e[t+f];for(f+=d,o=p&(1<<-c)-1,p>>=-c,c+=s;c>0;o=256*o+e[t+f],f+=d,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=i;c>0;a=256*a+e[t+f],f+=d,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:(p?-1:1)*(1/0);a+=Math.pow(2,i),o-=u}return(p?-1:1)*a*Math.pow(2,o-i)},n.write=function(e,t,n,i,r,o){var a,s,l,u=8*o-r-1,c=(1<<u)-1,f=c>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:o-1,h=i?1:-1,g=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),t+=a+f>=1?d/l:d*Math.pow(2,1-f),t*l>=2&&(a++,l/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*l-1)*Math.pow(2,r),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,r),a=0));r>=8;e[n+p]=255&s,p+=h,s/=256,r-=8);for(a=a<<r|s,u+=r;u>0;e[n+p]=255&a,p+=h,a/=256,u-=8);e[n+p-h]|=128*g}},{}],38:[function(e,t,n){var i=[].indexOf;t.exports=function(e,t){if(i)return e.indexOf(t);for(var n=0;n<e.length;++n)if(e[n]===t)return n;return-1}},{}],39:[function(e,t,n){function i(e){var t=r.call(e);return"[object Function]"===t||"function"==typeof e&&"[object RegExp]"!==t||"undefined"!=typeof window&&(e===window.setTimeout||e===window.alert||e===window.confirm||e===window.prompt)}t.exports=i;var r=Object.prototype.toString},{}],40:[function(e,t,n){var i={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==i.call(e)}},{}],41:[function(t,n,i){(function(t){!function(r){function o(e){throw new RangeError(P[e])}function a(e,t){for(var n=e.length,i=[];n--;)i[n]=t(e[n]);return i}function s(e,t){var n=e.split("@"),i="";n.length>1&&(i=n[0]+"@",e=n[1]),e=e.replace(Z,".");var r=e.split("."),o=a(r,t).join(".");return i+o}function l(e){for(var t,n,i=[],r=0,o=e.length;o>r;)t=e.charCodeAt(r++),t>=55296&&56319>=t&&o>r?(n=e.charCodeAt(r++),56320==(64512&n)?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--)):i.push(t);return i}function u(e){return a(e,function(e){var t="";return e>65535&&(e-=65536,t+=z(e>>>10&1023|55296),e=56320|1023&e),t+=z(e)}).join("")}function c(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:M}function f(e,t){return e+22+75*(26>e)-((0!=t)<<5)}function d(e,t,n){var i=0;for(e=n?k(e/E):e>>1,e+=k(e/t);e>Y*S>>1;i+=M)e=k(e/Y);return k(i+(Y+1)*e/(e+D))}function p(e){var t,n,i,r,a,s,l,f,p,h,g=[],m=e.length,v=0,y=j,w=N;for(n=e.lastIndexOf(L),0>n&&(n=0),i=0;n>i;++i)e.charCodeAt(i)>=128&&o("not-basic"),g.push(e.charCodeAt(i));for(r=n>0?n+1:0;m>r;){for(a=v,s=1,l=M;r>=m&&o("invalid-input"),f=c(e.charCodeAt(r++)),(f>=M||f>k((C-v)/s))&&o("overflow"),v+=f*s,p=w>=l?A:l>=w+S?S:l-w,!(p>f);l+=M)h=M-p,s>k(C/h)&&o("overflow"),s*=h;t=g.length+1,w=d(v-a,t,0==a),k(v/t)>C-y&&o("overflow"),y+=k(v/t),v%=t,g.splice(v++,0,y)}return u(g)}function h(e){var t,n,i,r,a,s,u,c,p,h,g,m,v,y,w,b=[];for(e=l(e),m=e.length,t=j,n=0,a=N,s=0;m>s;++s)g=e[s],128>g&&b.push(z(g));for(i=r=b.length,r&&b.push(L);m>i;){for(u=C,s=0;m>s;++s)g=e[s],g>=t&&u>g&&(u=g);for(v=i+1,u-t>k((C-n)/v)&&o("overflow"),n+=(u-t)*v,t=u,s=0;m>s;++s)if(g=e[s],t>g&&++n>C&&o("overflow"),g==t){for(c=n,p=M;h=a>=p?A:p>=a+S?S:p-a,!(h>c);p+=M)w=c-h,y=M-h,b.push(z(f(h+w%y,0))),c=k(w/y);b.push(z(f(c,0))),a=d(n,v,i==r),n=0,++i}++n,++t}return b.join("")}function g(e){return s(e,function(e){return x.test(e)?p(e.slice(4).toLowerCase()):e})}function m(e){return s(e,function(e){return T.test(e)?"xn--"+h(e):e})}var v="object"==typeof i&&i&&!i.nodeType&&i,y="object"==typeof n&&n&&!n.nodeType&&n,w="object"==typeof t&&t;(w.global===w||w.window===w||w.self===w)&&(r=w);var b,I,C=2147483647,M=36,A=1,S=26,D=38,E=700,N=72,j=128,L="-",x=/^xn--/,T=/[^\x20-\x7E]/,Z=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Y=M-A,k=Math.floor,z=String.fromCharCode;if(b={version:"1.4.1",ucs2:{decode:l,encode:u},decode:p,encode:h,toASCII:m,toUnicode:g},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return b});else if(v&&y)if(n.exports==v)y.exports=b;else for(I in b)b.hasOwnProperty(I)&&(v[I]=b[I]);else r.punycode=b}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],42:[function(t,n,i){!function(t,i){"undefined"!=typeof n&&n.exports?n.exports=i():"function"==typeof e&&e.amd?e(i):this[t]=i()}("$script",function(){function e(e,t){for(var n=0,i=e.length;i>n;++n)if(!t(e[n]))return l;return 1}function t(t,n){e(t,function(e){return!n(e)})}function n(o,a,s){function l(e){return e.call?e():d[e]}function c(){if(!--y){d[v]=1,m&&m();for(var n in h)e(n.split("|"),l)&&!t(h[n],l)&&(h[n]=[])}}o=o[u]?o:[o];var f=a&&a.call,m=f?a:s,v=f?o.join(""):a,y=o.length;return setTimeout(function(){t(o,function e(t,n){return null===t?c():(n||/^https?:\/\//.test(t)||!r||(t=-1===t.indexOf(".js")?r+t+".js":r+t),g[t]?(v&&(p[v]=1),2==g[t]?c():setTimeout(function(){e(t,!0)},0)):(g[t]=1,v&&(p[v]=1),void i(t,c)))})},0),n}function i(e,t){var n,i=a.createElement("script");i.onload=i.onerror=i[f]=function(){i[c]&&!/^c|loade/.test(i[c])||n||(i.onload=i[f]=null,n=1,g[e]=2,t())},i.async=1,i.src=o?e+(-1===e.indexOf("?")?"?":"&")+o:e,s.insertBefore(i,s.lastChild)}var r,o,a=document,s=a.getElementsByTagName("head")[0],l=!1,u="push",c="readyState",f="onreadystatechange",d={},p={},h={},g={};return n.get=i,n.order=function(e,t,i){!function r(o){o=e.shift(),e.length?n(o,r):n(o,t,i)}()},n.path=function(e){r=e},n.urlArgs=function(e){o=e},n.ready=function(i,r,o){i=i[u]?i:[i];var a=[];return!t(i,function(e){d[e]||a[u](e)})&&e(i,function(e){return d[e]})?r():!function(e){h[e]=h[e]||[],h[e][u](r),o&&o(a)}(i.join("|")),n},n.done=function(e){n([null],e)},n})},{}]},{},[29])(29)});
|
lib/flowplayer.swf
CHANGED
Binary file
|
lib/flowplayerhls.swf
ADDED
Binary file
|
lib/skin/all-skins.css
DELETED
@@ -1,700 +0,0 @@
|
|
1 |
-
.minimalist{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
2 |
-
.minimalist *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
3 |
-
.minimalist a:focus{outline:0}
|
4 |
-
.minimalist video{width:100%}
|
5 |
-
.minimalist.is-ipad video{-webkit-transform:translateX(-2048px);}
|
6 |
-
.is-ready.minimalist.is-ipad video{-webkit-transform:translateX(0)}
|
7 |
-
.minimalist .fp-engine,.minimalist .fp-ui,.minimalist .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
8 |
-
.minimalist .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
9 |
-
.minimalist .fp-message h2{font-size:120%;margin-bottom:1em}
|
10 |
-
.minimalist .fp-message p{color:#666;font-size:95%}
|
11 |
-
.minimalist .fp-controls{position:absolute;bottom:0;width:100%;}
|
12 |
-
.no-background.minimalist .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
13 |
-
.is-fullscreen.minimalist .fp-controls{bottom:3px}
|
14 |
-
.is-mouseover.minimalist .fp-controls{bottom:0}
|
15 |
-
.minimalist .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
16 |
-
.minimalist .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
17 |
-
.minimalist .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
18 |
-
.minimalist .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
19 |
-
.minimalist .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
20 |
-
.minimalist .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
21 |
-
.minimalist .fp-waiting p{color:#ccc;font-weight:bold}
|
22 |
-
.minimalist .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
23 |
-
.minimalist .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
24 |
-
.minimalist .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
25 |
-
.is-help.minimalist .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
26 |
-
.minimalist .fp-help .fp-help-section{margin:3%;direction:ltr}
|
27 |
-
.minimalist .fp-help .fp-help-basics{margin-top:6%}
|
28 |
-
.minimalist .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
29 |
-
.minimalist .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
30 |
-
.minimalist .fp-help small{font-size:90%;color:#aaa}
|
31 |
-
.minimalist .fp-help .fp-close{display:block}
|
32 |
-
@media (max-width: 600px){.minimalist .fp-help p{font-size:9px}
|
33 |
-
}.minimalist .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
34 |
-
.minimalist .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
35 |
-
.minimalist .fp-subtitle p:after{content:'';clear:both}
|
36 |
-
.minimalist .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
37 |
-
.minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
|
38 |
-
.is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-mute,.is-rtl.minimalist .fp-embed,.is-rtl.minimalist .fp-close,.is-rtl.minimalist .fp-play{background-image:url(img/white_rtl.png)}
|
39 |
-
.color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black.png);}
|
40 |
-
.is-rtl.color-light.minimalist .fp-fullscreen,.is-rtl.color-light.minimalist .fp-unload,.is-rtl.color-light.minimalist .fp-mute,.is-rtl.color-light.minimalist .fp-embed,.is-rtl.color-light.minimalist .fp-close,.is-rtl.color-light.minimalist .fp-play{background-image:url(img/black_rtl.png)}
|
41 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black@x2.png)}
|
42 |
-
.is-rtl.color-light.minimalist .fp-fullscreen,.is-rtl.color-light.minimalist .fp-unload,.is-rtl.color-light.minimalist .fp-mute,.is-rtl.color-light.minimalist .fp-embed,.is-rtl.color-light.minimalist .fp-close,.is-rtl.color-light.minimalist .fp-play{background-image:url(img/black_rtl@x2.png)}
|
43 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white@x2.png)}
|
44 |
-
.is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-mute,.is-rtl.minimalist .fp-embed,.is-rtl.minimalist .fp-close,.is-rtl.minimalist .fp-play{background-image:url(img/white_rtl@x2.png)}
|
45 |
-
}.minimalist .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
46 |
-
.is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
47 |
-
.is-rtl.is-splash.minimalist .fp-ui,.is-rtl.is-paused.minimalist .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
48 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
49 |
-
.is-rtl.is-splash.minimalist .fp-ui,.is-rtl.is-paused.minimalist .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
50 |
-
}.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black.png);}
|
51 |
-
.is-rtl.color-light.is-splash.minimalist .fp-ui,.is-rtl.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black_rtl.png)}
|
52 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black@x2.png);}
|
53 |
-
.is-rtl.color-light.is-splash.minimalist .fp-ui,.is-rtl.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
54 |
-
}.is-fullscreen.minimalist .fp-ui{background-size:auto}
|
55 |
-
.is-seeking.minimalist .fp-ui,.is-loading.minimalist .fp-ui{background-image:none}
|
56 |
-
.minimalist .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
|
57 |
-
.minimalist .fp-logo img{width:100%}
|
58 |
-
.is-embedded.minimalist .fp-logo{display:block}
|
59 |
-
.fixed-controls.minimalist .fp-logo{bottom:15px}
|
60 |
-
.minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
61 |
-
.is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-close{right:auto;left:5px;background-position:18px -197px}
|
62 |
-
.minimalist .fp-unload,.minimalist .fp-close{background-position:14px -175px;display:none;}
|
63 |
-
.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-close{background-position:14px -175px}
|
64 |
-
.minimalist .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
65 |
-
.is-rtl.minimalist .fp-play{background-position:18px -24px;left:auto;right:0}
|
66 |
-
.play-button.minimalist .fp-play{display:block}
|
67 |
-
.is-paused.minimalist .fp-play{background-position:9px 7px;}
|
68 |
-
.is-rtl.is-paused.minimalist .fp-play{background-position:18px 7px}
|
69 |
-
.minimalist.is-ready.is-closeable .fp-unload{display:block}
|
70 |
-
.minimalist.is-ready.is-closeable .fp-fullscreen{display:none}
|
71 |
-
.minimalist.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
72 |
-
.is-rtl.minimalist.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
73 |
-
.minimalist.is-fullscreen .fp-unload,.minimalist.is-fullscreen .fp-close{display:none !important}
|
74 |
-
.minimalist .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
|
75 |
-
.no-volume.minimalist .fp-timeline{margin-right:60px}
|
76 |
-
.no-mute.minimalist .fp-timeline{margin-right:140px}
|
77 |
-
.no-mute.no-volume.minimalist .fp-timeline{margin-right:45px}
|
78 |
-
.play-button.minimalist .fp-timeline{margin-left:67px}
|
79 |
-
.is-rtl.minimalist .fp-timeline{margin:0 45px 0 150px;}
|
80 |
-
.no-volume.is-rtl.minimalist .fp-timeline{margin-left:60px}
|
81 |
-
.no-mute.is-rtl.minimalist .fp-timeline{margin-left:140px}
|
82 |
-
.no-mute.no-volume.is-rtl.minimalist .fp-timeline{margin-left:45px}
|
83 |
-
.play-button.is-rtl.minimalist .fp-timeline{margin-right:67px}
|
84 |
-
.is-long.minimalist .fp-timeline{margin:0 180px 0 75px;}
|
85 |
-
.no-volume.is-long.minimalist .fp-timeline{margin-right:90px}
|
86 |
-
.no-mute.is-long.minimalist .fp-timeline{margin-right:75px}
|
87 |
-
.play-button.is-long.minimalist .fp-timeline{margin-left:97px}
|
88 |
-
.is-rtl.is-long.minimalist .fp-timeline{margin:75px 0 180px 0;}
|
89 |
-
.no-volume.is-rtl.is-long.minimalist .fp-timeline{margin-left:90px}
|
90 |
-
.no-mute.is-rtl.is-long.minimalist .fp-timeline{margin-left:75px}
|
91 |
-
.play-button.is-rtl.is-long.minimalist .fp-timeline{margin-left:97px}
|
92 |
-
.aside-time.minimalist .fp-timeline,.no-time.minimalist .fp-timeline{margin:0 110px 0 5px}
|
93 |
-
.aside-time.no-volume.minimalist .fp-timeline,.no-time.no-volume.minimalist .fp-timeline{margin-right:20px}
|
94 |
-
.aside-time.no-mute.minimalist .fp-timeline,.no-time.no-mute.minimalist .fp-timeline{margin-right:5px}
|
95 |
-
.play-button.no-time.minimalist .fp-timeline,.play-button.aside-time.minimalist .fp-timeline{margin-left:27px}
|
96 |
-
.is-rtl.aside-time.minimalist .fp-timeline,.is-rtl.no-time.minimalist .fp-timeline{margin:0 5px 0 110px}
|
97 |
-
.is-rtl.aside-time.no-volume.minimalist .fp-timeline,.is-rtl.no-time.no-volume.minimalist .fp-timeline{margin-left:20px}
|
98 |
-
.is-rtl.aside-time.no-mute.minimalist .fp-timeline,.is-rtl.no-time.no-mute.minimalist .fp-timeline{margin-left:5px}
|
99 |
-
.is-rtl.play-button.no-time.minimalist .fp-timeline,.is-rtl.play-button.aside-time.minimalist .fp-timeline{margin-right:27px}
|
100 |
-
.minimalist .fp-buffer,.minimalist .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
101 |
-
.minimalist .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
102 |
-
.minimalist .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
103 |
-
.minimalist.is-touch .fp-timeline{overflow:visible}
|
104 |
-
.minimalist.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
105 |
-
.minimalist.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
106 |
-
.minimalist.is-touch.is-mouseover .fp-progress:after,.minimalist.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
107 |
-
.minimalist.is-touch.is-rtl.is-mouseover .fp-progress:after,.minimalist.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
108 |
-
.minimalist.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
109 |
-
.minimalist.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
110 |
-
.minimalist.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
111 |
-
.minimalist.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
112 |
-
.minimalist.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
113 |
-
.minimalist .fp-volume{position:absolute;top:7.5px;right:5px;}
|
114 |
-
.is-rtl.minimalist .fp-volume{right:auto;left:5px}
|
115 |
-
.minimalist .fp-mute{position:relative;width:10px;height:15px;float:left;top:-5px;cursor:pointer;background-position:-2px -99px;}
|
116 |
-
.is-rtl.minimalist .fp-mute{float:right;background-position:-25px -99px}
|
117 |
-
.no-mute.minimalist .fp-mute{display:none}
|
118 |
-
.minimalist .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
|
119 |
-
.is-rtl.minimalist .fp-volumeslider{float:right}
|
120 |
-
.no-volume.minimalist .fp-volumeslider{display:none}
|
121 |
-
.minimalist .fp-volumelevel{height:100%}
|
122 |
-
.minimalist .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
123 |
-
.minimalist .fp-time.is-inverted .fp-duration{display:none}
|
124 |
-
.minimalist .fp-time.is-inverted .fp-remaining{display:inline}
|
125 |
-
.minimalist .fp-time em{width:35px;height:10px;line-height:10px;text-align:center;position:absolute;bottom:5px}
|
126 |
-
.no-time.minimalist .fp-time{display:none}
|
127 |
-
.is-long.minimalist .fp-time em{width:65px}
|
128 |
-
.minimalist .fp-elapsed{left:5px;}
|
129 |
-
.play-button.minimalist .fp-elapsed{left:27px}
|
130 |
-
.is-rtl.minimalist .fp-elapsed{left:auto;right:5px;}
|
131 |
-
.play-button.is-rtl.minimalist .fp-elapsed{right:27px}
|
132 |
-
.minimalist .fp-remaining,.minimalist .fp-duration{right:110px;color:#eee;}
|
133 |
-
.no-volume.minimalist .fp-remaining,.no-volume.minimalist .fp-duration{right:20px}
|
134 |
-
.no-mute.minimalist .fp-remaining,.no-mute.minimalist .fp-duration{right:100px}
|
135 |
-
.no-mute.no-volume.minimalist .fp-remaining,.no-mute.no-volume.minimalist .fp-duration{right:5px}
|
136 |
-
.is-rtl.minimalist .fp-remaining,.is-rtl.minimalist .fp-duration{right:auto;left:110px;}
|
137 |
-
.no-volume.is-rtl.minimalist .fp-remaining,.no-volume.is-rtl.minimalist .fp-duration{left:20px}
|
138 |
-
.no-mute.is-rtl.minimalist .fp-remaining,.no-mute.is-rtl.minimalist .fp-duration{left:100px}
|
139 |
-
.no-mute.no-volume.is-rtl.minimalist .fp-remaining,.no-mute.no-volume.is-rtl.minimalist .fp-duration{left:5px}
|
140 |
-
.minimalist .fp-remaining{display:none}
|
141 |
-
.minimalist.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
142 |
-
.minimalist.color-light .fp-remaining,.minimalist.color-light .fp-duration{color:#666}
|
143 |
-
.minimalist.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
|
144 |
-
.minimalist.aside-time .fp-time strong,.minimalist.aside-time .fp-time em{position:static}
|
145 |
-
.minimalist.aside-time .fp-time .fp-elapsed{margin-right:5px;}
|
146 |
-
.is-rtl.minimalist.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:5px}
|
147 |
-
.minimalist.is-long.aside-time .fp-time{width:130px}
|
148 |
-
.minimalist.is-splash,.minimalist.is-poster{cursor:pointer;}
|
149 |
-
.minimalist.is-splash .fp-controls,.minimalist.is-poster .fp-controls,.minimalist.is-splash .fp-fullscreen,.minimalist.is-poster .fp-fullscreen,.minimalist.is-splash .fp-unload,.minimalist.is-poster .fp-unload,.minimalist.is-splash .fp-time,.minimalist.is-poster .fp-time,.minimalist.is-splash .fp-embed,.minimalist.is-poster .fp-embed{display:none !important}
|
150 |
-
.minimalist.is-poster .fp-engine{top:-9999em}
|
151 |
-
.minimalist.is-loading .fp-waiting{display:block}
|
152 |
-
.minimalist.is-loading .fp-controls,.minimalist.is-loading .fp-time{display:none}
|
153 |
-
.minimalist.is-loading .fp-ui{background-position:-9999em}
|
154 |
-
.minimalist.is-loading video.fp-engine{position:absolute;top:-9999em}
|
155 |
-
.minimalist.is-seeking .fp-waiting{display:block}
|
156 |
-
.minimalist.is-playing{background-image:none !important;background-color:#333;}
|
157 |
-
.minimalist.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
158 |
-
.minimalist.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
159 |
-
.is-rtl.minimalist.is-fullscreen{left:auto !important;right:0 !important}
|
160 |
-
.minimalist.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
161 |
-
.minimalist.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
162 |
-
.minimalist.is-error .fp-message{display:block}
|
163 |
-
.minimalist.is-error object,.minimalist.is-error video,.minimalist.is-error .fp-controls,.minimalist.is-error .fp-time,.minimalist.is-error .fp-subtitle{display:none}
|
164 |
-
.minimalist.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
165 |
-
.minimalist.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
166 |
-
.minimalist.is-mouseout .fp-timeline{margin:0 !important}
|
167 |
-
.minimalist.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
168 |
-
.minimalist.is-mouseout .fp-fullscreen,.minimalist.is-mouseout .fp-unload,.minimalist.is-mouseout .fp-elapsed,.minimalist.is-mouseout .fp-remaining,.minimalist.is-mouseout .fp-duration,.minimalist.is-mouseout .fp-embed,.minimalist.is-mouseout .fp-volume,.minimalist.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
169 |
-
.minimalist.is-mouseover .fp-controls,.minimalist.fixed-controls .fp-controls{height:20px}
|
170 |
-
.minimalist.is-mouseover .fp-fullscreen,.minimalist.fixed-controls .fp-fullscreen,.minimalist.is-mouseover .fp-unload,.minimalist.fixed-controls .fp-unload,.minimalist.is-mouseover .fp-elapsed,.minimalist.fixed-controls .fp-elapsed,.minimalist.is-mouseover .fp-remaining,.minimalist.fixed-controls .fp-remaining,.minimalist.is-mouseover .fp-duration,.minimalist.fixed-controls .fp-duration,.minimalist.is-mouseover .fp-embed,.minimalist.fixed-controls .fp-embed,.minimalist.is-mouseover .fp-logo,.minimalist.fixed-controls .fp-logo,.minimalist.is-mouseover .fp-volume,.minimalist.fixed-controls .fp-volume,.minimalist.is-mouseover .fp-play,.minimalist.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
171 |
-
.minimalist.fixed-controls .fp-volume{display:block}
|
172 |
-
.minimalist.fixed-controls .fp-controls{bottom:-20px;}
|
173 |
-
.is-fullscreen.minimalist.fixed-controls .fp-controls{bottom:0}
|
174 |
-
.minimalist.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
175 |
-
.is-fullscreen.minimalist.fixed-controls .fp-time em{bottom:5px}
|
176 |
-
.minimalist.is-disabled .fp-progress{background-color:#999}
|
177 |
-
.minimalist.is-flash-disabled{background-color:#333;}
|
178 |
-
.minimalist.is-flash-disabled object.fp-engine{z-index:100}
|
179 |
-
.minimalist.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
180 |
-
.minimalist .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
181 |
-
.is-rtl.minimalist .fp-embed{background-position:22px -237px;left:auto;right:5px}
|
182 |
-
.minimalist .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
183 |
-
.minimalist .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
184 |
-
.is-rtl.minimalist .fp-embed-code{left:auto;right:40px;}
|
185 |
-
.is-rtl.minimalist .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
186 |
-
.minimalist .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
187 |
-
.minimalist .fp-embed-code label{display:block;color:#999}
|
188 |
-
.minimalist.is-embedding .fp-embed,.minimalist.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
189 |
-
.minimalist.aside-time .fp-embed{left:85px;}
|
190 |
-
.is-rtl.minimalist.aside-time .fp-embed{left:auto;right:85px}
|
191 |
-
.minimalist.aside-time .fp-embed-code{left:115px;}
|
192 |
-
.is-rtl.minimalist.aside-time .fp-embed-code{left:auto;right:115px}
|
193 |
-
.minimalist.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
194 |
-
.minimalist.is-long.aside-time .fp-embed{left:130px;}
|
195 |
-
.is-rtl.minimalist.is-long.aside-time .fp-embed{left:auto;right:130px}
|
196 |
-
.minimalist.no-time .fp-embed{left:5px !important;}
|
197 |
-
.is-rtl.minimalist.no-time .fp-embed{left:auto;right:5px !important}
|
198 |
-
.minimalist.is-live .fp-timeline,.minimalist.is-live .fp-duration,.minimalist.is-live .fp-remaining{display:none}
|
199 |
-
.minimalist .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
200 |
-
.minimalist .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
201 |
-
.minimalist .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
202 |
-
.minimalist .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
203 |
-
.minimalist .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
204 |
-
@media (-webkit-min-device-pixel-ratio: 2){.minimalist .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
205 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
206 |
-
100%{opacity:1}
|
207 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
208 |
-
100%{opacity:1}
|
209 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
210 |
-
100%{opacity:1}
|
211 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
212 |
-
100%{opacity:1}
|
213 |
-
}@keyframes pulse{0%{opacity:0}
|
214 |
-
100%{opacity:1}
|
215 |
-
}.minimalist .fp-controls{background-color:#333;background-color:rgba(51,51,51,0.6)}
|
216 |
-
.minimalist.fixed-controls .fp-controls{background-color:#333}
|
217 |
-
.minimalist .fp-timeline{background-color:#666}
|
218 |
-
.minimalist .fp-buffer{background-color:#eee}
|
219 |
-
.minimalist .fp-progress{background-color:#00a7c8}
|
220 |
-
.minimalist .fp-volumeslider{background-color:#000}
|
221 |
-
.minimalist .fp-volumelevel{background-color:#fff}
|
222 |
-
.minimalist .fp-play{height:24px}
|
223 |
-
.minimalist.is-touch.is-mouseover .fp-progress:before{background-color:#00a7c8}
|
224 |
-
.minimalist.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
|
225 |
-
.minimalist.color-light.fixed-controls .fp-controls{background-color:#fff}
|
226 |
-
.minimalist.color-light .fp-volumeslider{background-color:#ddd}
|
227 |
-
.minimalist.color-light .fp-volumelevel{background-color:#222}
|
228 |
-
.minimalist.color-alt .fp-progress{background-color:#fff}
|
229 |
-
.minimalist.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#fff}
|
230 |
-
.minimalist.color-alt .fp-buffer{background-color:#999}
|
231 |
-
.minimalist.color-alt2 .fp-progress{background-color:#900}
|
232 |
-
.minimalist.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
233 |
-
.functional{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
234 |
-
.functional *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
235 |
-
.functional a:focus{outline:0}
|
236 |
-
.functional video{width:100%}
|
237 |
-
.functional.is-ipad video{-webkit-transform:translateX(-2048px);}
|
238 |
-
.is-ready.functional.is-ipad video{-webkit-transform:translateX(0)}
|
239 |
-
.functional .fp-engine,.functional .fp-ui,.functional .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
240 |
-
.functional .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
241 |
-
.functional .fp-message h2{font-size:120%;margin-bottom:1em}
|
242 |
-
.functional .fp-message p{color:#666;font-size:95%}
|
243 |
-
.functional .fp-controls{position:absolute;bottom:0;width:100%;}
|
244 |
-
.no-background.functional .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
245 |
-
.is-fullscreen.functional .fp-controls{bottom:3px}
|
246 |
-
.is-mouseover.functional .fp-controls{bottom:0}
|
247 |
-
.functional .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
248 |
-
.functional .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
249 |
-
.functional .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
250 |
-
.functional .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
251 |
-
.functional .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
252 |
-
.functional .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
253 |
-
.functional .fp-waiting p{color:#ccc;font-weight:bold}
|
254 |
-
.functional .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
255 |
-
.functional .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
256 |
-
.functional .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
257 |
-
.is-help.functional .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
258 |
-
.functional .fp-help .fp-help-section{margin:3%;direction:ltr}
|
259 |
-
.functional .fp-help .fp-help-basics{margin-top:6%}
|
260 |
-
.functional .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
261 |
-
.functional .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
262 |
-
.functional .fp-help small{font-size:90%;color:#aaa}
|
263 |
-
.functional .fp-help .fp-close{display:block}
|
264 |
-
@media (max-width: 600px){.functional .fp-help p{font-size:9px}
|
265 |
-
}.functional .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
266 |
-
.functional .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
267 |
-
.functional .fp-subtitle p:after{content:'';clear:both}
|
268 |
-
.functional .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
269 |
-
.functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
|
270 |
-
.is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-mute,.is-rtl.functional .fp-embed,.is-rtl.functional .fp-close,.is-rtl.functional .fp-play{background-image:url(img/white_rtl.png)}
|
271 |
-
.color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black.png);}
|
272 |
-
.is-rtl.color-light.functional .fp-fullscreen,.is-rtl.color-light.functional .fp-unload,.is-rtl.color-light.functional .fp-mute,.is-rtl.color-light.functional .fp-embed,.is-rtl.color-light.functional .fp-close,.is-rtl.color-light.functional .fp-play{background-image:url(img/black_rtl.png)}
|
273 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black@x2.png)}
|
274 |
-
.is-rtl.color-light.functional .fp-fullscreen,.is-rtl.color-light.functional .fp-unload,.is-rtl.color-light.functional .fp-mute,.is-rtl.color-light.functional .fp-embed,.is-rtl.color-light.functional .fp-close,.is-rtl.color-light.functional .fp-play{background-image:url(img/black_rtl@x2.png)}
|
275 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white@x2.png)}
|
276 |
-
.is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-mute,.is-rtl.functional .fp-embed,.is-rtl.functional .fp-close,.is-rtl.functional .fp-play{background-image:url(img/white_rtl@x2.png)}
|
277 |
-
}.functional .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
278 |
-
.is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
279 |
-
.is-rtl.is-splash.functional .fp-ui,.is-rtl.is-paused.functional .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
280 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
281 |
-
.is-rtl.is-splash.functional .fp-ui,.is-rtl.is-paused.functional .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
282 |
-
}.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black.png);}
|
283 |
-
.is-rtl.color-light.is-splash.functional .fp-ui,.is-rtl.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black_rtl.png)}
|
284 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black@x2.png);}
|
285 |
-
.is-rtl.color-light.is-splash.functional .fp-ui,.is-rtl.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
286 |
-
}.is-fullscreen.functional .fp-ui{background-size:auto}
|
287 |
-
.is-seeking.functional .fp-ui,.is-loading.functional .fp-ui{background-image:none}
|
288 |
-
.functional .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
|
289 |
-
.functional .fp-logo img{width:100%}
|
290 |
-
.is-embedded.functional .fp-logo{display:block}
|
291 |
-
.fixed-controls.functional .fp-logo{bottom:15px}
|
292 |
-
.functional .fp-fullscreen,.functional .fp-unload,.functional .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
293 |
-
.is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-close{right:auto;left:10px;background-position:18px -197px}
|
294 |
-
.functional .fp-unload,.functional .fp-close{background-position:14px -175px;display:none;}
|
295 |
-
.is-rtl.functional .fp-unload,.is-rtl.functional .fp-close{background-position:14px -175px}
|
296 |
-
.functional .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
297 |
-
.is-rtl.functional .fp-play{background-position:18px -24px;left:auto;right:0}
|
298 |
-
.play-button.functional .fp-play{display:block}
|
299 |
-
.is-paused.functional .fp-play{background-position:9px 7px;}
|
300 |
-
.is-rtl.is-paused.functional .fp-play{background-position:18px 7px}
|
301 |
-
.functional.is-ready.is-closeable .fp-unload{display:block}
|
302 |
-
.functional.is-ready.is-closeable .fp-fullscreen{display:none}
|
303 |
-
.functional.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
304 |
-
.is-rtl.functional.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
305 |
-
.functional.is-fullscreen .fp-unload,.functional.is-fullscreen .fp-close{display:none !important}
|
306 |
-
.functional .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
|
307 |
-
.no-volume.functional .fp-timeline{margin-right:75px}
|
308 |
-
.no-mute.functional .fp-timeline{margin-right:155px}
|
309 |
-
.no-mute.no-volume.functional .fp-timeline{margin-right:55px}
|
310 |
-
.play-button.functional .fp-timeline{margin-left:72px}
|
311 |
-
.is-rtl.functional .fp-timeline{margin:0 55px 0 165px;}
|
312 |
-
.no-volume.is-rtl.functional .fp-timeline{margin-left:75px}
|
313 |
-
.no-mute.is-rtl.functional .fp-timeline{margin-left:155px}
|
314 |
-
.no-mute.no-volume.is-rtl.functional .fp-timeline{margin-left:55px}
|
315 |
-
.play-button.is-rtl.functional .fp-timeline{margin-right:72px}
|
316 |
-
.is-long.functional .fp-timeline{margin:0 195px 0 85px;}
|
317 |
-
.no-volume.is-long.functional .fp-timeline{margin-right:105px}
|
318 |
-
.no-mute.is-long.functional .fp-timeline{margin-right:85px}
|
319 |
-
.play-button.is-long.functional .fp-timeline{margin-left:102px}
|
320 |
-
.is-rtl.is-long.functional .fp-timeline{margin:85px 0 195px 0;}
|
321 |
-
.no-volume.is-rtl.is-long.functional .fp-timeline{margin-left:105px}
|
322 |
-
.no-mute.is-rtl.is-long.functional .fp-timeline{margin-left:85px}
|
323 |
-
.play-button.is-rtl.is-long.functional .fp-timeline{margin-left:102px}
|
324 |
-
.aside-time.functional .fp-timeline,.no-time.functional .fp-timeline{margin:0 120px 0 10px}
|
325 |
-
.aside-time.no-volume.functional .fp-timeline,.no-time.no-volume.functional .fp-timeline{margin-right:30px}
|
326 |
-
.aside-time.no-mute.functional .fp-timeline,.no-time.no-mute.functional .fp-timeline{margin-right:10px}
|
327 |
-
.play-button.no-time.functional .fp-timeline,.play-button.aside-time.functional .fp-timeline{margin-left:27px}
|
328 |
-
.is-rtl.aside-time.functional .fp-timeline,.is-rtl.no-time.functional .fp-timeline{margin:0 10px 0 120px}
|
329 |
-
.is-rtl.aside-time.no-volume.functional .fp-timeline,.is-rtl.no-time.no-volume.functional .fp-timeline{margin-left:30px}
|
330 |
-
.is-rtl.aside-time.no-mute.functional .fp-timeline,.is-rtl.no-time.no-mute.functional .fp-timeline{margin-left:10px}
|
331 |
-
.is-rtl.play-button.no-time.functional .fp-timeline,.is-rtl.play-button.aside-time.functional .fp-timeline{margin-right:27px}
|
332 |
-
.functional .fp-buffer,.functional .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
333 |
-
.functional .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
334 |
-
.functional .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
335 |
-
.functional.is-touch .fp-timeline{overflow:visible}
|
336 |
-
.functional.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
337 |
-
.functional.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
338 |
-
.functional.is-touch.is-mouseover .fp-progress:after,.functional.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
339 |
-
.functional.is-touch.is-rtl.is-mouseover .fp-progress:after,.functional.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
340 |
-
.functional.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
341 |
-
.functional.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
342 |
-
.functional.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
343 |
-
.functional.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
344 |
-
.functional.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
345 |
-
.functional .fp-volume{position:absolute;top:11px;right:10px;}
|
346 |
-
.is-rtl.functional .fp-volume{right:auto;left:10px}
|
347 |
-
.functional .fp-mute{position:relative;width:10px;height:15px;float:left;top:-3.5px;cursor:pointer;background-position:-2px -99px;}
|
348 |
-
.is-rtl.functional .fp-mute{float:right;background-position:-25px -99px}
|
349 |
-
.no-mute.functional .fp-mute{display:none}
|
350 |
-
.functional .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
|
351 |
-
.is-rtl.functional .fp-volumeslider{float:right}
|
352 |
-
.no-volume.functional .fp-volumeslider{display:none}
|
353 |
-
.functional .fp-volumelevel{height:100%}
|
354 |
-
.functional .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
355 |
-
.functional .fp-time.is-inverted .fp-duration{display:none}
|
356 |
-
.functional .fp-time.is-inverted .fp-remaining{display:inline}
|
357 |
-
.functional .fp-time em{width:35px;height:10px;line-height:10px;text-align:center;position:absolute;bottom:10px}
|
358 |
-
.no-time.functional .fp-time{display:none}
|
359 |
-
.is-long.functional .fp-time em{width:65px}
|
360 |
-
.functional .fp-elapsed{left:10px;}
|
361 |
-
.play-button.functional .fp-elapsed{left:27px}
|
362 |
-
.is-rtl.functional .fp-elapsed{left:auto;right:10px;}
|
363 |
-
.play-button.is-rtl.functional .fp-elapsed{right:27px}
|
364 |
-
.functional .fp-remaining,.functional .fp-duration{right:120px;color:#eee;}
|
365 |
-
.no-volume.functional .fp-remaining,.no-volume.functional .fp-duration{right:30px}
|
366 |
-
.no-mute.functional .fp-remaining,.no-mute.functional .fp-duration{right:110px}
|
367 |
-
.no-mute.no-volume.functional .fp-remaining,.no-mute.no-volume.functional .fp-duration{right:10px}
|
368 |
-
.is-rtl.functional .fp-remaining,.is-rtl.functional .fp-duration{right:auto;left:120px;}
|
369 |
-
.no-volume.is-rtl.functional .fp-remaining,.no-volume.is-rtl.functional .fp-duration{left:30px}
|
370 |
-
.no-mute.is-rtl.functional .fp-remaining,.no-mute.is-rtl.functional .fp-duration{left:110px}
|
371 |
-
.no-mute.no-volume.is-rtl.functional .fp-remaining,.no-mute.no-volume.is-rtl.functional .fp-duration{left:10px}
|
372 |
-
.functional .fp-remaining{display:none}
|
373 |
-
.functional.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
374 |
-
.functional.color-light .fp-remaining,.functional.color-light .fp-duration{color:#666}
|
375 |
-
.functional.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
|
376 |
-
.functional.aside-time .fp-time strong,.functional.aside-time .fp-time em{position:static}
|
377 |
-
.functional.aside-time .fp-time .fp-elapsed{margin-right:10px;}
|
378 |
-
.is-rtl.functional.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:10px}
|
379 |
-
.functional.is-long.aside-time .fp-time{width:130px}
|
380 |
-
.functional.is-splash,.functional.is-poster{cursor:pointer;}
|
381 |
-
.functional.is-splash .fp-controls,.functional.is-poster .fp-controls,.functional.is-splash .fp-fullscreen,.functional.is-poster .fp-fullscreen,.functional.is-splash .fp-unload,.functional.is-poster .fp-unload,.functional.is-splash .fp-time,.functional.is-poster .fp-time,.functional.is-splash .fp-embed,.functional.is-poster .fp-embed{display:none !important}
|
382 |
-
.functional.is-poster .fp-engine{top:-9999em}
|
383 |
-
.functional.is-loading .fp-waiting{display:block}
|
384 |
-
.functional.is-loading .fp-controls,.functional.is-loading .fp-time{display:none}
|
385 |
-
.functional.is-loading .fp-ui{background-position:-9999em}
|
386 |
-
.functional.is-loading video.fp-engine{position:absolute;top:-9999em}
|
387 |
-
.functional.is-seeking .fp-waiting{display:block}
|
388 |
-
.functional.is-playing{background-image:none !important;background-color:#333;}
|
389 |
-
.functional.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
390 |
-
.functional.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
391 |
-
.is-rtl.functional.is-fullscreen{left:auto !important;right:0 !important}
|
392 |
-
.functional.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
393 |
-
.functional.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
394 |
-
.functional.is-error .fp-message{display:block}
|
395 |
-
.functional.is-error object,.functional.is-error video,.functional.is-error .fp-controls,.functional.is-error .fp-time,.functional.is-error .fp-subtitle{display:none}
|
396 |
-
.functional.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
397 |
-
.functional.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
398 |
-
.functional.is-mouseout .fp-timeline{margin:0 !important}
|
399 |
-
.functional.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
400 |
-
.functional.is-mouseout .fp-fullscreen,.functional.is-mouseout .fp-unload,.functional.is-mouseout .fp-elapsed,.functional.is-mouseout .fp-remaining,.functional.is-mouseout .fp-duration,.functional.is-mouseout .fp-embed,.functional.is-mouseout .fp-volume,.functional.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
401 |
-
.functional.is-mouseover .fp-controls,.functional.fixed-controls .fp-controls{height:30px}
|
402 |
-
.functional.is-mouseover .fp-fullscreen,.functional.fixed-controls .fp-fullscreen,.functional.is-mouseover .fp-unload,.functional.fixed-controls .fp-unload,.functional.is-mouseover .fp-elapsed,.functional.fixed-controls .fp-elapsed,.functional.is-mouseover .fp-remaining,.functional.fixed-controls .fp-remaining,.functional.is-mouseover .fp-duration,.functional.fixed-controls .fp-duration,.functional.is-mouseover .fp-embed,.functional.fixed-controls .fp-embed,.functional.is-mouseover .fp-logo,.functional.fixed-controls .fp-logo,.functional.is-mouseover .fp-volume,.functional.fixed-controls .fp-volume,.functional.is-mouseover .fp-play,.functional.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
403 |
-
.functional.fixed-controls .fp-volume{display:block}
|
404 |
-
.functional.fixed-controls .fp-controls{bottom:-30px;}
|
405 |
-
.is-fullscreen.functional.fixed-controls .fp-controls{bottom:0}
|
406 |
-
.functional.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
407 |
-
.is-fullscreen.functional.fixed-controls .fp-time em{bottom:10px}
|
408 |
-
.functional.is-disabled .fp-progress{background-color:#999}
|
409 |
-
.functional.is-flash-disabled{background-color:#333;}
|
410 |
-
.functional.is-flash-disabled object.fp-engine{z-index:100}
|
411 |
-
.functional.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
412 |
-
.functional .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
413 |
-
.is-rtl.functional .fp-embed{background-position:22px -237px;left:auto;right:10px}
|
414 |
-
.functional .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
415 |
-
.functional .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
416 |
-
.is-rtl.functional .fp-embed-code{left:auto;right:40px;}
|
417 |
-
.is-rtl.functional .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
418 |
-
.functional .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
419 |
-
.functional .fp-embed-code label{display:block;color:#999}
|
420 |
-
.functional.is-embedding .fp-embed,.functional.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
421 |
-
.functional.aside-time .fp-embed{left:100px;}
|
422 |
-
.is-rtl.functional.aside-time .fp-embed{left:auto;right:100px}
|
423 |
-
.functional.aside-time .fp-embed-code{left:130px;}
|
424 |
-
.is-rtl.functional.aside-time .fp-embed-code{left:auto;right:130px}
|
425 |
-
.functional.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
426 |
-
.functional.is-long.aside-time .fp-embed{left:130px;}
|
427 |
-
.is-rtl.functional.is-long.aside-time .fp-embed{left:auto;right:130px}
|
428 |
-
.functional.no-time .fp-embed{left:10px !important;}
|
429 |
-
.is-rtl.functional.no-time .fp-embed{left:auto;right:10px !important}
|
430 |
-
.functional.is-live .fp-timeline,.functional.is-live .fp-duration,.functional.is-live .fp-remaining{display:none}
|
431 |
-
.functional .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
432 |
-
.functional .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
433 |
-
.functional .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
434 |
-
.functional .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
435 |
-
.functional .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
436 |
-
@media (-webkit-min-device-pixel-ratio: 2){.functional .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
437 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
438 |
-
100%{opacity:1}
|
439 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
440 |
-
100%{opacity:1}
|
441 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
442 |
-
100%{opacity:1}
|
443 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
444 |
-
100%{opacity:1}
|
445 |
-
}@keyframes pulse{0%{opacity:0}
|
446 |
-
100%{opacity:1}
|
447 |
-
}.functional .fp-controls{background-color:#111}
|
448 |
-
.functional .fp-timeline{background-color:#555}
|
449 |
-
.functional .fp-buffer{background-color:#eee}
|
450 |
-
.functional .fp-progress{background-color:#4da5d8}
|
451 |
-
.functional.is-touch.is-mouseover .fp-progress:before{background-color:#4da5d8}
|
452 |
-
.functional .fp-volumelevel{background-color:#fff}
|
453 |
-
.functional .fp-volumeslider{background-color:#555}
|
454 |
-
.functional .fp-timeline,.functional .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
|
455 |
-
.functional .fp-controls,.functional .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.4),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.4)),to(rgba(255,255,255,0.01)))}
|
456 |
-
.functional .fp-timeline,.functional .fp-buffer,.functional .fp-progress,.functional .fp-volumeslider,.functional .fp-volumelevel{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}
|
457 |
-
.functional.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
|
458 |
-
.functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{border-color:#eee #ccc}
|
459 |
-
.functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
|
460 |
-
.functional.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
|
461 |
-
.functional.color-alt.is-touch.is-mouseover .fp-progress:before{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
|
462 |
-
.functional.color-alt .fp-timeline,.functional.color-alt .fp-volumeslider{background-color:#111}
|
463 |
-
.functional.color-alt2 .fp-progress{background-color:#900}
|
464 |
-
.functional.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
465 |
-
.playful{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
466 |
-
.playful *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
467 |
-
.playful a:focus{outline:0}
|
468 |
-
.playful video{width:100%}
|
469 |
-
.playful.is-ipad video{-webkit-transform:translateX(-2048px);}
|
470 |
-
.is-ready.playful.is-ipad video{-webkit-transform:translateX(0)}
|
471 |
-
.playful .fp-engine,.playful .fp-ui,.playful .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
472 |
-
.playful .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
473 |
-
.playful .fp-message h2{font-size:120%;margin-bottom:1em}
|
474 |
-
.playful .fp-message p{color:#666;font-size:95%}
|
475 |
-
.playful .fp-controls{position:absolute;bottom:0;width:100%;}
|
476 |
-
.no-background.playful .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
477 |
-
.is-fullscreen.playful .fp-controls{bottom:3px}
|
478 |
-
.is-mouseover.playful .fp-controls{bottom:0}
|
479 |
-
.playful .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
480 |
-
.playful .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
481 |
-
.playful .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
482 |
-
.playful .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
483 |
-
.playful .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
484 |
-
.playful .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
485 |
-
.playful .fp-waiting p{color:#ccc;font-weight:bold}
|
486 |
-
.playful .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
487 |
-
.playful .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
488 |
-
.playful .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
489 |
-
.is-help.playful .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
490 |
-
.playful .fp-help .fp-help-section{margin:3%;direction:ltr}
|
491 |
-
.playful .fp-help .fp-help-basics{margin-top:6%}
|
492 |
-
.playful .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
493 |
-
.playful .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
494 |
-
.playful .fp-help small{font-size:90%;color:#aaa}
|
495 |
-
.playful .fp-help .fp-close{display:block}
|
496 |
-
@media (max-width: 600px){.playful .fp-help p{font-size:9px}
|
497 |
-
}.playful .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
498 |
-
.playful .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
499 |
-
.playful .fp-subtitle p:after{content:'';clear:both}
|
500 |
-
.playful .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
501 |
-
.playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
|
502 |
-
.is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-mute,.is-rtl.playful .fp-embed,.is-rtl.playful .fp-close,.is-rtl.playful .fp-play{background-image:url(img/playful_white_rtl.png)}
|
503 |
-
.color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black.png);}
|
504 |
-
.is-rtl.color-light.playful .fp-fullscreen,.is-rtl.color-light.playful .fp-unload,.is-rtl.color-light.playful .fp-mute,.is-rtl.color-light.playful .fp-embed,.is-rtl.color-light.playful .fp-close,.is-rtl.color-light.playful .fp-play{background-image:url(img/playful_black_rtl.png)}
|
505 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black@x2.png)}
|
506 |
-
.is-rtl.color-light.playful .fp-fullscreen,.is-rtl.color-light.playful .fp-unload,.is-rtl.color-light.playful .fp-mute,.is-rtl.color-light.playful .fp-embed,.is-rtl.color-light.playful .fp-close,.is-rtl.color-light.playful .fp-play{background-image:url(img/playful_black_rtl@x2.png)}
|
507 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white@x2.png)}
|
508 |
-
.is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-mute,.is-rtl.playful .fp-embed,.is-rtl.playful .fp-close,.is-rtl.playful .fp-play{background-image:url(img/playful_white_rtl@x2.png)}
|
509 |
-
}.playful .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
510 |
-
.is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
511 |
-
.is-rtl.is-splash.playful .fp-ui,.is-rtl.is-paused.playful .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
512 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
513 |
-
.is-rtl.is-splash.playful .fp-ui,.is-rtl.is-paused.playful .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
514 |
-
}.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black.png);}
|
515 |
-
.is-rtl.color-light.is-splash.playful .fp-ui,.is-rtl.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black_rtl.png)}
|
516 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black@x2.png);}
|
517 |
-
.is-rtl.color-light.is-splash.playful .fp-ui,.is-rtl.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
518 |
-
}.is-fullscreen.playful .fp-ui{background-size:auto}
|
519 |
-
.is-seeking.playful .fp-ui,.is-loading.playful .fp-ui{background-image:none}
|
520 |
-
.playful .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
|
521 |
-
.playful .fp-logo img{width:100%}
|
522 |
-
.is-embedded.playful .fp-logo{display:block}
|
523 |
-
.fixed-controls.playful .fp-logo{bottom:15px}
|
524 |
-
.playful .fp-fullscreen,.playful .fp-unload,.playful .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
525 |
-
.is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-close{right:auto;left:12px;background-position:18px -197px}
|
526 |
-
.playful .fp-unload,.playful .fp-close{background-position:14px -175px;display:none;}
|
527 |
-
.is-rtl.playful .fp-unload,.is-rtl.playful .fp-close{background-position:14px -175px}
|
528 |
-
.playful .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
529 |
-
.is-rtl.playful .fp-play{background-position:18px -24px;left:auto;right:0}
|
530 |
-
.play-button.playful .fp-play{display:block}
|
531 |
-
.is-paused.playful .fp-play{background-position:9px 7px;}
|
532 |
-
.is-rtl.is-paused.playful .fp-play{background-position:18px 7px}
|
533 |
-
.playful.is-ready.is-closeable .fp-unload{display:block}
|
534 |
-
.playful.is-ready.is-closeable .fp-fullscreen{display:none}
|
535 |
-
.playful.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
536 |
-
.is-rtl.playful.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
537 |
-
.playful.is-fullscreen .fp-unload,.playful.is-fullscreen .fp-close{display:none !important}
|
538 |
-
.playful .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
|
539 |
-
.no-volume.playful .fp-timeline{margin-right:109px}
|
540 |
-
.no-mute.playful .fp-timeline{margin-right:161px}
|
541 |
-
.no-mute.no-volume.playful .fp-timeline{margin-right:59px}
|
542 |
-
.play-button.playful .fp-timeline{margin-left:74px}
|
543 |
-
.is-rtl.playful .fp-timeline{margin:0 59px 0 199px;}
|
544 |
-
.no-volume.is-rtl.playful .fp-timeline{margin-left:109px}
|
545 |
-
.no-mute.is-rtl.playful .fp-timeline{margin-left:161px}
|
546 |
-
.no-mute.no-volume.is-rtl.playful .fp-timeline{margin-left:59px}
|
547 |
-
.play-button.is-rtl.playful .fp-timeline{margin-right:74px}
|
548 |
-
.is-long.playful .fp-timeline{margin:0 229px 0 89px;}
|
549 |
-
.no-volume.is-long.playful .fp-timeline{margin-right:139px}
|
550 |
-
.no-mute.is-long.playful .fp-timeline{margin-right:89px}
|
551 |
-
.play-button.is-long.playful .fp-timeline{margin-left:104px}
|
552 |
-
.is-rtl.is-long.playful .fp-timeline{margin:89px 0 229px 0;}
|
553 |
-
.no-volume.is-rtl.is-long.playful .fp-timeline{margin-left:139px}
|
554 |
-
.no-mute.is-rtl.is-long.playful .fp-timeline{margin-left:89px}
|
555 |
-
.play-button.is-rtl.is-long.playful .fp-timeline{margin-left:104px}
|
556 |
-
.aside-time.playful .fp-timeline,.no-time.playful .fp-timeline{margin:0 152px 0 12px}
|
557 |
-
.aside-time.no-volume.playful .fp-timeline,.no-time.no-volume.playful .fp-timeline{margin-right:62px}
|
558 |
-
.aside-time.no-mute.playful .fp-timeline,.no-time.no-mute.playful .fp-timeline{margin-right:12px}
|
559 |
-
.play-button.no-time.playful .fp-timeline,.play-button.aside-time.playful .fp-timeline{margin-left:27px}
|
560 |
-
.is-rtl.aside-time.playful .fp-timeline,.is-rtl.no-time.playful .fp-timeline{margin:0 12px 0 152px}
|
561 |
-
.is-rtl.aside-time.no-volume.playful .fp-timeline,.is-rtl.no-time.no-volume.playful .fp-timeline{margin-left:62px}
|
562 |
-
.is-rtl.aside-time.no-mute.playful .fp-timeline,.is-rtl.no-time.no-mute.playful .fp-timeline{margin-left:12px}
|
563 |
-
.is-rtl.play-button.no-time.playful .fp-timeline,.is-rtl.play-button.aside-time.playful .fp-timeline{margin-right:27px}
|
564 |
-
.playful .fp-buffer,.playful .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
565 |
-
.playful .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
566 |
-
.playful .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
567 |
-
.playful.is-touch .fp-timeline{overflow:visible}
|
568 |
-
.playful.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
569 |
-
.playful.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
570 |
-
.playful.is-touch.is-mouseover .fp-progress:after,.playful.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
571 |
-
.playful.is-touch.is-rtl.is-mouseover .fp-progress:after,.playful.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
572 |
-
.playful.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
573 |
-
.playful.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
574 |
-
.playful.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
575 |
-
.playful.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
576 |
-
.playful.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
577 |
-
.playful .fp-volume{position:absolute;top:12px;right:12px;}
|
578 |
-
.is-rtl.playful .fp-volume{right:auto;left:12px}
|
579 |
-
.playful .fp-mute{position:relative;width:38px;height:20px;float:left;top:-4.5px;cursor:pointer;background-position:-2px -99px;}
|
580 |
-
.is-rtl.playful .fp-mute{float:right;background-position:-25px -99px}
|
581 |
-
.no-mute.playful .fp-mute{display:none}
|
582 |
-
.playful .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
|
583 |
-
.is-rtl.playful .fp-volumeslider{float:right}
|
584 |
-
.no-volume.playful .fp-volumeslider{display:none}
|
585 |
-
.playful .fp-volumelevel{height:100%}
|
586 |
-
.playful .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
587 |
-
.playful .fp-time.is-inverted .fp-duration{display:none}
|
588 |
-
.playful .fp-time.is-inverted .fp-remaining{display:inline}
|
589 |
-
.playful .fp-time em{width:35px;height:11px;line-height:11px;text-align:center;position:absolute;bottom:12px}
|
590 |
-
.no-time.playful .fp-time{display:none}
|
591 |
-
.is-long.playful .fp-time em{width:65px}
|
592 |
-
.playful .fp-elapsed{left:12px;}
|
593 |
-
.play-button.playful .fp-elapsed{left:27px}
|
594 |
-
.is-rtl.playful .fp-elapsed{left:auto;right:12px;}
|
595 |
-
.play-button.is-rtl.playful .fp-elapsed{right:27px}
|
596 |
-
.playful .fp-remaining,.playful .fp-duration{right:152px;color:#eee;}
|
597 |
-
.no-volume.playful .fp-remaining,.no-volume.playful .fp-duration{right:62px}
|
598 |
-
.no-mute.playful .fp-remaining,.no-mute.playful .fp-duration{right:114px}
|
599 |
-
.no-mute.no-volume.playful .fp-remaining,.no-mute.no-volume.playful .fp-duration{right:12px}
|
600 |
-
.is-rtl.playful .fp-remaining,.is-rtl.playful .fp-duration{right:auto;left:152px;}
|
601 |
-
.no-volume.is-rtl.playful .fp-remaining,.no-volume.is-rtl.playful .fp-duration{left:62px}
|
602 |
-
.no-mute.is-rtl.playful .fp-remaining,.no-mute.is-rtl.playful .fp-duration{left:114px}
|
603 |
-
.no-mute.no-volume.is-rtl.playful .fp-remaining,.no-mute.no-volume.is-rtl.playful .fp-duration{left:12px}
|
604 |
-
.playful .fp-remaining{display:none}
|
605 |
-
.playful.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
606 |
-
.playful.color-light .fp-remaining,.playful.color-light .fp-duration{color:#666}
|
607 |
-
.playful.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
|
608 |
-
.playful.aside-time .fp-time strong,.playful.aside-time .fp-time em{position:static}
|
609 |
-
.playful.aside-time .fp-time .fp-elapsed{margin-right:12px;}
|
610 |
-
.is-rtl.playful.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:12px}
|
611 |
-
.playful.is-long.aside-time .fp-time{width:130px}
|
612 |
-
.playful.is-splash,.playful.is-poster{cursor:pointer;}
|
613 |
-
.playful.is-splash .fp-controls,.playful.is-poster .fp-controls,.playful.is-splash .fp-fullscreen,.playful.is-poster .fp-fullscreen,.playful.is-splash .fp-unload,.playful.is-poster .fp-unload,.playful.is-splash .fp-time,.playful.is-poster .fp-time,.playful.is-splash .fp-embed,.playful.is-poster .fp-embed{display:none !important}
|
614 |
-
.playful.is-poster .fp-engine{top:-9999em}
|
615 |
-
.playful.is-loading .fp-waiting{display:block}
|
616 |
-
.playful.is-loading .fp-controls,.playful.is-loading .fp-time{display:none}
|
617 |
-
.playful.is-loading .fp-ui{background-position:-9999em}
|
618 |
-
.playful.is-loading video.fp-engine{position:absolute;top:-9999em}
|
619 |
-
.playful.is-seeking .fp-waiting{display:block}
|
620 |
-
.playful.is-playing{background-image:none !important;background-color:#333;}
|
621 |
-
.playful.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
622 |
-
.playful.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
623 |
-
.is-rtl.playful.is-fullscreen{left:auto !important;right:0 !important}
|
624 |
-
.playful.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
625 |
-
.playful.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
626 |
-
.playful.is-error .fp-message{display:block}
|
627 |
-
.playful.is-error object,.playful.is-error video,.playful.is-error .fp-controls,.playful.is-error .fp-time,.playful.is-error .fp-subtitle{display:none}
|
628 |
-
.playful.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
629 |
-
.playful.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
630 |
-
.playful.is-mouseout .fp-timeline{margin:0 !important}
|
631 |
-
.playful.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
632 |
-
.playful.is-mouseout .fp-fullscreen,.playful.is-mouseout .fp-unload,.playful.is-mouseout .fp-elapsed,.playful.is-mouseout .fp-remaining,.playful.is-mouseout .fp-duration,.playful.is-mouseout .fp-embed,.playful.is-mouseout .fp-volume,.playful.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
633 |
-
.playful.is-mouseover .fp-controls,.playful.fixed-controls .fp-controls{height:35px}
|
634 |
-
.playful.is-mouseover .fp-fullscreen,.playful.fixed-controls .fp-fullscreen,.playful.is-mouseover .fp-unload,.playful.fixed-controls .fp-unload,.playful.is-mouseover .fp-elapsed,.playful.fixed-controls .fp-elapsed,.playful.is-mouseover .fp-remaining,.playful.fixed-controls .fp-remaining,.playful.is-mouseover .fp-duration,.playful.fixed-controls .fp-duration,.playful.is-mouseover .fp-embed,.playful.fixed-controls .fp-embed,.playful.is-mouseover .fp-logo,.playful.fixed-controls .fp-logo,.playful.is-mouseover .fp-volume,.playful.fixed-controls .fp-volume,.playful.is-mouseover .fp-play,.playful.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
635 |
-
.playful.fixed-controls .fp-volume{display:block}
|
636 |
-
.playful.fixed-controls .fp-controls{bottom:-35px;}
|
637 |
-
.is-fullscreen.playful.fixed-controls .fp-controls{bottom:0}
|
638 |
-
.playful.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
639 |
-
.is-fullscreen.playful.fixed-controls .fp-time em{bottom:12px}
|
640 |
-
.playful.is-disabled .fp-progress{background-color:#999}
|
641 |
-
.playful.is-flash-disabled{background-color:#333;}
|
642 |
-
.playful.is-flash-disabled object.fp-engine{z-index:100}
|
643 |
-
.playful.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
644 |
-
.playful .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
645 |
-
.is-rtl.playful .fp-embed{background-position:22px -237px;left:auto;right:12px}
|
646 |
-
.playful .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
647 |
-
.playful .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
648 |
-
.is-rtl.playful .fp-embed-code{left:auto;right:40px;}
|
649 |
-
.is-rtl.playful .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
650 |
-
.playful .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
651 |
-
.playful .fp-embed-code label{display:block;color:#999}
|
652 |
-
.playful.is-embedding .fp-embed,.playful.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
653 |
-
.playful.aside-time .fp-embed{left:110px;}
|
654 |
-
.is-rtl.playful.aside-time .fp-embed{left:auto;right:110px}
|
655 |
-
.playful.aside-time .fp-embed-code{left:140px;}
|
656 |
-
.is-rtl.playful.aside-time .fp-embed-code{left:auto;right:140px}
|
657 |
-
.playful.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
658 |
-
.playful.is-long.aside-time .fp-embed{left:130px;}
|
659 |
-
.is-rtl.playful.is-long.aside-time .fp-embed{left:auto;right:130px}
|
660 |
-
.playful.no-time .fp-embed{left:12px !important;}
|
661 |
-
.is-rtl.playful.no-time .fp-embed{left:auto;right:12px !important}
|
662 |
-
.playful.is-live .fp-timeline,.playful.is-live .fp-duration,.playful.is-live .fp-remaining{display:none}
|
663 |
-
.playful .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
664 |
-
.playful .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
665 |
-
.playful .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
666 |
-
.playful .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
667 |
-
.playful .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
668 |
-
@media (-webkit-min-device-pixel-ratio: 2){.playful .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
669 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
670 |
-
100%{opacity:1}
|
671 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
672 |
-
100%{opacity:1}
|
673 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
674 |
-
100%{opacity:1}
|
675 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
676 |
-
100%{opacity:1}
|
677 |
-
}@keyframes pulse{0%{opacity:0}
|
678 |
-
100%{opacity:1}
|
679 |
-
}.playful .fp-controls{background-color:#111}
|
680 |
-
.playful .fp-timeline,.playful .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
|
681 |
-
.playful .fp-buffer{background-color:#eee}
|
682 |
-
.playful .fp-progress{background-color:#008000}
|
683 |
-
.playful.is-touch.is-mouseover .fp-progress:before{background-color:#008000}
|
684 |
-
.playful .fp-volumelevel{background-color:#fff}
|
685 |
-
.playful .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
|
686 |
-
.is-rtl.playful .fp-mute{background-position:0 -79px}
|
687 |
-
.is-muted.playful .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
|
688 |
-
.playful .fp-play{background-position:9px -20px;}
|
689 |
-
.is-rtl.playful .fp-play{background-position:18px -20px}
|
690 |
-
.is-paused.playful .fp-play{background-position:9px 11px;}
|
691 |
-
.is-rtl.is-paused.playful .fp-play{background-position:18px 11px}
|
692 |
-
.playful .fp-timeline,.playful .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
|
693 |
-
.playful .fp-controls,.playful .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
|
694 |
-
.playful .fp-timeline,.playful .fp-progress,.playful .fp-buffer,.playful .fp-volumeslider,.playful .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
|
695 |
-
.playful.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
|
696 |
-
.playful.color-light .fp-timeline,.playful.color-light .fp-volumeslider{border-color:#eee #ccc}
|
697 |
-
.playful.color-alt .fp-progress,.playful.color-alt .fp-volumelevel{background-color:#111}
|
698 |
-
.playful.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#111}
|
699 |
-
.playful.color-alt2 .fp-progress,.playful.color-alt2 .fp-volumelevel{background-color:#900}
|
700 |
-
.playful.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/skin/functional.css
DELETED
@@ -1,232 +0,0 @@
|
|
1 |
-
.flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
2 |
-
.flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
3 |
-
.flowplayer a:focus{outline:0}
|
4 |
-
.flowplayer video{width:100%}
|
5 |
-
.flowplayer.is-ipad video{-webkit-transform:translateX(-2048px);}
|
6 |
-
.is-ready.flowplayer.is-ipad video{-webkit-transform:translateX(0)}
|
7 |
-
.flowplayer .fp-engine,.flowplayer .fp-ui,.flowplayer .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
8 |
-
.flowplayer .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
9 |
-
.flowplayer .fp-message h2{font-size:120%;margin-bottom:1em}
|
10 |
-
.flowplayer .fp-message p{color:#666;font-size:95%}
|
11 |
-
.flowplayer .fp-controls{position:absolute;bottom:0;width:100%;}
|
12 |
-
.no-background.flowplayer .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
13 |
-
.is-fullscreen.flowplayer .fp-controls{bottom:3px}
|
14 |
-
.is-mouseover.flowplayer .fp-controls{bottom:0}
|
15 |
-
.flowplayer .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
16 |
-
.flowplayer .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
17 |
-
.flowplayer .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
18 |
-
.flowplayer .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
19 |
-
.flowplayer .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
20 |
-
.flowplayer .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
21 |
-
.flowplayer .fp-waiting p{color:#ccc;font-weight:bold}
|
22 |
-
.flowplayer .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
23 |
-
.flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
24 |
-
.flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
25 |
-
.is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
26 |
-
.flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
|
27 |
-
.flowplayer .fp-help .fp-help-basics{margin-top:6%}
|
28 |
-
.flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
29 |
-
.flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
30 |
-
.flowplayer .fp-help small{font-size:90%;color:#aaa}
|
31 |
-
.flowplayer .fp-help .fp-close{display:block}
|
32 |
-
@media (max-width: 600px){.flowplayer .fp-help p{font-size:9px}
|
33 |
-
}.flowplayer .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
34 |
-
.flowplayer .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
35 |
-
.flowplayer .fp-subtitle p:after{content:'';clear:both}
|
36 |
-
.flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
37 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
|
38 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl.png)}
|
39 |
-
.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
|
40 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl.png)}
|
41 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
|
42 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl@x2.png)}
|
43 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
|
44 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl@x2.png)}
|
45 |
-
}.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
46 |
-
.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
47 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
48 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
49 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
50 |
-
}.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
|
51 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
|
52 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
|
53 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
54 |
-
}.is-fullscreen.flowplayer .fp-ui{background-size:auto}
|
55 |
-
.is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
|
56 |
-
.flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
|
57 |
-
.flowplayer .fp-logo img{width:100%}
|
58 |
-
.is-embedded.flowplayer .fp-logo{display:block}
|
59 |
-
.fixed-controls.flowplayer .fp-logo{bottom:15px}
|
60 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
61 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:10px;background-position:18px -197px}
|
62 |
-
.flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
|
63 |
-
.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
|
64 |
-
.flowplayer .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
65 |
-
.is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
|
66 |
-
.play-button.flowplayer .fp-play{display:block}
|
67 |
-
.is-paused.flowplayer .fp-play{background-position:9px 7px;}
|
68 |
-
.is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
|
69 |
-
.flowplayer.is-ready.is-closeable .fp-unload{display:block}
|
70 |
-
.flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
|
71 |
-
.flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
72 |
-
.is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
73 |
-
.flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
|
74 |
-
.flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
|
75 |
-
.no-volume.flowplayer .fp-timeline{margin-right:75px}
|
76 |
-
.no-mute.flowplayer .fp-timeline{margin-right:155px}
|
77 |
-
.no-mute.no-volume.flowplayer .fp-timeline{margin-right:55px}
|
78 |
-
.play-button.flowplayer .fp-timeline{margin-left:72px}
|
79 |
-
.is-rtl.flowplayer .fp-timeline{margin:0 55px 0 165px;}
|
80 |
-
.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:75px}
|
81 |
-
.no-mute.is-rtl.flowplayer .fp-timeline{margin-left:155px}
|
82 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:55px}
|
83 |
-
.play-button.is-rtl.flowplayer .fp-timeline{margin-right:72px}
|
84 |
-
.is-long.flowplayer .fp-timeline{margin:0 195px 0 85px;}
|
85 |
-
.no-volume.is-long.flowplayer .fp-timeline{margin-right:105px}
|
86 |
-
.no-mute.is-long.flowplayer .fp-timeline{margin-right:85px}
|
87 |
-
.play-button.is-long.flowplayer .fp-timeline{margin-left:102px}
|
88 |
-
.is-rtl.is-long.flowplayer .fp-timeline{margin:85px 0 195px 0;}
|
89 |
-
.no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:105px}
|
90 |
-
.no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:85px}
|
91 |
-
.play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:102px}
|
92 |
-
.aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 120px 0 10px}
|
93 |
-
.aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:30px}
|
94 |
-
.aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:10px}
|
95 |
-
.play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
|
96 |
-
.is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 10px 0 120px}
|
97 |
-
.is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:30px}
|
98 |
-
.is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:10px}
|
99 |
-
.is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
|
100 |
-
.flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
101 |
-
.flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
102 |
-
.flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
103 |
-
.flowplayer.is-touch .fp-timeline{overflow:visible}
|
104 |
-
.flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
105 |
-
.flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
106 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
107 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
108 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
109 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
110 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
111 |
-
.flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
112 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
113 |
-
.flowplayer .fp-volume{position:absolute;top:11px;right:10px;}
|
114 |
-
.is-rtl.flowplayer .fp-volume{right:auto;left:10px}
|
115 |
-
.flowplayer .fp-mute{position:relative;width:10px;height:15px;float:left;top:-3.5px;cursor:pointer;background-position:-2px -99px;}
|
116 |
-
.is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
|
117 |
-
.no-mute.flowplayer .fp-mute{display:none}
|
118 |
-
.flowplayer .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
|
119 |
-
.is-rtl.flowplayer .fp-volumeslider{float:right}
|
120 |
-
.no-volume.flowplayer .fp-volumeslider{display:none}
|
121 |
-
.flowplayer .fp-volumelevel{height:100%}
|
122 |
-
.flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
123 |
-
.flowplayer .fp-time.is-inverted .fp-duration{display:none}
|
124 |
-
.flowplayer .fp-time.is-inverted .fp-remaining{display:inline}
|
125 |
-
.flowplayer .fp-time em{width:35px;height:10px;line-height:10px;text-align:center;position:absolute;bottom:10px}
|
126 |
-
.no-time.flowplayer .fp-time{display:none}
|
127 |
-
.is-long.flowplayer .fp-time em{width:65px}
|
128 |
-
.flowplayer .fp-elapsed{left:10px;}
|
129 |
-
.play-button.flowplayer .fp-elapsed{left:27px}
|
130 |
-
.is-rtl.flowplayer .fp-elapsed{left:auto;right:10px;}
|
131 |
-
.play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
|
132 |
-
.flowplayer .fp-remaining,.flowplayer .fp-duration{right:120px;color:#eee;}
|
133 |
-
.no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:30px}
|
134 |
-
.no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:110px}
|
135 |
-
.no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:10px}
|
136 |
-
.is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:120px;}
|
137 |
-
.no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:30px}
|
138 |
-
.no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:110px}
|
139 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:10px}
|
140 |
-
.flowplayer .fp-remaining{display:none}
|
141 |
-
.flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
142 |
-
.flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
|
143 |
-
.flowplayer.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
|
144 |
-
.flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
|
145 |
-
.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:10px;}
|
146 |
-
.is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:10px}
|
147 |
-
.flowplayer.is-long.aside-time .fp-time{width:130px}
|
148 |
-
.flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
|
149 |
-
.flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
|
150 |
-
.flowplayer.is-poster .fp-engine{top:-9999em}
|
151 |
-
.flowplayer.is-loading .fp-waiting{display:block}
|
152 |
-
.flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
|
153 |
-
.flowplayer.is-loading .fp-ui{background-position:-9999em}
|
154 |
-
.flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
|
155 |
-
.flowplayer.is-seeking .fp-waiting{display:block}
|
156 |
-
.flowplayer.is-playing{background-image:none !important;background-color:#333;}
|
157 |
-
.flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
158 |
-
.flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
159 |
-
.is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
|
160 |
-
.flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
161 |
-
.flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
162 |
-
.flowplayer.is-error .fp-message{display:block}
|
163 |
-
.flowplayer.is-error object,.flowplayer.is-error video,.flowplayer.is-error .fp-controls,.flowplayer.is-error .fp-time,.flowplayer.is-error .fp-subtitle{display:none}
|
164 |
-
.flowplayer.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
165 |
-
.flowplayer.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
166 |
-
.flowplayer.is-mouseout .fp-timeline{margin:0 !important}
|
167 |
-
.flowplayer.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
168 |
-
.flowplayer.is-mouseout .fp-fullscreen,.flowplayer.is-mouseout .fp-unload,.flowplayer.is-mouseout .fp-elapsed,.flowplayer.is-mouseout .fp-remaining,.flowplayer.is-mouseout .fp-duration,.flowplayer.is-mouseout .fp-embed,.flowplayer.is-mouseout .fp-volume,.flowplayer.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
169 |
-
.flowplayer.is-mouseover .fp-controls,.flowplayer.fixed-controls .fp-controls{height:30px}
|
170 |
-
.flowplayer.is-mouseover .fp-fullscreen,.flowplayer.fixed-controls .fp-fullscreen,.flowplayer.is-mouseover .fp-unload,.flowplayer.fixed-controls .fp-unload,.flowplayer.is-mouseover .fp-elapsed,.flowplayer.fixed-controls .fp-elapsed,.flowplayer.is-mouseover .fp-remaining,.flowplayer.fixed-controls .fp-remaining,.flowplayer.is-mouseover .fp-duration,.flowplayer.fixed-controls .fp-duration,.flowplayer.is-mouseover .fp-embed,.flowplayer.fixed-controls .fp-embed,.flowplayer.is-mouseover .fp-logo,.flowplayer.fixed-controls .fp-logo,.flowplayer.is-mouseover .fp-volume,.flowplayer.fixed-controls .fp-volume,.flowplayer.is-mouseover .fp-play,.flowplayer.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
171 |
-
.flowplayer.fixed-controls .fp-volume{display:block}
|
172 |
-
.flowplayer.fixed-controls .fp-controls{bottom:-30px;}
|
173 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-controls{bottom:0}
|
174 |
-
.flowplayer.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
175 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:10px}
|
176 |
-
.flowplayer.is-disabled .fp-progress{background-color:#999}
|
177 |
-
.flowplayer.is-flash-disabled{background-color:#333;}
|
178 |
-
.flowplayer.is-flash-disabled object.fp-engine{z-index:100}
|
179 |
-
.flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
180 |
-
.flowplayer .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
181 |
-
.is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:10px}
|
182 |
-
.flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
183 |
-
.flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
184 |
-
.is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
|
185 |
-
.is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
186 |
-
.flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
187 |
-
.flowplayer .fp-embed-code label{display:block;color:#999}
|
188 |
-
.flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
189 |
-
.flowplayer.aside-time .fp-embed{left:100px;}
|
190 |
-
.is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:100px}
|
191 |
-
.flowplayer.aside-time .fp-embed-code{left:130px;}
|
192 |
-
.is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:130px}
|
193 |
-
.flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
194 |
-
.flowplayer.is-long.aside-time .fp-embed{left:130px;}
|
195 |
-
.is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
|
196 |
-
.flowplayer.no-time .fp-embed{left:10px !important;}
|
197 |
-
.is-rtl.flowplayer.no-time .fp-embed{left:auto;right:10px !important}
|
198 |
-
.flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
|
199 |
-
.flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
200 |
-
.flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
201 |
-
.flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
202 |
-
.flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
203 |
-
.flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
204 |
-
@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
205 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
206 |
-
100%{opacity:1}
|
207 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
208 |
-
100%{opacity:1}
|
209 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
210 |
-
100%{opacity:1}
|
211 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
212 |
-
100%{opacity:1}
|
213 |
-
}@keyframes pulse{0%{opacity:0}
|
214 |
-
100%{opacity:1}
|
215 |
-
}.flowplayer .fp-controls{background-color:#111}
|
216 |
-
.flowplayer .fp-timeline{background-color:#555}
|
217 |
-
.flowplayer .fp-buffer{background-color:#eee}
|
218 |
-
.flowplayer .fp-progress{background-color:#4da5d8}
|
219 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#4da5d8}
|
220 |
-
.flowplayer .fp-volumelevel{background-color:#fff}
|
221 |
-
.flowplayer .fp-volumeslider{background-color:#555}
|
222 |
-
.flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
|
223 |
-
.flowplayer .fp-controls,.flowplayer .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.4),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.4)),to(rgba(255,255,255,0.01)))}
|
224 |
-
.flowplayer .fp-timeline,.flowplayer .fp-buffer,.flowplayer .fp-progress,.flowplayer .fp-volumeslider,.flowplayer .fp-volumelevel{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}
|
225 |
-
.flowplayer.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
|
226 |
-
.flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
|
227 |
-
.flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
|
228 |
-
.flowplayer.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
|
229 |
-
.flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
|
230 |
-
.flowplayer.color-alt .fp-timeline,.flowplayer.color-alt .fp-volumeslider{background-color:#111}
|
231 |
-
.flowplayer.color-alt2 .fp-progress{background-color:#900}
|
232 |
-
.flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/skin/icons/flowplayer.eot
ADDED
Binary file
|
lib/skin/icons/flowplayer.svg
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by IcoMoon</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="icomoon" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="819.2" descent="-204.8" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " horiz-adv-x="256" d="" />
|
10 |
+
<glyph unicode="" glyph-name="uniE001" d="M701.44 75.264q11.264-20.48 10.24-34.816 0-4.096-1.024-6.144 0-5.12-4.096-11.264-4.096-7.168-12.288-13.312-13.312-8.192-35.84-8.192h-292.864q-17.408 0-30.72 5.12-14.336 8.192-20.48 21.504-2.048 8.192-2.048 12.288-1.024 14.336 10.24 34.816l146.432 253.952q2.048 4.096 4.608 7.68t4.608 6.656q18.432 19.456 38.912 16.384h2.048q2.048-1.024 4.096-1.536t4.096-1.536 3.584-1.536 3.584-2.56q11.264-8.192 20.48-23.552zM809.984 597.504q24.576 0 42.496-17.408t17.92-43.008v-370.688q0-25.6-17.92-43.008t-42.496-17.408h-63.488q-2.048 4.096-3.072 5.12l-146.432 254.976q-31.744 54.272-84.992 54.272t-84.992-54.272l-146.432-254.976q-1.024-1.024-3.072-5.12h-63.488q-24.576 0-42.496 17.408t-17.92 43.008v370.688q0 25.6 17.92 43.008t42.496 17.408h595.968zM691.2 105.984l-136.192 235.52z" />
|
11 |
+
<glyph unicode="" glyph-name="uniE002" d="M181.248 44.544l87.040 326.656q3.072 12.288 12.288 20.48t19.968 11.264 22.528 0.512 20.992-11.776l239.616-239.616q9.216-9.216 11.776-20.992t-0.512-22.528-11.264-19.968-20.48-12.288l-326.656-87.040q-12.288-3.072-24.064 0t-19.968 11.264-11.264 19.968 0 24.064zM842.752 595.456l-87.040-326.656q-3.072-12.288-12.288-20.48t-19.968-11.264-22.528-0.512-20.992 11.776l-239.616 239.616q-9.216 9.216-11.776 20.992t0.512 22.528 11.264 19.968 20.48 12.288l326.656 87.040q12.288 3.072 24.064 0t19.968-11.264 11.264-19.968 0-24.064z" />
|
12 |
+
<glyph unicode="" glyph-name="uniE003" d="M465.92 12.8q-31.744 0-50.176 26.624l-180.224 316.416q-14.336 21.504-10.24 47.104t25.6 39.936q20.48 14.336 46.080 10.24t39.936-25.6l122.88-186.368 320.512 460.8q10.24 18.432 28.16 25.088t32.256-1.536q17.408-10.24 23.040-26.624t-5.632-35.84l-337.92-618.496q-8.192-14.336-21.504-22.528t-28.672-9.216h-4.096z" />
|
13 |
+
<glyph unicode="" glyph-name="uniE004" d="M510.976 667.136q1.024 18.432 8.704 34.304t19.968 28.16 28.16 18.944 34.304 6.656q36.864-1.024 62.976-27.136t26.112-62.976q0-20.48-8.192-37.888t-22.528-29.696q-6.144-6.144-14.848-13.824t-8.704-15.872q0-9.216 5.12-16.384t13.312-12.8 17.92-8.192 18.944-0.512l116.736 17.408 20.48-192.512q2.048-21.504-12.288-37.376t-35.84-15.872h-6.144q-31.744 0-51.2 22.528-25.6 30.72-67.584 30.72-19.456 0-36.352-7.68t-29.184-20.48-18.944-30.72-5.632-37.376q2.048-32.768 26.624-57.344t58.368-25.6q21.504-2.048 39.936 6.656t32.768 23.040q18.432 23.552 50.176 23.552h7.168q21.504 0 35.328-15.872t11.776-37.376l-19.456-167.936h-470.016q-1.024 0-1.024 1.024l18.432 152.576q1.024 11.264-2.048 23.552t-10.24 22.016-17.408 15.872-21.504 6.144-20.48-8.704-16.384-16.896q-25.6-27.648-65.536-27.648-36.864 0-63.488 26.112t-26.624 62.976q0 18.432 6.656 34.304t18.432 28.16 27.648 19.968 34.304 7.68q41.984 2.048 67.584-27.648 8.192-8.192 17.408-16.896t20.48-8.704h1.024q11.264 0 21.504 6.144t16.896 15.872 10.24 22.016 2.56 23.552l-19.456 178.176 174.080-19.456q8.192-1.024 17.92 1.536t17.408 7.68 12.8 12.8 5.12 16.896v1.024q0 8.192-8.704 15.872t-14.848 13.824q-30.72 25.6-30.72 69.632z" />
|
14 |
+
<glyph unicode="" glyph-name="uniE005" d="M176.128 166.4q41.984-7.168 71.168-36.352t36.352-71.168q3.072-11.264-5.12-19.456-6.144-8.192-18.432-8.192h-88.064q-10.24 0-16.896 6.656t-6.656 16.896v88.064q0 12.288 8.192 18.432 8.192 8.192 19.456 5.12zM172.032 279.040q46.080 0 87.040-17.408t71.68-48.128 48.128-71.68 17.408-87.040q0-12.288-8.192-20.48t-20.48-8.192q-11.264 0-19.456 8.192t-8.192 20.48q0 34.816-13.312 65.024t-36.352 53.248-53.248 36.352-65.024 13.312q-12.288 0-20.48 8.192t-8.192 20.48q0 11.264 8.192 19.456t20.48 8.192zM172.032 394.752q70.656 0 132.096-26.624t107.52-72.704 72.704-108.032 26.624-132.608q0-12.288-8.192-20.48t-19.456-8.192q-12.288 0-20.48 8.192t-8.192 20.48q0 58.368-22.528 109.568t-60.928 89.6-89.6 60.928-109.568 22.528q-12.288 0-20.48 8.704t-8.192 19.968 8.192 19.968 20.48 8.704zM779.264 572.928q33.792 0 57.344-23.552t23.552-57.344v-322.56q0-33.792-23.552-57.344t-57.344-23.552h-214.016q-6.144 71.68-36.352 135.168t-78.848 111.616-112.128 77.824-136.192 35.84v43.008q0 33.792 24.064 57.344t56.832 23.552h496.64z" />
|
15 |
+
<glyph unicode="" glyph-name="uniE006" d="M820.224 100.864q-16.384-12.288-35.84-19.456t-41.984-7.168h-460.8q-22.528 0-41.984 7.168t-35.84 19.456l218.112 189.44 41.984-35.84q19.456-18.432 48.128-18.432 27.648 0 48.128 18.432l41.984 35.84zM390.144 317.952l-215.040-187.392q-21.504 32.768-21.504 71.68v235.52q0 37.888 19.456 68.608zM200.704 537.088q33.792 28.672 80.896 28.672h460.8q47.104 0 80.896-28.672l-289.792-251.904q-9.216-8.192-21.504-8.192t-21.504 8.192zM633.856 317.952l217.088 188.416q19.456-30.72 19.456-68.608v-235.52q0-38.912-21.504-71.68z" />
|
16 |
+
<glyph unicode="" glyph-name="uniE007" d="M223.232 564.736q0 29.696 9.728 50.176t26.624 30.208 39.424 7.68 48.128-16.384l422.912-244.736q25.6-15.36 38.4-33.792t12.8-37.888-12.8-37.888-38.4-33.792l-422.912-244.736q-25.6-14.336-48.128-16.384t-39.424 7.68-26.624 30.208-9.728 50.176v489.472z" />
|
17 |
+
<glyph unicode="" glyph-name="uniE008" d="M340.992-7.68q-41.984 0-71.168 29.184t-29.184 72.192v452.608q0 43.008 29.184 72.192t71.168 29.184q43.008 0 72.192-29.184t29.184-72.192v-452.608q0-43.008-29.184-72.192t-72.192-29.184zM683.008-7.68q-43.008 0-72.192 29.184t-29.184 72.192v452.608q0 43.008 29.184 72.192t72.192 29.184q41.984 0 71.168-29.184t29.184-72.192v-452.608q0-43.008-29.184-72.192t-71.168-29.184z" />
|
18 |
+
<glyph unicode="" glyph-name="uniE009" d="M742.4 357.888q17.408 12.288 17.408 33.28t-17.408 33.28l-150.528 110.592q-9.216 6.144-18.944 1.536t-9.728-15.872v-71.68h-25.6q-62.464 0-114.688-23.552t-87.552-64.512-51.712-95.232-6.144-115.712q4.096-26.624 14.336-53.248 2.048-5.12 7.68-4.608t6.656 6.656q6.144 46.080 28.16 86.528t55.808 69.632 76.288 46.080 90.624 16.896h6.144v-60.416q0-11.264 9.728-15.872t18.944 1.536l150.528 114.688zM772.096 652.8q29.696 0 51.2-21.504t21.504-51.2v-520.192q0-29.696-21.504-51.2t-51.2-21.504h-520.192q-29.696 0-51.2 21.504t-21.504 51.2v520.192q0 29.696 21.504 51.2t51.2 21.504h520.192z" />
|
19 |
+
<glyph unicode="" glyph-name="uniE00A" d="M637.952 392.704h-74.752v40.96q0 17.408 4.608 25.6t28.16 8.192h41.984v81.92h-66.56q-59.392 0-83.456-28.16t-24.064-79.36v-49.152h-49.152v-81.92h49.152v-239.616h99.328v239.616h66.56zM512 678.4q73.728 0 139.264-28.16t114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16-139.264 28.16-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16z" />
|
20 |
+
<glyph unicode="" glyph-name="uniE00B" d="M451.584 599.552q9.216 8.192 19.456 9.216t19.456-2.56 15.36-12.288 6.144-19.968v-507.904q0-11.264-6.144-19.968t-15.36-12.288-19.456-2.56-19.456 9.216l-136.192 124.928h-58.368q-31.744 0-59.904 12.288t-49.152 33.28-33.28 49.152-12.288 59.904 12.288 59.904 33.28 49.152 49.152 33.28 59.904 12.288h58.368l136.192 124.928z" />
|
21 |
+
<glyph unicode="" glyph-name="uniE00C" d="M705.536 392.704q27.648 20.48 49.152 50.176-26.624-11.264-56.32-15.36 15.36 9.216 26.112 23.040t16.896 31.232q-29.696-17.408-61.44-24.576-28.672 30.72-70.656 30.72-20.48 0-37.888-7.68t-30.208-20.48-20.48-30.72-7.68-37.376v-11.264t2.048-11.264q-61.44 3.072-112.64 30.208t-87.040 71.168q-5.12-11.264-8.704-23.040t-3.584-26.112q0-24.576 11.264-45.568t31.744-34.304q-23.552 1.024-44.032 12.288v-1.024q0-35.84 22.016-61.952t54.784-33.28q-11.264-3.072-24.576-3.072h-9.728t-8.704 2.048q9.216-29.696 33.792-48.128t56.32-19.456q-24.576-19.456-55.296-30.208t-64.512-10.752h-11.776t-10.752 1.024q31.744-20.48 69.12-31.744t78.336-11.264q66.56 0 117.76 25.088t86.528 64.512 53.248 88.064 17.92 96.768q0 8.192-1.024 12.288zM512 678.4q74.752 0 139.776-28.16t113.664-76.8 76.8-114.176 28.16-139.264q0-74.752-28.16-139.776t-76.8-113.664-113.664-76.8-139.776-28.16q-73.728 0-139.264 28.16t-114.176 76.8-76.8 113.664-28.16 139.776q0 73.728 28.16 139.264t76.8 114.176 114.176 76.8 139.264 28.16z" />
|
22 |
+
<glyph unicode="" glyph-name="uniE00D" d="M907.264 231.936q14.336-14.336 14.336-34.304t-14.336-34.304-33.792-14.336q-18.432 0-34.816 14.336l-88.064 88.064-88.064-88.064q-14.336-14.336-33.792-14.336-18.432 0-34.816 14.336-14.336 14.336-14.336 34.304t14.336 34.304l89.088 88.064-89.088 88.064q-14.336 14.336-14.336 34.304t14.336 34.304 34.304 14.336 34.304-14.336l88.064-88.064 88.064 88.064q14.336 14.336 34.304 14.336t34.304-14.336 14.336-34.304-14.336-34.304l-88.064-88.064zM451.584 599.552q9.216 8.192 19.456 9.216t19.456-2.56 15.36-12.288 6.144-19.968v-507.904q0-11.264-6.144-19.968t-15.36-12.288-19.456-2.56-19.456 9.216l-136.192 124.928h-58.368q-31.744 0-59.904 12.288t-49.152 33.28-33.28 49.152-12.288 59.904 12.288 59.904 33.28 49.152 49.152 33.28 59.904 12.288h58.368l136.192 124.928z" />
|
23 |
+
<glyph unicode="" glyph-name="uniE00E" d="M733.184 446.976q19.456 19.456 19.456 46.592t-19.456 47.616q-21.504 19.456-47.104 19.456t-47.104-19.456l-58.368-59.392q-27.648-27.648-17.408-63.488l25.6 25.6q9.216 10.24 23.040 10.24t24.064-10.24 10.24-24.064-10.24-23.040l-25.6-25.6q35.84-10.24 63.488 17.408l59.392 58.368zM443.392 158.208q27.648 27.648 17.408 63.488l-25.6-25.6q-9.216-9.216-23.552-9.216-13.312 0-23.552 9.216-10.24 10.24-10.24 24.064t10.24 23.040l25.6 25.6q-5.12 1.024-8.704 1.536t-7.68 0.512q-28.672 0-47.104-19.456l-59.392-58.368q-19.456-19.456-19.456-46.592t19.456-47.616q20.48-19.456 47.616-19.456t46.592 19.456l58.368 59.392zM780.288 588.288q19.456-19.456 29.184-44.032t9.728-50.176-9.728-50.176-29.184-44.032l-59.392-59.392q-19.456-19.456-43.52-29.184t-50.688-9.728q-35.84 0-66.56 18.432l-48.128-48.128q22.528-37.888 17.408-82.944t-37.888-77.824l-59.392-59.392q-19.456-19.456-44.032-29.184t-50.176-9.728-50.176 9.728-44.032 29.184-29.184 44.032-9.728 50.176 9.728 50.176 29.184 44.032l59.392 59.392q32.768 32.768 77.824 37.888t82.944-17.408l48.128 48.128q-22.528 37.888-17.408 82.944t37.888 77.824l59.392 59.392q19.456 19.456 44.032 29.184t50.176 9.728 50.176-9.728 44.032-29.184z" />
|
24 |
+
<glyph unicode="" glyph-name="uniE00F" d="M799.744 126.464q19.456-20.48 19.456-47.616t-19.456-46.592-47.104-19.456q-12.288 0-24.576 4.608t-22.528 14.848l-193.536 193.536-193.536-193.536q-10.24-10.24-22.528-14.848t-24.576-4.608q-27.648 0-47.104 19.456t-19.456 46.592 19.456 47.616l193.536 193.536-193.536 193.536q-19.456 20.48-19.456 47.616t19.456 46.592 46.592 19.456 47.616-19.456l193.536-193.536 193.536 193.536q20.48 19.456 47.616 19.456t46.592-19.456 19.456-46.592-19.456-47.616l-193.536-193.536z" />
|
25 |
+
<glyph unicode="" glyph-name="uniE010" d="M194.56 256.512q-27.648 0-47.104 19.456t-19.456 47.104q0 28.672 19.456 48.128t47.104 19.456q28.672 0 48.128-19.456t19.456-48.128q0-27.648-19.456-47.104t-48.128-19.456zM194.56 380.416q-23.552 0-39.936-16.896t-16.384-40.448 16.384-39.936 39.936-16.384 40.448 16.384 16.896 39.936-16.896 40.448-40.448 16.896zM178.176 344.576q0 7.168 7.168 4.096l36.864-20.48q6.144-5.12 0-9.216l-36.864-20.48q-7.168-4.096-7.168 4.096v41.984zM324.608 364.032q-4.096 2.048-7.168 2.048-9.216 0-9.216-10.24v-7.168h14.336v-16.384h-14.336v-56.32h-20.48v56.32h-11.264v16.384h11.264v8.192q0 25.6 25.6 25.6 8.192 0 11.264-2.048v-16.384zM352.256 275.968h-20.48v105.472h20.48v-105.472zM394.24 274.944q-16.384 0-26.112 10.24t-9.728 26.624q0 17.408 9.728 27.648t26.112 10.24q15.36 0 25.088-10.24t9.728-27.648q0-16.384-9.728-26.624t-25.088-10.24zM394.24 333.312q-8.192 0-11.776-6.144t-3.584-15.36q0-8.192 3.584-14.336t11.776-6.144 11.776 6.144 3.584 14.336q0 9.216-3.584 15.36t-11.776 6.144zM500.736 302.592l12.288 46.080h19.456l-21.504-72.704h-18.432l-12.288 44.032-11.264-44.032h-18.432l-22.528 72.704h20.48l12.288-46.080 12.288 46.080h15.36zM557.056 249.344h-19.456v99.328h19.456v-6.144q5.12 7.168 18.432 7.168 15.36 0 24.064-11.264t8.704-26.624-8.704-26.112-24.064-10.752q-13.312 0-18.432 7.168v-32.768zM557.056 300.544q3.072-8.192 13.312-8.192 17.408 0 17.408 19.456 0 20.48-17.408 20.48-10.24 0-13.312-8.192v-23.552zM634.88 275.968h-20.48v105.472h20.48v-105.472zM686.080 275.968v4.096q-2.048-2.048-7.168-3.584t-11.264-1.536q-11.264 0-18.944 6.144t-7.68 17.408q0 10.24 8.192 16.384t20.48 6.144q10.24 0 16.384-4.096v5.12q0 11.264-12.288 11.264-9.216 0-10.24-6.144h-19.456q2.048 10.24 10.24 16.384t20.48 6.144q29.696 0 29.696-27.648v-46.080h-18.432zM686.080 300.544q-4.096 7.168-13.312 7.168-5.12 0-9.216-2.048t-4.096-7.168 4.096-7.168 9.216-2.048q9.216 0 13.312 6.144v5.12zM722.944 249.344l11.264 26.624-27.648 72.704h20.48l17.408-48.128 16.384 48.128h19.456l-36.864-99.328h-20.48zM845.824 299.52q-5.12-24.576-32.768-24.576-15.36 0-25.088 10.24t-9.728 26.624q0 17.408 9.728 27.648t25.088 10.24q16.384 0 24.576-9.728t8.192-26.112v-6.144h-48.128q2.048-17.408 15.36-17.408 11.264 0 13.312 9.216h19.456zM797.696 320h28.672q0 13.312-13.312 13.312-12.288 0-15.36-13.312zM896 328.192q-5.12 3.072-10.24 3.072-11.264 0-13.312-10.24v-45.056h-20.48v72.704h20.48v-7.168q5.12 8.192 16.384 8.192 6.144 0 7.168-1.024v-20.48z" />
|
26 |
+
<glyph unicode="" glyph-name="uniE011" d="M313.344 370.176l283.648 283.648q22.528 22.528 54.784 24.576t55.808-20.48q12.288-11.264 17.92-25.6t5.632-29.696-5.632-29.696-16.896-26.624l-226.304-226.304 226.304-226.304q23.552-22.528 23.552-54.272t-23.552-55.296q-11.264-11.264-25.6-16.896t-28.672-5.632q-32.768 0-55.296 22.528l-285.696 286.72q-20.48 20.48-20.48 49.664t20.48 49.664z" />
|
27 |
+
<glyph unicode="" glyph-name="uniE012" d="M710.656 370.176q20.48-20.48 20.48-49.664t-20.48-49.664l-285.696-286.72q-22.528-22.528-55.296-22.528-14.336 0-28.672 5.632t-25.6 16.896q-23.552 23.552-23.552 55.296t23.552 54.272l226.304 226.304-226.304 226.304q-11.264 12.288-16.896 26.624t-5.632 29.696 5.632 29.696 17.92 25.6q23.552 22.528 55.808 20.48t54.784-24.576l283.648-283.648z" />
|
28 |
+
<glyph unicode="" glyph-name="_19" d="M819.2 320q0-63.488-24.064-119.808t-65.536-97.792-97.792-65.536-119.808-24.064-119.808 24.064-97.792 65.536-65.536 97.792-24.064 119.808 24.064 119.808 65.536 97.792 97.792 65.536 119.808 24.064 119.808-24.064 97.792-65.536 65.536-97.792 24.064-119.808z" />
|
29 |
+
<glyph unicode="" glyph-name="_20" d="M512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 629.248q-63.488 0-119.808-24.576t-98.304-66.56-66.56-98.304-24.576-119.808 24.576-119.808 66.56-98.304 98.304-66.56 119.808-24.576 119.808 24.576 98.304 66.56 66.56 98.304 24.576 119.808-24.576 119.808-66.56 98.304-98.304 66.56-119.808 24.576zM424.96 416.256q0 23.552 14.336 31.744t34.816-3.072l166.912-96.256q20.48-12.288 20.48-28.672t-20.48-28.672l-166.912-96.256q-20.48-11.264-34.816-3.072t-14.336 31.744v192.512z" />
|
30 |
+
<glyph unicode="" glyph-name="_21" d="M512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 629.248q-63.488 0-119.808-24.576t-98.304-66.56-66.56-98.304-24.576-119.808 24.576-119.808 66.56-98.304 98.304-66.56 119.808-24.576 119.808 24.576 98.304 66.56 66.56 98.304 24.576 119.808-24.576 119.808-66.56 98.304-98.304 66.56-119.808 24.576zM439.296 180.736q-17.408 0-30.208 12.288t-12.8 30.72v192.512q0 18.432 12.8 31.232t30.208 12.8 30.208-12.8 12.8-31.232v-192.512q0-18.432-12.8-30.72t-30.208-12.288zM584.704 180.736q-17.408 0-30.208 12.288t-12.8 30.72v192.512q0 18.432 12.8 31.232t30.208 12.8 30.208-12.8 12.8-31.232v-192.512q0-18.432-12.8-30.72t-30.208-12.288z" />
|
31 |
+
<glyph unicode="" glyph-name="_22" d="M521.216 382.464l82.944 311.296q3.072 12.288 11.776 19.968t19.456 10.752 21.504 0.512 19.968-11.776l228.352-228.352q9.216-9.216 11.776-19.968t-0.512-21.504-10.752-19.456-19.968-11.776l-311.296-82.944q-12.288-3.072-23.552 0t-18.944 10.752-10.752 18.944 0 23.552zM502.784 257.536l-82.944-311.296q-3.072-12.288-11.776-19.968t-19.456-10.752-21.504-0.512-19.968 11.776l-228.352 228.352q-9.216 9.216-11.776 19.968t0.512 21.504 10.752 19.456 19.968 11.776l311.296 82.944q12.288 3.072 23.552 0t18.944-10.752 10.752-18.944 0-23.552z" />
|
32 |
+
<glyph unicode="" glyph-name="uniE101" d="M746.496 3.584v0 0h-457.728l228.352 396.288 145.408-251.904zM870.4 595.456v-491.52h-119.808l-191.488 331.776-41.984 71.68-40.96-71.68-192.512-331.776h-130.048v491.52h716.8z" />
|
33 |
+
<glyph unicode="" glyph-name="uniE102" d="M179.2-12.8l121.856 452.608 330.752-330.752zM844.8 652.8l-121.856-452.608-330.752 330.752z" />
|
34 |
+
<glyph unicode="" glyph-name="uniE103" d="M447.488 12.8l-221.184 367.616 75.776 53.248 133.12-190.464 304.128 486.4 58.368-31.744z" />
|
35 |
+
<glyph unicode="" glyph-name="uniE104" d="M509.952 673.28q0 38.912 27.136 65.536t66.048 26.624 65.536-26.624 26.624-65.536q0-25.6-12.288-46.592t-32.768-33.28v-66.56h179.2v-217.088h-77.824q-12.288 20.48-32.768 32.768t-46.080 12.288q-38.912 0-66.048-27.136t-27.136-66.048 27.136-65.536 66.048-26.624q25.6 0 46.080 12.288t32.768 32.768h77.824v-217.088h-484.352v217.088h-60.416q-12.288-20.48-33.28-32.768t-46.592-12.288q-38.912 0-65.536 26.624t-26.624 65.536 26.624 66.048 65.536 27.136q25.6 0 46.592-12.288t33.28-32.768h60.416v217.088h209.92v66.56q-20.48 12.288-32.768 33.28t-12.288 46.592z" />
|
36 |
+
<glyph unicode="" glyph-name="uniE105" d="M149.504 153.088q24.576 0 45.568-9.216t37.376-25.6 25.6-37.888 9.216-46.080v-5.12h-123.904v123.904h6.144zM149.504 266.752q48.128 0 90.112-18.432t73.728-49.664 49.664-73.728 17.92-90.624v-5.12h-58.368v5.12q0 35.84-13.824 67.584t-37.376 55.296-54.784 37.376-67.072 13.824h-6.144v58.368h6.144zM149.504 385.536q72.704 0 136.192-27.648t111.104-75.264 75.264-111.616 27.648-136.704v-5.12h-58.368v5.12q0 60.416-23.040 113.664t-62.464 93.184-92.672 62.976-113.664 23.040h-6.144v58.368h6.144zM860.16 569.856v-499.712h-304.128q-6.144 74.752-37.888 139.776t-81.92 114.688-115.712 80.384-140.288 36.864v128h679.936z" />
|
37 |
+
<glyph unicode="" glyph-name="uniE106" d="M870.4 518.656v-401.408l-231.424 200.704zM854.016 74.24h-684.032l247.808 215.040 94.208-81.92 94.208 81.92zM860.16 565.76l-348.16-302.080-348.16 302.080h696.32zM153.6 117.248v401.408l231.424-200.704z" />
|
38 |
+
<glyph unicode="" glyph-name="uniE107" d="M809.984 320l-575.488-332.8v665.6z" />
|
39 |
+
<glyph unicode="" glyph-name="uniE108" d="M442.368-7.68h-201.728v655.36h201.728v-655.36zM783.36-7.68h-201.728v655.36h201.728v-655.36z" />
|
40 |
+
<glyph unicode="" glyph-name="uniE109" d="M787.456 391.68l-224.256 163.84v-106.496h-25.6q-62.464 0-114.688-23.552t-87.552-64.512-51.712-95.232-6.144-115.712q4.096-26.624 14.336-53.248 2.048-5.12 7.68-4.608t6.656 6.656q6.144 46.080 28.16 86.528t55.808 69.632 76.288 46.080 90.624 16.896h6.144v-96.256zM844.8 652.8v-665.6h-665.6v665.6h665.6z" />
|
41 |
+
<glyph unicode="" glyph-name="uniE10A" d="M629.76 387.584h-70.656v37.888q0 15.36 5.12 23.040t25.6 7.68h38.912v76.8h-61.44q-55.296 0-77.312-26.112t-22.016-73.216v-46.080h-46.080v-75.776h46.080v-222.208h91.136v222.208h61.44zM844.8 652.8v-665.6h-665.6v665.6h665.6z" />
|
42 |
+
<glyph unicode="" glyph-name="uniE10B" d="M286.72 472.576l194.56 178.176v-661.504l-194.56 178.176h-184.32v305.152h184.32z" />
|
43 |
+
<glyph unicode="" glyph-name="uniE10C" d="M688.128 384.512q26.624 17.408 46.080 47.104-26.624-11.264-52.224-14.336 28.672 17.408 39.936 50.176-14.336-8.192-28.16-13.824t-30.208-8.704q-12.288 14.336-29.184 22.016t-36.352 7.68q-38.912 0-65.536-26.624t-26.624-64.512q0-5.12 0.512-10.752t1.536-10.752q-57.344 3.072-105.472 28.672t-81.92 66.56q-12.288-20.48-12.288-46.080 0-23.552 11.264-43.52t28.672-32.256q-22.528 2.048-40.96 12.288v-2.048q0-32.768 20.48-57.344t52.224-31.744q-11.264-3.072-23.552-3.072h-9.216t-8.192 2.048q8.192-27.648 31.744-45.568t53.248-17.92q-23.552-18.432-51.712-28.672t-60.928-10.24h-10.752t-10.752 1.024q61.44-40.96 139.264-40.96 62.464 0 111.104 23.552t81.92 60.928 50.176 83.456 16.896 91.136q0 8.192-1.024 12.288zM844.8 652.8v-665.6h-665.6v665.6h665.6z" />
|
44 |
+
<glyph unicode="" glyph-name="uniE10D" d="M802.816 320l118.784-118.784-67.584-67.584-118.784 118.784-119.808-118.784-67.584 67.584 119.808 118.784-119.808 118.784 67.584 67.584 119.808-118.784 118.784 118.784 67.584-67.584zM286.72 472.576l194.56 178.176v-661.504l-194.56 178.176h-184.32v305.152h184.32z" />
|
45 |
+
<glyph unicode="" glyph-name="uniE10E" d="M549.888 397.824l46.080 46.080 41.984-37.888-48.128-48.128 19.456-19.456 130.048 129.024-79.872 79.872-129.024-130.048zM474.112 242.176l-45.056-45.056-44.032 35.84 49.152 49.152-19.456 19.456-130.048-129.024 79.872-79.872 129.024 130.048zM549.888 317.952l-35.84-35.84 60.416-59.392-209.92-209.92-159.744 159.744 209.92 209.92 59.392-60.416 35.84 35.84-60.416 59.392 209.92 209.92 159.744-159.744-209.92-209.92z" />
|
46 |
+
<glyph unicode="" glyph-name="uniE10F" d="M599.040 320l220.16-220.16-87.040-87.040-220.16 220.16-220.16-220.16-87.040 87.040 220.16 220.16-220.16 220.16 87.040 87.040 220.16-220.16 220.16 220.16 87.040-87.040z" />
|
47 |
+
<glyph unicode="" glyph-name="uniE110" d="M656.384 342.528q16.384-9.216 16.384-22.528t-16.384-22.528l-195.584-112.64q-15.36-9.216-26.624-2.56t-11.264 25.088v225.28q0 18.432 11.264 25.088t26.624-2.56l195.584-112.64zM512 13.824q63.488 0 119.296 24.064t97.28 65.536 65.536 97.28 24.064 119.296-24.064 119.296-65.536 97.28-97.28 65.536-119.296 24.064-119.296-24.064-97.28-65.536-65.536-97.28-24.064-119.296 24.064-119.296 65.536-97.28 97.28-65.536 119.296-24.064zM512 678.4q73.728 0 139.264-28.16t114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16-139.264 28.16-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16z" />
|
48 |
+
<glyph unicode="" glyph-name="uniE111" d="M641.024 678.4l100.352-101.376-257.024-257.024 257.024-257.024-100.352-101.376-358.4 358.4z" />
|
49 |
+
<glyph unicode="" glyph-name="uniE112" d="M741.376 320l-358.4-358.4-100.352 101.376 257.024 257.024-257.024 257.024 100.352 101.376z" />
|
50 |
+
<glyph unicode="" glyph-name="_46" d="M768 64h-512v512h512v-512z" />
|
51 |
+
<glyph unicode="" glyph-name="_47" d="M512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 629.248q-63.488 0-119.808-24.576t-98.304-66.56-66.56-98.304-24.576-119.808 24.576-119.808 66.56-98.304 98.304-66.56 119.808-24.576 119.808 24.576 98.304 66.56 66.56 98.304 24.576 119.808-24.576 119.808-66.56 98.304-98.304 66.56-119.808 24.576zM680.96 320l-254.976-147.456v294.912z" />
|
52 |
+
<glyph unicode="" glyph-name="_48" d="M512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 629.248q-63.488 0-119.808-24.576t-98.304-66.56-66.56-98.304-24.576-119.808 24.576-119.808 66.56-98.304 98.304-66.56 119.808-24.576 119.808 24.576 98.304 66.56 66.56 98.304 24.576 119.808-24.576 119.808-66.56 98.304-98.304 66.56-119.808 24.576zM483.328 183.808h-83.968v272.384h83.968v-272.384zM624.64 183.808h-83.968v272.384h83.968v-272.384z" />
|
53 |
+
<glyph unicode="" glyph-name="_49" d="M521.216 329.216l115.712 432.128 316.416-316.416zM502.784 310.784l-115.712-432.128-316.416 316.416z" />
|
54 |
+
<glyph unicode="" glyph-name="uniE201" d="M661.504 54.784q0 1.024-0.512 1.536t-0.512 1.536l-147.456 253.952q0 1.024-1.024 2.048 0-1.024-0.512-1.024t-0.512-1.024l-147.456-253.952q0-2.048-1.024-3.072h299.008zM701.44 81.408q17.408-30.72 5.12-52.736t-48.128-22.016h-292.864q-35.84 0-48.128 22.016t5.12 52.736l146.432 253.952q18.432 30.72 43.008 30.72t43.008-30.72zM809.984 592.384q24.576 0 42.496-17.92t17.92-43.52v-370.688q0-24.576-17.92-42.496t-42.496-17.92h-63.488l-3.072 6.144-24.576 41.984h91.136q12.288 0 12.288 12.288v370.688q0 13.312-12.288 13.312h-595.968q-5.12 0-8.704-4.096t-3.584-9.216v-370.688q0-5.12 3.584-8.704t8.704-3.584h91.136l-24.576-41.984-3.072-6.144h-63.488q-24.576 0-42.496 17.92t-17.92 42.496v370.688q0 25.6 17.92 43.52t42.496 17.92h595.968z" />
|
55 |
+
<glyph unicode="" glyph-name="uniE202" d="M844.8 619.008v-2.048l-28.672-261.12q-2.048-12.288-10.752-20.48t-20.992-8.192h-4.096q-13.312 2.048-22.016 11.776t-6.656 24.064l18.432 168.96-185.344-185.344q-9.216-9.216-22.528-9.216t-23.552 9.216q-9.216 10.24-9.216 23.552t9.216 22.528l185.344 185.344-168.96-18.432q-14.336-2.048-24.064 6.656t-11.776 22.016q-2.048 14.336 6.144 24.064t22.528 11.776l262.144 28.672h7.168q1.024-1.024 4.096-1.024 1.024-1.024 2.048-1.024 2.048-1.024 2.56-1.024t2.56-1.024l1.024-1.024q2.048-1.024 3.072-2.048t3.072-2.048q1.024-2.048 4.096-5.12 0-1.024 1.024-2.048l2.048-4.096q0-2.048 1.024-3.072 0-2.048 1.024-4.096v-6.144zM468.992 80.384q14.336 2.048 24.064-6.656t11.776-22.016q2.048-14.336-6.144-24.064t-22.528-11.776l-261.12-28.672h-3.072q-14.336 0-23.552 9.216t-9.216 23.552v3.072l28.672 261.12q2.048 14.336 11.776 22.528t24.064 6.144q13.312-2.048 22.016-11.776t6.656-24.064l-18.432-168.96 185.344 185.344q9.216 9.216 22.528 9.216t23.552-9.216q9.216-9.216 9.216-23.040t-9.216-23.040l-185.344-185.344 168.96 18.432z" />
|
56 |
+
<glyph unicode="" glyph-name="uniE203" d="M826.368 693.76q6.144-20.48-4.096-38.912l-340.992-615.424q-13.312-24.576-40.96-26.624h-3.072q-25.6 0-40.96 21.504l-161.792 297.984q-11.264 17.408-8.192 37.888 5.12 21.504 21.504 31.744 16.384 13.312 36.864 8.192 20.48-3.072 32.768-20.48l114.688-220.16 302.080 533.504q11.264 18.432 30.72 24.576t37.888-4.096 23.552-29.696z" />
|
57 |
+
<glyph unicode="" glyph-name="uniE204" d="M791.552 190.976q1.024 12.288-7.168 24.576-10.24 10.24-23.552 10.24h-6.144q-22.528 0-37.888-17.408-30.72-35.84-78.848-32.768-35.84 2.048-62.464 28.16t-28.672 61.952q-3.072 43.008 25.6 73.728 14.336 14.336 32.768 22.528t38.912 8.192 39.936-8.192 33.792-24.576q14.336-17.408 36.864-17.408h6.144q14.336 0 23.552 11.264 8.192 8.192 8.192 23.552l-18.432 165.888-106.496-14.336q-12.288-2.048-25.6 2.048t-23.552 13.312q-17.408 14.336-17.408 33.792 0 11.264 7.68 19.968t15.872 14.848l3.072 3.072q23.552 20.48 23.552 53.248 0 28.672-19.968 49.152t-49.664 20.48h-1.024q-27.648 0-48.128-19.968t-21.504-47.616q-1.024-16.384 5.632-30.72t17.92-24.576l3.072-3.072q8.192-6.144 15.872-14.848t7.68-19.968v-1.024q0-19.456-16.384-33.792-10.24-9.216-23.552-13.824t-25.6-2.56l-133.12 16.384 15.36-149.504q3.072-32.768-19.456-57.344-17.408-20.48-41.984-20.48h-1.024q-13.312 0-23.552 8.704t-18.432 16.896l-2.048 2.048q-21.504 22.528-53.248 22.528-28.672-1.024-48.64-21.504t-19.968-50.176q1.024-28.672 21.504-49.152t49.152-20.48q30.72 0 51.2 22.528l2.048 2.048q8.192 8.192 18.432 16.896t23.552 8.704q24.576 0 43.008-20.48 11.264-11.264 16.384-27.136t3.072-30.208l-15.36-128h411.648l17.408 144.384zM760.832 262.656q30.72 0 51.2-22.528 19.456-24.576 16.384-53.248l-18.432-156.672q-1.024-9.216-7.68-15.36t-15.872-6.144h-439.296q-11.264 0-17.408 8.192-8.192 8.192-6.144 18.432l17.408 143.36q2.048 15.36-10.24 28.672-2.048 2.048-5.632 5.12t-8.704 3.072q-3.072-1.024-16.384-14.336l-2.048-2.048q-31.744-33.792-77.824-33.792-21.504 0-40.96 8.192t-34.304 23.040-23.552 34.304-8.704 40.96 7.68 40.96 22.016 34.304 33.792 23.552 40.96 9.728h3.072q46.080 0 77.824-33.792l2.048-2.048q13.312-13.312 16.384-14.336 5.12 0 8.704 3.072t5.632 5.12q12.288 13.312 10.24 28.672l-17.408 166.912q-2.048 10.24 7.168 19.456 6.144 6.144 16.384 6.144h3.072l149.504-18.432h2.048q9.216 0 18.432 7.168 3.072 3.072 3.072 5.12l-3.072 3.072t-6.144 5.12q-1.024 2.048-2.048 2.56t-2.048 1.536q-17.408 15.36-27.136 37.376t-9.728 46.592q1.024 21.504 9.728 40.448t23.040 33.28 33.792 22.528 40.96 8.192h2.048q21.504 0 40.96-8.704t33.792-23.552 22.528-34.304 8.192-40.96q0-49.152-35.84-81.92-2.048-1.024-4.096-3.072-8.192-7.168-9.216-8.192l4.096-4.096q6.144-6.144 17.408-6.144h2.048l120.832 16.384h3.072q9.216 0 14.336-4.096 7.168-6.144 9.216-16.384l19.456-180.224q3.072-30.72-17.408-53.248t-51.2-22.528h-6.144q-38.912 0-65.536 29.696-17.408 20.48-45.056 20.48-26.624 0-44.032-19.456-18.432-18.432-16.384-45.056 2.048-23.552 17.92-38.912t38.4-17.408h4.096q27.648 0 45.056 20.48 27.648 29.696 65.536 29.696h6.144z" />
|
58 |
+
<glyph unicode="" glyph-name="uniE205" d="M169.984 157.184q39.936-7.168 68.608-35.84t34.816-67.584q2.048-8.192-3.584-15.36t-13.824-7.168h-89.088q-8.192 0-13.312 5.632t-5.12 13.824v88.064q0 8.192 6.656 14.336t14.848 4.096zM165.888 270.848q46.080 0 86.016-17.408t70.144-47.616 47.616-70.144 17.408-86.016q0-9.216-6.656-15.872t-15.872-6.656q-10.24 0-16.896 6.656t-6.656 15.872q0 35.84-13.824 67.584t-37.376 55.808-55.296 37.888-68.608 13.824q-9.216 0-15.872 6.656t-6.656 15.872q0 10.24 6.656 16.896t15.872 6.656zM165.888 386.56q69.632 0 131.072-26.624t107.008-72.192 72.192-107.008 26.624-131.072q0-9.216-6.656-15.872t-15.872-6.656q-10.24 0-16.896 6.656t-6.656 15.872q0 60.416-23.040 113.152t-62.464 92.16-92.16 62.464-113.152 23.040q-9.216 0-15.872 6.656t-6.656 16.896q0 9.216 6.656 15.872t15.872 6.656zM778.24 571.904q33.792 0 57.856-23.552t24.064-58.368v-324.608q0-33.792-24.064-57.344t-57.856-23.552h-215.040q-2.048 23.552-6.144 45.056h221.184q15.36 0 25.6 10.752t10.24 25.088v324.608q0 15.36-10.24 26.112t-25.6 10.752h-499.712q-15.36 0-25.6-10.752t-10.24-26.112v-49.152q-23.552 4.096-46.080 6.144v43.008q0 34.816 24.064 58.368t57.856 23.552h499.712z" />
|
59 |
+
<glyph unicode="" glyph-name="uniE206" d="M784.384 117.248h4.096l-198.656 172.032-17.408-15.36q-25.6-22.528-60.416-22.528t-60.416 22.528l-17.408 15.36-198.656-172.032h548.864zM401.408 317.952l-202.752 176.128q-1.024-4.096-1.536-7.168t-0.512-7.168v-319.488q0-10.24 3.072-17.408zM239.616 522.752h-8.192l248.832-217.088q14.336-11.264 31.744-11.264t31.744 11.264l248.832 217.088h-552.96zM827.392 479.744q0 4.096-0.512 7.168t-1.536 7.168l-202.752-176.128 201.728-175.104q3.072 7.168 3.072 17.408v319.488zM784.384 565.76q17.408 0 33.28-6.656t27.648-18.432 18.432-27.136 6.656-33.792v-319.488q0-18.432-6.656-33.792t-18.432-27.136-27.648-18.432-33.28-6.656h-544.768q-17.408 0-33.28 6.656t-27.648 18.432-18.432 27.136-6.656 33.792v319.488q0 18.432 6.656 33.792t18.432 27.136 27.648 18.432 33.28 6.656h544.768z" />
|
60 |
+
<glyph unicode="" glyph-name="uniE207" d="M305.152-12.8q-22.528 0-39.936 10.24-44.032 25.6-44.032 92.16v460.8q0 66.56 44.032 92.16 43.008 25.6 101.376-8.192l399.36-230.4q57.344-33.792 57.344-83.968t-57.344-83.968l-399.36-230.4q-32.768-18.432-61.44-18.432zM305.152 614.912q-11.264 0-21.504-5.12-24.576-14.336-24.576-59.392v-460.8q0-21.504 6.144-36.864t18.432-22.528q25.6-14.336 63.488 8.192l399.36 230.4q38.912 21.504 38.912 51.2t-38.912 51.2l-399.36 230.4q-22.528 13.312-41.984 13.312z" />
|
61 |
+
<glyph unicode="" glyph-name="uniE208" d="M350.208-7.68q-23.552 0-44.032 8.704t-35.84 24.064-24.064 35.84-8.704 44.032v430.080q0 23.552 8.704 44.032t24.064 35.84 35.84 24.064 44.032 8.704q22.528 0 43.008-8.704t35.84-24.064 24.064-35.84 8.704-44.032v-430.080q0-23.552-8.704-44.032t-24.064-35.84-35.84-24.064-43.008-8.704zM350.208 614.912q-32.768 0-56.32-23.552t-23.552-56.32v-430.080q0-32.768 23.552-56.32t56.32-23.552q16.384 0 30.72 6.144t25.088 16.896 16.896 25.6 6.144 31.232v430.080q0 16.384-6.144 31.232t-16.896 25.6-25.088 16.896-30.72 6.144zM673.792-7.68q-23.552 0-43.52 8.704t-35.328 24.064-24.064 35.84-8.704 44.032v430.080q0 23.552 8.704 44.032t24.064 35.84 35.328 24.064 43.52 8.704 44.032-8.704 35.84-24.064 24.064-35.84 8.704-44.032v-430.080q0-23.552-8.704-44.032t-24.064-35.84-35.84-24.064-44.032-8.704zM673.792 614.912q-16.384 0-30.72-6.144t-25.088-16.896-16.896-25.6-6.144-31.232v-430.080q0-16.384 6.144-31.232t16.896-25.6 25.088-16.896 30.72-6.144q32.768 0 56.32 23.552t23.552 56.32v430.080q0 32.768-23.552 56.32t-56.32 23.552z" />
|
62 |
+
<glyph unicode="" glyph-name="uniE209" d="M799.744 583.168q0 10.24-7.168 17.408t-17.408 7.168h-526.336q-10.24 0-17.408-7.168t-7.168-17.408v-526.336q0-10.24 7.168-17.408t17.408-7.168h526.336q10.24 0 17.408 7.168t7.168 17.408v526.336zM775.168 652.8q28.672 0 49.152-20.48t20.48-49.152v-526.336q0-28.672-20.48-49.152t-49.152-20.48h-526.336q-28.672 0-49.152 20.48t-20.48 49.152v526.336q0 28.672 20.48 49.152t49.152 20.48h526.336zM739.328 418.304q9.216-6.144 9.216-17.408t-9.216-17.408l-175.104-139.264q-7.168-5.12-13.312-5.12-11.264 0-17.408 8.192t-5.12 17.408 8.192 14.336l124.928 99.328h-114.688q-33.792 0-69.632-10.24t-65.024-38.912-47.616-79.36-18.432-131.584q0-9.216-6.144-15.872t-16.384-6.656q-9.216 0-15.36 6.656t-6.144 15.872q0 146.432 63.488 225.792t181.248 79.36h114.688l-124.928 98.304q-7.168 6.144-8.192 15.36t5.12 16.384q5.12 8.192 14.336 8.704t16.384-4.608l175.104-139.264z" />
|
63 |
+
<glyph unicode="" glyph-name="uniE20A" d="M545.792 401.92h71.68l-9.216-76.8h-62.464v-225.28h-92.16v225.28h-47.104v76.8h47.104v47.104q0 48.128 22.016 74.24t78.336 26.112h62.464v-77.824h-38.912q-21.504 0-26.624-7.68t-5.12-23.040v-38.912zM512 3.584q65.536 0 122.88 25.088t100.352 68.096 68.096 100.352 25.088 122.88-25.088 122.88-68.096 100.352-100.352 68.096-122.88 25.088-122.88-25.088-100.352-68.096-68.096-100.352-25.088-122.88 25.088-122.88 68.096-100.352 100.352-68.096 122.88-25.088zM512 678.4q73.728 0 139.264-28.16t114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16-139.264 28.16-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16z" />
|
64 |
+
<glyph unicode="" glyph-name="uniE20B" d="M518.144 570.88q0 8.192-4.096 12.288t-6.144 5.12-7.68 1.536-11.776-4.608l-145.408-129.024h-64.512q-28.672 0-54.272-10.24t-44.544-28.672-30.208-43.52-11.264-53.76 10.24-54.272 28.672-44.544 43.52-30.208 53.76-11.264l65.536-1.024 142.336-132.096q5.12-6.144 11.264-5.632t8.192 1.536 6.144 5.12 5.12 12.288zM522.24 620.032q14.336-6.144 23.040-19.456t8.704-29.696l-6.144-512q0-34.816-32.768-48.128-12.288-5.12-21.504-5.12-19.456 0-35.84 14.336l-132.096 123.904h-51.2q-35.84 0-67.584 14.336t-54.784 37.888-36.352 55.808-13.312 68.096 14.336 67.584 37.888 54.784 55.808 36.352 68.096 13.312h51.2l135.168 119.808q11.264 11.264 27.136 13.312t30.208-5.12z" />
|
65 |
+
<glyph unicode="" glyph-name="uniE20C" d="M512 3.584q65.536 0 122.88 25.088t100.352 68.096 68.096 100.352 25.088 122.88-25.088 122.88-68.096 100.352-100.352 68.096-122.88 25.088-122.88-25.088-100.352-68.096-68.096-100.352-25.088-122.88 25.088-122.88 68.096-100.352 100.352-68.096 122.88-25.088zM512 678.4q73.728 0 139.264-28.16t114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16-139.264 28.16-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16zM699.392 449.024q-10.24-29.696-34.816-44.032 24.576 3.072 46.080 12.288-8.192-11.264-18.432-22.016t-21.504-18.944v-10.24q0-38.912-14.848-78.336t-43.008-71.68-70.144-52.736-96.256-20.48q-65.536 0-119.808 34.816 5.12-1.024 9.216-1.024h9.216q55.296 0 97.28 33.792-25.6 0-45.568 15.36t-27.136 38.912q4.096-1.024 14.336-1.024 11.264 0 20.48 3.072-26.624 5.12-44.544 26.624t-17.92 50.176v1.024q14.336-8.192 34.816-10.24-15.36 11.264-25.088 28.16t-9.728 37.376q0 22.528 11.264 39.936 29.696-35.84 71.168-57.856t90.624-24.064q-2.048 10.24-2.048 17.408 0 32.768 23.040 55.808t55.808 23.040q34.816 0 57.344-24.576 14.336 2.048 26.624 7.168t23.552 12.288z" />
|
66 |
+
<glyph unicode="" glyph-name="uniE20D" d="M913.408 200.192q5.12-5.12 5.12-12.8t-5.12-12.8-12.288-5.12q-6.144 0-13.312 5.12l-109.568 112.64-111.616-109.568q-7.168-5.12-13.312-5.12-5.12 0-12.288 5.12-5.12 5.12-4.608 12.8t5.632 12.8l111.616 109.568-109.568 111.616q-5.12 5.12-5.12 12.8t5.12 12.8 12.8 5.12 12.8-5.12l109.568-112.64 112.64 109.568q5.12 5.12 12.288 5.12t12.288-5.12 5.12-12.8-5.12-12.8l-112.64-109.568zM518.144 570.88q0 8.192-4.096 12.288t-6.144 5.12-7.68 1.536-11.776-4.608l-145.408-129.024h-64.512q-28.672 0-54.272-10.24t-44.544-28.672-30.208-43.52-11.264-53.76 10.24-54.272 28.672-44.544 43.52-30.208 53.76-11.264l65.536-1.024 142.336-132.096q5.12-6.144 11.264-5.632t8.192 1.536 6.144 5.12 5.12 12.288zM522.24 620.032q14.336-6.144 23.040-19.456t8.704-29.696l-6.144-512q0-34.816-32.768-48.128-12.288-5.12-21.504-5.12-19.456 0-35.84 14.336l-132.096 123.904h-51.2q-35.84 0-67.584 14.336t-54.784 37.888-36.352 55.808-13.312 68.096 14.336 67.584 37.888 54.784 55.808 36.352 68.096 13.312h51.2l135.168 119.808q11.264 11.264 27.136 13.312t30.208-5.12z" />
|
67 |
+
<glyph unicode="" glyph-name="uniE20E" d="M749.568 443.904q11.264 11.264 16.896 26.112t5.632 30.208-5.632 30.208-16.896 27.136q-11.264 11.264-26.624 17.408t-30.72 6.144q-32.768 0-56.32-23.552l-61.44-61.44q-19.456-19.456-22.528-45.568t9.216-48.64l37.888 37.888q7.168 7.168 16.384 7.168t16.384-7.168q7.168-6.144 7.168-15.872t-7.168-16.896l-37.888-37.888q22.528-12.288 48.64-9.216t45.568 22.528l61.44 61.44zM449.536 143.872q19.456 19.456 22.528 45.568t-9.216 49.664l-37.888-38.912q-7.168-7.168-16.384-7.168-10.24 0-16.384 7.168-7.168 7.168-7.168 16.384t7.168 16.384l37.888 37.888q-16.384 10.24-37.888 10.24-32.768 0-56.32-23.552l-61.44-61.44q-11.264-11.264-17.408-26.112t-6.144-30.208 6.144-30.208 17.408-27.136q12.288-11.264 27.136-17.408t30.208-6.144 30.208 6.144 26.112 17.408l61.44 61.44zM782.336 590.336q18.432-18.432 27.648-41.984t9.216-47.616-9.216-47.616-27.648-41.984l-61.44-61.44q-18.432-18.432-41.984-27.648t-47.104-9.216q-39.936 0-71.68 22.528l-63.488-63.488q12.288-18.432 17.92-39.424t4.096-42.496-10.752-41.984-25.6-36.864l-61.44-61.44q-18.432-18.432-41.984-27.648t-47.104-9.216q-24.576 0-48.128 9.216t-41.984 27.648-27.648 41.984-9.216 47.616 9.216 47.616 27.648 41.984l61.44 61.44q16.384 16.384 36.864 25.6t41.984 10.752 42.496-4.096 39.424-17.92l63.488 63.488q-12.288 18.432-17.92 39.424t-4.096 42.496 10.752 41.984 25.6 36.864l61.44 61.44q18.432 18.432 41.984 27.648t47.616 9.216 47.616-9.216 41.984-27.648z" />
|
68 |
+
<glyph unicode="" glyph-name="uniE20F" d="M811.008 62.976q8.192-8.192 8.192-20.48t-8.192-21.504q-10.24-8.192-21.504-8.192-12.288 0-20.48 8.192l-257.024 257.024-257.024-257.024q-8.192-8.192-20.48-8.192-11.264 0-21.504 8.192-8.192 9.216-8.192 21.504t8.192 20.48l257.024 257.024-257.024 257.024q-8.192 8.192-8.192 20.48t8.192 21.504q9.216 8.192 21.504 8.192t20.48-8.192l257.024-257.024 257.024 257.024q8.192 8.192 20.48 8.192t21.504-8.192q8.192-9.216 8.192-21.504t-8.192-20.48l-257.024-257.024z" />
|
69 |
+
<glyph unicode="" glyph-name="uniE210" d="M166.912 383.488q-6.144 2.048-10.24 2.048-12.288 0-12.288-13.312v-9.216h19.456v-21.504h-19.456v-74.752h-26.624v74.752h-15.36v21.504h15.36v11.264q0 16.384 9.216 25.088t24.576 8.704q7.168 0 15.36-2.048v-22.528zM202.752 266.752h-26.624v139.264h26.624v-139.264zM258.048 264.704q-20.48 0-33.792 13.824t-13.312 36.352 13.312 36.352 33.792 13.824 33.792-13.824 13.312-36.352-13.312-36.352-33.792-13.824zM258.048 342.528q-10.24 0-15.36-7.68t-5.12-19.968q0-11.264 5.12-19.456t15.36-8.192 15.36 8.192 5.12 19.456q0 12.288-5.12 19.968t-15.36 7.68zM398.336 301.568l17.408 61.44h25.6l-28.672-96.256h-24.576l-15.36 59.392-16.384-59.392h-24.576l-28.672 96.256h26.624l17.408-61.44 15.36 61.44h20.48zM474.112 231.936h-26.624v131.072h26.624v-8.192q3.072 4.096 9.216 7.168t14.336 3.072q20.48 0 32.256-14.848t11.776-35.328-11.776-35.328-32.256-14.848q-8.192 0-14.336 3.072t-9.216 7.168v-43.008zM474.112 299.52q5.12-11.264 17.408-11.264 11.264 0 16.896 7.68t5.632 18.944-5.632 18.944-16.896 7.68q-12.288 0-17.408-11.264v-30.72zM576.512 266.752h-26.624v139.264h26.624v-139.264zM644.096 266.752v5.12q-8.192-6.144-23.552-6.144-14.336 0-25.088 8.192t-10.752 22.528 10.752 22.528 26.112 8.192q14.336 0 22.528-6.144v7.168q0 6.144-4.096 10.752t-12.288 4.608q-9.216 0-13.312-9.216h-25.6q2.048 13.312 12.8 22.016t27.136 8.704q19.456 0 29.696-9.728t10.24-27.136v-61.44h-24.576zM644.096 300.544q-5.12 8.192-17.408 8.192-7.168 0-12.288-3.072t-5.12-9.216 5.12-8.704 12.288-2.56q12.288 0 17.408 8.192v7.168zM693.248 231.936l14.336 34.816-36.864 96.256h27.648l22.528-63.488 21.504 63.488h26.624l-50.176-131.072h-25.6zM855.040 298.496q-3.072-15.36-13.824-24.576t-29.184-9.216q-20.48 0-33.28 13.824t-12.8 36.352q0 21.504 12.8 35.84t33.28 14.336 31.744-13.312 11.264-34.816v-7.168h-63.488q2.048-23.552 20.48-23.552 15.36 0 18.432 12.288h24.576zM792.576 325.12h36.864q0 8.192-4.608 13.312t-12.8 5.12q-16.384 0-19.456-18.432zM921.6 336.384q-6.144 3.072-13.312 3.072-15.36 0-18.432-13.312v-59.392h-26.624v96.256h26.624v-9.216q7.168 11.264 21.504 11.264 8.192 0 10.24-2.048v-26.624z" />
|
70 |
+
<glyph unicode="" glyph-name="uniE211" d="M326.656 346.624l320.512 320.512q10.24 10.24 24.576 11.264t24.576-8.192q11.264-10.24 11.776-25.088t-10.752-25.088l-299.008-300.032 297.984-297.984q10.24-10.24 11.264-24.064t-8.192-24.064q-11.264-12.288-25.6-12.288-15.36 0-24.576 10.24l-322.56 321.536q-11.264 11.264-11.264 26.624t11.264 26.624z" />
|
71 |
+
<glyph unicode="" glyph-name="uniE212" d="M697.344 346.624q11.264-11.264 11.264-26.624t-11.264-26.624l-322.56-321.536q-9.216-10.24-24.576-10.24t-25.6 12.288q-9.216 10.24-8.192 24.064t11.264 24.064l297.984 297.984-299.008 300.032q-11.264 10.24-10.752 25.088t11.776 25.088q10.24 9.216 24.576 8.192t24.576-11.264l320.512-320.512z" />
|
72 |
+
<glyph unicode="" glyph-name="_73" d="M742.4 320q0-48.128-17.92-89.6t-49.664-73.216-73.728-49.664-89.088-17.92q-48.128 0-89.6 17.92t-73.216 49.664-49.664 73.216-17.92 89.6q0 47.104 17.92 89.088t49.664 73.728 73.216 49.664 89.6 17.92q47.104 0 89.088-17.92t73.728-49.664 49.664-73.728 17.92-89.088z" />
|
73 |
+
<glyph unicode="" glyph-name="_74" d="M451.584 180.736q-9.216 0-16.384 4.096-18.432 10.24-18.432 38.912v192.512q0 27.648 18.432 38.912 18.432 9.216 41.984-3.072l167.936-97.28q23.552-12.288 23.552-34.816 0-20.48-23.552-34.816l-167.936-97.28q-11.264-7.168-25.6-7.168zM451.584 443.904q-5.12 0-8.192-3.072-10.24-4.096-10.24-24.576v-192.512q0-20.48 10.24-24.576 10.24-7.168 26.624 3.072l166.912 96.256q16.384 10.24 16.384 21.504t-16.384 21.504l-166.912 96.256q-11.264 6.144-18.432 6.144zM512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 663.040q-70.656 0-133.12-27.136t-109.056-73.728-73.728-109.056-27.136-133.12 27.136-133.12 73.728-109.056 109.056-73.728 133.12-27.136 133.12 27.136 109.056 73.728 73.728 109.056 27.136 133.12-27.136 133.12-73.728 109.056-109.056 73.728-133.12 27.136z" />
|
74 |
+
<glyph unicode="" glyph-name="_75" d="M512-38.4q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 663.040q-70.656 0-133.12-27.136t-109.056-73.728-73.728-109.056-27.136-133.12 27.136-133.12 73.728-109.056 109.056-73.728 133.12-27.136 133.12 27.136 109.056 73.728 73.728 109.056 27.136 133.12-27.136 133.12-73.728 109.056-109.056 73.728-133.12 27.136zM440.32 176.64q-20.48 0-34.816 14.848t-14.336 35.328v189.44q0 20.48 14.336 34.816t34.816 14.336 35.328-14.336 14.848-34.816v-189.44q0-20.48-14.848-35.328t-35.328-14.848zM440.32 451.072q-14.336 0-24.576-10.24t-10.24-24.576v-189.44q0-14.336 10.24-25.088t24.576-10.752 25.088 10.752 10.752 25.088v189.44q0 14.336-10.752 24.576t-25.088 10.24zM583.68 176.64q-20.48 0-35.328 14.848t-14.848 35.328v189.44q0 20.48 14.848 34.816t35.328 14.336 34.816-14.336 14.336-34.816v-189.44q0-20.48-14.336-35.328t-34.816-14.848zM583.68 451.072q-14.336 0-25.088-10.24t-10.752-24.576v-189.44q0-14.336 10.752-25.088t25.088-10.752 24.576 10.752 10.24 25.088v189.44q0 14.336-10.24 24.576t-24.576 10.24z" />
|
75 |
+
<glyph unicode="" glyph-name="_76" d="M504.832 279.040v-2.048l-28.672-261.12q-1.024-12.288-10.24-20.48t-21.504-8.192h-3.072q-14.336 2.048-22.528 11.776t-7.168 24.064l18.432 168.96-185.344-184.32q-9.216-10.24-22.528-10.24t-22.528 10.24q-10.24 9.216-10.24 22.528t10.24 22.528l184.32 185.344-168.96-18.432q-13.312-1.024-23.552 7.168t-12.288 22.528q-2.048 13.312 6.656 23.552t22.016 11.264l262.144 28.672h7.168q2.048 0 2.56-0.512t2.56-0.512l2.048-1.024q2.048 0 4.096-2.048 1.024 0 2.048-1.024 2.048-1.024 5.12-4.096 2.048-2.048 2.56-3.072t1.536-2.048 1.024-2.048l2.048-4.096q0-1.024 0.512-1.536t0.512-1.536 0.512-1.536 0.512-2.56v-6.144zM808.96 420.352q14.336 1.024 24.064-7.168t11.776-22.528q2.048-13.312-6.656-23.552t-22.016-11.264l-261.12-28.672h-4.096q-13.312 0-22.528 9.216t-9.216 22.528v4.096l28.672 261.12q1.024 13.312 11.264 22.016t23.552 6.656q14.336-2.048 23.040-11.776t6.656-24.064l-18.432-168.96 185.344 185.344q9.216 9.216 22.528 9.216t23.552-9.216q9.216-10.24 9.216-23.552t-9.216-22.528l-185.344-185.344 168.96 18.432z" />
|
76 |
+
<glyph unicode="" glyph-name="uniE301" d="M663.552 52.736l-146.432 252.928-145.408-252.928h291.84zM517.12 400.896l229.376-396.288h-457.728zM870.4 585.216v-492.544h-119.808l-27.648 48.128h99.328v396.288h-620.544v-396.288h110.592l-28.672-48.128h-130.048v492.544h716.8z" />
|
77 |
+
<glyph unicode="" glyph-name="uniE302" d="M844.8 648.704l-33.792-313.344-66.56 7.168 18.432 176.128-192.512-191.488-47.104 47.104 192.512 192.512-176.128-19.456-7.168 67.584zM500.736 256.512l-192.512-191.488 176.128 18.432 7.168-66.56-312.32-33.792 33.792 312.32 66.56-7.168-18.432-176.128 192.512 192.512z" />
|
78 |
+
<glyph unicode="" glyph-name="uniE303" d="M814.080 685.568l-391.168-676.864-212.992 337.92 77.824 47.104 126.976-204.8 316.416 546.816z" />
|
79 |
+
<glyph unicode="" glyph-name="uniE304" d="M791.552 498.176h-166.912v84.992l6.144 4.096q35.84 21.504 35.84 62.464 0 29.696-21.504 50.688t-51.2 20.992-50.688-20.992-20.992-50.688q0-41.984 34.816-62.464l7.168-4.096v-84.992h-196.608v-202.752h-78.848l-4.096 7.168q-9.216 17.408-25.6 26.112t-35.84 8.704q-29.696 0-51.2-20.992t-21.504-50.688 21.504-51.2 51.2-21.504q19.456 0 35.84 9.216t25.6 25.6l4.096 7.168h78.848v-202.752h423.936v175.104h-51.2q-14.336-20.48-35.84-31.232t-46.080-10.752q-41.984 0-71.168 29.184t-29.184 71.168 29.184 71.168 71.168 29.184q24.576 0 46.080-11.264t35.84-30.72h51.2v174.080zM829.44 536.064v-249.856h-109.568l-3.072 4.096-4.096 7.168q-8.192 14.336-22.528 22.528t-31.744 8.192q-25.6 0-44.032-18.432t-18.432-44.032q0-26.624 18.432-44.544t44.032-17.92q35.84 0 54.272 29.696l4.096 7.168 3.072 5.12h109.568v-250.88h-499.712v202.752h-20.48q-15.36-20.48-37.888-31.232t-48.128-10.752q-23.552 0-43.52 8.704t-34.816 23.552-23.552 34.816-8.704 43.52q0 22.528 8.704 42.496t23.552 35.328 34.816 24.064 43.52 8.704q25.6 0 48.128-11.264t37.888-31.744h20.48v202.752h195.584v26.624q-19.456 15.36-30.72 38.4t-11.264 48.64q0 22.528 8.704 42.496t24.064 34.816 35.328 23.552 42.496 8.704 43.008-8.704 35.328-23.552 23.552-34.816 8.704-42.496q0-25.6-10.752-48.64t-31.232-38.4v-26.624h166.912z" />
|
80 |
+
<glyph unicode="" glyph-name="uniE305" d="M143.36 138.752q23.552 0 44.032-9.216t35.84-24.576 24.576-35.84 9.216-44.032h-113.664v113.664zM143.36 253.44q47.104 0 88.576-17.92t72.704-49.152 49.152-72.704 17.92-88.576h-47.104q0 37.888-14.336 70.656t-38.912 57.344-57.856 38.912-70.144 14.336v47.104zM143.36 373.248q71.68 0 135.168-27.648t110.592-74.752 74.752-110.592 27.648-135.168h-47.104q0 62.464-23.552 117.248t-64.512 95.744-95.744 64.512-117.248 23.552v47.104zM860.16 564.736v-503.808h-306.176q-2.048 11.264-3.584 23.552t-3.584 23.552h266.24v409.6h-590.848v-88.064q-22.528 4.096-47.104 6.144v129.024h685.056z" />
|
81 |
+
<glyph unicode="" glyph-name="uniE306" d="M827.392 138.752v349.184l-200.704-175.104zM231.424 112.128h561.152l-198.656 173.056-81.92-71.68-81.92 71.68zM196.608 487.936v-349.184l200.704 174.080zM797.696 518.656h-571.392l285.696-248.832zM870.4 561.664v-492.544h-716.8v492.544h716.8z" />
|
82 |
+
<glyph unicode="" glyph-name="uniE307" d="M234.496-16.896v665.6l575.488-332.8zM266.24 593.408v-555.008l480.256 277.504z" />
|
83 |
+
<glyph unicode="" glyph-name="uniE308" d="M461.824-11.776h-224.256v655.36h224.256v-655.36zM270.336 20.992h158.72v589.824h-158.72v-589.824zM786.432-11.776h-224.256v655.36h224.256v-655.36zM594.944 20.992h158.72v589.824h-158.72v-589.824z" />
|
84 |
+
<glyph unicode="" glyph-name="uniE309" d="M795.648 599.552h-567.296v-568.32h567.296v568.32zM844.8 648.704v-665.6h-665.6v665.6h665.6zM537.6 379.392q-36.864 0-75.776-11.264t-70.656-42.496-51.712-86.528-19.968-143.36h-48.128q0 158.72 69.12 245.248t197.12 86.528h124.928l-136.192 107.52 30.72 38.912 214.016-171.008-214.016-169.984-29.696 37.888 135.168 108.544h-124.928z" />
|
85 |
+
<glyph unicode="" glyph-name="uniE30A" d="M453.632 320h-47.104v77.824h47.104v46.080q0 48.128 22.016 74.752t78.336 26.624h62.464v-77.824h-38.912q-21.504 0-26.624-7.68t-5.12-23.040v-38.912h71.68l-9.216-77.824h-62.464v-224.256h-92.16v224.256zM828.416 631.296h-632.832v-631.808h632.832v631.808zM870.4 674.304v-716.8h-716.8v716.8h716.8z" />
|
86 |
+
<glyph unicode="" glyph-name="uniE30B" d="M315.392 458.24h-177.152v-276.48h177.152l174.080-158.72v593.92zM302.080 494.080l222.208 203.776v-755.712l-222.208 203.776h-199.68v348.16h199.68z" />
|
87 |
+
<glyph unicode="" glyph-name="uniE30C" d="M321.536 167.424q4.096-1.024 8.704-1.024h9.728q28.672 0 53.76 9.216t45.568 25.6q-26.624 0-46.592 15.872t-28.16 39.424q5.12-1.024 15.36-1.024h10.24t10.24 2.048q-27.648 6.144-45.568 27.648t-17.92 51.2v1.024q14.336-8.192 35.84-10.24-16.384 11.264-26.112 28.672t-9.728 37.888q0 22.528 11.264 39.936 29.696-35.84 72.192-58.368t92.672-24.576q-2.048 10.24-2.048 18.432 0 32.768 23.552 56.32t56.32 23.552q35.84 0 58.368-25.6 14.336 2.048 27.136 7.168t24.064 12.288q-9.216-28.672-35.84-44.032 25.6 3.072 47.104 12.288-8.192-11.264-18.432-22.016t-22.528-18.944q1.024-4.096 1.024-11.264 0-39.936-14.848-80.384t-44.032-73.216-71.68-53.248-97.792-20.48q-33.792 0-64.512 9.216t-57.344 26.624zM804.864 588.288h-585.728v-586.752h585.728v586.752zM844.8 628.224v-665.6h-665.6v665.6h665.6z" />
|
88 |
+
<glyph unicode="" glyph-name="uniE30D" d="M795.648 320l125.952-125.952-24.576-25.6-126.976 126.976-125.952-126.976-24.576 25.6 125.952 125.952-125.952 125.952 24.576 25.6 125.952-126.976 126.976 126.976 24.576-25.6zM315.392 458.24h-177.152v-276.48h177.152l174.080-158.72v593.92zM302.080 494.080l222.208 203.776v-755.712l-222.208 203.776h-199.68v348.16h199.68z" />
|
89 |
+
<glyph unicode="" glyph-name="uniE30E" d="M550.912 383.488l48.128 47.104 30.72-24.576-50.176-51.2 34.816-34.816 148.48 149.504-96.256 97.28-149.504-149.504zM472.064 248.32l-49.152-49.152-27.648 27.648 49.152 49.152-34.816 34.816-148.48-149.504 96.256-97.28 149.504 149.504zM551.936 327.168l-51.2-51.2 62.464-62.464-205.824-204.8-152.576 152.576 204.8 204.8 62.464-61.44 51.2 50.176-62.464 62.464 205.824 205.824 152.576-153.6-204.8-204.8z" />
|
90 |
+
<glyph unicode="" glyph-name="uniE30F" d="M555.008 315.904l264.192-264.192-43.008-43.008-264.192 264.192-264.192-264.192-43.008 43.008 264.192 264.192-264.192 264.192 43.008 43.008 264.192-264.192 264.192 264.192 43.008-43.008z" />
|
91 |
+
<glyph unicode="" glyph-name="uniE310" d="M457.728 281.088q-14.336-8.192-24.064-2.56t-9.728 22.016v194.56q0 15.36 9.728 20.992t24.064-2.56l167.936-97.28q14.336-8.192 14.336-18.944t-14.336-18.944l-167.936-97.28zM500.736 660.992q-54.272 0-102.4-20.48t-83.968-56.32-56.32-83.968-20.48-102.4 20.48-102.4 56.32-83.968 83.968-56.832 102.4-20.992q55.296 0 103.424 20.992t83.968 56.832 56.32 83.968 20.48 102.4-20.48 102.4-56.32 83.968-83.968 56.32-103.424 20.48zM500.736 88.576q-63.488 0-119.808 24.064t-98.304 66.048-66.048 98.304-24.064 120.832q0 63.488 24.064 119.808t66.048 98.304 98.304 66.048 119.808 24.064q64.512 0 120.832-24.064t98.304-66.048 66.048-98.304 24.064-119.808q0-64.512-24.064-120.832t-66.048-98.304-98.304-66.048-120.832-24.064zM861.184 0.512q7.168 0 9.216-2.048v-22.528q-6.144 2.048-11.264 2.048-13.312 0-16.384-11.264v-52.224h-23.552v83.968h23.552v-8.192q7.168 10.24 18.432 10.24zM789.504-34.304q0 15.36-15.36 15.36-14.336 0-17.408-15.36h32.768zM774.144 0.512q18.432 0 28.16-11.776t9.728-30.208v-7.168h-55.296q2.048-19.456 18.432-19.456 12.288 0 15.36 10.24h21.504q-2.048-13.312-11.776-21.504t-25.088-8.192q-18.432 0-29.696 12.288t-11.264 31.744 11.264 31.744 28.672 12.288zM737.28-1.536l-44.032-114.688h-22.528l12.288 30.72-32.768 83.968h24.576l19.456-55.296 19.456 55.296h23.552zM626.688-56.832q-3.072 8.192-14.336 8.192-5.12 0-10.24-3.072t-5.12-8.192 5.12-7.68 10.24-2.56q11.264 0 14.336 8.192v5.12zM614.4 0.512q34.816 0 34.816-32.768v-53.248h-22.528v5.12q-4.096-6.144-19.456-6.144-13.312 0-22.528 6.656t-9.216 19.968q0 12.288 9.216 19.456t23.552 7.168q12.288 0 18.432-4.096v6.144q0 12.288-13.312 12.288-9.216 0-12.288-7.168h-21.504q2.048 11.264 11.264 18.944t23.552 7.68zM544.768 36.352h23.552v-121.856h-23.552v121.856zM494.592-67.072q9.216 0 14.336 6.656t5.12 16.896-5.12 16.896-14.336 6.656q-11.264 0-16.384-9.216v-27.648q5.12-10.24 16.384-10.24zM499.712 0.512q17.408 0 27.648-13.312t10.24-30.72-10.24-30.72-27.648-13.312q-7.168 0-12.8 3.072t-8.704 6.144v-37.888h-22.528v114.688h22.528v-7.168q7.168 9.216 21.504 9.216zM428.032-1.536h22.528l-25.6-83.968h-21.504l-13.312 51.2-14.336-51.2h-21.504l-24.576 83.968h22.528l15.36-53.248 13.312 53.248h18.432l13.312-53.248zM289.792-67.072q17.408 0 17.408 23.552 0 11.264-4.608 17.92t-12.8 6.656-13.312-6.656-5.12-17.92q0-23.552 18.432-23.552zM289.792 0.512q18.432 0 29.696-12.288t11.264-31.744-11.264-31.744-29.696-12.288-29.696 12.288-11.264 31.744 11.264 31.744 29.696 12.288zM218.112 36.352h23.552v-121.856h-23.552v121.856zM166.912 8.704q0 14.336 8.192 22.016t21.504 7.68q8.192 0 13.312-3.072v-19.456q-3.072 2.048-8.192 2.048-11.264 0-11.264-11.264v-8.192h17.408v-18.432h-17.408v-65.536h-23.552v65.536h-13.312v18.432h13.312v10.24z" />
|
92 |
+
<glyph unicode="" glyph-name="uniE311" d="M665.6 674.304l51.2-50.176-308.224-308.224 308.224-308.224-51.2-50.176-358.4 358.4z" />
|
93 |
+
<glyph unicode="" glyph-name="uniE312" d="M716.8 315.904l-358.4-358.4-51.2 50.176 308.224 308.224-308.224 308.224 51.2 50.176z" />
|
94 |
+
<glyph unicode="" glyph-name="_100" d="M716.8 111.104h-409.6v409.6h409.6v-409.6z" />
|
95 |
+
<glyph unicode="" glyph-name="_101" d="M418.816 155.136v322.56l279.552-160.768zM434.176 451.072v-268.288l232.448 134.144zM512-42.496q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 657.92q-70.656 0-133.12-27.136t-109.056-73.216-73.728-108.544-27.136-133.12 27.136-133.12 73.728-109.056 109.056-73.728 133.12-27.136 133.12 27.136 109.056 73.728 73.728 109.056 27.136 133.12-27.136 133.12-73.728 108.544-109.056 73.216-133.12 27.136z" />
|
96 |
+
<glyph unicode="" glyph-name="_102" d="M512-42.496q-73.728 0-139.264 28.16t-114.176 76.8-76.8 114.176-28.16 139.264 28.16 139.264 76.8 114.176 114.176 76.8 139.264 28.16 139.264-28.16 114.176-76.8 76.8-114.176 28.16-139.264-28.16-139.264-76.8-114.176-114.176-76.8-139.264-28.16zM512 657.92q-70.656 0-133.12-27.136t-109.056-73.216-73.728-108.544-27.136-133.12 27.136-133.12 73.728-109.056 109.056-73.728 133.12-27.136 133.12 27.136 109.056 73.728 73.728 109.056 27.136 133.12-27.136 133.12-73.728 108.544-109.056 73.216-133.12 27.136zM490.496 171.52h-98.304v287.744h98.304v-287.744zM406.528 185.856h69.632v259.072h-69.632v-259.072zM631.808 171.52h-98.304v287.744h98.304v-287.744zM547.84 185.856h69.632v259.072h-69.632v-259.072z" />
|
97 |
+
<glyph unicode="" glyph-name="_103" d="M496.64 299.52l-32.768-312.32-64.512 7.168 18.432 176.128-187.392-192.512-46.080 48.128 186.368 192.512-171.008-19.456-6.144 66.56zM839.68 604.672l-187.392-191.488 171.008 18.432 7.168-66.56-303.104-33.792 32.768 312.32 64.512-7.168-18.432-176.128 187.392 192.512z" />
|
98 |
+
</font></defs></svg>
|
lib/skin/icons/flowplayer.ttf
ADDED
Binary file
|
lib/skin/icons/flowplayer.woff
ADDED
Binary file
|
lib/skin/icons/flowplayer.woff2
ADDED
Binary file
|
lib/skin/img/black.png
DELETED
Binary file
|
lib/skin/img/black@x2.png
DELETED
Binary file
|
lib/skin/img/black_rtl.png
DELETED
Binary file
|
lib/skin/img/black_rtl@x2.png
DELETED
Binary file
|
lib/skin/img/flowplayer.png
DELETED
Binary file
|
lib/skin/img/flowplayer@2x.png
DELETED
Binary file
|
lib/skin/img/play_black.png
DELETED
Binary file
|
lib/skin/img/play_black@x2.png
DELETED
Binary file
|
lib/skin/img/play_black_rtl.png
DELETED
Binary file
|
lib/skin/img/play_black_rtl@x2.png
DELETED
Binary file
|
lib/skin/img/play_white.png
DELETED
Binary file
|
lib/skin/img/play_white@x2.png
DELETED
Binary file
|
lib/skin/img/play_white_rtl.png
DELETED
Binary file
|
lib/skin/img/play_white_rtl@x2.png
DELETED
Binary file
|
lib/skin/img/playful_black.png
DELETED
Binary file
|
lib/skin/img/playful_black@x2.png
DELETED
Binary file
|
lib/skin/img/playful_black_rtl.png
DELETED
Binary file
|
lib/skin/img/playful_black_rtl@x2.png
DELETED
Binary file
|
lib/skin/img/playful_white.png
DELETED
Binary file
|
lib/skin/img/playful_white@x2.png
DELETED
Binary file
|
lib/skin/img/playful_white_rtl.png
DELETED
Binary file
|
lib/skin/img/playful_white_rtl@x2.png
DELETED
Binary file
|
lib/skin/img/white.png
DELETED
Binary file
|
lib/skin/img/white@x2.png
DELETED
Binary file
|
lib/skin/img/white_rtl.png
DELETED
Binary file
|
lib/skin/img/white_rtl@x2.png
DELETED
Binary file
|
lib/skin/minimalist.css
DELETED
@@ -1,232 +0,0 @@
|
|
1 |
-
.flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
2 |
-
.flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
3 |
-
.flowplayer a:focus{outline:0}
|
4 |
-
.flowplayer video{width:100%}
|
5 |
-
.flowplayer.is-ipad video{-webkit-transform:translateX(-2048px);}
|
6 |
-
.is-ready.flowplayer.is-ipad video{-webkit-transform:translateX(0)}
|
7 |
-
.flowplayer .fp-engine,.flowplayer .fp-ui,.flowplayer .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
8 |
-
.flowplayer .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
9 |
-
.flowplayer .fp-message h2{font-size:120%;margin-bottom:1em}
|
10 |
-
.flowplayer .fp-message p{color:#666;font-size:95%}
|
11 |
-
.flowplayer .fp-controls{position:absolute;bottom:0;width:100%;}
|
12 |
-
.no-background.flowplayer .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
13 |
-
.is-fullscreen.flowplayer .fp-controls{bottom:3px}
|
14 |
-
.is-mouseover.flowplayer .fp-controls{bottom:0}
|
15 |
-
.flowplayer .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
16 |
-
.flowplayer .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
17 |
-
.flowplayer .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
18 |
-
.flowplayer .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
19 |
-
.flowplayer .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
20 |
-
.flowplayer .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
21 |
-
.flowplayer .fp-waiting p{color:#ccc;font-weight:bold}
|
22 |
-
.flowplayer .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
23 |
-
.flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
24 |
-
.flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
25 |
-
.is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
26 |
-
.flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
|
27 |
-
.flowplayer .fp-help .fp-help-basics{margin-top:6%}
|
28 |
-
.flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
29 |
-
.flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
30 |
-
.flowplayer .fp-help small{font-size:90%;color:#aaa}
|
31 |
-
.flowplayer .fp-help .fp-close{display:block}
|
32 |
-
@media (max-width: 600px){.flowplayer .fp-help p{font-size:9px}
|
33 |
-
}.flowplayer .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
34 |
-
.flowplayer .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
35 |
-
.flowplayer .fp-subtitle p:after{content:'';clear:both}
|
36 |
-
.flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
37 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
|
38 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl.png)}
|
39 |
-
.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
|
40 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl.png)}
|
41 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
|
42 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl@x2.png)}
|
43 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
|
44 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl@x2.png)}
|
45 |
-
}.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
46 |
-
.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
47 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
48 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
49 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
50 |
-
}.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
|
51 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
|
52 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
|
53 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
54 |
-
}.is-fullscreen.flowplayer .fp-ui{background-size:auto}
|
55 |
-
.is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
|
56 |
-
.flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
|
57 |
-
.flowplayer .fp-logo img{width:100%}
|
58 |
-
.is-embedded.flowplayer .fp-logo{display:block}
|
59 |
-
.fixed-controls.flowplayer .fp-logo{bottom:15px}
|
60 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
61 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:5px;background-position:18px -197px}
|
62 |
-
.flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
|
63 |
-
.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
|
64 |
-
.flowplayer .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
65 |
-
.is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
|
66 |
-
.play-button.flowplayer .fp-play{display:block}
|
67 |
-
.is-paused.flowplayer .fp-play{background-position:9px 7px;}
|
68 |
-
.is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
|
69 |
-
.flowplayer.is-ready.is-closeable .fp-unload{display:block}
|
70 |
-
.flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
|
71 |
-
.flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
72 |
-
.is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
73 |
-
.flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
|
74 |
-
.flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
|
75 |
-
.no-volume.flowplayer .fp-timeline{margin-right:60px}
|
76 |
-
.no-mute.flowplayer .fp-timeline{margin-right:140px}
|
77 |
-
.no-mute.no-volume.flowplayer .fp-timeline{margin-right:45px}
|
78 |
-
.play-button.flowplayer .fp-timeline{margin-left:67px}
|
79 |
-
.is-rtl.flowplayer .fp-timeline{margin:0 45px 0 150px;}
|
80 |
-
.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:60px}
|
81 |
-
.no-mute.is-rtl.flowplayer .fp-timeline{margin-left:140px}
|
82 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:45px}
|
83 |
-
.play-button.is-rtl.flowplayer .fp-timeline{margin-right:67px}
|
84 |
-
.is-long.flowplayer .fp-timeline{margin:0 180px 0 75px;}
|
85 |
-
.no-volume.is-long.flowplayer .fp-timeline{margin-right:90px}
|
86 |
-
.no-mute.is-long.flowplayer .fp-timeline{margin-right:75px}
|
87 |
-
.play-button.is-long.flowplayer .fp-timeline{margin-left:97px}
|
88 |
-
.is-rtl.is-long.flowplayer .fp-timeline{margin:75px 0 180px 0;}
|
89 |
-
.no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:90px}
|
90 |
-
.no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:75px}
|
91 |
-
.play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:97px}
|
92 |
-
.aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 110px 0 5px}
|
93 |
-
.aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:20px}
|
94 |
-
.aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:5px}
|
95 |
-
.play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
|
96 |
-
.is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 5px 0 110px}
|
97 |
-
.is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:20px}
|
98 |
-
.is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:5px}
|
99 |
-
.is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
|
100 |
-
.flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
101 |
-
.flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
102 |
-
.flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
103 |
-
.flowplayer.is-touch .fp-timeline{overflow:visible}
|
104 |
-
.flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
105 |
-
.flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
106 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
107 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
108 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
109 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
110 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
111 |
-
.flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
112 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
113 |
-
.flowplayer .fp-volume{position:absolute;top:7.5px;right:5px;}
|
114 |
-
.is-rtl.flowplayer .fp-volume{right:auto;left:5px}
|
115 |
-
.flowplayer .fp-mute{position:relative;width:10px;height:15px;float:left;top:-5px;cursor:pointer;background-position:-2px -99px;}
|
116 |
-
.is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
|
117 |
-
.no-mute.flowplayer .fp-mute{display:none}
|
118 |
-
.flowplayer .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
|
119 |
-
.is-rtl.flowplayer .fp-volumeslider{float:right}
|
120 |
-
.no-volume.flowplayer .fp-volumeslider{display:none}
|
121 |
-
.flowplayer .fp-volumelevel{height:100%}
|
122 |
-
.flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
123 |
-
.flowplayer .fp-time.is-inverted .fp-duration{display:none}
|
124 |
-
.flowplayer .fp-time.is-inverted .fp-remaining{display:inline}
|
125 |
-
.flowplayer .fp-time em{width:35px;height:10px;line-height:10px;text-align:center;position:absolute;bottom:5px}
|
126 |
-
.no-time.flowplayer .fp-time{display:none}
|
127 |
-
.is-long.flowplayer .fp-time em{width:65px}
|
128 |
-
.flowplayer .fp-elapsed{left:5px;}
|
129 |
-
.play-button.flowplayer .fp-elapsed{left:27px}
|
130 |
-
.is-rtl.flowplayer .fp-elapsed{left:auto;right:5px;}
|
131 |
-
.play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
|
132 |
-
.flowplayer .fp-remaining,.flowplayer .fp-duration{right:110px;color:#eee;}
|
133 |
-
.no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:20px}
|
134 |
-
.no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:100px}
|
135 |
-
.no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:5px}
|
136 |
-
.is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:110px;}
|
137 |
-
.no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:20px}
|
138 |
-
.no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:100px}
|
139 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:5px}
|
140 |
-
.flowplayer .fp-remaining{display:none}
|
141 |
-
.flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
142 |
-
.flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
|
143 |
-
.flowplayer.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
|
144 |
-
.flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
|
145 |
-
.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:5px;}
|
146 |
-
.is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:5px}
|
147 |
-
.flowplayer.is-long.aside-time .fp-time{width:130px}
|
148 |
-
.flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
|
149 |
-
.flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
|
150 |
-
.flowplayer.is-poster .fp-engine{top:-9999em}
|
151 |
-
.flowplayer.is-loading .fp-waiting{display:block}
|
152 |
-
.flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
|
153 |
-
.flowplayer.is-loading .fp-ui{background-position:-9999em}
|
154 |
-
.flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
|
155 |
-
.flowplayer.is-seeking .fp-waiting{display:block}
|
156 |
-
.flowplayer.is-playing{background-image:none !important;background-color:#333;}
|
157 |
-
.flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
158 |
-
.flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
159 |
-
.is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
|
160 |
-
.flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
161 |
-
.flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
162 |
-
.flowplayer.is-error .fp-message{display:block}
|
163 |
-
.flowplayer.is-error object,.flowplayer.is-error video,.flowplayer.is-error .fp-controls,.flowplayer.is-error .fp-time,.flowplayer.is-error .fp-subtitle{display:none}
|
164 |
-
.flowplayer.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
165 |
-
.flowplayer.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
166 |
-
.flowplayer.is-mouseout .fp-timeline{margin:0 !important}
|
167 |
-
.flowplayer.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
168 |
-
.flowplayer.is-mouseout .fp-fullscreen,.flowplayer.is-mouseout .fp-unload,.flowplayer.is-mouseout .fp-elapsed,.flowplayer.is-mouseout .fp-remaining,.flowplayer.is-mouseout .fp-duration,.flowplayer.is-mouseout .fp-embed,.flowplayer.is-mouseout .fp-volume,.flowplayer.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
169 |
-
.flowplayer.is-mouseover .fp-controls,.flowplayer.fixed-controls .fp-controls{height:20px}
|
170 |
-
.flowplayer.is-mouseover .fp-fullscreen,.flowplayer.fixed-controls .fp-fullscreen,.flowplayer.is-mouseover .fp-unload,.flowplayer.fixed-controls .fp-unload,.flowplayer.is-mouseover .fp-elapsed,.flowplayer.fixed-controls .fp-elapsed,.flowplayer.is-mouseover .fp-remaining,.flowplayer.fixed-controls .fp-remaining,.flowplayer.is-mouseover .fp-duration,.flowplayer.fixed-controls .fp-duration,.flowplayer.is-mouseover .fp-embed,.flowplayer.fixed-controls .fp-embed,.flowplayer.is-mouseover .fp-logo,.flowplayer.fixed-controls .fp-logo,.flowplayer.is-mouseover .fp-volume,.flowplayer.fixed-controls .fp-volume,.flowplayer.is-mouseover .fp-play,.flowplayer.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
171 |
-
.flowplayer.fixed-controls .fp-volume{display:block}
|
172 |
-
.flowplayer.fixed-controls .fp-controls{bottom:-20px;}
|
173 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-controls{bottom:0}
|
174 |
-
.flowplayer.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
175 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:5px}
|
176 |
-
.flowplayer.is-disabled .fp-progress{background-color:#999}
|
177 |
-
.flowplayer.is-flash-disabled{background-color:#333;}
|
178 |
-
.flowplayer.is-flash-disabled object.fp-engine{z-index:100}
|
179 |
-
.flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
180 |
-
.flowplayer .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
181 |
-
.is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:5px}
|
182 |
-
.flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
183 |
-
.flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
184 |
-
.is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
|
185 |
-
.is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
186 |
-
.flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
187 |
-
.flowplayer .fp-embed-code label{display:block;color:#999}
|
188 |
-
.flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
189 |
-
.flowplayer.aside-time .fp-embed{left:85px;}
|
190 |
-
.is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:85px}
|
191 |
-
.flowplayer.aside-time .fp-embed-code{left:115px;}
|
192 |
-
.is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:115px}
|
193 |
-
.flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
194 |
-
.flowplayer.is-long.aside-time .fp-embed{left:130px;}
|
195 |
-
.is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
|
196 |
-
.flowplayer.no-time .fp-embed{left:5px !important;}
|
197 |
-
.is-rtl.flowplayer.no-time .fp-embed{left:auto;right:5px !important}
|
198 |
-
.flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
|
199 |
-
.flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
200 |
-
.flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
201 |
-
.flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
202 |
-
.flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
203 |
-
.flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
204 |
-
@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
205 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
206 |
-
100%{opacity:1}
|
207 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
208 |
-
100%{opacity:1}
|
209 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
210 |
-
100%{opacity:1}
|
211 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
212 |
-
100%{opacity:1}
|
213 |
-
}@keyframes pulse{0%{opacity:0}
|
214 |
-
100%{opacity:1}
|
215 |
-
}.flowplayer .fp-controls{background-color:#333;background-color:rgba(51,51,51,0.6)}
|
216 |
-
.flowplayer.fixed-controls .fp-controls{background-color:#333}
|
217 |
-
.flowplayer .fp-timeline{background-color:#666}
|
218 |
-
.flowplayer .fp-buffer{background-color:#eee}
|
219 |
-
.flowplayer .fp-progress{background-color:#00a7c8}
|
220 |
-
.flowplayer .fp-volumeslider{background-color:#000}
|
221 |
-
.flowplayer .fp-volumelevel{background-color:#fff}
|
222 |
-
.flowplayer .fp-play{height:24px}
|
223 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#00a7c8}
|
224 |
-
.flowplayer.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
|
225 |
-
.flowplayer.color-light.fixed-controls .fp-controls{background-color:#fff}
|
226 |
-
.flowplayer.color-light .fp-volumeslider{background-color:#ddd}
|
227 |
-
.flowplayer.color-light .fp-volumelevel{background-color:#222}
|
228 |
-
.flowplayer.color-alt .fp-progress{background-color:#fff}
|
229 |
-
.flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#fff}
|
230 |
-
.flowplayer.color-alt .fp-buffer{background-color:#999}
|
231 |
-
.flowplayer.color-alt2 .fp-progress{background-color:#900}
|
232 |
-
.flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/skin/playful.css
DELETED
@@ -1,236 +0,0 @@
|
|
1 |
-
.flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
|
2 |
-
.flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
|
3 |
-
.flowplayer a:focus{outline:0}
|
4 |
-
.flowplayer video{width:100%}
|
5 |
-
.flowplayer.is-ipad video{-webkit-transform:translateX(-2048px);}
|
6 |
-
.is-ready.flowplayer.is-ipad video{-webkit-transform:translateX(0)}
|
7 |
-
.flowplayer .fp-engine,.flowplayer .fp-ui,.flowplayer .fp-message{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1}
|
8 |
-
.flowplayer .fp-message{display:none;text-align:center;padding-top:5%;cursor:default;}
|
9 |
-
.flowplayer .fp-message h2{font-size:120%;margin-bottom:1em}
|
10 |
-
.flowplayer .fp-message p{color:#666;font-size:95%}
|
11 |
-
.flowplayer .fp-controls{position:absolute;bottom:0;width:100%;}
|
12 |
-
.no-background.flowplayer .fp-controls{background-color:transparent !important;background-image:-moz-linear-gradient(transparent,transparent) !important;background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(transparent)) !important}
|
13 |
-
.is-fullscreen.flowplayer .fp-controls{bottom:3px}
|
14 |
-
.is-mouseover.flowplayer .fp-controls{bottom:0}
|
15 |
-
.flowplayer .fp-waiting{display:none;margin:19% auto;text-align:center;}
|
16 |
-
.flowplayer .fp-waiting *{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}
|
17 |
-
.flowplayer .fp-waiting em{width:1em;height:1em;-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;background-color:rgba(255,255,255,0.8);display:inline-block;-webkit-animation:pulse .6s infinite;-moz-animation:pulse .6s infinite;animation:pulse .6s infinite;margin:.3em;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);}
|
18 |
-
.flowplayer .fp-waiting em:nth-child(1){-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}
|
19 |
-
.flowplayer .fp-waiting em:nth-child(2){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;animation-delay:.45s}
|
20 |
-
.flowplayer .fp-waiting em:nth-child(3){-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}
|
21 |
-
.flowplayer .fp-waiting p{color:#ccc;font-weight:bold}
|
22 |
-
.flowplayer .fp-speed{font-size:30px;background-color:#333;background-color:rgba(51,51,51,0.8);color:#eee;margin:0 auto;text-align:center;width:120px;padding:.1em 0 0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s;}
|
23 |
-
.flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
24 |
-
.flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
|
25 |
-
.is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
26 |
-
.flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
|
27 |
-
.flowplayer .fp-help .fp-help-basics{margin-top:6%}
|
28 |
-
.flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
|
29 |
-
.flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
|
30 |
-
.flowplayer .fp-help small{font-size:90%;color:#aaa}
|
31 |
-
.flowplayer .fp-help .fp-close{display:block}
|
32 |
-
@media (max-width: 600px){.flowplayer .fp-help p{font-size:9px}
|
33 |
-
}.flowplayer .fp-subtitle{position:absolute;bottom:40px;left:-99999em;z-index:10;text-align:center;width:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;}
|
34 |
-
.flowplayer .fp-subtitle p{display:inline;background-color:#333;background-color:rgba(51,51,51,0.9);color:#eee;padding:.1em .4em;font-size:16px;line-height:1.6;}
|
35 |
-
.flowplayer .fp-subtitle p:after{content:'';clear:both}
|
36 |
-
.flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
37 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
|
38 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/playful_white_rtl.png)}
|
39 |
-
.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black.png);}
|
40 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/playful_black_rtl.png)}
|
41 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black@x2.png)}
|
42 |
-
.is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/playful_black_rtl@x2.png)}
|
43 |
-
}@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white@x2.png)}
|
44 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/playful_white_rtl@x2.png)}
|
45 |
-
}.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
|
46 |
-
.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
|
47 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
|
48 |
-
@media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
|
49 |
-
.is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
|
50 |
-
}.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
|
51 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
|
52 |
-
@media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
|
53 |
-
.is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
|
54 |
-
}.is-fullscreen.flowplayer .fp-ui{background-size:auto}
|
55 |
-
.is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
|
56 |
-
.flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
|
57 |
-
.flowplayer .fp-logo img{width:100%}
|
58 |
-
.is-embedded.flowplayer .fp-logo{display:block}
|
59 |
-
.fixed-controls.flowplayer .fp-logo{bottom:15px}
|
60 |
-
.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
|
61 |
-
.is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:12px;background-position:18px -197px}
|
62 |
-
.flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
|
63 |
-
.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
|
64 |
-
.flowplayer .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
|
65 |
-
.is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
|
66 |
-
.play-button.flowplayer .fp-play{display:block}
|
67 |
-
.is-paused.flowplayer .fp-play{background-position:9px 7px;}
|
68 |
-
.is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
|
69 |
-
.flowplayer.is-ready.is-closeable .fp-unload{display:block}
|
70 |
-
.flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
|
71 |
-
.flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
|
72 |
-
.is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
|
73 |
-
.flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
|
74 |
-
.flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
|
75 |
-
.no-volume.flowplayer .fp-timeline{margin-right:109px}
|
76 |
-
.no-mute.flowplayer .fp-timeline{margin-right:161px}
|
77 |
-
.no-mute.no-volume.flowplayer .fp-timeline{margin-right:59px}
|
78 |
-
.play-button.flowplayer .fp-timeline{margin-left:74px}
|
79 |
-
.is-rtl.flowplayer .fp-timeline{margin:0 59px 0 199px;}
|
80 |
-
.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:109px}
|
81 |
-
.no-mute.is-rtl.flowplayer .fp-timeline{margin-left:161px}
|
82 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:59px}
|
83 |
-
.play-button.is-rtl.flowplayer .fp-timeline{margin-right:74px}
|
84 |
-
.is-long.flowplayer .fp-timeline{margin:0 229px 0 89px;}
|
85 |
-
.no-volume.is-long.flowplayer .fp-timeline{margin-right:139px}
|
86 |
-
.no-mute.is-long.flowplayer .fp-timeline{margin-right:89px}
|
87 |
-
.play-button.is-long.flowplayer .fp-timeline{margin-left:104px}
|
88 |
-
.is-rtl.is-long.flowplayer .fp-timeline{margin:89px 0 229px 0;}
|
89 |
-
.no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:139px}
|
90 |
-
.no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:89px}
|
91 |
-
.play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:104px}
|
92 |
-
.aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 152px 0 12px}
|
93 |
-
.aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:62px}
|
94 |
-
.aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:12px}
|
95 |
-
.play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
|
96 |
-
.is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 12px 0 152px}
|
97 |
-
.is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:62px}
|
98 |
-
.is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:12px}
|
99 |
-
.is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
|
100 |
-
.flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
|
101 |
-
.flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
|
102 |
-
.flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
|
103 |
-
.flowplayer.is-touch .fp-timeline{overflow:visible}
|
104 |
-
.flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
|
105 |
-
.flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
|
106 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
|
107 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
|
108 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
|
109 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
|
110 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
|
111 |
-
.flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
|
112 |
-
.flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
|
113 |
-
.flowplayer .fp-volume{position:absolute;top:12px;right:12px;}
|
114 |
-
.is-rtl.flowplayer .fp-volume{right:auto;left:12px}
|
115 |
-
.flowplayer .fp-mute{position:relative;width:38px;height:20px;float:left;top:-4.5px;cursor:pointer;background-position:-2px -99px;}
|
116 |
-
.is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
|
117 |
-
.no-mute.flowplayer .fp-mute{display:none}
|
118 |
-
.flowplayer .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
|
119 |
-
.is-rtl.flowplayer .fp-volumeslider{float:right}
|
120 |
-
.no-volume.flowplayer .fp-volumeslider{display:none}
|
121 |
-
.flowplayer .fp-volumelevel{height:100%}
|
122 |
-
.flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
|
123 |
-
.flowplayer .fp-time.is-inverted .fp-duration{display:none}
|
124 |
-
.flowplayer .fp-time.is-inverted .fp-remaining{display:inline}
|
125 |
-
.flowplayer .fp-time em{width:35px;height:11px;line-height:11px;text-align:center;position:absolute;bottom:12px}
|
126 |
-
.no-time.flowplayer .fp-time{display:none}
|
127 |
-
.is-long.flowplayer .fp-time em{width:65px}
|
128 |
-
.flowplayer .fp-elapsed{left:12px;}
|
129 |
-
.play-button.flowplayer .fp-elapsed{left:27px}
|
130 |
-
.is-rtl.flowplayer .fp-elapsed{left:auto;right:12px;}
|
131 |
-
.play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
|
132 |
-
.flowplayer .fp-remaining,.flowplayer .fp-duration{right:152px;color:#eee;}
|
133 |
-
.no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:62px}
|
134 |
-
.no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:114px}
|
135 |
-
.no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:12px}
|
136 |
-
.is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:152px;}
|
137 |
-
.no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:62px}
|
138 |
-
.no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:114px}
|
139 |
-
.no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:12px}
|
140 |
-
.flowplayer .fp-remaining{display:none}
|
141 |
-
.flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
|
142 |
-
.flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
|
143 |
-
.flowplayer.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
|
144 |
-
.flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
|
145 |
-
.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:12px;}
|
146 |
-
.is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:12px}
|
147 |
-
.flowplayer.is-long.aside-time .fp-time{width:130px}
|
148 |
-
.flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
|
149 |
-
.flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
|
150 |
-
.flowplayer.is-poster .fp-engine{top:-9999em}
|
151 |
-
.flowplayer.is-loading .fp-waiting{display:block}
|
152 |
-
.flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
|
153 |
-
.flowplayer.is-loading .fp-ui{background-position:-9999em}
|
154 |
-
.flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
|
155 |
-
.flowplayer.is-seeking .fp-waiting{display:block}
|
156 |
-
.flowplayer.is-playing{background-image:none !important;background-color:#333;}
|
157 |
-
.flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
|
158 |
-
.flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
|
159 |
-
.is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
|
160 |
-
.flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
|
161 |
-
.flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
|
162 |
-
.flowplayer.is-error .fp-message{display:block}
|
163 |
-
.flowplayer.is-error object,.flowplayer.is-error video,.flowplayer.is-error .fp-controls,.flowplayer.is-error .fp-time,.flowplayer.is-error .fp-subtitle{display:none}
|
164 |
-
.flowplayer.is-ready.is-muted .fp-mute{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50)}
|
165 |
-
.flowplayer.is-mouseout .fp-controls{height:0;-webkit-transition:height .15s .3s;-moz-transition:height .15s .3s;transition:height .15s .3s}
|
166 |
-
.flowplayer.is-mouseout .fp-timeline{margin:0 !important}
|
167 |
-
.flowplayer.is-mouseout .fp-timeline{-webkit-transition:height .15s .3s,top .15s .3s,margin .15s .3s;-moz-transition:height .15s .3s,top .15s .3s,margin .15s .3s;transition:height .15s .3s,top .15s .3s,margin .15s .3s;height:4px;top:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
|
168 |
-
.flowplayer.is-mouseout .fp-fullscreen,.flowplayer.is-mouseout .fp-unload,.flowplayer.is-mouseout .fp-elapsed,.flowplayer.is-mouseout .fp-remaining,.flowplayer.is-mouseout .fp-duration,.flowplayer.is-mouseout .fp-embed,.flowplayer.is-mouseout .fp-volume,.flowplayer.is-mouseout .fp-play{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .15s .3s;-moz-transition:opacity .15s .3s;transition:opacity .15s .3s}
|
169 |
-
.flowplayer.is-mouseover .fp-controls,.flowplayer.fixed-controls .fp-controls{height:35px}
|
170 |
-
.flowplayer.is-mouseover .fp-fullscreen,.flowplayer.fixed-controls .fp-fullscreen,.flowplayer.is-mouseover .fp-unload,.flowplayer.fixed-controls .fp-unload,.flowplayer.is-mouseover .fp-elapsed,.flowplayer.fixed-controls .fp-elapsed,.flowplayer.is-mouseover .fp-remaining,.flowplayer.fixed-controls .fp-remaining,.flowplayer.is-mouseover .fp-duration,.flowplayer.fixed-controls .fp-duration,.flowplayer.is-mouseover .fp-embed,.flowplayer.fixed-controls .fp-embed,.flowplayer.is-mouseover .fp-logo,.flowplayer.fixed-controls .fp-logo,.flowplayer.is-mouseover .fp-volume,.flowplayer.fixed-controls .fp-volume,.flowplayer.is-mouseover .fp-play,.flowplayer.fixed-controls .fp-play{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
171 |
-
.flowplayer.fixed-controls .fp-volume{display:block}
|
172 |
-
.flowplayer.fixed-controls .fp-controls{bottom:-35px;}
|
173 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-controls{bottom:0}
|
174 |
-
.flowplayer.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
|
175 |
-
.is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:12px}
|
176 |
-
.flowplayer.is-disabled .fp-progress{background-color:#999}
|
177 |
-
.flowplayer.is-flash-disabled{background-color:#333;}
|
178 |
-
.flowplayer.is-flash-disabled object.fp-engine{z-index:100}
|
179 |
-
.flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
|
180 |
-
.flowplayer .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px;}
|
181 |
-
.is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:12px}
|
182 |
-
.flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
|
183 |
-
.flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
|
184 |
-
.is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
|
185 |
-
.is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
|
186 |
-
.flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
|
187 |
-
.flowplayer .fp-embed-code label{display:block;color:#999}
|
188 |
-
.flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
189 |
-
.flowplayer.aside-time .fp-embed{left:110px;}
|
190 |
-
.is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:110px}
|
191 |
-
.flowplayer.aside-time .fp-embed-code{left:140px;}
|
192 |
-
.is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:140px}
|
193 |
-
.flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
|
194 |
-
.flowplayer.is-long.aside-time .fp-embed{left:130px;}
|
195 |
-
.is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
|
196 |
-
.flowplayer.no-time .fp-embed{left:12px !important;}
|
197 |
-
.is-rtl.flowplayer.no-time .fp-embed{left:auto;right:12px !important}
|
198 |
-
.flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
|
199 |
-
.flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
|
200 |
-
.flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
|
201 |
-
.flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
|
202 |
-
.flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
|
203 |
-
.flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
|
204 |
-
@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
|
205 |
-
}@-moz-keyframes pulse{0%{opacity:0}
|
206 |
-
100%{opacity:1}
|
207 |
-
}@-webkit-keyframes pulse{0%{opacity:0}
|
208 |
-
100%{opacity:1}
|
209 |
-
}@-o-keyframes pulse{0%{opacity:0}
|
210 |
-
100%{opacity:1}
|
211 |
-
}@-ms-keyframes pulse{0%{opacity:0}
|
212 |
-
100%{opacity:1}
|
213 |
-
}@keyframes pulse{0%{opacity:0}
|
214 |
-
100%{opacity:1}
|
215 |
-
}.flowplayer .fp-controls{background-color:#111}
|
216 |
-
.flowplayer .fp-timeline,.flowplayer .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
|
217 |
-
.flowplayer .fp-buffer{background-color:#eee}
|
218 |
-
.flowplayer .fp-progress{background-color:#008000}
|
219 |
-
.flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#008000}
|
220 |
-
.flowplayer .fp-volumelevel{background-color:#fff}
|
221 |
-
.flowplayer .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
|
222 |
-
.is-rtl.flowplayer .fp-mute{background-position:0 -79px}
|
223 |
-
.is-muted.flowplayer .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
|
224 |
-
.flowplayer .fp-play{background-position:9px -20px;}
|
225 |
-
.is-rtl.flowplayer .fp-play{background-position:18px -20px}
|
226 |
-
.is-paused.flowplayer .fp-play{background-position:9px 11px;}
|
227 |
-
.is-rtl.is-paused.flowplayer .fp-play{background-position:18px 11px}
|
228 |
-
.flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
|
229 |
-
.flowplayer .fp-controls,.flowplayer .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
|
230 |
-
.flowplayer .fp-timeline,.flowplayer .fp-progress,.flowplayer .fp-buffer,.flowplayer .fp-volumeslider,.flowplayer .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
|
231 |
-
.flowplayer.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
|
232 |
-
.flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
|
233 |
-
.flowplayer.color-alt .fp-progress,.flowplayer.color-alt .fp-volumelevel{background-color:#111}
|
234 |
-
.flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#111}
|
235 |
-
.flowplayer.color-alt2 .fp-progress,.flowplayer.color-alt2 .fp-volumelevel{background-color:#900}
|
236 |
-
.flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/skin/skin.css
ADDED
@@ -0,0 +1,1010 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@charset "UTF-8";
|
2 |
+
@font-face {
|
3 |
+
font-family: flowplayer;
|
4 |
+
src: url("icons/flowplayer.eot?#iefix") format("embedded-opentype"), url("icons/flowplayer.woff2") format("woff2"), url("icons/flowplayer.woff") format("woff"); }
|
5 |
+
|
6 |
+
.fp-icon {
|
7 |
+
display: inline-block; }
|
8 |
+
.fp-icon:before {
|
9 |
+
font-family: flowplayer;
|
10 |
+
font-size: 1.7em; }
|
11 |
+
|
12 |
+
.fp-airplay:before {
|
13 |
+
content: "\e001"; }
|
14 |
+
|
15 |
+
.fp-fullscreen:before {
|
16 |
+
content: "\e002"; }
|
17 |
+
|
18 |
+
.fp-checked:before {
|
19 |
+
content: "\e003"; }
|
20 |
+
|
21 |
+
.fp-embed:before {
|
22 |
+
content: "\e004";
|
23 |
+
color: #fff; }
|
24 |
+
|
25 |
+
.fp-chromecast:before {
|
26 |
+
content: "\e005"; }
|
27 |
+
|
28 |
+
.fp-email:before {
|
29 |
+
content: "\e006"; }
|
30 |
+
|
31 |
+
.fp-playbtn:before {
|
32 |
+
content: "\e007"; }
|
33 |
+
|
34 |
+
.fp-share:before {
|
35 |
+
content: "\e009"; }
|
36 |
+
|
37 |
+
.fp-share2:before {
|
38 |
+
content: "\e00a"; }
|
39 |
+
|
40 |
+
.fp-twitter:before {
|
41 |
+
content: "\e00c";
|
42 |
+
color: #1da1f2; }
|
43 |
+
|
44 |
+
.fp-facebook:before {
|
45 |
+
content: "\e00a";
|
46 |
+
color: #3b5998; }
|
47 |
+
|
48 |
+
.fp-volumebtn:before {
|
49 |
+
content: "\e00b"; }
|
50 |
+
|
51 |
+
.fp-volume-off:before {
|
52 |
+
content: "\e00d"; }
|
53 |
+
|
54 |
+
.fp-unload:before {
|
55 |
+
content: "\e00f"; }
|
56 |
+
|
57 |
+
.fp-prevbtn:before {
|
58 |
+
content: "\e011"; }
|
59 |
+
|
60 |
+
.fp-nextbtn:before {
|
61 |
+
content: "\e012"; }
|
62 |
+
|
63 |
+
.flowplayer.is-mouseover .fp-captions, .flowplayer.is-paused .fp-captions {
|
64 |
+
bottom: 3em; }
|
65 |
+
|
66 |
+
.flowplayer.is-poster .fp-engine {
|
67 |
+
filter: alpha(opacity=0);
|
68 |
+
opacity: 0; }
|
69 |
+
|
70 |
+
.flowplayer.is-loading .fp-engine {
|
71 |
+
top: -9999em; }
|
72 |
+
|
73 |
+
.flowplayer.is-loading .fp-ui .fp-header, .flowplayer.is-loading .fp-ui .fp-controls {
|
74 |
+
filter: alpha(opacity=0);
|
75 |
+
opacity: 0; }
|
76 |
+
|
77 |
+
.flowplayer.is-splash .fp-ui > *, .flowplayer.is-poster .fp-ui > * {
|
78 |
+
display: none; }
|
79 |
+
|
80 |
+
.flowplayer.is-splash .fp-ui > .fp-play, .flowplayer.is-poster .fp-ui > .fp-play {
|
81 |
+
display: block; }
|
82 |
+
|
83 |
+
.flowplayer.is-splash.is-loading .fp-ui > .fp-play, .flowplayer.is-poster.is-loading .fp-ui > .fp-play {
|
84 |
+
display: none; }
|
85 |
+
|
86 |
+
.flowplayer.is-poster .fp-engine {
|
87 |
+
left: -9999em;
|
88 |
+
top: -9999em; }
|
89 |
+
|
90 |
+
.flowplayer.is-disabled .fp-color {
|
91 |
+
background-color: #999; }
|
92 |
+
|
93 |
+
.flowplayer.has-title .fp-header {
|
94 |
+
top: 0;
|
95 |
+
text-align: right; }
|
96 |
+
|
97 |
+
.flowplayer.is-fullscreen {
|
98 |
+
top: 0 !important;
|
99 |
+
left: 0 !important;
|
100 |
+
border: 0 !important;
|
101 |
+
margin: 0 !important;
|
102 |
+
width: 100% !important;
|
103 |
+
height: 100% !important;
|
104 |
+
max-width: 100% !important;
|
105 |
+
z-index: 99999 !important;
|
106 |
+
-webkit-box-shadow: 0 !important;
|
107 |
+
box-shadow: 0 !important;
|
108 |
+
background-image: none !important;
|
109 |
+
background-color: #333; }
|
110 |
+
.flowplayer.is-fullscreen .fp-player {
|
111 |
+
background-color: #333; }
|
112 |
+
.flowplayer.is-fullscreen .fp-fullscreen:before {
|
113 |
+
content: "\e016"; }
|
114 |
+
|
115 |
+
.flowplayer.is-fullscreen.fp-outlined .fp-fullscreen:before, .flowplayer.is-fullscreen.fp-minimal .fp-fullscreen:before {
|
116 |
+
content: "\e216"; }
|
117 |
+
|
118 |
+
.flowplayer.is-fullscreen.fp-edgy .fp-fullscreen:before {
|
119 |
+
content: "\e116"; }
|
120 |
+
|
121 |
+
.flowplayer.is-fullscreen.fp-edgy.fp-outlined .fp-fullscreen:before, .flowplayer.is-fullscreen.fp-edgy.fp-minimal .fp-fullscreen:before {
|
122 |
+
content: "\e316"; }
|
123 |
+
|
124 |
+
.flowplayer.is-loading .fp-waiting svg, .flowplayer.is-loading .fp-waiting p, .flowplayer.is-seeking .fp-waiting svg, .flowplayer.is-seeking .fp-waiting p {
|
125 |
+
filter: alpha(opacity=100);
|
126 |
+
opacity: 1; }
|
127 |
+
|
128 |
+
.flowplayer.is-loading .fp-play, .flowplayer.is-seeking .fp-play {
|
129 |
+
display: none !important; }
|
130 |
+
|
131 |
+
.flowplayer.is-playing {
|
132 |
+
background-image: none !important; }
|
133 |
+
.flowplayer.is-playing .fp-playbtn:before {
|
134 |
+
content: "\e008"; }
|
135 |
+
|
136 |
+
.flowplayer.is-playing.fp-outlined .fp-playbtn:before, .flowplayer.is-playing.fp-minimal .fp-playbtn:before {
|
137 |
+
content: "\e208"; }
|
138 |
+
|
139 |
+
.flowplayer.is-playing.fp-edgy .fp-playbtn:before {
|
140 |
+
content: "\e108"; }
|
141 |
+
|
142 |
+
.flowplayer.is-playing.fp-edgy.fp-outlined .fp-playbtn:before, .flowplayer.is-playing.fp-edgy.fp-minimal .fp-playbtn:before {
|
143 |
+
content: "\e308"; }
|
144 |
+
|
145 |
+
.flowplayer.is-muted .fp-volumebtn:before {
|
146 |
+
content: "\e00d"; }
|
147 |
+
|
148 |
+
.flowplayer.is-muted.fp-outlined .fp-volumebtn:before, .flowplayer.is-muted.fp-minimal .fp-volumebtn:before {
|
149 |
+
content: "\e20d"; }
|
150 |
+
|
151 |
+
.flowplayer.is-muted.fp-edgy .fp-volumebtn:before {
|
152 |
+
content: "\e10d"; }
|
153 |
+
|
154 |
+
.flowplayer.is-muted.fp-edgy.fp-outlined .fp-volumebtn:before, .flowplayer.is-muted.fp-edgy.fp-minimal .fp-volumebtn:before {
|
155 |
+
content: "\e30d"; }
|
156 |
+
|
157 |
+
.flowplayer.is-inverted .fp-duration {
|
158 |
+
display: none; }
|
159 |
+
|
160 |
+
.flowplayer.is-inverted .fp-remaining {
|
161 |
+
display: block; }
|
162 |
+
|
163 |
+
.flowplayer.is-closeable .fp-header .fp-unload {
|
164 |
+
display: block; }
|
165 |
+
|
166 |
+
.flowplayer.is-error {
|
167 |
+
background-color: #aaa; }
|
168 |
+
.flowplayer.is-error .fp-ui {
|
169 |
+
filter: alpha(opacity=100);
|
170 |
+
opacity: 1; }
|
171 |
+
|
172 |
+
.flowplayer.is-live .fp-timeline {
|
173 |
+
visibility: hidden; }
|
174 |
+
|
175 |
+
.flowplayer.is-live.is-dvr .fp-timeline {
|
176 |
+
visibility: visible; }
|
177 |
+
|
178 |
+
.flowplayer.is-live.is-dvr.is-live-position .fp-duration {
|
179 |
+
color: #00abcd; }
|
180 |
+
|
181 |
+
.flowplayer.is-live .fp-timestamp {
|
182 |
+
display: none !important; }
|
183 |
+
|
184 |
+
.flowplayer.is-flash-disabled .fp-waiting {
|
185 |
+
display: none !important; }
|
186 |
+
|
187 |
+
.flowplayer.is-flash-disabled .fp-ui {
|
188 |
+
height: auto;
|
189 |
+
background: none;
|
190 |
+
filter: alpha(opacity=100);
|
191 |
+
opacity: 1; }
|
192 |
+
.flowplayer.is-flash-disabled .fp-ui .fp-header, .flowplayer.is-flash-disabled .fp-ui .fp-controls {
|
193 |
+
display: none; }
|
194 |
+
|
195 |
+
.flowplayer.is-flash-disabled .fp-engine {
|
196 |
+
top: 0; }
|
197 |
+
|
198 |
+
.flowplayer.no-buffer .fp-ui .fp-controls .fp-timeline .fp-buffer {
|
199 |
+
display: none; }
|
200 |
+
|
201 |
+
.flowplayer.no-volume .fp-volumebar {
|
202 |
+
display: none; }
|
203 |
+
|
204 |
+
.flowplayer.fp-mute .fp-volumebtn {
|
205 |
+
display: inline-block; }
|
206 |
+
|
207 |
+
@-webkit-keyframes pulse {
|
208 |
+
0% {
|
209 |
+
filter: alpha(opacity=0);
|
210 |
+
opacity: 0; }
|
211 |
+
100% {
|
212 |
+
filter: alpha(opacity=100);
|
213 |
+
opacity: 1; } }
|
214 |
+
|
215 |
+
@keyframes pulse {
|
216 |
+
0% {
|
217 |
+
filter: alpha(opacity=0);
|
218 |
+
opacity: 0; }
|
219 |
+
100% {
|
220 |
+
filter: alpha(opacity=100);
|
221 |
+
opacity: 1; } }
|
222 |
+
|
223 |
+
.flowplayer .fp-chromecast-engine {
|
224 |
+
position: absolute;
|
225 |
+
display: none;
|
226 |
+
top: 0;
|
227 |
+
bottom: 0;
|
228 |
+
right: 0;
|
229 |
+
left: 0;
|
230 |
+
color: #fff; }
|
231 |
+
.flowplayer .fp-chromecast-engine .fp-chromecast-engine-status {
|
232 |
+
font-size: 150%;
|
233 |
+
text-align: center; }
|
234 |
+
.flowplayer .fp-chromecast-engine .fp-chromecast-engine-icon {
|
235 |
+
-webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIG9wYWNpdHk9Ii4xIi8+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+CiAgICA8cGF0aCBkPSJNMSAxOHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtNHYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTE4LTdINXYxLjYzYzMuOTYgMS4yOCA3LjA5IDQuNDEgOC4zNyA4LjM3SDE5Vjd6TTEgMTB2MmM0Ljk3IDAgOSA0LjAzIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0yMC03SDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiIvPgo8L3N2Zz4=");
|
236 |
+
mask-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIG9wYWNpdHk9Ii4xIi8+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+CiAgICA8cGF0aCBkPSJNMSAxOHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtNHYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTE4LTdINXYxLjYzYzMuOTYgMS4yOCA3LjA5IDQuNDEgOC4zNyA4LjM3SDE5Vjd6TTEgMTB2MmM0Ljk3IDAgOSA0LjAzIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0yMC03SDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiIvPgo8L3N2Zz4=");
|
237 |
+
-webkit-mask-size: 100% 100%;
|
238 |
+
background-color: #fff;
|
239 |
+
margin: 10% auto 2em;
|
240 |
+
height: 5em;
|
241 |
+
width: 5em; }
|
242 |
+
|
243 |
+
.flowplayer.is-chromecast {
|
244 |
+
background-color: #333; }
|
245 |
+
.flowplayer.is-chromecast .fp-chromecast-engine {
|
246 |
+
display: block; }
|
247 |
+
.flowplayer.is-chromecast .fp-flash-disabled {
|
248 |
+
display: none !important; }
|
249 |
+
.flowplayer.is-chromecast .fp-engine {
|
250 |
+
left: -9999em;
|
251 |
+
top: -9999em;
|
252 |
+
bottom: auto;
|
253 |
+
right: auto; }
|
254 |
+
|
255 |
+
.flowplayer.fp-default-playlist .fp-prev, .flowplayer.fp-default-playlist .fp-next {
|
256 |
+
position: absolute;
|
257 |
+
top: 45%;
|
258 |
+
filter: alpha(opacity=30);
|
259 |
+
opacity: 0.3;
|
260 |
+
-webkit-transition: opacity 0.2s;
|
261 |
+
transition: opacity 0.2s; }
|
262 |
+
.flowplayer.fp-default-playlist .fp-prev:hover, .flowplayer.fp-default-playlist .fp-next:hover {
|
263 |
+
filter: alpha(opacity=100);
|
264 |
+
opacity: 1; }
|
265 |
+
.flowplayer.fp-default-playlist .fp-prev:before, .flowplayer.fp-default-playlist .fp-next:before {
|
266 |
+
font-family: flowplayer;
|
267 |
+
font-size: 2.8em; }
|
268 |
+
|
269 |
+
.flowplayer.fp-default-playlist .fp-prev {
|
270 |
+
left: 0.4em; }
|
271 |
+
.flowplayer.fp-default-playlist .fp-prev:before {
|
272 |
+
content: "\e011"; }
|
273 |
+
|
274 |
+
.flowplayer.fp-default-playlist .fp-next {
|
275 |
+
right: 0.4em; }
|
276 |
+
.flowplayer.fp-default-playlist .fp-next:before {
|
277 |
+
content: "\e012"; }
|
278 |
+
|
279 |
+
.flowplayer.fp-default-playlist .fp-playlist {
|
280 |
+
position: absolute;
|
281 |
+
right: 0.4em;
|
282 |
+
bottom: 3em;
|
283 |
+
width: 100%;
|
284 |
+
text-align: center; }
|
285 |
+
.flowplayer.fp-default-playlist .fp-playlist a {
|
286 |
+
background-color: #fff;
|
287 |
+
height: 0.8em;
|
288 |
+
border-radius: 50%;
|
289 |
+
width: 0.8em;
|
290 |
+
filter: alpha(opacity=70);
|
291 |
+
opacity: 0.7;
|
292 |
+
display: inline-block;
|
293 |
+
-webkit-transition: -webkit-transform 0.2s;
|
294 |
+
transition: -webkit-transform 0.2s;
|
295 |
+
transition: transform 0.2s;
|
296 |
+
transition: transform 0.2s, -webkit-transform 0.2s; }
|
297 |
+
.flowplayer.fp-default-playlist .fp-playlist a:hover {
|
298 |
+
-webkit-transform: scale(1.2, 1.2);
|
299 |
+
-ms-transform: scale(1.2, 1.2);
|
300 |
+
transform: scale(1.2, 1.2); }
|
301 |
+
.flowplayer.fp-default-playlist .fp-playlist a.is-active {
|
302 |
+
filter: alpha(opacity=100);
|
303 |
+
opacity: 1; }
|
304 |
+
|
305 |
+
.flowplayer.fp-default-playlist.fp-edgy .fp-prev:before {
|
306 |
+
content: "\e111"; }
|
307 |
+
|
308 |
+
.flowplayer.fp-default-playlist.fp-edgy .fp-next:before {
|
309 |
+
content: "\e112"; }
|
310 |
+
|
311 |
+
.flowplayer.fp-default-playlist.fp-outlined .fp-prev:before, .flowplayer.fp-default-playlist.fp-minimal .fp-prev:before {
|
312 |
+
content: "\e211"; }
|
313 |
+
|
314 |
+
.flowplayer.fp-default-playlist.fp-outlined .fp-next:before, .flowplayer.fp-default-playlist.fp-minimal .fp-next:before {
|
315 |
+
content: "\e212"; }
|
316 |
+
|
317 |
+
.flowplayer.fp-default-playlist.fp-edgy.fp-outlined .fp-prev:before, .flowplayer.fp-default-playlist.fp-edgy.fp-minimal .fp-prev:before {
|
318 |
+
content: "\e311"; }
|
319 |
+
|
320 |
+
.flowplayer.fp-default-playlist.fp-edgy.fp-outlined .fp-next:before, .flowplayer.fp-default-playlist.fp-edgy.fp-minimal .fp-next:before {
|
321 |
+
content: "\e312"; }
|
322 |
+
|
323 |
+
.flowplayer.fp-custom-playlist {
|
324 |
+
overflow: visible; }
|
325 |
+
.flowplayer.fp-custom-playlist .fp-playlist, .flowplayer.fp-custom-playlist.is-splash .fp-playlist, .flowplayer.fp-custom-playlist.is-poster .fp-playlist, .flowplayer.fp-custom-playlist.is-loading .fp-playlist {
|
326 |
+
display: block;
|
327 |
+
filter: alpha(opacity=100);
|
328 |
+
opacity: 1; }
|
329 |
+
|
330 |
+
.flowplayer.fp-edgy .fp-play svg.fp-play-rounded-fill, .flowplayer.fp-edgy .fp-play svg.fp-pause-rounded-fill, .flowplayer.fp-edgy .fp-play svg.fp-play-rounded-outline, .flowplayer.fp-edgy .fp-play svg.fp-pause-rounded-outline, .flowplayer.fp-edgy .fp-play svg.fp-loading-rounded-outline, .flowplayer.fp-edgy .fp-play svg.fp-loading-rounded-fill, .flowplayer.fp-edgy .fp-pause svg.fp-play-rounded-fill, .flowplayer.fp-edgy .fp-pause svg.fp-pause-rounded-fill, .flowplayer.fp-edgy .fp-pause svg.fp-play-rounded-outline, .flowplayer.fp-edgy .fp-pause svg.fp-pause-rounded-outline, .flowplayer.fp-edgy .fp-pause svg.fp-loading-rounded-outline, .flowplayer.fp-edgy .fp-pause svg.fp-loading-rounded-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-play-rounded-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-pause-rounded-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-play-rounded-outline, .flowplayer.fp-edgy .fp-waiting svg.fp-pause-rounded-outline, .flowplayer.fp-edgy .fp-waiting svg.fp-loading-rounded-outline, .flowplayer.fp-edgy .fp-waiting svg.fp-loading-rounded-fill {
|
331 |
+
display: none !important; }
|
332 |
+
|
333 |
+
.flowplayer.fp-edgy .fp-play svg.fp-play-sharp-fill, .flowplayer.fp-edgy .fp-play svg.fp-pause-sharp-fill, .flowplayer.fp-edgy .fp-play svg.fp-loading-sharp-fill, .flowplayer.fp-edgy .fp-pause svg.fp-play-sharp-fill, .flowplayer.fp-edgy .fp-pause svg.fp-pause-sharp-fill, .flowplayer.fp-edgy .fp-pause svg.fp-loading-sharp-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-play-sharp-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-pause-sharp-fill, .flowplayer.fp-edgy .fp-waiting svg.fp-loading-sharp-fill {
|
334 |
+
display: block; }
|
335 |
+
|
336 |
+
.flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-loading-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-loading-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-loading-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-loading-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-play-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-pause-sharp-fill, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-loading-sharp-fill, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-loading-sharp-fill {
|
337 |
+
display: none; }
|
338 |
+
|
339 |
+
.flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-play svg.fp-loading-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-play svg.fp-loading-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-pause svg.fp-loading-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-pause svg.fp-loading-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-play-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-pause-sharp-outline, .flowplayer.fp-edgy.fp-outlined .fp-waiting svg.fp-loading-sharp-outline, .flowplayer.fp-edgy.fp-minimal .fp-waiting svg.fp-loading-sharp-outline {
|
340 |
+
display: block; }
|
341 |
+
|
342 |
+
.flowplayer.fp-edgy, .flowplayer.fp-edgy .fp-menu, .flowplayer.fp-edgy .fp-captions p, .flowplayer.fp-edgy .fp-textarea, .flowplayer.fp-edgy .fp-bar, .flowplayer.fp-edgy .fp-bar-slider, .flowplayer.fp-edgy .fp-bar > *, .flowplayer.fp-edgy .fp-bar-slider > *, .flowplayer.fp-edgy .fp-timestamp {
|
343 |
+
border-radius: 0; }
|
344 |
+
|
345 |
+
.flowplayer.fp-edgy .fp-airplay:before {
|
346 |
+
content: "\e101"; }
|
347 |
+
|
348 |
+
.flowplayer.fp-edgy .fp-fullscreen:before {
|
349 |
+
content: "\e102"; }
|
350 |
+
|
351 |
+
.flowplayer.fp-edgy .fp-checked:before {
|
352 |
+
content: "\e103"; }
|
353 |
+
|
354 |
+
.flowplayer.fp-edgy .fp-embed:before {
|
355 |
+
content: "\e104"; }
|
356 |
+
|
357 |
+
.flowplayer.fp-edgy .fp-chromecast:before {
|
358 |
+
content: "\e105"; }
|
359 |
+
|
360 |
+
.flowplayer.fp-edgy .fp-email:before {
|
361 |
+
content: "\e106"; }
|
362 |
+
|
363 |
+
.flowplayer.fp-edgy .fp-playbtn:before {
|
364 |
+
content: "\e107"; }
|
365 |
+
|
366 |
+
.flowplayer.fp-edgy .fp-share:before {
|
367 |
+
content: "\e109"; }
|
368 |
+
|
369 |
+
.flowplayer.fp-edgy .fp-share2:before {
|
370 |
+
content: "\e10a"; }
|
371 |
+
|
372 |
+
.flowplayer.fp-edgy .fp-twitter:before {
|
373 |
+
content: "\e10c"; }
|
374 |
+
|
375 |
+
.flowplayer.fp-edgy .fp-facebook:before {
|
376 |
+
content: "\e10a"; }
|
377 |
+
|
378 |
+
.flowplayer.fp-edgy .fp-volumebtn:before {
|
379 |
+
content: "\e10b"; }
|
380 |
+
|
381 |
+
.flowplayer.fp-edgy .fp-volume-off:before {
|
382 |
+
content: "\e10d"; }
|
383 |
+
|
384 |
+
.flowplayer.fp-edgy .fp-unload:before {
|
385 |
+
content: "\e10f"; }
|
386 |
+
|
387 |
+
.flowplayer.fp-edgy .fp-prevbtn:before {
|
388 |
+
content: "\e111"; }
|
389 |
+
|
390 |
+
.flowplayer.fp-edgy .fp-nextbtn:before {
|
391 |
+
content: "\e112"; }
|
392 |
+
|
393 |
+
.flowplayer.fp-edgy.fp-outlined .fp-airplay:before, .flowplayer.fp-edgy.fp-minimal .fp-airplay:before {
|
394 |
+
content: "\e301"; }
|
395 |
+
|
396 |
+
.flowplayer.fp-edgy.fp-outlined .fp-fullscreen:before, .flowplayer.fp-edgy.fp-minimal .fp-fullscreen:before {
|
397 |
+
content: "\e302"; }
|
398 |
+
|
399 |
+
.flowplayer.fp-edgy.fp-outlined .fp-checked:before, .flowplayer.fp-edgy.fp-minimal .fp-checked:before {
|
400 |
+
content: "\e303"; }
|
401 |
+
|
402 |
+
.flowplayer.fp-edgy.fp-outlined .fp-embed:before, .flowplayer.fp-edgy.fp-minimal .fp-embed:before {
|
403 |
+
content: "\e304"; }
|
404 |
+
|
405 |
+
.flowplayer.fp-edgy.fp-outlined .fp-chromecast:before, .flowplayer.fp-edgy.fp-minimal .fp-chromecast:before {
|
406 |
+
content: "\e305"; }
|
407 |
+
|
408 |
+
.flowplayer.fp-edgy.fp-outlined .fp-email:before, .flowplayer.fp-edgy.fp-minimal .fp-email:before {
|
409 |
+
content: "\e306"; }
|
410 |
+
|
411 |
+
.flowplayer.fp-edgy.fp-outlined .fp-playbtn:before, .flowplayer.fp-edgy.fp-minimal .fp-playbtn:before {
|
412 |
+
content: "\e307"; }
|
413 |
+
|
414 |
+
.flowplayer.fp-edgy.fp-outlined .fp-share:before, .flowplayer.fp-edgy.fp-minimal .fp-share:before {
|
415 |
+
content: "\e309"; }
|
416 |
+
|
417 |
+
.flowplayer.fp-edgy.fp-outlined .fp-share2:before, .flowplayer.fp-edgy.fp-minimal .fp-share2:before {
|
418 |
+
content: "\e30a"; }
|
419 |
+
|
420 |
+
.flowplayer.fp-edgy.fp-outlined .fp-twitter:before, .flowplayer.fp-edgy.fp-minimal .fp-twitter:before {
|
421 |
+
content: "\e30c"; }
|
422 |
+
|
423 |
+
.flowplayer.fp-edgy.fp-outlined .fp-facebook:before, .flowplayer.fp-edgy.fp-minimal .fp-facebook:before {
|
424 |
+
content: "\e30a"; }
|
425 |
+
|
426 |
+
.flowplayer.fp-edgy.fp-outlined .fp-volumebtn:before, .flowplayer.fp-edgy.fp-minimal .fp-volumebtn:before {
|
427 |
+
content: "\e30b"; }
|
428 |
+
|
429 |
+
.flowplayer.fp-edgy.fp-outlined .fp-volume-off:before, .flowplayer.fp-edgy.fp-minimal .fp-volume-off:before {
|
430 |
+
content: "\e30d"; }
|
431 |
+
|
432 |
+
.flowplayer.fp-edgy.fp-outlined .fp-unload:before, .flowplayer.fp-edgy.fp-minimal .fp-unload:before {
|
433 |
+
content: "\e30f"; }
|
434 |
+
|
435 |
+
.flowplayer.fp-edgy.fp-outlined .fp-prevbtn:before, .flowplayer.fp-edgy.fp-minimal .fp-prevbtn:before {
|
436 |
+
content: "\e311"; }
|
437 |
+
|
438 |
+
.flowplayer.fp-edgy.fp-outlined .fp-nextbtn:before, .flowplayer.fp-edgy.fp-minimal .fp-nextbtn:before {
|
439 |
+
content: "\e312"; }
|
440 |
+
|
441 |
+
.flowplayer.no-svg .fp-ui .fp-header, .flowplayer.no-svg .fp-ui .fp-controls {
|
442 |
+
background-color: #333; }
|
443 |
+
|
444 |
+
.flowplayer.no-svg .fp-ui .fp-play.fp-visible {
|
445 |
+
background-color: #ccc;
|
446 |
+
position: absolute;
|
447 |
+
padding-top: 17%;
|
448 |
+
top: 0;
|
449 |
+
left: 0;
|
450 |
+
right: 0;
|
451 |
+
bottom: 0; }
|
452 |
+
.flowplayer.no-svg .fp-ui .fp-play.fp-visible svg {
|
453 |
+
display: none; }
|
454 |
+
.flowplayer.no-svg .fp-ui .fp-play.fp-visible .fp-playbtn {
|
455 |
+
display: inline; }
|
456 |
+
|
457 |
+
.flowplayer .fp-player, .flowplayer .fp-ui, .flowplayer .fp-header, .flowplayer .fp-captions, .flowplayer .fp-controls {
|
458 |
+
position: absolute;
|
459 |
+
width: 100%; }
|
460 |
+
|
461 |
+
.flowplayer {
|
462 |
+
font-family: avenir, sans-serif;
|
463 |
+
font-size: 16px;
|
464 |
+
position: relative;
|
465 |
+
max-height: 100%;
|
466 |
+
overflow: hidden;
|
467 |
+
border-radius: .24em;
|
468 |
+
background-position: center;
|
469 |
+
background-repeat: no-repeat;
|
470 |
+
background-size: contain;
|
471 |
+
zoom: 1 !important;
|
472 |
+
width: 100%;
|
473 |
+
display: inline-block; }
|
474 |
+
.flowplayer .fp-hidden {
|
475 |
+
display: none; }
|
476 |
+
.flowplayer .fp-shown {
|
477 |
+
display: block !important; }
|
478 |
+
.flowplayer * {
|
479 |
+
-webkit-box-sizing: border-box;
|
480 |
+
-moz-box-sizing: border-box;
|
481 |
+
box-sizing: border-box; }
|
482 |
+
.flowplayer.is-ready:not(.is-poster) {
|
483 |
+
background-color: #333; }
|
484 |
+
.flowplayer .fp-engine {
|
485 |
+
display: block;
|
486 |
+
width: 100%;
|
487 |
+
position: absolute;
|
488 |
+
top: 0;
|
489 |
+
bottom: 0;
|
490 |
+
left: 0;
|
491 |
+
right: 0;
|
492 |
+
height: 100%;
|
493 |
+
width: 100%; }
|
494 |
+
.flowplayer video.fp-engine::-webkit-media-controls {
|
495 |
+
display: none !important; }
|
496 |
+
.flowplayer .fp-player {
|
497 |
+
position: absolute;
|
498 |
+
bottom: 0;
|
499 |
+
top: 0; }
|
500 |
+
.flowplayer .fp-waiting p {
|
501 |
+
filter: alpha(opacity=0);
|
502 |
+
opacity: 0;
|
503 |
+
color: #ccc;
|
504 |
+
font-weight: bold; }
|
505 |
+
.flowplayer .fp-ui {
|
506 |
+
height: 100%;
|
507 |
+
top: 0;
|
508 |
+
background-image: none;
|
509 |
+
-webkit-transition: background-image .1s;
|
510 |
+
transition: background-image .1s;
|
511 |
+
text-align: center;
|
512 |
+
cursor: pointer;
|
513 |
+
color: #fff; }
|
514 |
+
.flowplayer .fp-ui a, .flowplayer .fp-ui strong {
|
515 |
+
color: inherit !important;
|
516 |
+
font-style: normal !important;
|
517 |
+
text-decoration: none !important; }
|
518 |
+
.flowplayer .fp-ui strong {
|
519 |
+
font-weight: bold !important; }
|
520 |
+
.flowplayer .fp-ui > * {
|
521 |
+
-webkit-transition: opacity .1s;
|
522 |
+
transition: opacity .1s;
|
523 |
+
filter: alpha(opacity=0);
|
524 |
+
opacity: 0; }
|
525 |
+
.flowplayer.fp-ui-shown .fp-ui, .flowplayer.is-paused .fp-ui, .flowplayer.is-mouseover .fp-ui, .flowplayer.is-loading .fp-ui {
|
526 |
+
background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.25)), color-stop(15%, transparent));
|
527 |
+
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.25), transparent 15%);
|
528 |
+
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.25), transparent 15%); }
|
529 |
+
.flowplayer.fp-ui-shown .fp-ui > *, .flowplayer.is-paused .fp-ui > *, .flowplayer.is-mouseover .fp-ui > *, .flowplayer.is-loading .fp-ui > * {
|
530 |
+
filter: alpha(opacity=100);
|
531 |
+
opacity: 1; }
|
532 |
+
.flowplayer .fp-header {
|
533 |
+
top: 0;
|
534 |
+
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.25)), to(transparent));
|
535 |
+
background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.25), transparent);
|
536 |
+
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), transparent);
|
537 |
+
text-align: left;
|
538 |
+
height: 3.6em;
|
539 |
+
-webkit-transition: opacity 0.3s;
|
540 |
+
transition: opacity 0.3s;
|
541 |
+
padding-left: .9em; }
|
542 |
+
.flowplayer .fp-header .fp-icon {
|
543 |
+
margin: .9em .9em 0 0; }
|
544 |
+
.flowplayer .fp-header .fp-icon.fp-active {
|
545 |
+
color: #ec6c4c; }
|
546 |
+
.flowplayer .fp-header .fp-fullscreen, .flowplayer .fp-header .fp-unload {
|
547 |
+
float: right; }
|
548 |
+
.flowplayer .fp-header .fp-unload {
|
549 |
+
display: none; }
|
550 |
+
.flowplayer .fp-help {
|
551 |
+
display: none; }
|
552 |
+
.flowplayer .fp-message {
|
553 |
+
background-color: rgba(0, 0, 0, 0.5);
|
554 |
+
text-align: left;
|
555 |
+
font-size: 1.2em;
|
556 |
+
overflow: hidden;
|
557 |
+
filter: alpha(opacity=0);
|
558 |
+
opacity: 0;
|
559 |
+
padding: .6em .9em;
|
560 |
+
-webkit-transition: opacity 0.3s;
|
561 |
+
transition: opacity 0.3s; }
|
562 |
+
.flowplayer .fp-message.fp-shown {
|
563 |
+
filter: alpha(opacity=100);
|
564 |
+
opacity: 1; }
|
565 |
+
.flowplayer .fp-message.fp-shown + .fp-header {
|
566 |
+
filter: alpha(opacity=0);
|
567 |
+
opacity: 0; }
|
568 |
+
.flowplayer .fp-textarea {
|
569 |
+
background-color: rgba(0, 0, 0, 0.5);
|
570 |
+
width: 80%;
|
571 |
+
position: absolute;
|
572 |
+
left: 10%;
|
573 |
+
top: 15%;
|
574 |
+
color: #fff;
|
575 |
+
outline: 0;
|
576 |
+
border-radius: .2em;
|
577 |
+
border: 0;
|
578 |
+
min-height: 60%; }
|
579 |
+
.flowplayer .fp-logo {
|
580 |
+
position: absolute;
|
581 |
+
bottom: 3em;
|
582 |
+
left: 0.9em; }
|
583 |
+
.flowplayer .fp-logo img {
|
584 |
+
width: 100%; }
|
585 |
+
.flowplayer .fp-captions {
|
586 |
+
bottom: 1.2em;
|
587 |
+
display: none;
|
588 |
+
text-align: center;
|
589 |
+
color: #fff; }
|
590 |
+
.flowplayer .fp-captions p {
|
591 |
+
background-color: rgba(0, 0, 0, 0.65);
|
592 |
+
border-radius: .2em;
|
593 |
+
font-size: 110%;
|
594 |
+
display: inline-block;
|
595 |
+
padding: .1em .3em;
|
596 |
+
margin: .1em; }
|
597 |
+
.flowplayer .fp-speed-flash {
|
598 |
+
position: absolute;
|
599 |
+
left: 0;
|
600 |
+
right: 0;
|
601 |
+
bottom: 0;
|
602 |
+
top: 0;
|
603 |
+
margin: auto;
|
604 |
+
font-size: 4em;
|
605 |
+
color: #fff;
|
606 |
+
font-weight: bold;
|
607 |
+
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
608 |
+
filter: alpha(opacity=0) !important;
|
609 |
+
opacity: 0 !important;
|
610 |
+
-webkit-transform: scale(0.8);
|
611 |
+
-ms-transform: scale(0.8);
|
612 |
+
transform: scale(0.8);
|
613 |
+
-webkit-transition: all .2s;
|
614 |
+
transition: all .2s;
|
615 |
+
width: 4em;
|
616 |
+
height: 2em;
|
617 |
+
display: none; }
|
618 |
+
.flowplayer .fp-speed-flash.fp-hilite {
|
619 |
+
filter: alpha(opacity=100) !important;
|
620 |
+
opacity: 1 !important;
|
621 |
+
-webkit-transform: scale(1);
|
622 |
+
-ms-transform: scale(1);
|
623 |
+
transform: scale(1); }
|
624 |
+
.flowplayer .fp-play .fp-playbtn, .flowplayer .fp-pause .fp-playbtn, .flowplayer .fp-waiting .fp-playbtn {
|
625 |
+
display: none; }
|
626 |
+
.flowplayer .fp-play svg, .flowplayer .fp-pause svg, .flowplayer .fp-waiting svg {
|
627 |
+
position: absolute;
|
628 |
+
pointer-events: none;
|
629 |
+
left: 0;
|
630 |
+
right: 0;
|
631 |
+
bottom: 0;
|
632 |
+
top: 0;
|
633 |
+
width: 6em;
|
634 |
+
height: 6em;
|
635 |
+
filter: alpha(opacity=0);
|
636 |
+
opacity: 0;
|
637 |
+
margin: auto;
|
638 |
+
max-height: 30%;
|
639 |
+
-webkit-transform: scale(0.8);
|
640 |
+
-ms-transform: scale(0.8);
|
641 |
+
transform: scale(0.8);
|
642 |
+
-webkit-transition: all .2s;
|
643 |
+
transition: all .2s;
|
644 |
+
display: none; }
|
645 |
+
.flowplayer .fp-play svg.fp-play-rounded-fill, .flowplayer .fp-play svg.fp-pause-rounded-fill, .flowplayer .fp-play svg.fp-loading-rounded-fill, .flowplayer .fp-pause svg.fp-play-rounded-fill, .flowplayer .fp-pause svg.fp-pause-rounded-fill, .flowplayer .fp-pause svg.fp-loading-rounded-fill, .flowplayer .fp-waiting svg.fp-play-rounded-fill, .flowplayer .fp-waiting svg.fp-pause-rounded-fill, .flowplayer .fp-waiting svg.fp-loading-rounded-fill {
|
646 |
+
display: block; }
|
647 |
+
.flowplayer .fp-play.fp-visible svg, .flowplayer .fp-pause.fp-visible svg, .flowplayer .fp-waiting.fp-visible svg {
|
648 |
+
-webkit-transform: scale(1.5);
|
649 |
+
-ms-transform: scale(1.5);
|
650 |
+
transform: scale(1.5);
|
651 |
+
filter: alpha(opacity=100);
|
652 |
+
opacity: 1; }
|
653 |
+
.flowplayer .fp-remaining {
|
654 |
+
display: none; }
|
655 |
+
.flowplayer .fp-controls {
|
656 |
+
display: -ms-flexbox;
|
657 |
+
display: -webkit-flex;
|
658 |
+
display: -webkit-box;
|
659 |
+
display: -moz-box;
|
660 |
+
display: flex;
|
661 |
+
-ms-flex-pack: justify;
|
662 |
+
-webkit-justify-content: space-around;
|
663 |
+
justify-content: space-around;
|
664 |
+
-ms-flex-align: center;
|
665 |
+
-webkit-align-items: center;
|
666 |
+
-webkit-box-align: center;
|
667 |
+
-moz-box-align: center;
|
668 |
+
align-items: center;
|
669 |
+
height: 2.4em;
|
670 |
+
bottom: 0;
|
671 |
+
z-index: 2;
|
672 |
+
padding-left: 0.3em;
|
673 |
+
padding-right: 0.3em; }
|
674 |
+
.flowplayer .fp-controls > * {
|
675 |
+
margin: 0 .6em; }
|
676 |
+
.flowplayer .fp-controls > strong {
|
677 |
+
letter-spacing: 1px; }
|
678 |
+
.flowplayer .fp-controls img {
|
679 |
+
width: 1.2em; }
|
680 |
+
.flowplayer .fp-bar, .flowplayer .fp-bar-slider {
|
681 |
+
background-color: #ccc;
|
682 |
+
background-color: rgba(255, 255, 255, 0.5);
|
683 |
+
position: relative;
|
684 |
+
cursor: col-resize;
|
685 |
+
height: .9em;
|
686 |
+
border-radius: 0.24em;
|
687 |
+
-ms-flex: 1;
|
688 |
+
-webkit-box-flex: 1;
|
689 |
+
-webkit-flex: 1;
|
690 |
+
-moz-box-flex: 1;
|
691 |
+
flex: 1; }
|
692 |
+
.flowplayer .fp-bar > *, .flowplayer .fp-bar-slider > * {
|
693 |
+
background-color: rgba(255, 255, 255, 0.6);
|
694 |
+
position: absolute;
|
695 |
+
height: 100%;
|
696 |
+
border-radius: 0.24em; }
|
697 |
+
.flowplayer .fp-bar > *.fp-progress.animated, .flowplayer .fp-bar-slider > *.fp-progress.animated {
|
698 |
+
-webkit-transition-timing-function: linear;
|
699 |
+
transition-timing-function: linear;
|
700 |
+
-webkit-transition-property: width, height;
|
701 |
+
transition-property: width, height; }
|
702 |
+
.flowplayer .fp-bar > *.fp-buffer, .flowplayer .fp-bar-slider > *.fp-buffer {
|
703 |
+
-webkit-transition: width .25s linear;
|
704 |
+
transition: width .25s linear; }
|
705 |
+
.flowplayer .fp-bar.no-animation > *, .flowplayer .no-animation.fp-bar-slider > * {
|
706 |
+
-webkit-transition: none;
|
707 |
+
transition: none; }
|
708 |
+
.flowplayer .fp-timeline {
|
709 |
+
-webkit-transition: height .2s;
|
710 |
+
transition: height .2s; }
|
711 |
+
.flowplayer .fp-cuepoint {
|
712 |
+
background-color: #000;
|
713 |
+
position: absolute;
|
714 |
+
height: 100%;
|
715 |
+
width: 2px; }
|
716 |
+
.flowplayer .fp-timestamp {
|
717 |
+
background-color: rgba(0, 0, 0, 0.65);
|
718 |
+
display: none;
|
719 |
+
border-radius: .2em;
|
720 |
+
padding: .1em .3em;
|
721 |
+
font-size: 90%;
|
722 |
+
bottom: 1.4em;
|
723 |
+
height: auto; }
|
724 |
+
.flowplayer .fp-timeline:hover .fp-timestamp {
|
725 |
+
display: inline; }
|
726 |
+
.flowplayer .fp-volume {
|
727 |
+
display: -ms-flexbox;
|
728 |
+
display: -webkit-box;
|
729 |
+
display: -webkit-flex;
|
730 |
+
display: -moz-box;
|
731 |
+
display: flex;
|
732 |
+
height: 100%;
|
733 |
+
-ms-flex-align: center;
|
734 |
+
-webkit-box-align: center;
|
735 |
+
-webkit-align-items: center;
|
736 |
+
-moz-box-align: center;
|
737 |
+
align-items: center; }
|
738 |
+
.flowplayer .fp-volumebtn {
|
739 |
+
display: none; }
|
740 |
+
.flowplayer .fp-bar-slider {
|
741 |
+
background-color: transparent;
|
742 |
+
-webkit-user-select: none;
|
743 |
+
-moz-user-select: none;
|
744 |
+
-ms-user-select: none;
|
745 |
+
user-select: none;
|
746 |
+
-webkit-transition: height .2s;
|
747 |
+
transition: height .2s;
|
748 |
+
white-space: nowrap;
|
749 |
+
-ms-flex: 1 0 auto; }
|
750 |
+
.flowplayer .fp-bar-slider em {
|
751 |
+
border-radius: 2px;
|
752 |
+
display: inline-block;
|
753 |
+
width: 5px;
|
754 |
+
height: 100%;
|
755 |
+
position: relative;
|
756 |
+
vertical-align: top;
|
757 |
+
margin-left: 3px;
|
758 |
+
-webkit-transition: -webkit-transform 0.4s;
|
759 |
+
transition: -webkit-transform 0.4s;
|
760 |
+
transition: transform 0.4s;
|
761 |
+
transition: transform 0.4s, -webkit-transform 0.4s;
|
762 |
+
-webkit-transform-origin: bottom;
|
763 |
+
-ms-transform-origin: bottom;
|
764 |
+
transform-origin: bottom;
|
765 |
+
-webkit-user-select: none;
|
766 |
+
-moz-user-select: none;
|
767 |
+
-ms-user-select: none;
|
768 |
+
user-select: none;
|
769 |
+
-webkit-transform: scale(1.1);
|
770 |
+
-ms-transform: scale(1.1);
|
771 |
+
transform: scale(1.1); }
|
772 |
+
.flowplayer .fp-bar-slider em:hover {
|
773 |
+
-webkit-transform: scaleY(1.35);
|
774 |
+
-ms-transform: scaleY(1.35);
|
775 |
+
transform: scaleY(1.35);
|
776 |
+
-webkit-transition: -webkit-transform 0.2s;
|
777 |
+
transition: -webkit-transform 0.2s;
|
778 |
+
transition: transform 0.2s;
|
779 |
+
transition: transform 0.2s, -webkit-transform 0.2s; }
|
780 |
+
.flowplayer .fp-bar-slider em.fp-grey {
|
781 |
+
background-color: rgba(255, 255, 255, 0.75); }
|
782 |
+
.flowplayer.no-flex .fp-controls {
|
783 |
+
white-space: nowrap; }
|
784 |
+
.flowplayer.no-flex .fp-controls > * {
|
785 |
+
display: inline-block;
|
786 |
+
vertical-align: center;
|
787 |
+
margin: 0 .3em; }
|
788 |
+
.flowplayer.no-flex .fp-timeline {
|
789 |
+
width: 40%; }
|
790 |
+
.flowplayer.no-flex.fp-full .fp-timeline {
|
791 |
+
margin-bottom: .6em;
|
792 |
+
height: .9em; }
|
793 |
+
.flowplayer.no-flex.fp-fat .fp-bar, .flowplayer.no-flex.fp-playful .fp-bar, .flowplayer.no-flex.fp-fat .fp-bar-slider, .flowplayer.no-flex.fp-playful .fp-bar-slider {
|
794 |
+
height: .9em !important; }
|
795 |
+
.flowplayer.fp-fat .fp-bar, .flowplayer.fp-playful .fp-bar, .flowplayer.fp-fat .fp-bar-slider, .flowplayer.fp-playful .fp-bar-slider {
|
796 |
+
height: 100%;
|
797 |
+
border-radius: 0; }
|
798 |
+
.flowplayer.fp-fat .fp-bar > *, .flowplayer.fp-playful .fp-bar > *, .flowplayer.fp-fat .fp-bar-slider > *, .flowplayer.fp-playful .fp-bar-slider > * {
|
799 |
+
border-radius: 0; }
|
800 |
+
.flowplayer.fp-fat .fp-timestamp, .flowplayer.fp-playful .fp-timestamp {
|
801 |
+
bottom: 3.2em; }
|
802 |
+
.flowplayer.fp-fat .fp-bar-slider em, .flowplayer.fp-playful .fp-bar-slider em {
|
803 |
+
-webkit-transform: scaleY(0.6);
|
804 |
+
-ms-transform: scaleY(0.6);
|
805 |
+
transform: scaleY(0.6);
|
806 |
+
-webkit-transform-origin: center;
|
807 |
+
-ms-transform-origin: center;
|
808 |
+
transform-origin: center; }
|
809 |
+
.flowplayer.fp-fat .fp-bar-slider em:hover, .flowplayer.fp-playful .fp-bar-slider em:hover {
|
810 |
+
-webkit-transform: scaleY(0.75);
|
811 |
+
-ms-transform: scaleY(0.75);
|
812 |
+
transform: scaleY(0.75); }
|
813 |
+
.flowplayer.fp-slim .fp-timeline {
|
814 |
+
height: .2em; }
|
815 |
+
.flowplayer.fp-slim .fp-controls:hover .fp-timeline {
|
816 |
+
height: .9em; }
|
817 |
+
.flowplayer.fp-slim .fp-cue {
|
818 |
+
width: 4px; }
|
819 |
+
.flowplayer.fp-slim .fp-bar-slider {
|
820 |
+
height: .2em; }
|
821 |
+
.flowplayer.fp-slim .fp-controls:hover .fp-bar-slider {
|
822 |
+
height: 0.9em; }
|
823 |
+
.flowplayer.fp-full .fp-timeline {
|
824 |
+
position: absolute;
|
825 |
+
height: .3em;
|
826 |
+
bottom: 2.8em;
|
827 |
+
margin: 0;
|
828 |
+
width: 100%;
|
829 |
+
border-radius: 0;
|
830 |
+
overflow: inherit;
|
831 |
+
left: 0; }
|
832 |
+
.flowplayer.fp-full .fp-timeline:before {
|
833 |
+
content: "";
|
834 |
+
width: 100%;
|
835 |
+
height: 1.2em;
|
836 |
+
position: absolute;
|
837 |
+
top: -1.2em;
|
838 |
+
left: 0; }
|
839 |
+
.flowplayer.fp-full .fp-controls {
|
840 |
+
height: 2.8em; }
|
841 |
+
.flowplayer.fp-full .fp-controls:hover .fp-timeline {
|
842 |
+
height: 1em; }
|
843 |
+
.flowplayer.fp-full .fp-volume {
|
844 |
+
margin-right: auto; }
|
845 |
+
.flowplayer.fp-full .fp-duration, .flowplayer.fp-full .fp-remaining {
|
846 |
+
margin-left: 0; }
|
847 |
+
.flowplayer.fp-full .fp-duration:before, .flowplayer.fp-full .fp-remaining:before {
|
848 |
+
position: relative;
|
849 |
+
content: "/";
|
850 |
+
left: -.3em; }
|
851 |
+
.flowplayer.fp-minimal .fp-controls {
|
852 |
+
background-color: transparent !important; }
|
853 |
+
.flowplayer.fp-minimal .fp-controls > * {
|
854 |
+
display: none; }
|
855 |
+
.flowplayer.fp-minimal .fp-header > * {
|
856 |
+
display: none; }
|
857 |
+
.flowplayer.fp-minimal .fp-header .fp-fullscreen {
|
858 |
+
display: inherit; }
|
859 |
+
.flowplayer.fp-minimal .fp-timeline {
|
860 |
+
height: .3em;
|
861 |
+
max-width: 12em;
|
862 |
+
width: 100%;
|
863 |
+
display: block;
|
864 |
+
margin: 0 auto;
|
865 |
+
-webkit-box-flex: 0;
|
866 |
+
-webkit-flex: none;
|
867 |
+
-moz-box-flex: 0;
|
868 |
+
-ms-flex: none;
|
869 |
+
flex: none; }
|
870 |
+
.flowplayer.fp-playful .fp-color, .flowplayer.fp-playful .fp-color-play {
|
871 |
+
background-color: #ec6c4c;
|
872 |
+
fill: #ec6c4c; }
|
873 |
+
.flowplayer.fp-playful .fp-controls {
|
874 |
+
background-color: #006680; }
|
875 |
+
.flowplayer .fp-selected:before {
|
876 |
+
content: "✓ "; }
|
877 |
+
.flowplayer .fp-menu {
|
878 |
+
background-color: rgba(0, 0, 0, 0.5);
|
879 |
+
border-radius: .24em;
|
880 |
+
position: absolute;
|
881 |
+
width: 8em;
|
882 |
+
right: .5em;
|
883 |
+
z-index: 2;
|
884 |
+
font-size: 90%;
|
885 |
+
-webkit-transition: opacity .2s, height .2s, -webkit-transform .2s;
|
886 |
+
transition: opacity .2s, height .2s, -webkit-transform .2s;
|
887 |
+
transition: opacity .2s, transform .2s, height .2s;
|
888 |
+
transition: opacity .2s, transform .2s, height .2s, -webkit-transform .2s;
|
889 |
+
-webkit-transform: scale(0.95);
|
890 |
+
-ms-transform: scale(0.95);
|
891 |
+
transform: scale(0.95);
|
892 |
+
bottom: -100%;
|
893 |
+
height: 0;
|
894 |
+
filter: alpha(opacity=0) !important;
|
895 |
+
opacity: 0 !important; }
|
896 |
+
.flowplayer .fp-menu.fp-active {
|
897 |
+
-webkit-transform: scale(1);
|
898 |
+
-ms-transform: scale(1);
|
899 |
+
transform: scale(1);
|
900 |
+
height: auto;
|
901 |
+
bottom: 3.2em;
|
902 |
+
filter: alpha(opacity=100) !important;
|
903 |
+
opacity: 1 !important; }
|
904 |
+
.flowplayer .fp-menu > * {
|
905 |
+
display: block;
|
906 |
+
padding: .4em 1.2em;
|
907 |
+
text-align: right; }
|
908 |
+
.flowplayer .fp-menu strong {
|
909 |
+
display: block;
|
910 |
+
padding: .7em 1.2em;
|
911 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
|
912 |
+
background-color: rgba(0, 0, 0, 0.3);
|
913 |
+
text-transform: uppercase;
|
914 |
+
letter-spacing: 1px;
|
915 |
+
cursor: default;
|
916 |
+
font-size: 90%; }
|
917 |
+
.flowplayer .fp-menu a {
|
918 |
+
color: rgba(255, 255, 255, 0.8); }
|
919 |
+
.flowplayer .fp-menu a:hover:not(.fp-selected) {
|
920 |
+
background-color: #000;
|
921 |
+
color: #fff; }
|
922 |
+
.flowplayer .fp-menu .fp-icon {
|
923 |
+
cursor: pointer; }
|
924 |
+
.flowplayer .fp-menu .fp-icon:before {
|
925 |
+
margin-right: .1em;
|
926 |
+
font-size: 1.5em;
|
927 |
+
vertical-align: -0.1em; }
|
928 |
+
.flowplayer .fp-qsel-menu {
|
929 |
+
width: auto; }
|
930 |
+
.flowplayer .fp-context-menu {
|
931 |
+
width: auto;
|
932 |
+
right: auto;
|
933 |
+
bottom: auto !important;
|
934 |
+
display: none; }
|
935 |
+
.flowplayer .fp-context-menu.fp-active {
|
936 |
+
display: block; }
|
937 |
+
.flowplayer .fp-context-menu a, .flowplayer .fp-context-menu strong {
|
938 |
+
text-align: left;
|
939 |
+
color: #fff;
|
940 |
+
white-space: nowrap; }
|
941 |
+
.flowplayer .fp-share-menu {
|
942 |
+
width: 9em;
|
943 |
+
padding-bottom: 0.2em; }
|
944 |
+
.flowplayer .fp-share-menu.fp-active {
|
945 |
+
bottom: auto; }
|
946 |
+
.flowplayer .fp-share-menu a, .flowplayer .fp-share-menu strong {
|
947 |
+
text-align: left; }
|
948 |
+
.flowplayer.fp-outlined .fp-play svg.fp-play-rounded-fill, .flowplayer.fp-minimal .fp-play svg.fp-play-rounded-fill, .flowplayer.fp-outlined .fp-play svg.fp-pause-rounded-fill, .flowplayer.fp-minimal .fp-play svg.fp-pause-rounded-fill, .flowplayer.fp-outlined .fp-play svg.fp-loading-rounded-fill, .flowplayer.fp-minimal .fp-play svg.fp-loading-rounded-fill, .flowplayer.fp-outlined .fp-pause svg.fp-play-rounded-fill, .flowplayer.fp-minimal .fp-pause svg.fp-play-rounded-fill, .flowplayer.fp-outlined .fp-pause svg.fp-pause-rounded-fill, .flowplayer.fp-minimal .fp-pause svg.fp-pause-rounded-fill, .flowplayer.fp-outlined .fp-pause svg.fp-loading-rounded-fill, .flowplayer.fp-minimal .fp-pause svg.fp-loading-rounded-fill, .flowplayer.fp-outlined .fp-waiting svg.fp-play-rounded-fill, .flowplayer.fp-minimal .fp-waiting svg.fp-play-rounded-fill, .flowplayer.fp-outlined .fp-waiting svg.fp-pause-rounded-fill, .flowplayer.fp-minimal .fp-waiting svg.fp-pause-rounded-fill, .flowplayer.fp-outlined .fp-waiting svg.fp-loading-rounded-fill, .flowplayer.fp-minimal .fp-waiting svg.fp-loading-rounded-fill {
|
949 |
+
display: none; }
|
950 |
+
.flowplayer.fp-outlined .fp-play svg.fp-play-rounded-outline, .flowplayer.fp-minimal .fp-play svg.fp-play-rounded-outline, .flowplayer.fp-outlined .fp-play svg.fp-pause-rounded-outline, .flowplayer.fp-minimal .fp-play svg.fp-pause-rounded-outline, .flowplayer.fp-outlined .fp-play svg.fp-loading-rounded-outline, .flowplayer.fp-minimal .fp-play svg.fp-loading-rounded-outline, .flowplayer.fp-outlined .fp-pause svg.fp-play-rounded-outline, .flowplayer.fp-minimal .fp-pause svg.fp-play-rounded-outline, .flowplayer.fp-outlined .fp-pause svg.fp-pause-rounded-outline, .flowplayer.fp-minimal .fp-pause svg.fp-pause-rounded-outline, .flowplayer.fp-outlined .fp-pause svg.fp-loading-rounded-outline, .flowplayer.fp-minimal .fp-pause svg.fp-loading-rounded-outline, .flowplayer.fp-outlined .fp-waiting svg.fp-play-rounded-outline, .flowplayer.fp-minimal .fp-waiting svg.fp-play-rounded-outline, .flowplayer.fp-outlined .fp-waiting svg.fp-pause-rounded-outline, .flowplayer.fp-minimal .fp-waiting svg.fp-pause-rounded-outline, .flowplayer.fp-outlined .fp-waiting svg.fp-loading-rounded-outline, .flowplayer.fp-minimal .fp-waiting svg.fp-loading-rounded-outline {
|
951 |
+
display: block; }
|
952 |
+
.flowplayer.fp-outlined .fp-airplay:before, .flowplayer.fp-minimal .fp-airplay:before {
|
953 |
+
content: "\e201"; }
|
954 |
+
.flowplayer.fp-outlined .fp-fullscreen:before, .flowplayer.fp-minimal .fp-fullscreen:before {
|
955 |
+
content: "\e202"; }
|
956 |
+
.flowplayer.fp-outlined .fp-checked:before, .flowplayer.fp-minimal .fp-checked:before {
|
957 |
+
content: "\e203"; }
|
958 |
+
.flowplayer.fp-outlined .fp-embed:before, .flowplayer.fp-minimal .fp-embed:before {
|
959 |
+
content: "\e204"; }
|
960 |
+
.flowplayer.fp-outlined .fp-chromecast:before, .flowplayer.fp-minimal .fp-chromecast:before {
|
961 |
+
content: "\e205"; }
|
962 |
+
.flowplayer.fp-outlined .fp-email:before, .flowplayer.fp-minimal .fp-email:before {
|
963 |
+
content: "\e206"; }
|
964 |
+
.flowplayer.fp-outlined .fp-playbtn:before, .flowplayer.fp-minimal .fp-playbtn:before {
|
965 |
+
content: "\e207"; }
|
966 |
+
.flowplayer.fp-outlined .fp-share:before, .flowplayer.fp-minimal .fp-share:before {
|
967 |
+
content: "\e209"; }
|
968 |
+
.flowplayer.fp-outlined .fp-share2:before, .flowplayer.fp-minimal .fp-share2:before {
|
969 |
+
content: "\e20a"; }
|
970 |
+
.flowplayer.fp-outlined .fp-twitter:before, .flowplayer.fp-minimal .fp-twitter:before {
|
971 |
+
content: "\e20c"; }
|
972 |
+
.flowplayer.fp-outlined .fp-facebook:before, .flowplayer.fp-minimal .fp-facebook:before {
|
973 |
+
content: "\e20a"; }
|
974 |
+
.flowplayer.fp-outlined .fp-volumebtn:before, .flowplayer.fp-minimal .fp-volumebtn:before {
|
975 |
+
content: "\e20b"; }
|
976 |
+
.flowplayer.fp-outlined .fp-volume-off:before, .flowplayer.fp-minimal .fp-volume-off:before {
|
977 |
+
content: "\e20d"; }
|
978 |
+
.flowplayer.fp-outlined .fp-unload:before, .flowplayer.fp-minimal .fp-unload:before {
|
979 |
+
content: "\e20f"; }
|
980 |
+
.flowplayer.fp-outlined .fp-prevbtn:before, .flowplayer.fp-minimal .fp-prevbtn:before {
|
981 |
+
content: "\e211"; }
|
982 |
+
.flowplayer.fp-outlined .fp-nextbtn:before, .flowplayer.fp-minimal .fp-nextbtn:before {
|
983 |
+
content: "\e212"; }
|
984 |
+
.flowplayer .fp-color {
|
985 |
+
background-color: #00abcd;
|
986 |
+
fill: rgba(0, 0, 0, 0.2); }
|
987 |
+
.flowplayer .fp-color-play {
|
988 |
+
fill: transparent; }
|
989 |
+
.flowplayer.is-rtl {
|
990 |
+
direction: rtl; }
|
991 |
+
.flowplayer.is-rtl .fp-icon {
|
992 |
+
-webkit-transform: rotate(180deg);
|
993 |
+
-ms-transform: rotate(180deg);
|
994 |
+
transform: rotate(180deg); }
|
995 |
+
.flowplayer.-grayscale video.fp-engine {
|
996 |
+
-webkit-filter: grayscale(100%);
|
997 |
+
filter: grayscale(100%); }
|
998 |
+
.flowplayer.-sepia video.fp-engine {
|
999 |
+
-webkit-filter: sepia(100%);
|
1000 |
+
filter: sepia(100%); }
|
1001 |
+
.flowplayer.-blur video.fp-engine {
|
1002 |
+
-webkit-filter: blur(5px);
|
1003 |
+
filter: blur(5px); }
|
1004 |
+
|
1005 |
+
.fp-filters {
|
1006 |
+
width: 0 !important;
|
1007 |
+
height: 0 !important;
|
1008 |
+
overflow: hidden !important;
|
1009 |
+
position: absolute; }
|
1010 |
+
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://noorsplugin.com/
|
|
4 |
Tags: video, wpvideo, flash, html5, iPad, iphone, ipod, mobile, playlists, embed video, flowplayer, video html5, flash player, player, video player
|
5 |
Requires at least: 4.3
|
6 |
Tested up to: 4.7
|
7 |
-
Stable tag: 1.1.
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -63,9 +63,11 @@ The player ratio is set to "0.417" by default. You can override it by specifying
|
|
63 |
|
64 |
**Control Player Skin**
|
65 |
|
66 |
-
|
67 |
|
68 |
-
`[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" class="
|
|
|
|
|
69 |
|
70 |
**Video Loop**
|
71 |
|
@@ -136,6 +138,9 @@ none
|
|
136 |
|
137 |
== Changelog ==
|
138 |
|
|
|
|
|
|
|
139 |
= 1.1.4 =
|
140 |
* Added a new shortcode parameter - "video_id". It can be used to specify a custom ID for a video.
|
141 |
|
4 |
Tags: video, wpvideo, flash, html5, iPad, iphone, ipod, mobile, playlists, embed video, flowplayer, video html5, flash player, player, video player
|
5 |
Requires at least: 4.3
|
6 |
Tested up to: 4.7
|
7 |
+
Stable tag: 1.1.5
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
63 |
|
64 |
**Control Player Skin**
|
65 |
|
66 |
+
The video player comes with a default skin. But you can override it by specifying a different skin in the shortcode:
|
67 |
|
68 |
+
`[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" class="fp-minimal"]`
|
69 |
+
|
70 |
+
`[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" class="fp-playful"]`
|
71 |
|
72 |
**Video Loop**
|
73 |
|
138 |
|
139 |
== Changelog ==
|
140 |
|
141 |
+
= 1.1.5 =
|
142 |
+
* Updated the player to version 7.0.2.
|
143 |
+
|
144 |
= 1.1.4 =
|
145 |
* Added a new shortcode parameter - "video_id". It can be used to specify a custom ID for a video.
|
146 |
|