WordPress Landing Pages - Version 1.8.2

Version Description

  • Debugging release issues with 1.8.1
  • Security Update
Download this release

Release Info

Developer adbox
Plugin Icon 128x128 WordPress Landing Pages
Version 1.8.2
Comparing to
See all releases

Code changes from version 1.8.1 to 1.8.2

images/image.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php
2
 
3
  // file: image.php
4
  // Dynamically Create a clear png for css background opacities
@@ -7,52 +7,56 @@ header("Content-type: image/png");
7
  $hex_value = $_GET['hex'];
8
 
9
  if (isset($_GET['trans'])) {
10
- $trans_value = $_GET['trans'];
11
  }
12
  else {
13
  $trans_value = 50;
14
  }
15
 
16
- // Convert Hex to RGB Value
17
- function HexToRGB($hex) {
18
- $hex = preg_replace("/#/", "", $hex);
19
- $color = array();
20
-
21
- if(strlen($hex) == 3) {
22
- $color['r'] = hexdec(substr($hex, 0, 1) . $r);
23
- $color['g'] = hexdec(substr($hex, 1, 1) . $g);
24
- $color['b'] = hexdec(substr($hex, 2, 1) . $b);
25
- }
26
- else if(strlen($hex) == 6) {
27
- $color['r'] = hexdec(substr($hex, 0, 2));
28
- $color['g'] = hexdec(substr($hex, 2, 2));
29
- $color['b'] = hexdec(substr($hex, 4, 2));
30
- }
31
-
32
- return $color;
33
-
 
 
34
  }
35
 
36
- $RBG_array = HexToRGB($hex_value);
37
 
38
- $red = $RBG_array [r];
39
- $green = $RBG_array [g];
40
- $blue = $RBG_array [b];
41
-
42
- // Set the image
 
43
  $img = imagecreatetruecolor(10,10); // 10 x 10 px
44
- imagesavealpha($img, true);
45
 
46
- // Fill the image with transparent color
47
- $color = imagecolorallocatealpha($img,$red,$green,$blue,$trans_value);
48
- imagefill($img, 0, 0, $color);
49
 
50
  // Return the image
51
- imagepng($img);
52
 
53
- // Destroy image
54
  imagedestroy($img);
55
 
 
56
  // usage in html: <image src="path-to-file/image.php?hex=HEXCOLOR">
57
  // Make sure to add in the HEX GET Parameters with ?hex= and ?trans= for transparency
58
  // example: <image src="path-to-file/image.php?hex=ffffff"> will call white transparent png
1
+ <?php
2
 
3
  // file: image.php
4
  // Dynamically Create a clear png for css background opacities
7
  $hex_value = $_GET['hex'];
8
 
9
  if (isset($_GET['trans'])) {
10
+ $trans_value = $_GET['trans'];
11
  }
12
  else {
13
  $trans_value = 50;
14
  }
15
 
16
+ if (!function_exists('_inbound_HexToRGB')) {
17
+ // Convert Hex to RGB Value
18
+ function _inbound_HexToRGB($hex) {
19
+ $hex = preg_replace("/#/", "", $hex);
20
+ $color = array();
21
+
22
+ if(strlen($hex) == 3) {
23
+ $color['r'] = hexdec(substr($hex, 0, 1) . $r);
24
+ $color['g'] = hexdec(substr($hex, 1, 1) . $g);
25
+ $color['b'] = hexdec(substr($hex, 2, 1) . $b);
26
+ }
27
+ else if(strlen($hex) == 6) {
28
+ $color['r'] = hexdec(substr($hex, 0, 2));
29
+ $color['g'] = hexdec(substr($hex, 2, 2));
30
+ $color['b'] = hexdec(substr($hex, 4, 2));
31
+ }
32
+
33
+ return $color;
34
+
35
+ }
36
  }
37
 
38
+ $RBG_array = _inbound_HexToRGB($hex_value);
39
 
40
+ if(isset($RBG_array)) {
41
+ $red = (isset($RBG_array['r'])) ? $RBG_array['r'] : '0';
42
+ $green = (isset($RBG_array['g'])) ? $RBG_array['g'] : '0';
43
+ $blue = (isset($RBG_array['b'])) ? $RBG_array['b'] : '0';
44
+
45
+ // Set the image
46
  $img = imagecreatetruecolor(10,10); // 10 x 10 px
47
+ imagesavealpha($img, true);
48
 
49
+ // Fill the image with transparent color
50
+ $color = imagecolorallocatealpha($img,$red,$green,$blue,$trans_value);
51
+ imagefill($img, 0, 0, $color);
52
 
53
  // Return the image
54
+ imagepng($img);
55
 
56
+ // Destroy image
57
  imagedestroy($img);
58
 
59
+ }
60
  // usage in html: <image src="path-to-file/image.php?hex=HEXCOLOR">
61
  // Make sure to add in the HEX GET Parameters with ?hex= and ?trans= for transparency
62
  // example: <image src="path-to-file/image.php?hex=ffffff"> will call white transparent png
landing-pages.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Landing Pages
4
  Plugin URI: http://www.inboundnow.com/landing-pages/
5
  Description: The first true all-in-one Landing Page solution for WordPress, including ongoing conversion metrics, a/b split testing, unlimited design options and so much more!
6
- Version: 1.8.1
7
  Author: Inbound Now
8
  Author URI: http://www.inboundnow.com/
9
  Text Domain: landing-pages
@@ -105,7 +105,7 @@ if (!class_exists('Inbound_Landing_Pages_Plugin')) {
105
  */
106
  private static function load_constants() {
107
 
108
- define('LANDINGPAGES_CURRENT_VERSION', '1.8.1' );
109
  define('LANDINGPAGES_URLPATH', plugins_url( '/' , __FILE__ ) );
110
  define('LANDINGPAGES_PATH', WP_PLUGIN_DIR.'/'.plugin_basename( dirname(__FILE__) ).'/' );
111
  define('LANDINGPAGES_PLUGIN_SLUG', plugin_basename( dirname(__FILE__) ) );
@@ -175,8 +175,6 @@ if (!class_exists('Inbound_Landing_Pages_Plugin')) {
175
  include_once('modules/module.landing-page.php');
176
  include_once('classes/class.load-extensions.php');
177
  include_once('modules/module.customizer.php');
178
- include_once('shared/classes/class.magic.php');
179
-
180
 
181
  BREAK;
182
  endswitch;
3
  Plugin Name: Landing Pages
4
  Plugin URI: http://www.inboundnow.com/landing-pages/
5
  Description: The first true all-in-one Landing Page solution for WordPress, including ongoing conversion metrics, a/b split testing, unlimited design options and so much more!
6
+ Version: 1.8.2
7
  Author: Inbound Now
8
  Author URI: http://www.inboundnow.com/
9
  Text Domain: landing-pages
105
  */
106
  private static function load_constants() {
107
 
108
+ define('LANDINGPAGES_CURRENT_VERSION', '1.8.2' );
109
  define('LANDINGPAGES_URLPATH', plugins_url( '/' , __FILE__ ) );
110
  define('LANDINGPAGES_PATH', WP_PLUGIN_DIR.'/'.plugin_basename( dirname(__FILE__) ).'/' );
111
  define('LANDINGPAGES_PLUGIN_SLUG', plugin_basename( dirname(__FILE__) ) );
175
  include_once('modules/module.landing-page.php');
176
  include_once('classes/class.load-extensions.php');
177
  include_once('modules/module.customizer.php');
 
 
178
 
179
  BREAK;
180
  endswitch;
modules/module.landing-page.php CHANGED
@@ -1,591 +1,591 @@
1
- <?php
2
-
3
- /* LOAD TEMPLATE */
4
- add_filter('single_template', 'lp_custom_template' , 13 );
5
- function lp_custom_template($single) {
6
- global $wp_query, $post, $query_string;
7
-
8
- if ($post->post_type != "landing-page") {
9
- return $single;
10
- }
11
- $template = get_post_meta($post->ID, 'lp-selected-template', true);
12
- $template = apply_filters('lp_selected_template',$template);
13
-
14
-
15
- if (!isset($template)) {
16
- return $single;
17
- }
18
-
19
- if (strstr($template,'-slash-')) {
20
- $template = str_replace('-slash-','/',$template);
21
- }
22
-
23
- $my_theme = wp_get_theme($template);
24
-
25
- if ($my_theme->exists()) {
26
- return $single;
27
- } else if ( $template != 'default' ) {
28
-
29
- $template = str_replace('_','-',$template);
30
-
31
- if ( file_exists( LANDINGPAGES_PATH.'templates/'.$template.'/index.php') ) {
32
- return LANDINGPAGES_PATH.'templates/'.$template.'/index.php';
33
-
34
- } else {
35
- return LANDINGPAGES_UPLOADS_PATH.$template.'/index.php';
36
- }
37
- }
38
-
39
- return $single;
40
- }
41
-
42
-
43
- /* LOAD & PRINT CUSTOM JS AND CSS */
44
- add_action('wp_head','landing_pages_insert_custom_head');
45
- function landing_pages_insert_custom_head()
46
- {
47
- global $post;
48
-
49
- if (isset($post)&&'landing-page'==$post->post_type)
50
- {
51
-
52
- $custom_css_name = apply_filters('lp_custom_css_name','lp-custom-css');
53
- $custom_js_name = apply_filters('lp_custom_js_name','lp-custom-js');
54
- $custom_css = get_post_meta($post->ID, $custom_css_name, true);
55
- $custom_js = get_post_meta($post->ID, $custom_js_name, true);
56
- echo "<!-- This site landing page was built with the WordPress Landing Pages plugin - https://www.inboundnow.com/landing-pages/ -->";
57
- //Print Custom CSS
58
- if (!stristr($custom_css,'<style'))
59
- {
60
- echo '<style type="text/css" id="lp_css_custom">'.$custom_css.'</style>';
61
- }
62
- else
63
- {
64
- echo $custom_css;
65
- }
66
- //Print Custom JS
67
- if (!stristr($custom_js,'<script'))
68
- {
69
- echo '<script type="text/javascript" id="lp_js_custom">jQuery(document).ready(function($) {
70
- '.$custom_js.' });</script>';
71
- }
72
- else
73
- {
74
- echo $custom_js;
75
- }
76
- }
77
- }
78
-
79
- /* FOR DEFAULT TEMPLATE & NATIVE THEME TEMPLATES PREPARE THE CONVERSION AREA */
80
- add_filter('the_content','landing_pages_add_conversion_area', 20);
81
- add_filter('get_the_content','landing_pages_add_conversion_area', 20);
82
- function landing_pages_add_conversion_area($content)
83
- {
84
-
85
- if ('landing-page'==get_post_type() && !is_admin())
86
- {
87
-
88
- global $post;
89
-
90
- remove_action('the_content', 'landing_pages_add_conversion_area');
91
-
92
- $key = get_post_meta($post->ID, 'lp-selected-template', true);
93
- $key = apply_filters('lp_selected_template',$key);
94
-
95
- if (strstr($key,'-slash-'))
96
- {
97
- $key = str_replace('-slash-','/',$key);
98
- }
99
-
100
- $my_theme = wp_get_theme($key);
101
- //echo $key;
102
- if ($my_theme->exists()||$key=='default')
103
- {
104
-
105
- global $post;
106
- $wrapper_class = "";
107
-
108
- get_post_meta($post->ID, "default-conversion-area-placement", true);
109
-
110
-
111
- $position = get_post_meta($post->ID, "{$key}-conversion-area-placement", true);
112
-
113
- $position = apply_filters('lp_conversion_area_position', $position, $post, $key);
114
-
115
- $_SESSION['lp_conversion_area_position'] = $position;
116
-
117
- $conversion_area = lp_conversion_area(null,null,true,true);
118
-
119
- $conversion_area = "<div id='lp_container' class='$wrapper_class'>".$conversion_area."</div>";
120
-
121
- if ($position=='top')
122
- {
123
- $content = $conversion_area.$content;
124
- }
125
- else if ($position=='bottom')
126
- {
127
- $content = $content.$conversion_area;
128
- }
129
- else if ($position=='widget')
130
- {
131
- $content = $content;
132
- }
133
- else
134
- {
135
- $conversion_area = str_replace("id='lp_container'","id='lp_container' class='lp_form_$position' style='float:$position'",$conversion_area);
136
- $content = $conversion_area.$content;
137
-
138
- }
139
-
140
- }
141
-
142
- }
143
-
144
- return $content;
145
- }
146
-
147
- /* DISPLAY LANDING PAGE CONVERSION AREA */
148
- function lp_conversion_area($post = null, $content=null,$return=false, $doshortcode = true, $rebuild_attributes = true)
149
- {
150
- if (!isset($post)) {
151
- global $post;
152
- }
153
-
154
- $wrapper_class = "";
155
-
156
- $content = get_post_meta($post->ID, 'lp-conversion-area', true);
157
-
158
- $content = apply_filters('lp_conversion_area_pre_standardize',$content, $post, $doshortcode);
159
-
160
- $wrapper_class = lp_discover_important_wrappers($content);
161
-
162
- if ($doshortcode)
163
- {
164
- $content = do_shortcode($content);
165
- }
166
-
167
-
168
- $content = apply_filters('lp_conversion_area_post',$content, $post);
169
-
170
- if(!$return)
171
- {
172
- $content = str_replace('<p><div id="inbound-form-wrapper"', '<div id="inbound-form-wrapper"', $content);
173
- $content = preg_replace('/<p[^>]*><\/p[^>]*>/', '', $content); // remove empty p tags
174
- $content = preg_replace('/<\/p>/', '', $content); // remove last empty p tag
175
- echo do_shortcode($content);
176
-
177
- }
178
- else
179
- {
180
- return $content;
181
- }
182
-
183
- }
184
-
185
- /* ADD SHORTCODE TO DISPLAY LANDING PAGE CONVERSION AREA */
186
- add_shortcode( 'lp_conversion_area', 'lp_conversion_area_shortcode');
187
- function lp_conversion_area_shortcode( $atts, $content = null )
188
- {
189
- extract(shortcode_atts(array(
190
- 'id' => '',
191
- 'align' => ''
192
- //'style' => ''
193
- ), $atts));
194
-
195
-
196
- $conversion_area = lp_conversion_area($post = null, $content=null,$return=true, $doshortcode = true, $rebuild_attributes = true);
197
-
198
-
199
- return $conversion_area;
200
- }
201
-
202
- /* DISPLAY MAIN HEADLINE OF CALLING TEMPLATE */
203
- function lp_main_headline($post = null, $headline=null,$return=false)
204
- {
205
- if (!isset($post))
206
- global $post;
207
-
208
- if (!$headline)
209
- {
210
- $main_headline = lp_get_value($post, 'lp', 'main-headline');
211
- $main_headline = apply_filters('lp_main_headline',$main_headline, $post);
212
-
213
- if(!$return)
214
- {
215
- echo $main_headline;
216
-
217
- }
218
- else
219
- {
220
- return $main_headline;
221
- }
222
- }
223
- else
224
- {
225
- $main_headline = apply_filters('lp_main_headline',$main_headline, $post);
226
- if(!$return)
227
- {
228
- echo $headline;
229
- }
230
- else
231
- {
232
- return $headline;
233
- }
234
- }
235
- }
236
-
237
- /* DISPLAY MAIN CONTENT AREA OF LANDING PAGE TEMPLATE */
238
- function lp_content_area($post = null, $content=null,$return=false )
239
- {
240
- if (!isset($post))
241
- global $post;
242
-
243
- if (!$content)
244
- {
245
- global $post;
246
-
247
- if (!isset($post)&&isset($_REQUEST['post']))
248
- {
249
-
250
- $post = get_post($_REQUEST['post']);
251
- }
252
-
253
- else if (!isset($post)&&isset($_REQUEST['lp_id']))
254
- {
255
- $post = get_post($_REQUEST['lp_id']);
256
- }
257
-
258
- //var_dump($post);
259
- $content_area = $post->post_content;
260
-
261
- if (!is_admin()) {
262
- $content_area = apply_filters('the_content', $content_area);
263
- }
264
-
265
- $content_area = apply_filters('lp_content_area',$content_area, $post);
266
-
267
- if(!$return)
268
- {
269
- echo $content_area;
270
-
271
- }
272
- else
273
- {
274
- return $content_area;
275
- }
276
- }
277
- else
278
- {
279
- if(!$return)
280
- {
281
- echo $content_area;
282
- }
283
- else
284
- {
285
- return $content_area;
286
- }
287
- }
288
- }
289
-
290
- /* ADD BODY CLASS TO LANDING PAGE TEMPLATE */
291
- function lp_body_class()
292
- {
293
- global $post;
294
- global $lp_data;
295
- // Need to add in lp_right or lp_left classes based on the meta to float forms
296
- // like $conversion_layout = lp_get_value($post, $key, 'conversion-area-placement');
297
- if (get_post_meta($post->ID, 'lp-selected-template', true))
298
- {
299
- $lp_body_class = "template-" . get_post_meta($post->ID, 'lp-selected-template', true);
300
- $postid = "page-id-" . get_the_ID();
301
- echo 'class="';
302
- echo $lp_body_class . " " . $postid . " wordpress-landing-page";
303
- echo '"';
304
- }
305
- return $lp_body_class;
306
- }
307
-
308
- /* GET PARENT DIRECTORY OF CALLING TEMPLATE */
309
- function lp_get_parent_directory($path)
310
- {
311
- if(stristr($_SERVER['SERVER_SOFTWARE'], 'Win32')){
312
- $array = explode('\\',$path);
313
- $count = count($array);
314
- $key = $count -1;
315
- $parent = $array[$key];
316
- return $parent;
317
- } else if(stristr($_SERVER['SERVER_SOFTWARE'], 'IIS')){
318
- $array = explode('\\',$path);
319
- $count = count($array);
320
- $key = $count -1;
321
- $parent = $array[$key];
322
- return $parent;
323
- }else {
324
- $array = explode('/',$path);
325
- $count = count($array);
326
- $key = $count -1;
327
- $parent = $array[$key];
328
- return $parent;
329
- }
330
- }
331
-
332
- /* GET META VALUE FOR LANDING PAGE TEMPLATE SETTING */
333
- function lp_get_value($post, $key, $id)
334
- {
335
-
336
- if (isset($post))
337
- {
338
-
339
- $return = do_shortcode(get_post_meta($post->ID, $key.'-'.$id , true));
340
- $return = apply_filters('lp_get_value',$return,$post,$key,$id);
341
-
342
- return $return;
343
- }
344
- }
345
-
346
- /* CALLBACK TO GENERATE DROPDOWN OF LANDING PAGES - MAY BE UNUSED */
347
- function lp_generate_drowndown($select_id, $post_type, $selected = 0, $width = 400, $height = 230,$font_size = 13,$multiple=true)
348
- {
349
- $post_type_object = get_post_type_object($post_type);
350
- $label = $post_type_object->label;
351
-
352
- if ($multiple==true)
353
- {
354
- $multiple = "multiple='multiple'";
355
- }
356
- else
357
- {
358
- $multiple = "";
359
- }
360
-
361
- $posts = get_posts(array('post_type'=> $post_type, 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1));
362
- echo '<select name="'. $select_id .'" id="'.$select_id.'" class="lp-multiple-select" style="width:'.$width.'px;height:'.$height.'px;font-size:'.$font_size.'px;" '.$multiple.'>';
363
- foreach ($posts as $post) {
364
- echo '<option value="', $post->ID, '"', $selected == $post->ID ? ' selected="selected"' : '', '>', $post->post_title, '</option>';
365
- }
366
- echo '</select>';
367
- }
368
-
369
- /* REMOVE CUSTOM FIELDS METABOX FROM LANDING PAGE CPT */
370
- add_action( 'in_admin_header', 'lp_in_admin_header');
371
- function lp_in_admin_header()
372
- {
373
- global $post;
374
- global $wp_meta_boxes;
375
-
376
- if (isset($post)&&$post->post_type=='landing-page')
377
- {
378
- unset( $wp_meta_boxes[get_current_screen()->id]['normal']['core']['postcustom'] );
379
- }
380
- }
381
-
382
- /* DETECTION FOR GRAVITY FORM CLASS AND OTHER IMPORTANT CLASSES */
383
- function lp_discover_important_wrappers($content)
384
- {
385
- $wrapper_class = "";
386
- if (strstr($content,'gform_wrapper'))
387
- {
388
- $wrapper_class = 'gform_wrapper';
389
- }
390
- return $wrapper_class;
391
- }
392
-
393
- /* ADDS IN TRACKING SUPPORT FOR LINKS FOUND IN CONVERSION AREA WHEN THERE ARE NO FORMS DETECTED */
394
- function lp_rebuild_attributes( $content=null , $wrapper_class=null )
395
- {
396
- if (strstr($content,'<form'))
397
- return $content;
398
-
399
- // Standardize all links
400
- $inputs = preg_match_all('/\<a(.*?)\>/s',$content, $matches);
401
- if (!empty($matches[0]))
402
- {
403
- foreach ($matches[0] as $key => $value)
404
- {
405
- if ($key==0)
406
- {
407
- $new_value = $value;
408
- $new_value = preg_replace('/ class=(["\'])(.*?)(["\'])/','class="$2 wpl-track-me-link"', $new_value);
409
-
410
-
411
-
412
- $content = str_replace($value, $new_value, $content);
413
- break;
414
- }
415
- }
416
- }
417
-
418
- $check_wrap = preg_match_all('/lp_container_noform/s',$content, $check);
419
- if (empty($check[0]))
420
- {
421
- $content = "<div id='lp_container_noform' class='$wrapper_class link-click-tracking'>{$content}</div>";
422
- }
423
-
424
- return $content;
425
- }
426
-
427
- /* LEGACY CODE FOR ADDING LANDING PAGE TEMPLATE METABOX SETTINGS TO TEMPLATE METABOX */
428
- function lp_add_option($key,$type,$id,$default=null,$label=null,$description=null, $options=null)
429
- {
430
- switch ($type)
431
- {
432
- case "colorpicker":
433
- return array(
434
- 'label' => $label,
435
- 'description' => $description,
436
- 'id' => $id,
437
- 'type' => 'colorpicker',
438
- 'default' => $default
439
- );
440
- break;
441
- case "text":
442
- return array(
443
- 'label' => $label,
444
- 'description' => $description,
445
- 'id' => $id,
446
- 'type' => 'text',
447
- 'default' => $default
448
- );
449
- break;
450
- case "license-key":
451
- return array(
452
- 'label' => $label,
453
- 'description' => $description,
454
- 'id' => $id,
455
- 'type' => 'license-key',
456
- 'default' => $default,
457
- 'slug' => $id
458
- );
459
- break;
460
- case "textarea":
461
- return array(
462
- 'label' => $label,
463
- 'description' => $description,
464
- 'id' => $id,
465
- 'type' => 'textarea',
466
- 'default' => $default
467
- );
468
- break;
469
- case "wysiwyg":
470
- return array(
471
- 'label' => $label,
472
- 'description' => $description,
473
- 'id' => $id,
474
- 'type' => 'wysiwyg',
475
- 'default' => $default
476
- );
477
- break;
478
- case "media":
479
- return array(
480
- 'label' => $label,
481
- 'description' => $description,
482
- 'id' => $id,
483
- 'type' => 'media',
484
- 'default' => $default
485
- );
486
- break;
487
- case "checkbox":
488
- return array(
489
- 'label' => $label,
490
- 'description' => $description,
491
- 'id' => $id,
492
- 'type' => 'checkbox',
493
- 'default' => $default,
494
- 'options' => $options
495
- );
496
- break;
497
- case "radio":
498
- return array(
499
- 'label' => $label,
500
- 'description' => $description,
501
- 'id' =>$id,
502
- 'type' => 'radio',
503
- 'default' => $default,
504
- 'options' => $options
505
- );
506
- break;
507
- case "dropdown":
508
- return array(
509
- 'label' => $label,
510
- 'description' => $description,
511
- 'id' => $id,
512
- 'type' => 'dropdown',
513
- 'default' => $default,
514
- 'options' => $options
515
- );
516
- break;
517
- case "datepicker":
518
- return array(
519
- 'label' => $label,
520
- 'description' => $description,
521
- 'id' => $id,
522
- 'type' => 'datepicker',
523
- 'default' => $default
524
- );
525
- break;
526
- case "default-content":
527
- return array(
528
- 'label' => $label,
529
- 'description' => $description,
530
- 'id' => $id,
531
- 'type' => 'default-content',
532
- 'default' => $default
533
- );
534
- break;
535
- case "html":
536
- return array(
537
- 'label' => $label,
538
- 'description' => $description,
539
- 'id' => $id,
540
- 'type' => 'html',
541
- 'default' => $default
542
- );
543
- break;
544
- case "custom-css":
545
- return array(
546
- 'label' => $label,
547
- 'description' => $description,
548
- 'id' => $id,
549
- 'type' => 'turn-off-editor',
550
- 'default' => $default // inline css
551
- );
552
- break;
553
- case "description-block":
554
- return array(
555
- 'label' => $label,
556
- 'description' => $description,
557
- 'id' => $key.'-'.$id,
558
- 'type' => 'description-block',
559
- 'default' => $default
560
- );
561
- break;
562
- }
563
- }
564
-
565
- /* LEGACY CALLBACKS -- STILL USED BY SOME OLDER EXTENSIONS AND TEMPLATES */
566
- function lp_list_feature()
567
- {
568
- return null;
569
- }
570
-
571
-
572
- function lp_global_config()
573
- {
574
- do_action('lp_global_config');
575
- }
576
-
577
- if (!function_exists('lp_init')) {
578
- function lp_init() {
579
- do_action('lp_init');
580
- }
581
- }
582
-
583
- function lp_head()
584
- {
585
- do_action('lp_head');
586
- }
587
-
588
- function lp_footer()
589
- {
590
- do_action('lp_footer');
591
  }
1
+ <?php
2
+
3
+ /* LOAD TEMPLATE */
4
+ add_filter('single_template', 'lp_custom_template' , 13 );
5
+ function lp_custom_template($single) {
6
+ global $wp_query, $post, $query_string;
7
+
8
+ if ($post->post_type != "landing-page") {
9
+ return $single;
10
+ }
11
+ $template = get_post_meta($post->ID, 'lp-selected-template', true);
12
+ $template = apply_filters('lp_selected_template',$template);
13
+
14
+
15
+ if (!isset($template)) {
16
+ return $single;
17
+ }
18
+
19
+ if (strstr($template,'-slash-')) {
20
+ $template = str_replace('-slash-','/',$template);
21
+ }
22
+
23
+ $my_theme = wp_get_theme($template);
24
+
25
+ if ($my_theme->exists()) {
26
+ return $single;
27
+ } else if ( $template != 'default' ) {
28
+
29
+ $template = str_replace('_','-',$template);
30
+
31
+ if ( file_exists( LANDINGPAGES_PATH.'templates/'.$template.'/index.php') ) {
32
+ return LANDINGPAGES_PATH.'templates/'.$template.'/index.php';
33
+
34
+ } else {
35
+ return LANDINGPAGES_UPLOADS_PATH.$template.'/index.php';
36
+ }
37
+ }
38
+
39
+ return $single;
40
+ }
41
+
42
+
43
+ /* LOAD & PRINT CUSTOM JS AND CSS */
44
+ add_action('wp_head','landing_pages_insert_custom_head');
45
+ function landing_pages_insert_custom_head()
46
+ {
47
+ global $post;
48
+
49
+ if (isset($post)&&'landing-page'==$post->post_type)
50
+ {
51
+
52
+ $custom_css_name = apply_filters('lp_custom_css_name','lp-custom-css');
53
+ $custom_js_name = apply_filters('lp_custom_js_name','lp-custom-js');
54
+ $custom_css = get_post_meta($post->ID, $custom_css_name, true);
55
+ $custom_js = get_post_meta($post->ID, $custom_js_name, true);
56
+ echo "<!-- This site landing page was built with the WordPress Landing Pages plugin - https://www.inboundnow.com/landing-pages/ -->";
57
+ //Print Custom CSS
58
+ if (!stristr($custom_css,'<style'))
59
+ {
60
+ echo '<style type="text/css" id="lp_css_custom">'.$custom_css.'</style>';
61
+ }
62
+ else
63
+ {
64
+ echo $custom_css;
65
+ }
66
+ //Print Custom JS
67
+ if (!stristr($custom_js,'<script'))
68
+ {
69
+ echo '<script type="text/javascript" id="lp_js_custom">jQuery(document).ready(function($) {
70
+ '.$custom_js.' });</script>';
71
+ }
72
+ else
73
+ {
74
+ echo $custom_js;
75
+ }
76
+ }
77
+ }
78
+
79
+ /* FOR DEFAULT TEMPLATE & NATIVE THEME TEMPLATES PREPARE THE CONVERSION AREA */
80
+ add_filter('the_content','landing_pages_add_conversion_area', 20);
81
+ add_filter('get_the_content','landing_pages_add_conversion_area', 20);
82
+ function landing_pages_add_conversion_area($content)
83
+ {
84
+
85
+ if ('landing-page'==get_post_type() && !is_admin())
86
+ {
87
+
88
+ global $post;
89
+
90
+ remove_action('the_content', 'landing_pages_add_conversion_area');
91
+
92
+ $key = get_post_meta($post->ID, 'lp-selected-template', true);
93
+ $key = apply_filters('lp_selected_template',$key);
94
+
95
+ if (strstr($key,'-slash-'))
96
+ {
97
+ $key = str_replace('-slash-','/',$key);
98
+ }
99
+
100
+ $my_theme = wp_get_theme($key);
101
+ //echo $key;
102
+ if ($my_theme->exists()||$key=='default')
103
+ {
104
+
105
+ global $post;
106
+ $wrapper_class = "";
107
+
108
+ get_post_meta($post->ID, "default-conversion-area-placement", true);
109
+
110
+
111
+ $position = get_post_meta($post->ID, "{$key}-conversion-area-placement", true);
112
+
113
+ $position = apply_filters('lp_conversion_area_position', $position, $post, $key);
114
+
115
+ $_SESSION['lp_conversion_area_position'] = $position;
116
+
117
+ $conversion_area = lp_conversion_area(null,null,true,true);
118
+
119
+ $conversion_area = "<div id='lp_container' class='$wrapper_class'>".$conversion_area."</div>";
120
+
121
+ if ($position=='top')
122
+ {
123
+ $content = $conversion_area.$content;
124
+ }
125
+ else if ($position=='bottom')
126
+ {
127
+ $content = $content.$conversion_area;
128
+ }
129
+ else if ($position=='widget')
130
+ {
131
+ $content = $content;
132
+ }
133
+ else
134
+ {
135
+ $conversion_area = str_replace("id='lp_container'","id='lp_container' class='lp_form_$position' style='float:$position'",$conversion_area);
136
+ $content = $conversion_area.$content;
137
+
138
+ }
139
+
140
+ }
141
+
142
+ }
143
+
144
+ return $content;
145
+ }
146
+
147
+ /* DISPLAY LANDING PAGE CONVERSION AREA */
148
+ function lp_conversion_area($post = null, $content=null,$return=false, $doshortcode = true, $rebuild_attributes = true)
149
+ {
150
+ if (!isset($post)) {
151
+ global $post;
152
+ }
153
+
154
+ $wrapper_class = "";
155
+
156
+ $content = get_post_meta($post->ID, 'lp-conversion-area', true);
157
+
158
+ $content = apply_filters('lp_conversion_area_pre_standardize',$content, $post, $doshortcode);
159
+
160
+ $wrapper_class = lp_discover_important_wrappers($content);
161
+
162
+ if ($doshortcode)
163
+ {
164
+ $content = do_shortcode($content);
165
+ }
166
+
167
+
168
+ $content = apply_filters('lp_conversion_area_post',$content, $post);
169
+
170
+ if(!$return)
171
+ {
172
+ $content = str_replace('<p><div id="inbound-form-wrapper"', '<div id="inbound-form-wrapper"', $content);
173
+ $content = preg_replace('/<p[^>]*><\/p[^>]*>/', '', $content); // remove empty p tags
174
+ $content = preg_replace('/<\/p>/', '', $content); // remove last empty p tag
175
+ echo do_shortcode($content);
176
+
177
+ }
178
+ else
179
+ {
180
+ return $content;
181
+ }
182
+
183
+ }
184
+
185
+ /* ADD SHORTCODE TO DISPLAY LANDING PAGE CONVERSION AREA */
186
+ add_shortcode( 'lp_conversion_area', 'lp_conversion_area_shortcode');
187
+ function lp_conversion_area_shortcode( $atts, $content = null )
188
+ {
189
+ extract(shortcode_atts(array(
190
+ 'id' => '',
191
+ 'align' => ''
192
+ //'style' => ''
193
+ ), $atts));
194
+
195
+
196
+ $conversion_area = lp_conversion_area($post = null, $content=null,$return=true, $doshortcode = true, $rebuild_attributes = true);
197
+
198
+
199
+ return $conversion_area;
200
+ }
201
+
202
+ /* DISPLAY MAIN HEADLINE OF CALLING TEMPLATE */
203
+ function lp_main_headline($post = null, $headline=null,$return=false)
204
+ {
205
+ if (!isset($post))
206
+ global $post;
207
+
208
+ if (!$headline)
209
+ {
210
+ $main_headline = lp_get_value($post, 'lp', 'main-headline');
211
+ $main_headline = apply_filters('lp_main_headline',$main_headline, $post);
212
+
213
+ if(!$return)
214
+ {
215
+ echo $main_headline;
216
+
217
+ }
218
+ else
219
+ {
220
+ return $main_headline;
221
+ }
222
+ }
223
+ else
224
+ {
225
+ $main_headline = apply_filters('lp_main_headline',$main_headline, $post);
226
+ if(!$return)
227
+ {
228
+ echo $headline;
229
+ }
230
+ else
231
+ {
232
+ return $headline;
233
+ }
234
+ }
235
+ }
236
+
237
+ /* DISPLAY MAIN CONTENT AREA OF LANDING PAGE TEMPLATE */
238
+ function lp_content_area($post = null, $content=null,$return=false )
239
+ {
240
+ if (!isset($post))
241
+ global $post;
242
+
243
+ if (!$content)
244
+ {
245
+ global $post;
246
+
247
+ if (!isset($post)&&isset($_REQUEST['post']))
248
+ {
249
+
250
+ $post = get_post($_REQUEST['post']);
251
+ }
252
+
253
+ else if (!isset($post)&&isset($_REQUEST['lp_id']))
254
+ {
255
+ $post = get_post($_REQUEST['lp_id']);
256
+ }
257
+
258
+ //var_dump($post);
259
+ $content_area = $post->post_content;
260
+
261
+ if (!is_admin()) {
262
+ $content_area = apply_filters('the_content', $content_area);
263
+ }
264
+
265
+ $content_area = apply_filters('lp_content_area',$content_area, $post);
266
+
267
+ if(!$return)
268
+ {
269
+ echo $content_area;
270
+
271
+ }
272
+ else
273
+ {
274
+ return $content_area;
275
+ }
276
+ }
277
+ else
278
+ {
279
+ if(!$return)
280
+ {
281
+ echo $content_area;
282
+ }
283
+ else
284
+ {
285
+ return $content_area;
286
+ }
287
+ }
288
+ }
289
+
290
+ /* ADD BODY CLASS TO LANDING PAGE TEMPLATE */
291
+ function lp_body_class()
292
+ {
293
+ global $post;
294
+ global $lp_data;
295
+ // Need to add in lp_right or lp_left classes based on the meta to float forms
296
+ // like $conversion_layout = lp_get_value($post, $key, 'conversion-area-placement');
297
+ if (get_post_meta($post->ID, 'lp-selected-template', true))
298
+ {
299
+ $lp_body_class = "template-" . get_post_meta($post->ID, 'lp-selected-template', true);
300
+ $postid = "page-id-" . get_the_ID();
301
+ echo 'class="';
302
+ echo $lp_body_class . " " . $postid . " wordpress-landing-page";
303
+ echo '"';
304
+ }
305
+ return $lp_body_class;
306
+ }
307
+
308
+ /* GET PARENT DIRECTORY OF CALLING TEMPLATE */
309
+ function lp_get_parent_directory($path)
310
+ {
311
+ if(stristr($_SERVER['SERVER_SOFTWARE'], 'Win32')){
312
+ $array = explode('\\',$path);
313
+ $count = count($array);
314
+ $key = $count -1;
315
+ $parent = $array[$key];
316
+ return $parent;
317
+ } else if(stristr($_SERVER['SERVER_SOFTWARE'], 'IIS')){
318
+ $array = explode('\\',$path);
319
+ $count = count($array);
320
+ $key = $count -1;
321
+ $parent = $array[$key];
322
+ return $parent;
323
+ }else {
324
+ $array = explode('/',$path);
325
+ $count = count($array);
326
+ $key = $count -1;
327
+ $parent = $array[$key];
328
+ return $parent;
329
+ }
330
+ }
331
+
332
+ /* GET META VALUE FOR LANDING PAGE TEMPLATE SETTING */
333
+ function lp_get_value($post, $key, $id)
334
+ {
335
+
336
+ if (isset($post))
337
+ {
338
+
339
+ $return = do_shortcode(get_post_meta($post->ID, $key.'-'.$id , true));
340
+ $return = apply_filters('lp_get_value',$return,$post,$key,$id);
341
+
342
+ return $return;
343
+ }
344
+ }
345
+
346
+ /* CALLBACK TO GENERATE DROPDOWN OF LANDING PAGES - MAY BE UNUSED */
347
+ function lp_generate_drowndown($select_id, $post_type, $selected = 0, $width = 400, $height = 230,$font_size = 13,$multiple=true)
348
+ {
349
+ $post_type_object = get_post_type_object($post_type);
350
+ $label = $post_type_object->label;
351
+
352
+ if ($multiple==true)
353
+ {
354
+ $multiple = "multiple='multiple'";
355
+ }
356
+ else
357
+ {
358
+ $multiple = "";
359
+ }
360
+
361
+ $posts = get_posts(array('post_type'=> $post_type, 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1));
362
+ echo '<select name="'. $select_id .'" id="'.$select_id.'" class="lp-multiple-select" style="width:'.$width.'px;height:'.$height.'px;font-size:'.$font_size.'px;" '.$multiple.'>';
363
+ foreach ($posts as $post) {
364
+ echo '<option value="', $post->ID, '"', $selected == $post->ID ? ' selected="selected"' : '', '>', $post->post_title, '</option>';
365
+ }
366
+ echo '</select>';
367
+ }
368
+
369
+ /* REMOVE CUSTOM FIELDS METABOX FROM LANDING PAGE CPT */
370
+ add_action( 'in_admin_header', 'lp_in_admin_header');
371
+ function lp_in_admin_header()
372
+ {
373
+ global $post;
374
+ global $wp_meta_boxes;
375
+
376
+ if (isset($post)&&$post->post_type=='landing-page')
377
+ {
378
+ unset( $wp_meta_boxes[get_current_screen()->id]['normal']['core']['postcustom'] );
379
+ }
380
+ }
381
+
382
+ /* DETECTION FOR GRAVITY FORM CLASS AND OTHER IMPORTANT CLASSES */
383
+ function lp_discover_important_wrappers($content)
384
+ {
385
+ $wrapper_class = "";
386
+ if (strstr($content,'gform_wrapper'))
387
+ {
388
+ $wrapper_class = 'gform_wrapper';
389
+ }
390
+ return $wrapper_class;
391
+ }
392
+
393
+ /* ADDS IN TRACKING SUPPORT FOR LINKS FOUND IN CONVERSION AREA WHEN THERE ARE NO FORMS DETECTED */
394
+ function lp_rebuild_attributes( $content=null , $wrapper_class=null )
395
+ {
396
+ if (strstr($content,'<form'))
397
+ return $content;
398
+
399
+ // Standardize all links
400
+ $inputs = preg_match_all('/\<a(.*?)\>/s',$content, $matches);
401
+ if (!empty($matches[0]))
402
+ {
403
+ foreach ($matches[0] as $key => $value)
404
+ {
405
+ if ($key==0)
406
+ {
407
+ $new_value = $value;
408
+ $new_value = preg_replace('/ class=(["\'])(.*?)(["\'])/','class="$2 wpl-track-me-link"', $new_value);
409
+
410
+
411
+
412
+ $content = str_replace($value, $new_value, $content);
413
+ break;
414
+ }
415
+ }
416
+ }
417
+
418
+ $check_wrap = preg_match_all('/lp_container_noform/s',$content, $check);
419
+ if (empty($check[0]))
420
+ {
421
+ $content = "<div id='lp_container_noform' class='$wrapper_class link-click-tracking'>{$content}</div>";
422
+ }
423
+
424
+ return $content;
425
+ }
426
+
427
+ /* LEGACY CODE FOR ADDING LANDING PAGE TEMPLATE METABOX SETTINGS TO TEMPLATE METABOX */
428
+ function lp_add_option($key,$type,$id,$default=null,$label=null,$description=null, $options=null)
429
+ {
430
+ switch ($type)
431
+ {
432
+ case "colorpicker":
433
+ return array(
434
+ 'label' => $label,
435
+ 'description' => $description,
436
+ 'id' => $id,
437
+ 'type' => 'colorpicker',
438
+ 'default' => $default
439
+ );
440
+ break;
441
+ case "text":
442
+ return array(
443
+ 'label' => $label,
444
+ 'description' => $description,
445
+ 'id' => $id,
446
+ 'type' => 'text',
447
+ 'default' => $default
448
+ );
449
+ break;
450
+ case "license-key":
451
+ return array(
452
+ 'label' => $label,
453
+ 'description' => $description,
454
+ 'id' => $id,
455
+ 'type' => 'license-key',
456
+ 'default' => $default,
457
+ 'slug' => $id
458
+ );
459
+ break;
460
+ case "textarea":
461
+ return array(
462
+ 'label' => $label,
463
+ 'description' => $description,
464
+ 'id' => $id,
465
+ 'type' => 'textarea',
466
+ 'default' => $default
467
+ );
468
+ break;
469
+ case "wysiwyg":
470
+ return array(
471
+ 'label' => $label,
472
+ 'description' => $description,
473
+ 'id' => $id,
474
+ 'type' => 'wysiwyg',
475
+ 'default' => $default
476
+ );
477
+ break;
478
+ case "media":
479
+ return array(
480
+ 'label' => $label,
481
+ 'description' => $description,
482
+ 'id' => $id,
483
+ 'type' => 'media',
484
+ 'default' => $default
485
+ );
486
+ break;
487
+ case "checkbox":
488
+ return array(
489
+ 'label' => $label,
490
+ 'description' => $description,
491
+ 'id' => $id,
492
+ 'type' => 'checkbox',
493
+ 'default' => $default,
494
+ 'options' => $options
495
+ );
496
+ break;
497
+ case "radio":
498
+ return array(
499
+ 'label' => $label,
500
+ 'description' => $description,
501
+ 'id' =>$id,
502
+ 'type' => 'radio',
503
+ 'default' => $default,
504
+ 'options' => $options
505
+ );
506
+ break;
507
+ case "dropdown":
508
+ return array(
509
+ 'label' => $label,
510
+ 'description' => $description,
511
+ 'id' => $id,
512
+ 'type' => 'dropdown',
513
+ 'default' => $default,
514
+ 'options' => $options
515
+ );
516
+ break;
517
+ case "datepicker":
518
+ return array(
519
+ 'label' => $label,
520
+ 'description' => $description,
521
+ 'id' => $id,
522
+ 'type' => 'datepicker',
523
+ 'default' => $default
524
+ );
525
+ break;
526
+ case "default-content":
527
+ return array(
528
+ 'label' => $label,
529
+ 'description' => $description,
530
+ 'id' => $id,
531
+ 'type' => 'default-content',
532
+ 'default' => $default
533
+ );
534
+ break;
535
+ case "html":
536
+ return array(
537
+ 'label' => $label,
538
+ 'description' => $description,
539
+ 'id' => $id,
540
+ 'type' => 'html',
541
+ 'default' => $default
542
+ );
543
+ break;
544
+ case "custom-css":
545
+ return array(
546
+ 'label' => $label,
547
+ 'description' => $description,
548
+ 'id' => $id,
549
+ 'type' => 'turn-off-editor',
550
+ 'default' => $default // inline css
551
+ );
552
+ break;
553
+ case "description-block":
554
+ return array(
555
+ 'label' => $label,
556
+ 'description' => $description,
557
+ 'id' => $key.'-'.$id,
558
+ 'type' => 'description-block',
559
+ 'default' => $default
560
+ );
561
+ break;
562
+ }
563
+ }
564
+
565
+ /* LEGACY CALLBACKS -- STILL USED BY SOME OLDER EXTENSIONS AND TEMPLATES */
566
+ function lp_list_feature()
567
+ {
568
+ return null;
569
+ }
570
+
571
+
572
+ function lp_global_config()
573
+ {
574
+ do_action('lp_global_config');
575
+ }
576
+
577
+ if (!function_exists('lp_init')) {
578
+ function lp_init() {
579
+ do_action('lp_init');
580
+ }
581
+ }
582
+
583
+ function lp_head()
584
+ {
585
+ do_action('lp_head');
586
+ }
587
+
588
+ function lp_footer()
589
+ {
590
+ do_action('lp_footer');
591
  }
readme.txt CHANGED
@@ -7,7 +7,7 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
7
  Tags: landing pages, inbound marketing, conversion pages, split testing, a b test, a b testing, a/b test, a/b testing, coming soon page, email list, landing page, list building, maintenance page, squeeze page, inbound now, landing-pages, splash pages, cpa, click tracking, goal tracking, analytics, free landing page templates
8
  Requires at least: 3.8
9
  Tested up to: 4.1
10
- Stable Tag: 1.8.1
11
 
12
  Create landing pages for your WordPress site. Monitor and improve conversion rates, run A/B split tests, customize your own templates and more.
13
 
@@ -73,12 +73,16 @@ The plugin is also fully extendable and has a number of actions, filters, and ho
73
 
74
  == Changelog ==
75
 
 
 
 
 
76
  = 1.8.1 =
77
  * WYSIWYG buttons overlapping fixed
78
  * Fixes issue with Homepage extensions and variation switching
79
- * Template preview links
80
  * Removing 'get short url' from landing pages.
81
- * View full list of changes [here](https://github.com/inboundnow/landing-pages/issues?q=label%3A1.8.1+is%3Aclosed)
82
 
83
  = 1.8.0 =
84
  * Fixing addon store
7
  Tags: landing pages, inbound marketing, conversion pages, split testing, a b test, a b testing, a/b test, a/b testing, coming soon page, email list, landing page, list building, maintenance page, squeeze page, inbound now, landing-pages, splash pages, cpa, click tracking, goal tracking, analytics, free landing page templates
8
  Requires at least: 3.8
9
  Tested up to: 4.1
10
+ Stable Tag: 1.8.2
11
 
12
  Create landing pages for your WordPress site. Monitor and improve conversion rates, run A/B split tests, customize your own templates and more.
13
 
73
 
74
  == Changelog ==
75
 
76
+ = 1.8.2 =
77
+ * Debugging release issues with 1.8.1
78
+ * Security Update
79
+
80
  = 1.8.1 =
81
  * WYSIWYG buttons overlapping fixed
82
  * Fixes issue with Homepage extensions and variation switching
83
+ * Template preview links
84
  * Removing 'get short url' from landing pages.
85
+ * View full list of changes [here](https://github.com/inboundnow/landing-pages/issues?q=label%3A1.8.1+is%3Aclosed)
86
 
87
  = 1.8.0 =
88
  * Fixing addon store
shared/assets/assets.loader.class.php CHANGED
@@ -1,183 +1,183 @@
1
- <?php
2
- /*
3
- Inbound Scripts and CSS Enqueue
4
- */
5
-
6
- if (!class_exists('Inbound_Asset_Loader')) {
7
- class Inbound_Asset_Loader {
8
- static $load_assets;
9
-
10
- static function load_inbound_assets() {
11
- self::$load_assets = true;
12
- add_action('wp_enqueue_scripts', array(__CLASS__, 'register_scripts_and_styles'), 101);
13
- add_action('admin_enqueue_scripts', array(__CLASS__, 'register_scripts_and_styles'), 101);
14
- }
15
-
16
- /**
17
- * Registers and enqueues stylesheets for the administration panel and the
18
- * public facing site.
19
- *
20
- * Example:
21
- * self::enqueue_shared_file('SCRIPT-ID', INBOUDNOW_SHARED_PATH . 'assets/js/frontend/path-in-shared-assets.js', 'localized_var_name', $localized_array_values, $dependancies_array );
22
- */
23
- static function register_scripts_and_styles() {
24
- /* Frontent and Backend Files */
25
-
26
-
27
- /* Conditionals for admin or frontend */
28
- if(is_admin()) {
29
-
30
- //self::enqueue_shared_file('inbound-analytics', 'assets/js/frontend/analytics/inboundAnalytics.js', array( 'jquery' ), 'inbound_settings', self::localize_lead_data());
31
-
32
- self::enqueue_shared_file('jquery-cookie', 'assets/js/global/jquery.cookie.js', array( 'jquery' ));
33
- self::enqueue_shared_file('jquery-total-storage', 'assets/js/global/jquery.total-storage.min.js', array( 'jquery' ));
34
- $inbound_now_screens = Inbound_Compatibility::return_inbound_now_screens(); // list of inbound now screens
35
- $screen = get_current_screen();
36
-
37
- /* Target Specific screen with // echo $screen->id; */
38
-
39
- if ( $screen->id == 'wp-call-to-action') {
40
- self::enqueue_shared_file('image-picker-js', 'assets/js/admin/image-picker.js');
41
- self::enqueue_shared_file('image-picker-css', 'assets/css/admin/image-picker.css');
42
- }
43
- /* Metabox CSS */
44
- self::enqueue_shared_file('inbound-metaboxes', 'assets/css/admin/inbound-metaboxes.css');
45
- self::enqueue_shared_file('inbound-global-styles', 'assets/css/admin/global-inbound-admin.css');
46
-
47
- } else {
48
-
49
- global $wp_scripts;
50
-
51
- if ( !empty( $wp_scripts->queue ) ) {
52
- $store = $wp_scripts->queue; // store the scripts
53
- foreach ( $wp_scripts->queue as $handle ) {
54
- wp_dequeue_script( $handle );
55
- }
56
- }
57
-
58
- /* unminified source available */
59
- self::enqueue_shared_file('inbound-analytics', 'assets/js/frontend/analytics/inboundAnalytics.min.js', array( 'jquery' ), 'inbound_settings', self::localize_lead_data());
60
-
61
- if (is_array($store)) {
62
- foreach ( $store as $handle ) {
63
- wp_enqueue_script( $handle );
64
- }
65
- }
66
-
67
- }
68
- } // end register_scripts_and_styles
69
-
70
- /**
71
- * Helper function for registering and enqueueing scripts and styles.
72
- *
73
- * @name The ID to register with WordPress
74
- * @file_path The path to the actual file inside /shared/assets/
75
- * @localize_array Optional argument for the localized array
76
- * @deps js dependancies by name example 'jquery'
77
- * @localize_var the localized variable name
78
- */
79
- static function enqueue_shared_file($name, $path, $deps = array(), $localize_var = null, $localize_array = array()) {
80
- $is_script = false;
81
- $deps = (empty($deps)) ? array() : $deps;
82
- $url = INBOUDNOW_SHARED_URLPATH . $path;
83
- $file = INBOUDNOW_SHARED_PATH . $path;
84
-
85
- $file_type = strpos($path, '.js');
86
- if (!(false === $file_type)) { $is_script = true; }
87
-
88
- if(file_exists($file)) {
89
- if($is_script) {
90
- wp_register_script($name, $url, $deps);
91
- wp_enqueue_script($name);
92
-
93
- if ($localize_var != null) {
94
- wp_localize_script( $name , $localize_var, $localize_array );
95
- }
96
- } else {
97
- wp_register_style($name, $url);
98
- wp_enqueue_style($name);
99
- }
100
- }
101
-
102
- }
103
-
104
- /* Global Specific localize functions */
105
- static function localize_lead_data() {
106
- global $post;
107
- $post_id = null;
108
- $id_check = false;
109
- $page_tracking = 'on';
110
- $search_tracking = 'on';
111
- $comment_tracking = 'on';
112
- $post_type = isset($post) ? get_post_type( $post ) : null;
113
- $current_page = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
114
- $ip_address = (isset($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0.0';
115
- $lead_id = (isset($_COOKIE['wp_lead_id'])) ? $_COOKIE['wp_lead_id'] : false;
116
- $lead_email = (isset($_COOKIE['wp_lead_email'])) ? $_COOKIE['wp_lead_email'] : false;
117
- $lead_uid = (isset($_COOKIE['wp_lead_uid'])) ? $_COOKIE['wp_lead_uid'] : false;
118
- $custom_map_values = array();
119
- $custom_map_values = apply_filters( 'inboundnow_custom_map_values_filter' , $custom_map_values);
120
- // Get correct post ID
121
-
122
- global $wp_query;
123
- $current_page_id = $wp_query->get_queried_object_id();
124
- $post_id = $current_page_id;
125
- $id_check = ($post_id != null) ? true : false;
126
-
127
- if (!is_archive() && !$id_check){
128
- $post_id = (isset($post)) ? $post->ID : false;
129
- $id_check = ($post_id != null) ? true : false;
130
- }
131
- if (!$id_check) {
132
- $post_id = wpl_url_to_postid($current_page);
133
- $id_check = ($post_id != null) ? true : false;
134
- }
135
- if(!$id_check){
136
- $post_id = wp_leads_get_page_final_id();
137
- $id_check = ($post_id != null) ? true : false;
138
- }
139
-
140
- // If page tracking on
141
- $lead_page_view_tracking = get_option( 'wpl-main-page-view-tracking', 1);
142
- $lead_search_tracking = get_option( 'wpl-main-search-tracking', 1);
143
- $lead_comment_tracking = get_option( 'wpl-main-comment-tracking', 1);
144
- if (!$lead_search_tracking) {
145
- $search_tracking = 'off';
146
- }
147
- if (!$lead_comment_tracking) {
148
- $comment_tracking = 'off';
149
- }
150
- if (!$lead_page_view_tracking) {
151
- $page_tracking = 'off';
152
- }
153
-
154
- // Localize lead data
155
- $lead_data_array = array();
156
- $lead_data_array['lead_id'] = ($lead_id) ? $lead_id : null;
157
- $lead_data_array['lead_email'] = ($lead_email) ? $lead_email : null;
158
- $lead_data_array['lead_uid'] = ($lead_uid) ? $lead_uid : null;
159
- $time = current_time( 'timestamp', 0 ); // Current wordpress time from settings
160
- $wordpress_date_time = date("Y/m/d G:i:s", $time);
161
- $inbound_track_include = get_option( 'wpl-main-tracking-ids');
162
- $inbound_track_exclude = get_option( 'wpl-main-exclude-tracking-ids');
163
- $inbound_localized_data = array('post_id' => $post_id,
164
- 'ip_address' => $ip_address,
165
- 'wp_lead_data' => $lead_data_array,
166
- 'admin_url' => admin_url('admin-ajax.php'),
167
- 'track_time' => $wordpress_date_time,
168
- 'post_type' => $post_type,
169
- 'page_tracking' => $page_tracking,
170
- 'search_tracking' => $search_tracking,
171
- 'comment_tracking' => $comment_tracking,
172
- 'custom_mapping' => $custom_map_values,
173
- 'inbound_track_exclude' => $inbound_track_exclude,
174
- 'inbound_track_include' => $inbound_track_include
175
- );
176
-
177
- return $inbound_localized_data;
178
- } // end localize lead data
179
-
180
- } // end class
181
- }
182
-
183
- Inbound_Asset_Loader::load_inbound_assets();
1
+ <?php
2
+ /*
3
+ Inbound Scripts and CSS Enqueue
4
+ */
5
+
6
+ if (!class_exists('Inbound_Asset_Loader')) {
7
+ class Inbound_Asset_Loader {
8
+ static $load_assets;
9
+
10
+ static function load_inbound_assets() {
11
+ self::$load_assets = true;
12
+ add_action('wp_enqueue_scripts', array(__CLASS__, 'register_scripts_and_styles'), 101);
13
+ add_action('admin_enqueue_scripts', array(__CLASS__, 'register_scripts_and_styles'), 101);
14
+ }
15
+
16
+ /**
17
+ * Registers and enqueues stylesheets for the administration panel and the
18
+ * public facing site.
19
+ *
20
+ * Example:
21
+ * self::enqueue_shared_file('SCRIPT-ID', INBOUDNOW_SHARED_PATH . 'assets/js/frontend/path-in-shared-assets.js', 'localized_var_name', $localized_array_values, $dependancies_array );
22
+ */
23
+ static function register_scripts_and_styles() {
24
+ /* Frontent and Backend Files */
25
+
26
+
27
+ /* Conditionals for admin or frontend */
28
+ if(is_admin()) {
29
+
30
+ //self::enqueue_shared_file('inbound-analytics', 'assets/js/frontend/analytics/inboundAnalytics.js', array( 'jquery' ), 'inbound_settings', self::localize_lead_data());
31
+
32
+ self::enqueue_shared_file('jquery-cookie', 'assets/js/global/jquery.cookie.js', array( 'jquery' ));
33
+ self::enqueue_shared_file('jquery-total-storage', 'assets/js/global/jquery.total-storage.min.js', array( 'jquery' ));
34
+ $inbound_now_screens = Inbound_Compatibility::return_inbound_now_screens(); // list of inbound now screens
35
+ $screen = get_current_screen();
36
+
37
+ /* Target Specific screen with // echo $screen->id; */
38
+
39
+ if ( $screen->id == 'wp-call-to-action') {
40
+ self::enqueue_shared_file('image-picker-js', 'assets/js/admin/image-picker.js');
41
+ self::enqueue_shared_file('image-picker-css', 'assets/css/admin/image-picker.css');
42
+ }
43
+ /* Metabox CSS */
44
+ self::enqueue_shared_file('inbound-metaboxes', 'assets/css/admin/inbound-metaboxes.css');
45
+ self::enqueue_shared_file('inbound-global-styles', 'assets/css/admin/global-inbound-admin.css');
46
+
47
+ } else {
48
+
49
+ global $wp_scripts;
50
+
51
+ if ( !empty( $wp_scripts->queue ) ) {
52
+ $store = $wp_scripts->queue; // store the scripts
53
+ foreach ( $wp_scripts->queue as $handle ) {
54
+ wp_dequeue_script( $handle );
55
+ }
56
+ }
57
+
58
+ /* unminified source available */
59
+ self::enqueue_shared_file('inbound-analytics', 'assets/js/frontend/analytics/inboundAnalytics.min.js', array( 'jquery' ), 'inbound_settings', self::localize_lead_data());
60
+
61
+ if (is_array($store)) {
62
+ foreach ( $store as $handle ) {
63
+ wp_enqueue_script( $handle );
64
+ }
65
+ }
66
+
67
+ }
68
+ } // end register_scripts_and_styles
69
+
70
+ /**
71
+ * Helper function for registering and enqueueing scripts and styles.
72
+ *
73
+ * @name The ID to register with WordPress
74
+ * @file_path The path to the actual file inside /shared/assets/
75
+ * @localize_array Optional argument for the localized array
76
+ * @deps js dependancies by name example 'jquery'
77
+ * @localize_var the localized variable name
78
+ */
79
+ static function enqueue_shared_file($name, $path, $deps = array(), $localize_var = null, $localize_array = array()) {
80
+ $is_script = false;
81
+ $deps = (empty($deps)) ? array() : $deps;
82
+ $url = INBOUDNOW_SHARED_URLPATH . $path;
83
+ $file = INBOUDNOW_SHARED_PATH . $path;
84
+
85
+ $file_type = strpos($path, '.js');
86
+ if (!(false === $file_type)) { $is_script = true; }
87
+
88
+ if(file_exists($file)) {
89
+ if($is_script) {
90
+ wp_register_script($name, $url, $deps);
91
+ wp_enqueue_script($name);
92
+
93
+ if ($localize_var != null) {
94
+ wp_localize_script( $name , $localize_var, $localize_array );
95
+ }
96
+ } else {
97
+ wp_register_style($name, $url);
98
+ wp_enqueue_style($name);
99
+ }
100
+ }
101
+
102
+ }
103
+
104
+ /* Global Specific localize functions */
105
+ static function localize_lead_data() {
106
+ global $post;
107
+ $post_id = null;
108
+ $id_check = false;
109
+ $page_tracking = 'on';
110
+ $search_tracking = 'on';
111
+ $comment_tracking = 'on';
112
+ $post_type = isset($post) ? get_post_type( $post ) : null;
113
+ $current_page = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
114
+ $ip_address = (isset($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0.0';
115
+ $lead_id = (isset($_COOKIE['wp_lead_id'])) ? $_COOKIE['wp_lead_id'] : false;
116
+ $lead_email = (isset($_COOKIE['wp_lead_email'])) ? $_COOKIE['wp_lead_email'] : false;
117
+ $lead_uid = (isset($_COOKIE['wp_lead_uid'])) ? $_COOKIE['wp_lead_uid'] : false;
118
+ $custom_map_values = array();
119
+ $custom_map_values = apply_filters( 'inboundnow_custom_map_values_filter' , $custom_map_values);
120
+ // Get correct post ID
121
+
122
+ global $wp_query;
123
+ $current_page_id = $wp_query->get_queried_object_id();
124
+ $post_id = $current_page_id;
125
+ $id_check = ($post_id != null) ? true : false;
126
+
127
+ if (!is_archive() && !$id_check){
128
+ $post_id = (isset($post)) ? $post->ID : false;
129
+ $id_check = ($post_id != null) ? true : false;
130
+ }
131
+ if (!$id_check) {
132
+ $post_id = wpl_url_to_postid($current_page);
133
+ $id_check = ($post_id != null) ? true : false;
134
+ }
135
+ if(!$id_check){
136
+ $post_id = wp_leads_get_page_final_id();
137
+ $id_check = ($post_id != null) ? true : false;
138
+ }
139
+
140
+ // If page tracking on
141
+ $lead_page_view_tracking = get_option( 'wpl-main-page-view-tracking', 1);
142
+ $lead_search_tracking = get_option( 'wpl-main-search-tracking', 1);
143
+ $lead_comment_tracking = get_option( 'wpl-main-comment-tracking', 1);
144
+ if (!$lead_search_tracking) {
145
+ $search_tracking = 'off';
146
+ }
147
+ if (!$lead_comment_tracking) {
148
+ $comment_tracking = 'off';
149
+ }
150
+ if (!$lead_page_view_tracking) {
151
+ $page_tracking = 'off';
152
+ }
153
+
154
+ // Localize lead data
155
+ $lead_data_array = array();
156
+ $lead_data_array['lead_id'] = ($lead_id) ? $lead_id : null;
157
+ $lead_data_array['lead_email'] = ($lead_email) ? $lead_email : null;
158
+ $lead_data_array['lead_uid'] = ($lead_uid) ? $lead_uid : null;
159
+ $time = current_time( 'timestamp', 0 ); // Current wordpress time from settings
160
+ $wordpress_date_time = date("Y/m/d G:i:s", $time);
161
+ $inbound_track_include = get_option( 'wpl-main-tracking-ids');
162
+ $inbound_track_exclude = get_option( 'wpl-main-exclude-tracking-ids');
163
+ $inbound_localized_data = array('post_id' => $post_id,
164
+ 'ip_address' => $ip_address,
165
+ 'wp_lead_data' => $lead_data_array,
166
+ 'admin_url' => admin_url('admin-ajax.php'),
167
+ 'track_time' => $wordpress_date_time,
168
+ 'post_type' => $post_type,
169
+ 'page_tracking' => $page_tracking,
170
+ 'search_tracking' => $search_tracking,
171
+ 'comment_tracking' => $comment_tracking,
172
+ 'custom_mapping' => $custom_map_values,
173
+ 'inbound_track_exclude' => $inbound_track_exclude,
174
+ 'inbound_track_include' => $inbound_track_include
175
+ );
176
+
177
+ return $inbound_localized_data;
178
+ } // end localize lead data
179
+
180
+ } // end class
181
+ }
182
+
183
+ Inbound_Asset_Loader::load_inbound_assets();
shared/assets/css/admin/global-inbound-admin.css CHANGED
@@ -1,151 +1,151 @@
1
- #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing:hover > .ab-item,
2
- #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing.hover > .ab-item,
3
- #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item,
4
- #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item, #inboundnow-media-button {
5
-
6
- background-image: url('../../images/global/shortcodes-blue.png');
7
-
8
- background-repeat: no-repeat;
9
- background-position: 0.15em 50%;
10
- padding-left: 22px;
11
- }
12
- #inboundnow-media-button {
13
- padding-left: 5px;
14
- }
15
- body #calls-to-action .toggle .switch-versions, body #landing-pages .toggle .switch-versions, body #leads .toggle .switch-versions {
16
- display: none;
17
- }
18
- .switch-versions, .switch-versions {
19
-
20
- }
21
- #wp-admin-bar-ddw-edd-languages-de > .ab-item:before,
22
- #wp-admin-bar-ddw-edd-translations-forum > .ab-item:before {
23
- color: #ff9900;
24
- content: '• ';
25
- }
26
- #wpadminbar .inbound-search-input {
27
- width: 140px;
28
- }
29
- #wp-admin-bar-ddw-edd-inboundsupportsections .ab-item,
30
- #wp-admin-bar-ddw-edd-inbounddocsquick .ab-item,
31
- #wp-admin-bar-ddw-edd-inbounddocssections .ab-item,
32
- #wpadminbar .inbound-search-input,
33
- #wpadminbar .inbound-search-go {
34
- color: #21759b !important;
35
- text-shadow: none;
36
- }
37
- #wpadminbar .inbound-search-input,
38
- #wpadminbar .inbound-search-go {
39
- background-color: #fff;
40
- height: 18px;
41
- line-height: 18px;
42
- padding: 1px 4px;
43
- }
44
- #wpadminbar .inbound-search-go {
45
- -webkit-border-radius: 11px;
46
- -moz-border-radius: 11px;
47
- border-radius: 11px;
48
- font-size: 0.67em;
49
- margin: 0 0 0 2px;
50
- }
51
- @font-face {
52
- font-family: 'FontAwesome';
53
- src: url('../../fonts/fontawesome/fontawesome-webfont.eot');
54
- src: url('../../fonts/fontawesome/fontawesome-webfont.eot') format('embedded-opentype'),
55
- url('../../fonts/fontawesome/fontawesome-webfont.woff?v=3.0.2') format('woff'),
56
- url('../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.0.2') format('truetype');
57
- font-weight: normal;
58
- font-style: normal;
59
- }
60
- #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
61
- font-family: "FontAwesome" !important;
62
- content: "\f0c0";
63
-
64
- }
65
- .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
66
- display: none;
67
- }
68
- #adminmenu .menu-icon-wp-lead div.wp-menu-image img{
69
- display: none;
70
- }
71
- .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image img {
72
- display: block;
73
- }
74
- #wp-admin-bar-inbound-cta a:first-child, #wp-admin-bar-inbound-templates .ab-item.ab-empty-item, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item, #wp-admin-bar-inbound-analytics a:first-child {
75
- padding-left: 30px !important;
76
- }
77
- #wp-admin-bar-inbound-templates .ab-item.ab-empty-item:hover, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item:hover {
78
- color: #2ea2cc;
79
- }
80
- #wp-admin-bar-inbound-leads a:first-child, #wp-admin-bar-inbound-seo a:first-child, #wp-admin-bar-inbound-landingpages a:first-child, #wp-admin-bar-inbound-forms a:first-child {
81
- padding-left: 31px !important;
82
- }
83
- #search-inbound-menu {
84
- max-height: 22px !important;
85
- padding: 0px !important;
86
- min-height: 23px !important;
87
- padding-left: 3px !important;
88
- margin-bottom: 1px !important;
89
- }
90
- #wp-admin-bar-inbound-docs-searchform, #wp-admin-bar-inbound-leads-search{
91
- margin-bottom: 10px !important;
92
- }
93
- #wp-admin-bar-inbound-cta .ab-submenu a, #wp-admin-bar-inbound-leads .ab-submenu a, #wp-admin-bar-inbound-landingpages .ab-submenu a , #wp-admin-bar-inbound-forms .ab-submenu a, #wp-admin-bar-inbound-templates .ab-submenu a, #wp-admin-bar-inbound-analytics .ab-submenu a, #wp-admin-bar-inbound-seo .ab-submenu a{
94
- padding-left: 10px !important;
95
- }
96
- #wp-admin-bar-inbound-cta:before, #wp-admin-bar-inbound-leads:before, #wp-admin-bar-inbound-landingpages:before, #wp-admin-bar-inbound-forms:before, #wp-admin-bar-inbound-templates:before, #wp-admin-bar-inbound-settings:before, #wp-admin-bar-inbound-analytics:before, #wp-admin-bar-inbound-seo:before {
97
- font-family: "FontAwesome" !important;
98
- content: "\f05b" !important;
99
- font: 100 19px/1 "FontAwesome" !important;
100
- padding-top: 4px;
101
- width: 30px;
102
- display: inline-block;
103
- height: 30px;
104
- position: absolute;
105
- left: 6px;
106
- }
107
- #wp-admin-bar-inbound-leads:before {
108
- content: "\f0c0" !important;
109
- font: 100 17px/1 "FontAwesome" !important;
110
- }
111
- #wp-admin-bar-inbound-landingpages:before {
112
- content: "\f15c" !important;
113
- left: 7px;
114
- font-size: 21px !important;
115
- }
116
- #wp-admin-bar-inbound-forms:before {
117
- font: 400 18px/1 dashicons!important;
118
- content: "\f163" !important;
119
- }
120
- #wp-admin-bar-inbound-templates:before {
121
- content: "\f0c5" !important;
122
- font-size: 18px !important;
123
- }
124
- #wp-admin-bar-inbound-settings:before {
125
- content: "\f013" !important;
126
- left: 7px !important;
127
- }
128
- #wp-admin-bar-inbound-analytics:before {
129
- content: "\f012" !important;
130
- font-size: 17px !important;
131
- }
132
- #wp-admin-bar-inbound-seo:before {
133
- content: "\f002" !important;
134
- font-size: 17px !important;
135
- }
136
- #wp-admin-bar-inbound-cta a {
137
- vertical-align: top;
138
- }
139
- #adminmenu .menu-icon-wp-call-to-action div.wp-menu-image:before {
140
- font-family: "FontAwesome" !important;
141
- content: "\f05b";
142
- font: 400 24px/1 "FontAwesome" !important;
143
- padding-top: 6px;
144
-
145
- }
146
- .short-list-inbound .mceIcon {
147
- position: absolute;
148
- top: 0;
149
- left: 0;
150
- width: 22px;
151
  }
1
+ #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing:hover > .ab-item,
2
+ #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing.hover > .ab-item,
3
+ #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item,
4
+ #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item, #inboundnow-media-button {
5
+
6
+ background-image: url('../../images/global/shortcodes-blue.png');
7
+
8
+ background-repeat: no-repeat;
9
+ background-position: 0.15em 50%;
10
+ padding-left: 22px;
11
+ }
12
+ #inboundnow-media-button {
13
+ padding-left: 5px;
14
+ }
15
+ body #calls-to-action .toggle .switch-versions, body #landing-pages .toggle .switch-versions, body #leads .toggle .switch-versions {
16
+ display: none;
17
+ }
18
+ .switch-versions, .switch-versions {
19
+
20
+ }
21
+ #wp-admin-bar-ddw-edd-languages-de > .ab-item:before,
22
+ #wp-admin-bar-ddw-edd-translations-forum > .ab-item:before {
23
+ color: #ff9900;
24
+ content: '• ';
25
+ }
26
+ #wpadminbar .inbound-search-input {
27
+ width: 140px;
28
+ }
29
+ #wp-admin-bar-ddw-edd-inboundsupportsections .ab-item,
30
+ #wp-admin-bar-ddw-edd-inbounddocsquick .ab-item,
31
+ #wp-admin-bar-ddw-edd-inbounddocssections .ab-item,
32
+ #wpadminbar .inbound-search-input,
33
+ #wpadminbar .inbound-search-go {
34
+ color: #21759b !important;
35
+ text-shadow: none;
36
+ }
37
+ #wpadminbar .inbound-search-input,
38
+ #wpadminbar .inbound-search-go {
39
+ background-color: #fff;
40
+ height: 18px;
41
+ line-height: 18px;
42
+ padding: 1px 4px;
43
+ }
44
+ #wpadminbar .inbound-search-go {
45
+ -webkit-border-radius: 11px;
46
+ -moz-border-radius: 11px;
47
+ border-radius: 11px;
48
+ font-size: 0.67em;
49
+ margin: 0 0 0 2px;
50
+ }
51
+ @font-face {
52
+ font-family: 'FontAwesome';
53
+ src: url('../../fonts/fontawesome/fontawesome-webfont.eot');
54
+ src: url('../../fonts/fontawesome/fontawesome-webfont.eot') format('embedded-opentype'),
55
+ url('../../fonts/fontawesome/fontawesome-webfont.woff?v=3.0.2') format('woff'),
56
+ url('../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.0.2') format('truetype');
57
+ font-weight: normal;
58
+ font-style: normal;
59
+ }
60
+ #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
61
+ font-family: "FontAwesome" !important;
62
+ content: "\f0c0";
63
+
64
+ }
65
+ .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
66
+ display: none;
67
+ }
68
+ #adminmenu .menu-icon-wp-lead div.wp-menu-image img{
69
+ display: none;
70
+ }
71
+ .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image img {
72
+ display: block;
73
+ }
74
+ #wp-admin-bar-inbound-cta a:first-child, #wp-admin-bar-inbound-templates .ab-item.ab-empty-item, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item, #wp-admin-bar-inbound-analytics a:first-child {
75
+ padding-left: 30px !important;
76
+ }
77
+ #wp-admin-bar-inbound-templates .ab-item.ab-empty-item:hover, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item:hover {
78
+ color: #2ea2cc;
79
+ }
80
+ #wp-admin-bar-inbound-leads a:first-child, #wp-admin-bar-inbound-seo a:first-child, #wp-admin-bar-inbound-landingpages a:first-child, #wp-admin-bar-inbound-forms a:first-child {
81
+ padding-left: 31px !important;
82
+ }
83
+ #search-inbound-menu {
84
+ max-height: 22px !important;
85
+ padding: 0px !important;
86
+ min-height: 23px !important;
87
+ padding-left: 3px !important;
88
+ margin-bottom: 1px !important;
89
+ }
90
+ #wp-admin-bar-inbound-docs-searchform, #wp-admin-bar-inbound-leads-search{
91
+ margin-bottom: 10px !important;
92
+ }
93
+ #wp-admin-bar-inbound-cta .ab-submenu a, #wp-admin-bar-inbound-leads .ab-submenu a, #wp-admin-bar-inbound-landingpages .ab-submenu a , #wp-admin-bar-inbound-forms .ab-submenu a, #wp-admin-bar-inbound-templates .ab-submenu a, #wp-admin-bar-inbound-analytics .ab-submenu a, #wp-admin-bar-inbound-seo .ab-submenu a{
94
+ padding-left: 10px !important;
95
+ }
96
+ #wp-admin-bar-inbound-cta:before, #wp-admin-bar-inbound-leads:before, #wp-admin-bar-inbound-landingpages:before, #wp-admin-bar-inbound-forms:before, #wp-admin-bar-inbound-templates:before, #wp-admin-bar-inbound-settings:before, #wp-admin-bar-inbound-analytics:before, #wp-admin-bar-inbound-seo:before {
97
+ font-family: "FontAwesome" !important;
98
+ content: "\f05b" !important;
99
+ font: 100 19px/1 "FontAwesome" !important;
100
+ padding-top: 4px;
101
+ width: 30px;
102
+ display: inline-block;
103
+ height: 30px;
104
+ position: absolute;
105
+ left: 6px;
106
+ }
107
+ #wp-admin-bar-inbound-leads:before {
108
+ content: "\f0c0" !important;
109
+ font: 100 17px/1 "FontAwesome" !important;
110
+ }
111
+ #wp-admin-bar-inbound-landingpages:before {
112
+ content: "\f15c" !important;
113
+ left: 7px;
114
+ font-size: 21px !important;
115
+ }
116
+ #wp-admin-bar-inbound-forms:before {
117
+ font: 400 18px/1 dashicons!important;
118
+ content: "\f163" !important;
119
+ }
120
+ #wp-admin-bar-inbound-templates:before {
121
+ content: "\f0c5" !important;
122
+ font-size: 18px !important;
123
+ }
124
+ #wp-admin-bar-inbound-settings:before {
125
+ content: "\f013" !important;
126
+ left: 7px !important;
127
+ }
128
+ #wp-admin-bar-inbound-analytics:before {
129
+ content: "\f012" !important;
130
+ font-size: 17px !important;
131
+ }
132
+ #wp-admin-bar-inbound-seo:before {
133
+ content: "\f002" !important;
134
+ font-size: 17px !important;
135
+ }
136
+ #wp-admin-bar-inbound-cta a {
137
+ vertical-align: top;
138
+ }
139
+ #adminmenu .menu-icon-wp-call-to-action div.wp-menu-image:before {
140
+ font-family: "FontAwesome" !important;
141
+ content: "\f05b";
142
+ font: 400 24px/1 "FontAwesome" !important;
143
+ padding-top: 6px;
144
+
145
+ }
146
+ .short-list-inbound .mceIcon {
147
+ position: absolute;
148
+ top: 0;
149
+ left: 0;
150
+ width: 22px;
151
  }
shared/assets/css/admin/image-picker.css CHANGED
@@ -1,46 +1,46 @@
1
- ul.thumbnails.image_picker_selector {
2
- overflow: auto;
3
- list-style-image: none;
4
- list-style-position: outside;
5
- list-style-type: none;
6
- padding-top:10px;
7
- margin: 0px;
8
- }
9
- ul.thumbnails.image_picker_selector ul
10
- {
11
- overflow: auto;
12
- list-style-image: none;
13
- list-style-position: outside;
14
- list-style-type: none;
15
- padding: 0px;
16
- margin: 0px;
17
- }
18
-
19
- ul.thumbnails.image_picker_selector li.group_title
20
- {
21
- float: none;
22
- }
23
- ul.thumbnails.image_picker_selector li
24
- {
25
- margin: 0px 12px 12px 0px;
26
- float: left;
27
- }
28
- ul.thumbnails.image_picker_selector li .thumbnail
29
- {
30
- padding: 6px;
31
- border: 1px solid #dddddd;
32
- -webkit-user-select: none;
33
- -moz-user-select: none;
34
- -ms-user-select: none;
35
- }
36
-
37
- ul.thumbnails.image_picker_selector li .thumbnail img
38
- {
39
- -webkit-user-drag: none;
40
- max-width:200px;
41
- max-height:200px;
42
- }
43
-
44
- ul.thumbnails.image_picker_selector li .thumbnail.selected {
45
- background: #0088cc;
46
- }
1
+ ul.thumbnails.image_picker_selector {
2
+ overflow: auto;
3
+ list-style-image: none;
4
+ list-style-position: outside;
5
+ list-style-type: none;
6
+ padding-top:10px;
7
+ margin: 0px;
8
+ }
9
+ ul.thumbnails.image_picker_selector ul
10
+ {
11
+ overflow: auto;
12
+ list-style-image: none;
13
+ list-style-position: outside;
14
+ list-style-type: none;
15
+ padding: 0px;
16
+ margin: 0px;
17
+ }
18
+
19
+ ul.thumbnails.image_picker_selector li.group_title
20
+ {
21
+ float: none;
22
+ }
23
+ ul.thumbnails.image_picker_selector li
24
+ {
25
+ margin: 0px 12px 12px 0px;
26
+ float: left;
27
+ }
28
+ ul.thumbnails.image_picker_selector li .thumbnail
29
+ {
30
+ padding: 6px;
31
+ border: 1px solid #dddddd;
32
+ -webkit-user-select: none;
33
+ -moz-user-select: none;
34
+ -ms-user-select: none;
35
+ }
36
+
37
+ ul.thumbnails.image_picker_selector li .thumbnail img
38
+ {
39
+ -webkit-user-drag: none;
40
+ max-width:200px;
41
+ max-height:200px;
42
+ }
43
+
44
+ ul.thumbnails.image_picker_selector li .thumbnail.selected {
45
+ background: #0088cc;
46
+ }
shared/assets/css/admin/inbound-metaboxes.css CHANGED
@@ -1,75 +1,75 @@
1
- #inbound-meta .inbound-meta-box-row {
2
- display: block;
3
- padding-bottom: 10px;
4
- }
5
- .inbound-meta-box-label, .inbound-meta-box-option {
6
- display: inline-block;
7
- }
8
- .inbound-meta-box-label {
9
- width: 18%;
10
- }
11
- .inbound-wysiwyg-option, .inbound-textarea-option {
12
- width: 75%;
13
- }
14
- .inbound-meta-box-option {
15
- position: relative;
16
- }
17
- .inbound-textarea-option .button-primary.new-save-wp-cta, .inbound-textarea-option .wp-cta-success-message {
18
- position: absolute;
19
- }
20
- .inbound-datepicker .button-primary.new-save-wp-cta {
21
- display: none;
22
- }
23
- .inbound-description-block-option {
24
- max-width: 55%;
25
- }
26
- .inbound-media-row .button-primary.new-save-wp-cta {
27
- position: absolute;
28
- right: -94px;
29
- top: 0px;
30
- text-align: center;
31
- width: 84px;
32
- }
33
- .inbound-meta-box-option.inbound-text-option, .inbound-meta-box-option.inbound-text-option input[type=text] {
34
- width:80%;
35
- }
36
- .inbound-meta-box-option.inbound-text-option input[type=text].cta-width, .inbound-meta-box-option.inbound-text-option input[type=text].cta-height {
37
- width: 100px;
38
- }
39
- #inbound-meta .inbound-custom-css-row {
40
- padding: 0px;
41
- }
42
- .inbound-media-row .wp-cta-success-message {
43
- position: absolute;
44
- right: -100px;
45
- top: 0px;
46
- text-align: center;
47
- width: 80px;
48
- margin-top: 3px;
49
- padding: 0px;
50
- }
51
- .inbound-wysiwyg-option .button-primary.new-save-wp-cta, .inbound-wysiwyg-option .wp-cta-success-message {
52
- width: 100%;
53
- margin: auto;
54
- text-align: center;
55
- margin-left: 0px !important;
56
- padding-left: 0px;
57
- padding-right: 0px;
58
- display: inline-block;
59
- }
60
- .inbound-wysiwyg, .inbound-media, .inbound-datepicker, .inbound-textarea {
61
- vertical-align: top;
62
- }
63
- .inbound-textarea-option .wp-cta-success-message {
64
- position: absolute;
65
- margin-top: 0px;
66
- }
67
- .jquery-date-picker p {
68
- margin: 0px 0 0 0;
69
- }
70
-
71
- .inbound-wysiwyg-row .wp-cta-success-message {
72
- margin-right: 40px;
73
- text-align: center;
74
- display: block;
75
  }
1
+ #inbound-meta .inbound-meta-box-row {
2
+ display: block;
3
+ padding-bottom: 10px;
4
+ }
5
+ .inbound-meta-box-label, .inbound-meta-box-option {
6
+ display: inline-block;
7
+ }
8
+ .inbound-meta-box-label {
9
+ width: 18%;
10
+ }
11
+ .inbound-wysiwyg-option, .inbound-textarea-option {
12
+ width: 75%;
13
+ }
14
+ .inbound-meta-box-option {
15
+ position: relative;
16
+ }
17
+ .inbound-textarea-option .button-primary.new-save-wp-cta, .inbound-textarea-option .wp-cta-success-message {
18
+ position: absolute;
19
+ }
20
+ .inbound-datepicker .button-primary.new-save-wp-cta {
21
+ display: none;
22
+ }
23
+ .inbound-description-block-option {
24
+ max-width: 55%;
25
+ }
26
+ .inbound-media-row .button-primary.new-save-wp-cta {
27
+ position: absolute;
28
+ right: -94px;
29
+ top: 0px;
30
+ text-align: center;
31
+ width: 84px;
32
+ }
33
+ .inbound-meta-box-option.inbound-text-option, .inbound-meta-box-option.inbound-text-option input[type=text] {
34
+ width:80%;
35
+ }
36
+ .inbound-meta-box-option.inbound-text-option input[type=text].cta-width, .inbound-meta-box-option.inbound-text-option input[type=text].cta-height {
37
+ width: 100px;
38
+ }
39
+ #inbound-meta .inbound-custom-css-row {
40
+ padding: 0px;
41
+ }
42
+ .inbound-media-row .wp-cta-success-message {
43
+ position: absolute;
44
+ right: -100px;
45
+ top: 0px;
46
+ text-align: center;
47
+ width: 80px;
48
+ margin-top: 3px;
49
+ padding: 0px;
50
+ }
51
+ .inbound-wysiwyg-option .button-primary.new-save-wp-cta, .inbound-wysiwyg-option .wp-cta-success-message {
52
+ width: 100%;
53
+ margin: auto;
54
+ text-align: center;
55
+ margin-left: 0px !important;
56
+ padding-left: 0px;
57
+ padding-right: 0px;
58
+ display: inline-block;
59
+ }
60
+ .inbound-wysiwyg, .inbound-media, .inbound-datepicker, .inbound-textarea {
61
+ vertical-align: top;
62
+ }
63
+ .inbound-textarea-option .wp-cta-success-message {
64
+ position: absolute;
65
+ margin-top: 0px;
66
+ }
67
+ .jquery-date-picker p {
68
+ margin: 0px 0 0 0;
69
+ }
70
+
71
+ .inbound-wysiwyg-row .wp-cta-success-message {
72
+ margin-right: 40px;
73
+ text-align: center;
74
+ display: block;
75
  }
shared/assets/css/admin/wpadminbar.css CHANGED
@@ -1,154 +1,154 @@
1
- #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing:hover > .ab-item,
2
- #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing.hover > .ab-item,
3
- #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item,
4
- #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item, #inboundnow-media-button {
5
-
6
- background-image: url('../../images/global/shortcodes-blue.png');
7
-
8
- background-repeat: no-repeat;
9
- background-position: 0.15em 50%;
10
- padding-left: 22px;
11
- }
12
- #inboundnow-media-button {
13
- padding-left: 5px;
14
- }
15
-
16
- body #calls-to-action .toggle .switch-versions, body #landing-pages .toggle .switch-versions, body #leads .toggle .switch-versions {
17
- display: none;
18
- }
19
-
20
-
21
- #wpadminbar .inbound-search-input {
22
- width: 140px;
23
- }
24
-
25
- #wpadminbar .inbound-search-input,
26
- #wpadminbar .inbound-search-go {
27
- color: #21759b !important;
28
- text-shadow: none;
29
- }
30
- #wpadminbar .inbound-search-input,
31
- #wpadminbar .inbound-search-go {
32
- background-color: #fff;
33
- height: 18px;
34
- line-height: 18px;
35
- padding: 1px 4px;
36
- }
37
- #wpadminbar .inbound-search-go {
38
- -webkit-border-radius: 11px;
39
- -moz-border-radius: 11px;
40
- border-radius: 11px;
41
- font-size: 0.67em;
42
- margin: 0 0 0 2px;
43
- }
44
- @font-face {
45
- font-family: 'FontAwesome';
46
- src: url('../../fonts/fontawesome/fontawesome-webfont.eot');
47
- src: url('../../fonts/fontawesome/fontawesome-webfont.eot') format('embedded-opentype'),
48
- url('../../fonts/fontawesome/fontawesome-webfont.woff?v=3.0.2') format('woff'),
49
- url('../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.0.2') format('truetype');
50
- font-weight: normal;
51
- font-style: normal;
52
- }
53
- #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
54
- font-family: "FontAwesome" !important;
55
- content: "\f0c0";
56
-
57
- }
58
- .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
59
- display: none;
60
- }
61
- #adminmenu .menu-icon-wp-lead div.wp-menu-image img{
62
- display: none;
63
- }
64
- .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image img {
65
- display: block;
66
- }
67
- #wp-admin-bar-inbound-cta a:first-child, #wp-admin-bar-inbound-mailer a:first-child, #wp-admin-bar-inbound-automation a:first-child, #wp-admin-bar-inbound-templates .ab-item.ab-empty-item, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item, #wp-admin-bar-inbound-analytics a:first-child {
68
- padding-left: 30px !important;
69
- }
70
- #wp-admin-bar-inbound-templates .ab-item.ab-empty-item:hover, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item:hover {
71
- color: #2ea2cc;
72
- }
73
- #wp-admin-bar-inbound-leads a:first-child, #wp-admin-bar-inbound-seo a:first-child, #wp-admin-bar-inbound-landingpages a:first-child, #wp-admin-bar-inbound-forms a:first-child {
74
- padding-left: 31px !important;
75
- }
76
-
77
- #search-inbound-menu {
78
- max-height: 22px !important;
79
- padding: 0px !important;
80
- min-height: 23px !important;
81
- padding-left: 3px !important;
82
- margin-bottom: 1px !important;
83
- }
84
-
85
- #wp-admin-bar-inbound-docs-searchform, #wp-admin-bar-inbound-leads-search{
86
- margin-bottom: 10px !important;
87
- }
88
- #wp-admin-bar-inbound-cta .ab-submenu a, #wp-admin-bar-inbound-leads .ab-submenu a, #wp-admin-bar-inbound-landingpages .ab-submenu a , #wp-admin-bar-inbound-forms .ab-submenu a, #wp-admin-bar-inbound-templates .ab-submenu a, #wp-admin-bar-inbound-analytics .ab-submenu a, #wp-admin-bar-inbound-seo .ab-submenu a{
89
- padding-left: 10px !important;
90
- }
91
- #wp-admin-bar-inbound-mailer:before, #wp-admin-bar-inbound-automation:before, #wp-admin-bar-inbound-cta:before, #wp-admin-bar-inbound-leads:before, #wp-admin-bar-inbound-landingpages:before, #wp-admin-bar-inbound-forms:before, #wp-admin-bar-inbound-templates:before, #wp-admin-bar-inbound-settings:before, #wp-admin-bar-inbound-analytics:before, #wp-admin-bar-inbound-seo:before {
92
- font-family: "FontAwesome" !important;
93
- content: "\f05b" !important;
94
- font: 100 19px/1 "FontAwesome" !important;
95
- padding-top: 4px;
96
- width: 30px;
97
- display: inline-block;
98
- height: 30px;
99
- position: absolute;
100
- left: 6px;
101
- }
102
- #wp-admin-bar-inbound-leads:before {
103
- content: "\f0c0" !important;
104
- font: 100 17px/1 "FontAwesome" !important;
105
- }
106
- #wp-admin-bar-inbound-landingpages:before {
107
- content: "\f15c" !important;
108
- left: 7px;
109
- font-size: 21px !important;
110
- }
111
- #wp-admin-bar-inbound-forms:before {
112
- font: 400 18px/1 dashicons!important;
113
- content: "\f163" !important;
114
- }
115
- #wp-admin-bar-inbound-mailer:before {
116
- font: 400 18px/1!important;
117
- content: "\f003" !important;
118
- }
119
- #wp-admin-bar-inbound-automation:before {
120
- font: 400 18px/1 !important;
121
- content: "\f085" !important;
122
- }
123
- #wp-admin-bar-inbound-templates:before {
124
- content: "\f0c5" !important;
125
- font-size: 18px !important;
126
- }
127
- #wp-admin-bar-inbound-settings:before {
128
- content: "\f013" !important;
129
- left: 7px !important;
130
- }
131
- #wp-admin-bar-inbound-analytics:before {
132
- content: "\f012" !important;
133
- font-size: 17px !important;
134
- }
135
- #wp-admin-bar-inbound-seo:before {
136
- content: "\f002" !important;
137
- font-size: 17px !important;
138
- }
139
- #wp-admin-bar-inbound-cta a {
140
- vertical-align: top;
141
- }
142
- #adminmenu .menu-icon-wp-call-to-action div.wp-menu-image:before {
143
- font-family: "FontAwesome" !important;
144
- content: "\f05b";
145
- font: 400 24px/1 "FontAwesome" !important;
146
- padding-top: 6px;
147
-
148
- }
149
- .short-list-inbound .mceIcon {
150
- position: absolute;
151
- top: 0;
152
- left: 0;
153
- width: 22px;
154
  }
1
+ #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing:hover > .ab-item,
2
+ #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing.hover > .ab-item,
3
+ #wpadminbar.nojs .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item,
4
+ #wpadminbar .ab-top-menu > li.menupop.inbound-nav-marketing > .ab-item, #inboundnow-media-button {
5
+
6
+ background-image: url('../../images/global/shortcodes-blue.png');
7
+
8
+ background-repeat: no-repeat;
9
+ background-position: 0.15em 50%;
10
+ padding-left: 22px;
11
+ }
12
+ #inboundnow-media-button {
13
+ padding-left: 5px;
14
+ }
15
+
16
+ body #calls-to-action .toggle .switch-versions, body #landing-pages .toggle .switch-versions, body #leads .toggle .switch-versions {
17
+ display: none;
18
+ }
19
+
20
+
21
+ #wpadminbar .inbound-search-input {
22
+ width: 140px;
23
+ }
24
+
25
+ #wpadminbar .inbound-search-input,
26
+ #wpadminbar .inbound-search-go {
27
+ color: #21759b !important;
28
+ text-shadow: none;
29
+ }
30
+ #wpadminbar .inbound-search-input,
31
+ #wpadminbar .inbound-search-go {
32
+ background-color: #fff;
33
+ height: 18px;
34
+ line-height: 18px;
35
+ padding: 1px 4px;
36
+ }
37
+ #wpadminbar .inbound-search-go {
38
+ -webkit-border-radius: 11px;
39
+ -moz-border-radius: 11px;
40
+ border-radius: 11px;
41
+ font-size: 0.67em;
42
+ margin: 0 0 0 2px;
43
+ }
44
+ @font-face {
45
+ font-family: 'FontAwesome';
46
+ src: url('../../fonts/fontawesome/fontawesome-webfont.eot');
47
+ src: url('../../fonts/fontawesome/fontawesome-webfont.eot') format('embedded-opentype'),
48
+ url('../../fonts/fontawesome/fontawesome-webfont.woff?v=3.0.2') format('woff'),
49
+ url('../../fonts/fontawesome/fontawesome-webfont.ttf?v=3.0.2') format('truetype');
50
+ font-weight: normal;
51
+ font-style: normal;
52
+ }
53
+ #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
54
+ font-family: "FontAwesome" !important;
55
+ content: "\f0c0";
56
+
57
+ }
58
+ .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image:before {
59
+ display: none;
60
+ }
61
+ #adminmenu .menu-icon-wp-lead div.wp-menu-image img{
62
+ display: none;
63
+ }
64
+ .branch-3-7 #adminmenu .menu-icon-wp-lead div.wp-menu-image img {
65
+ display: block;
66
+ }
67
+ #wp-admin-bar-inbound-cta a:first-child, #wp-admin-bar-inbound-mailer a:first-child, #wp-admin-bar-inbound-automation a:first-child, #wp-admin-bar-inbound-templates .ab-item.ab-empty-item, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item, #wp-admin-bar-inbound-analytics a:first-child {
68
+ padding-left: 30px !important;
69
+ }
70
+ #wp-admin-bar-inbound-templates .ab-item.ab-empty-item:hover, #wp-admin-bar-inbound-settings .ab-item.ab-empty-item:hover {
71
+ color: #2ea2cc;
72
+ }
73
+ #wp-admin-bar-inbound-leads a:first-child, #wp-admin-bar-inbound-seo a:first-child, #wp-admin-bar-inbound-landingpages a:first-child, #wp-admin-bar-inbound-forms a:first-child {
74
+ padding-left: 31px !important;
75
+ }
76
+
77
+ #search-inbound-menu {
78
+ max-height: 22px !important;
79
+ padding: 0px !important;
80
+ min-height: 23px !important;
81
+ padding-left: 3px !important;
82
+ margin-bottom: 1px !important;
83
+ }
84
+
85
+ #wp-admin-bar-inbound-docs-searchform, #wp-admin-bar-inbound-leads-search{
86
+ margin-bottom: 10px !important;
87
+ }
88
+ #wp-admin-bar-inbound-cta .ab-submenu a, #wp-admin-bar-inbound-leads .ab-submenu a, #wp-admin-bar-inbound-landingpages .ab-submenu a , #wp-admin-bar-inbound-forms .ab-submenu a, #wp-admin-bar-inbound-templates .ab-submenu a, #wp-admin-bar-inbound-analytics .ab-submenu a, #wp-admin-bar-inbound-seo .ab-submenu a{
89
+ padding-left: 10px !important;
90
+ }
91
+ #wp-admin-bar-inbound-mailer:before, #wp-admin-bar-inbound-automation:before, #wp-admin-bar-inbound-cta:before, #wp-admin-bar-inbound-leads:before, #wp-admin-bar-inbound-landingpages:before, #wp-admin-bar-inbound-forms:before, #wp-admin-bar-inbound-templates:before, #wp-admin-bar-inbound-settings:before, #wp-admin-bar-inbound-analytics:before, #wp-admin-bar-inbound-seo:before {
92
+ font-family: "FontAwesome" !important;
93
+ content: "\f05b" !important;
94
+ font: 100 19px/1 "FontAwesome" !important;
95
+ padding-top: 4px;
96
+ width: 30px;
97
+ display: inline-block;
98
+ height: 30px;
99
+ position: absolute;
100
+ left: 6px;
101
+ }
102
+ #wp-admin-bar-inbound-leads:before {
103
+ content: "\f0c0" !important;
104
+ font: 100 17px/1 "FontAwesome" !important;
105
+ }
106
+ #wp-admin-bar-inbound-landingpages:before {
107
+ content: "\f15c" !important;
108
+ left: 7px;
109
+ font-size: 21px !important;
110
+ }
111
+ #wp-admin-bar-inbound-forms:before {
112
+ font: 400 18px/1 dashicons!important;
113
+ content: "\f163" !important;
114
+ }
115
+ #wp-admin-bar-inbound-mailer:before {
116
+ font: 400 18px/1!important;
117
+ content: "\f003" !important;
118
+ }
119
+ #wp-admin-bar-inbound-automation:before {
120
+ font: 400 18px/1 !important;
121
+ content: "\f085" !important;
122
+ }
123
+ #wp-admin-bar-inbound-templates:before {
124
+ content: "\f0c5" !important;
125
+ font-size: 18px !important;
126
+ }
127
+ #wp-admin-bar-inbound-settings:before {
128
+ content: "\f013" !important;
129
+ left: 7px !important;
130
+ }
131
+ #wp-admin-bar-inbound-analytics:before {
132
+ content: "\f012" !important;
133
+ font-size: 17px !important;
134
+ }
135
+ #wp-admin-bar-inbound-seo:before {
136
+ content: "\f002" !important;
137
+ font-size: 17px !important;
138
+ }
139
+ #wp-admin-bar-inbound-cta a {
140
+ vertical-align: top;
141
+ }
142
+ #adminmenu .menu-icon-wp-call-to-action div.wp-menu-image:before {
143
+ font-family: "FontAwesome" !important;
144
+ content: "\f05b";
145
+ font: 400 24px/1 "FontAwesome" !important;
146
+ padding-top: 6px;
147
+
148
+ }
149
+ .short-list-inbound .mceIcon {
150
+ position: absolute;
151
+ top: 0;
152
+ left: 0;
153
+ width: 22px;
154
  }
shared/assets/fonts/fontawesome/README.md CHANGED
@@ -1,17 +1,17 @@
1
- #Font Awesome 3.0
2
- ##the iconic font designed for use with Twitter Bootstrap
3
-
4
- The full suite of pictographic icons, examples, and documentation can be found at:
5
- http://fortawesome.github.com/Font-Awesome/
6
-
7
-
8
- ##License
9
- - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
10
- - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - http://opensource.org/licenses/mit-license.html
11
- - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
12
- - Attribution is no longer required in Font Awesome 3.0, but much appreciated: "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
13
-
14
- ##Contact
15
- - Email: dave@davegandy.com
16
- - Twitter: http://twitter.com/fortaweso_me
17
- - Work: Lead Product Designer @ http://kyru.us
1
+ #Font Awesome 3.0
2
+ ##the iconic font designed for use with Twitter Bootstrap
3
+
4
+ The full suite of pictographic icons, examples, and documentation can be found at:
5
+ http://fortawesome.github.com/Font-Awesome/
6
+
7
+
8
+ ##License
9
+ - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
10
+ - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - http://opensource.org/licenses/mit-license.html
11
+ - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
12
+ - Attribution is no longer required in Font Awesome 3.0, but much appreciated: "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
13
+
14
+ ##Contact
15
+ - Email: dave@davegandy.com
16
+ - Twitter: http://twitter.com/fortaweso_me
17
+ - Work: Lead Product Designer @ http://kyru.us
shared/assets/fonts/fontawesome/fontawesome-webfont.svg CHANGED
@@ -1,414 +1,414 @@
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></metadata>
5
- <defs>
6
- <font id="fontawesomeregular" horiz-adv-x="1536" >
7
- <font-face units-per-em="1792" ascent="1536" descent="-256" />
8
- <missing-glyph horiz-adv-x="448" />
9
- <glyph unicode=" " horiz-adv-x="448" />
10
- <glyph unicode="&#x09;" horiz-adv-x="448" />
11
- <glyph unicode="&#xa0;" horiz-adv-x="448" />
12
- <glyph unicode="&#xa8;" horiz-adv-x="1792" />
13
- <glyph unicode="&#xa9;" horiz-adv-x="1792" />
14
- <glyph unicode="&#xae;" horiz-adv-x="1792" />
15
- <glyph unicode="&#xb4;" horiz-adv-x="1792" />
16
- <glyph unicode="&#xc6;" horiz-adv-x="1792" />
17
- <glyph unicode="&#x2000;" horiz-adv-x="768" />
18
- <glyph unicode="&#x2001;" />
19
- <glyph unicode="&#x2002;" horiz-adv-x="768" />
20
- <glyph unicode="&#x2003;" />
21
- <glyph unicode="&#x2004;" horiz-adv-x="512" />
22
- <glyph unicode="&#x2005;" horiz-adv-x="384" />
23
- <glyph unicode="&#x2006;" horiz-adv-x="256" />
24
- <glyph unicode="&#x2007;" horiz-adv-x="256" />
25
- <glyph unicode="&#x2008;" horiz-adv-x="192" />
26
- <glyph unicode="&#x2009;" horiz-adv-x="307" />
27
- <glyph unicode="&#x200a;" horiz-adv-x="85" />
28
- <glyph unicode="&#x202f;" horiz-adv-x="307" />
29
- <glyph unicode="&#x205f;" horiz-adv-x="384" />
30
- <glyph unicode="&#x2122;" horiz-adv-x="1792" />
31
- <glyph unicode="&#x221e;" horiz-adv-x="1792" />
32
- <glyph unicode="&#x2260;" horiz-adv-x="1792" />
33
- <glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
34
- <glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
35
- <glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
36
- <glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
37
- <glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
38
- <glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
39
- <glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
40
- <glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
41
- <glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
42
- <glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
43
- <glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
44
- <glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
45
- <glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
46
- <glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
47
- <glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
48
- <glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
49
- <glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
50
- <glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
51
- <glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
52
- <glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
53
- <glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
54
- <glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
55
- <glyph unicode="&#xf016;" horiz-adv-x="1280" d="M128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280zM768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z " />
56
- <glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
57
- <glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
58
- <glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
59
- <glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
60
- <glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
61
- <glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
62
- <glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
63
- <glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
64
- <glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
65
- <glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
66
- <glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
67
- <glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
68
- <glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
69
- <glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
70
- <glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
71
- <glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
72
- <glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
73
- <glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
74
- <glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
75
- <glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
76
- <glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
77
- <glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
78
- <glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
79
- <glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
80
- <glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q73 -1 153.5 -2t119 -1.5t52.5 -0.5l29 2q-32 95 -92 241q-53 132 -92 211zM21 -128h-21l2 79q22 7 80 18q89 16 110 31q20 16 48 68l237 616l280 724h75h53l11 -21l205 -480q103 -242 124 -297q39 -102 96 -235q26 -58 65 -164q24 -67 65 -149 q22 -49 35 -57q22 -19 69 -23q47 -6 103 -27q6 -39 6 -57q0 -14 -1 -26q-80 0 -192 8q-93 8 -189 8q-79 0 -135 -2l-200 -11l-58 -2q0 45 4 78l131 28q56 13 68 23q12 12 12 27t-6 32l-47 114l-92 228l-450 2q-29 -65 -104 -274q-23 -64 -23 -84q0 -31 17 -43 q26 -21 103 -32q3 0 13.5 -2t30 -5t40.5 -6q1 -28 1 -58q0 -17 -2 -27q-66 0 -349 20l-48 -8q-81 -14 -167 -14z" />
81
- <glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q76 -32 140 -32q131 0 216 41t122 113q38 70 38 181q0 114 -41 180q-58 94 -141 126q-80 32 -247 32q-74 0 -101 -10v-144l-1 -173l3 -270q0 -15 12 -44zM541 761q43 -7 109 -7q175 0 264 65t89 224q0 112 -85 187q-84 75 -255 75q-52 0 -130 -13q0 -44 2 -77 q7 -122 6 -279l-1 -98q0 -43 1 -77zM0 -128l2 94q45 9 68 12q77 12 123 31q17 27 21 51q9 66 9 194l-2 497q-5 256 -9 404q-1 87 -11 109q-1 4 -12 12q-18 12 -69 15q-30 2 -114 13l-4 83l260 6l380 13l45 1q5 0 14 0.5t14 0.5q1 0 21.5 -0.5t40.5 -0.5h74q88 0 191 -27 q43 -13 96 -39q57 -29 102 -76q44 -47 65 -104t21 -122q0 -70 -32 -128t-95 -105q-26 -20 -150 -77q177 -41 267 -146q92 -106 92 -236q0 -76 -29 -161q-21 -62 -71 -117q-66 -72 -140 -108q-73 -36 -203 -60q-82 -15 -198 -11l-197 4q-84 2 -298 -11q-33 -3 -272 -11z" />
82
- <glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q4 1 77 20q76 19 116 39q29 37 41 101l27 139l56 268l12 64q8 44 17 84.5t16 67t12.5 46.5t9 30.5t3.5 11.5l29 157l16 63l22 135l8 50v38q-41 22 -144 28q-28 2 -38 4l19 103l317 -14q39 -2 73 -2q66 0 214 9q33 2 68 4.5t36 2.5q-2 -19 -6 -38 q-7 -29 -13 -51q-55 -19 -109 -31q-64 -16 -101 -31q-12 -31 -24 -88q-9 -44 -13 -82q-44 -199 -66 -306l-61 -311l-38 -158l-43 -235l-12 -45q-2 -7 1 -27q64 -15 119 -21q36 -5 66 -10q-1 -29 -7 -58q-7 -31 -9 -41q-18 0 -23 -1q-24 -2 -42 -2q-9 0 -28 3q-19 4 -145 17 l-198 2q-41 1 -174 -11q-74 -7 -98 -9z" />
83
- <glyph unicode="&#xf034;" horiz-adv-x="1792" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l215 -1h293l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -42.5 2t-103.5 -1t-111 -1 q-34 0 -67 -5q-10 -97 -8 -136l1 -152v-332l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-88 0 -233 -14q-48 -4 -70 -4q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q8 192 6 433l-5 428q-1 62 -0.5 118.5t0.5 102.5t-2 57t-6 15q-6 5 -14 6q-38 6 -148 6q-43 0 -100 -13.5t-73 -24.5q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1744 128q33 0 42 -18.5t-11 -44.5 l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80z" />
84
- <glyph unicode="&#xf035;" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l446 -1h318l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -58.5 2t-138.5 -1t-128 -1 q-94 0 -127 -5q-10 -97 -8 -136l1 -152v52l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-82 0 -233 -13q-45 -5 -70 -5q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q6 137 6 433l-5 44q0 265 -2 278q-2 11 -6 15q-6 5 -14 6q-38 6 -148 6q-50 0 -168.5 -14t-132.5 -24q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1505 113q26 -20 26 -49t-26 -49l-162 -126 q-26 -20 -44.5 -11t-18.5 42v80h-1024v-80q0 -33 -18.5 -42t-44.5 11l-162 126q-26 20 -26 49t26 49l162 126q26 20 44.5 11t18.5 -42v-80h1024v80q0 33 18.5 42t44.5 -11z" />
85
- <glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
86
- <glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
87
- <glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
88
- <glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
89
- <glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
90
- <glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
91
- <glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
92
- <glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
93
- <glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
94
- <glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
95
- <glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
96
- <glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
97
- <glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
98
- <glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
99
- <glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
100
- <glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
101
- <glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
102
- <glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
103
- <glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
104
- <glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
105
- <glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
106
- <glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
107
- <glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
108
- <glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
109
- <glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
110
- <glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
111
- <glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
112
- <glyph unicode="&#xf053;" horiz-adv-x="1152" d="M742 -37l-652 651q-37 37 -37 90.5t37 90.5l652 651q37 37 90.5 37t90.5 -37l75 -75q37 -37 37 -90.5t-37 -90.5l-486 -486l486 -485q37 -38 37 -91t-37 -90l-75 -75q-37 -37 -90.5 -37t-90.5 37z" />
113
- <glyph unicode="&#xf054;" horiz-adv-x="1152" d="M1099 704q0 -52 -37 -91l-652 -651q-37 -37 -90 -37t-90 37l-76 75q-37 39 -37 91q0 53 37 90l486 486l-486 485q-37 39 -37 91q0 53 37 90l76 75q36 38 90 38t90 -38l652 -651q37 -37 37 -90z" />
114
- <glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
115
- <glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
116
- <glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
117
- <glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
118
- <glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
119
- <glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
120
- <glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
121
- <glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
122
- <glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
123
- <glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
124
- <glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
125
- <glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
126
- <glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
127
- <glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
128
- <glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
129
- <glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
130
- <glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
131
- <glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
132
- <glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
133
- <glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
134
- <glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
135
- <glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
136
- <glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
137
- <glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
138
- <glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
139
- <glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
140
- <glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
141
- <glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
142
- <glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
143
- <glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
144
- <glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
145
- <glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
146
- <glyph unicode="&#xf077;" horiz-adv-x="1664" d="M1611 320q0 -53 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-486 485l-486 -485q-36 -38 -90 -38t-90 38l-75 75q-38 36 -38 90q0 53 38 91l651 651q37 37 90 37q52 0 91 -37l650 -651q38 -38 38 -91z" />
147
- <glyph unicode="&#xf078;" horiz-adv-x="1664" d="M1611 832q0 -53 -37 -90l-651 -651q-38 -38 -91 -38q-54 0 -90 38l-651 651q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l486 -486l486 486q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
148
- <glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
149
- <glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
150
- <glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
151
- <glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
152
- <glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
153
- <glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
154
- <glyph unicode="&#xf080;" horiz-adv-x="1920" d="M512 512v-384h-256v384h256zM896 1024v-896h-256v896h256zM1280 768v-640h-256v640h256zM1664 1152v-1024h-256v1024h256zM1792 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5z M1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
155
- <glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
156
- <glyph unicode="&#xf082;" d="M1307 618l23 219h-198v109q0 49 15.5 68.5t71.5 19.5h110v219h-175q-152 0 -218 -72t-66 -213v-131h-131v-219h131v-635h262v635h175zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" />
157
- <glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
158
- <glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
159
- <glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
160
- <glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
161
- <glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
162
- <glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
163
- <glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
164
- <glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
165
- <glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
166
- <glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
167
- <glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
168
- <glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
169
- <glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
170
- <glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
171
- <glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
172
- <glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
173
- <glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
174
- <glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
175
- <glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
176
- <glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
177
- <glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
178
- <glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
179
- <glyph unicode="&#xf09a;" horiz-adv-x="768" d="M511 980h257l-30 -284h-227v-824h-341v824h-170v284h170v171q0 182 86 275.5t283 93.5h227v-284h-142q-39 0 -62.5 -6.5t-34 -23.5t-13.5 -34.5t-3 -49.5v-142z" />
180
- <glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
181
- <glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
182
- <glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
183
- <glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
184
- <glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
185
- <glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
186
- <glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM1664 128q0 -52 -38 -90t-90 -38 h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
187
- <glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
188
- <glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
189
- <glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
190
- <glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
191
- <glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
192
- <glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
193
- <glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
194
- <glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
195
- <glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
196
- <glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
197
- <glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
198
- <glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
199
- <glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
200
- <glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
201
- <glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
202
- <glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
203
- <glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
204
- <glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
205
- <glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
206
- <glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
207
- <glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
208
- <glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
209
- <glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
210
- <glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
211
- <glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
212
- <glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
213
- <glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
214
- <glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
215
- <glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
216
- <glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
217
- <glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
218
- <glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
219
- <glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
220
- <glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
221
- <glyph unicode="&#xf0d4;" d="M678 -57q0 -38 -10 -71h-380q-95 0 -171.5 56.5t-103.5 147.5q24 45 69 77.5t100 49.5t107 24t107 7q32 0 49 -2q6 -4 30.5 -21t33 -23t31 -23t32 -25.5t27.5 -25.5t26.5 -29.5t21 -30.5t17.5 -34.5t9.5 -36t4.5 -40.5zM385 294q-234 -7 -385 -85v433q103 -118 273 -118 q32 0 70 5q-21 -61 -21 -86q0 -67 63 -149zM558 805q0 -100 -43.5 -160.5t-140.5 -60.5q-51 0 -97 26t-78 67.5t-56 93.5t-35.5 104t-11.5 99q0 96 51.5 165t144.5 69q66 0 119 -41t84 -104t47 -130t16 -128zM1536 896v-736q0 -119 -84.5 -203.5t-203.5 -84.5h-468 q39 73 39 157q0 66 -22 122.5t-55.5 93t-72 71t-72 59.5t-55.5 54.5t-22 59.5q0 36 23 68t56 61.5t65.5 64.5t55.5 93t23 131t-26.5 145.5t-75.5 118.5q-6 6 -14 11t-12.5 7.5t-10 9.5t-10.5 17h135l135 64h-437q-138 0 -244.5 -38.5t-182.5 -133.5q0 126 81 213t207 87h960 q119 0 203.5 -84.5t84.5 -203.5v-96h-256v256h-128v-256h-256v-128h256v-256h128v256h256z" />
222
- <glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M876 71q0 21 -4.5 40.5t-9.5 36t-17.5 34.5t-21 30.5t-26.5 29.5t-27.5 25.5t-32 25.5t-31 23t-33 23t-30.5 21q-17 2 -50 2q-54 0 -106 -7t-108 -25t-98 -46t-69 -75t-27 -107q0 -68 35.5 -121.5t93 -84t120.5 -45.5t127 -15q59 0 112.5 12.5t100.5 39t74.5 73.5 t27.5 110zM756 933q0 60 -16.5 127.5t-47 130.5t-84 104t-119.5 41q-93 0 -144 -69t-51 -165q0 -47 11.5 -99t35.5 -104t56 -93.5t78 -67.5t97 -26q97 0 140.5 60.5t43.5 160.5zM625 1408h437l-135 -79h-135q71 -45 110 -126t39 -169q0 -74 -23 -131.5t-56 -92.5t-66 -64.5 t-56 -61t-23 -67.5q0 -26 16.5 -51t43 -48t58.5 -48t64 -55.5t58.5 -66t43 -85t16.5 -106.5q0 -160 -140 -282q-152 -131 -420 -131q-59 0 -119.5 10t-122 33.5t-108.5 58t-77 89t-30 121.5q0 61 37 135q32 64 96 110.5t145 71t155 36t150 13.5q-64 83 -64 149q0 12 2 23.5 t5 19.5t8 21.5t7 21.5q-40 -5 -70 -5q-149 0 -255.5 98t-106.5 246q0 140 95 250.5t234 141.5q94 20 187 20zM1664 1152v-128h-256v-256h-128v256h-256v128h256v256h128v-256h256z" />
223
- <glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
224
- <glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
225
- <glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
226
- <glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
227
- <glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
228
- <glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
229
- <glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
230
- <glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
231
- <glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
232
- <glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
233
- <glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
234
- <glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
235
- <glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
236
- <glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
237
- <glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
238
- <glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
239
- <glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
240
- <glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
241
- <glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
242
- <glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
243
- <glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
244
- <glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
245
- <glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
246
- <glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
247
- <glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
248
- <glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
249
- <glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
250
- <glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1664 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5 q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
251
- <glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
252
- <glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
253
- <glyph unicode="&#xf0f6;" horiz-adv-x="1280" d="M1024 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1024 608v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280z M768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z" />
254
- <glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
255
- <glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
256
- <glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
257
- <glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
258
- <glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
259
- <glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
260
- <glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
261
- <glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
262
- <glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
263
- <glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
264
- <glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
265
- <glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
266
- <glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
267
- <glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
268
- <glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
269
- <glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
270
- <glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
271
- <glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
272
- <glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
273
- <glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
274
- <glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
275
- <glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
276
- <glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
277
- <glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
278
- <glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
279
- <glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
280
- <glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
281
- <glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
282
- <glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
283
- <glyph unicode="&#xf116;" horiz-adv-x="1792" />
284
- <glyph unicode="&#xf117;" horiz-adv-x="1792" />
285
- <glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
286
- <glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
287
- <glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
288
- <glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
289
- <glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
290
- <glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
291
- <glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
292
- <glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
293
- <glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
294
- <glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
295
- <glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
296
- <glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
297
- <glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
298
- <glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
299
- <glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
300
- <glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
301
- <glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
302
- <glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
303
- <glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
304
- <glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
305
- <glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
306
- <glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
307
- <glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
308
- <glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
309
- <glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
310
- <glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
311
- <glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
312
- <glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
313
- <glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
314
- <glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
315
- <glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
316
- <glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
317
- <glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
318
- <glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
319
- <glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
320
- <glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
321
- <glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
322
- <glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
323
- <glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
324
- <glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
325
- <glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
326
- <glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
327
- <glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
328
- <glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
329
- <glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
330
- <glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
331
- <glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
332
- <glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
333
- <glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
334
- <glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
335
- <glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
336
- <glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
337
- <glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
338
- <glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
339
- <glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
340
- <glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
341
- <glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
342
- <glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
343
- <glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
344
- <glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
345
- <glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
346
- <glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
347
- <glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
348
- <glyph unicode="&#xf15b;" horiz-adv-x="1280" d="M1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
349
- <glyph unicode="&#xf15c;" horiz-adv-x="1280" d="M1024 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1024 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28 t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
350
- <glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
351
- <glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
352
- <glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
353
- <glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
354
- <glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
355
- <glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
356
- <glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
357
- <glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
358
- <glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
359
- <glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
360
- <glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
361
- <glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
362
- <glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
363
- <glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
364
- <glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
365
- <glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
366
- <glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
367
- <glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
368
- <glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
369
- <glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
370
- <glyph unicode="&#xf173;" horiz-adv-x="1024" d="M390 1408h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170v217q91 30 155 84q64 55 103 132q39 78 54 196z " />
371
- <glyph unicode="&#xf174;" d="M1123 127v181q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
372
- <glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
373
- <glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
374
- <glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
375
- <glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
376
- <glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
377
- <glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
378
- <glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
379
- <glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
380
- <glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
381
- <glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
382
- <glyph unicode="&#xf180;" horiz-adv-x="1664" d="M1483 512l-587 -587q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128t53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41 l619 619l2 -3q53 -53 53 -128t-53 -128zM1406 1138l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15v0q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36t14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15z" />
383
- <glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
384
- <glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
385
- <glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
386
- <glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
387
- <glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
388
- <glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
389
- <glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
390
- <glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
391
- <glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
392
- <glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
393
- <glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
394
- <glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
395
- <glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
396
- <glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
397
- <glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
398
- <glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
399
- <glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
400
- <glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
401
- <glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
402
- <glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
403
- <glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
404
- <glyph unicode="&#xf197;" horiz-adv-x="1792" />
405
- <glyph unicode="&#xf198;" horiz-adv-x="1792" />
406
- <glyph unicode="&#xf199;" horiz-adv-x="1792" />
407
- <glyph unicode="&#xf19a;" horiz-adv-x="1792" />
408
- <glyph unicode="&#xf19b;" horiz-adv-x="1792" />
409
- <glyph unicode="&#xf19c;" horiz-adv-x="1792" />
410
- <glyph unicode="&#xf19d;" horiz-adv-x="1792" />
411
- <glyph unicode="&#xf19e;" horiz-adv-x="1792" />
412
- <glyph unicode="&#xf500;" horiz-adv-x="1792" />
413
- </font>
414
  </defs></svg>
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></metadata>
5
+ <defs>
6
+ <font id="fontawesomeregular" horiz-adv-x="1536" >
7
+ <font-face units-per-em="1792" ascent="1536" descent="-256" />
8
+ <missing-glyph horiz-adv-x="448" />
9
+ <glyph unicode=" " horiz-adv-x="448" />
10
+ <glyph unicode="&#x09;" horiz-adv-x="448" />
11
+ <glyph unicode="&#xa0;" horiz-adv-x="448" />
12
+ <glyph unicode="&#xa8;" horiz-adv-x="1792" />
13
+ <glyph unicode="&#xa9;" horiz-adv-x="1792" />
14
+ <glyph unicode="&#xae;" horiz-adv-x="1792" />
15
+ <glyph unicode="&#xb4;" horiz-adv-x="1792" />
16
+ <glyph unicode="&#xc6;" horiz-adv-x="1792" />
17
+ <glyph unicode="&#x2000;" horiz-adv-x="768" />
18
+ <glyph unicode="&#x2001;" />
19
+ <glyph unicode="&#x2002;" horiz-adv-x="768" />
20
+ <glyph unicode="&#x2003;" />
21
+ <glyph unicode="&#x2004;" horiz-adv-x="512" />
22
+ <glyph unicode="&#x2005;" horiz-adv-x="384" />
23
+ <glyph unicode="&#x2006;" horiz-adv-x="256" />
24
+ <glyph unicode="&#x2007;" horiz-adv-x="256" />
25
+ <glyph unicode="&#x2008;" horiz-adv-x="192" />
26
+ <glyph unicode="&#x2009;" horiz-adv-x="307" />
27
+ <glyph unicode="&#x200a;" horiz-adv-x="85" />
28
+ <glyph unicode="&#x202f;" horiz-adv-x="307" />
29
+ <glyph unicode="&#x205f;" horiz-adv-x="384" />
30
+ <glyph unicode="&#x2122;" horiz-adv-x="1792" />
31
+ <glyph unicode="&#x221e;" horiz-adv-x="1792" />
32
+ <glyph unicode="&#x2260;" horiz-adv-x="1792" />
33
+ <glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
34
+ <glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
35
+ <glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
36
+ <glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
37
+ <glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
38
+ <glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
39
+ <glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
40
+ <glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
41
+ <glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
42
+ <glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
43
+ <glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
44
+ <glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
45
+ <glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
46
+ <glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
47
+ <glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
48
+ <glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
49
+ <glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
50
+ <glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
51
+ <glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
52
+ <glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
53
+ <glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
54
+ <glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
55
+ <glyph unicode="&#xf016;" horiz-adv-x="1280" d="M128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280zM768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z " />
56
+ <glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
57
+ <glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
58
+ <glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
59
+ <glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
60
+ <glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
61
+ <glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
62
+ <glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
63
+ <glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
64
+ <glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
65
+ <glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
66
+ <glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
67
+ <glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
68
+ <glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
69
+ <glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
70
+ <glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
71
+ <glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
72
+ <glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
73
+ <glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
74
+ <glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
75
+ <glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
76
+ <glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
77
+ <glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
78
+ <glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
79
+ <glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
80
+ <glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q73 -1 153.5 -2t119 -1.5t52.5 -0.5l29 2q-32 95 -92 241q-53 132 -92 211zM21 -128h-21l2 79q22 7 80 18q89 16 110 31q20 16 48 68l237 616l280 724h75h53l11 -21l205 -480q103 -242 124 -297q39 -102 96 -235q26 -58 65 -164q24 -67 65 -149 q22 -49 35 -57q22 -19 69 -23q47 -6 103 -27q6 -39 6 -57q0 -14 -1 -26q-80 0 -192 8q-93 8 -189 8q-79 0 -135 -2l-200 -11l-58 -2q0 45 4 78l131 28q56 13 68 23q12 12 12 27t-6 32l-47 114l-92 228l-450 2q-29 -65 -104 -274q-23 -64 -23 -84q0 -31 17 -43 q26 -21 103 -32q3 0 13.5 -2t30 -5t40.5 -6q1 -28 1 -58q0 -17 -2 -27q-66 0 -349 20l-48 -8q-81 -14 -167 -14z" />
81
+ <glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q76 -32 140 -32q131 0 216 41t122 113q38 70 38 181q0 114 -41 180q-58 94 -141 126q-80 32 -247 32q-74 0 -101 -10v-144l-1 -173l3 -270q0 -15 12 -44zM541 761q43 -7 109 -7q175 0 264 65t89 224q0 112 -85 187q-84 75 -255 75q-52 0 -130 -13q0 -44 2 -77 q7 -122 6 -279l-1 -98q0 -43 1 -77zM0 -128l2 94q45 9 68 12q77 12 123 31q17 27 21 51q9 66 9 194l-2 497q-5 256 -9 404q-1 87 -11 109q-1 4 -12 12q-18 12 -69 15q-30 2 -114 13l-4 83l260 6l380 13l45 1q5 0 14 0.5t14 0.5q1 0 21.5 -0.5t40.5 -0.5h74q88 0 191 -27 q43 -13 96 -39q57 -29 102 -76q44 -47 65 -104t21 -122q0 -70 -32 -128t-95 -105q-26 -20 -150 -77q177 -41 267 -146q92 -106 92 -236q0 -76 -29 -161q-21 -62 -71 -117q-66 -72 -140 -108q-73 -36 -203 -60q-82 -15 -198 -11l-197 4q-84 2 -298 -11q-33 -3 -272 -11z" />
82
+ <glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q4 1 77 20q76 19 116 39q29 37 41 101l27 139l56 268l12 64q8 44 17 84.5t16 67t12.5 46.5t9 30.5t3.5 11.5l29 157l16 63l22 135l8 50v38q-41 22 -144 28q-28 2 -38 4l19 103l317 -14q39 -2 73 -2q66 0 214 9q33 2 68 4.5t36 2.5q-2 -19 -6 -38 q-7 -29 -13 -51q-55 -19 -109 -31q-64 -16 -101 -31q-12 -31 -24 -88q-9 -44 -13 -82q-44 -199 -66 -306l-61 -311l-38 -158l-43 -235l-12 -45q-2 -7 1 -27q64 -15 119 -21q36 -5 66 -10q-1 -29 -7 -58q-7 -31 -9 -41q-18 0 -23 -1q-24 -2 -42 -2q-9 0 -28 3q-19 4 -145 17 l-198 2q-41 1 -174 -11q-74 -7 -98 -9z" />
83
+ <glyph unicode="&#xf034;" horiz-adv-x="1792" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l215 -1h293l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -42.5 2t-103.5 -1t-111 -1 q-34 0 -67 -5q-10 -97 -8 -136l1 -152v-332l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-88 0 -233 -14q-48 -4 -70 -4q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q8 192 6 433l-5 428q-1 62 -0.5 118.5t0.5 102.5t-2 57t-6 15q-6 5 -14 6q-38 6 -148 6q-43 0 -100 -13.5t-73 -24.5q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1744 128q33 0 42 -18.5t-11 -44.5 l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80z" />
84
+ <glyph unicode="&#xf035;" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l446 -1h318l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -58.5 2t-138.5 -1t-128 -1 q-94 0 -127 -5q-10 -97 -8 -136l1 -152v52l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-82 0 -233 -13q-45 -5 -70 -5q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q6 137 6 433l-5 44q0 265 -2 278q-2 11 -6 15q-6 5 -14 6q-38 6 -148 6q-50 0 -168.5 -14t-132.5 -24q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1505 113q26 -20 26 -49t-26 -49l-162 -126 q-26 -20 -44.5 -11t-18.5 42v80h-1024v-80q0 -33 -18.5 -42t-44.5 11l-162 126q-26 20 -26 49t26 49l162 126q26 20 44.5 11t18.5 -42v-80h1024v80q0 33 18.5 42t44.5 -11z" />
85
+ <glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
86
+ <glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
87
+ <glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
88
+ <glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
89
+ <glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
90
+ <glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
91
+ <glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
92
+ <glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
93
+ <glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
94
+ <glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
95
+ <glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
96
+ <glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
97
+ <glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
98
+ <glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
99
+ <glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
100
+ <glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
101
+ <glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
102
+ <glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
103
+ <glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
104
+ <glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
105
+ <glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
106
+ <glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
107
+ <glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
108
+ <glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
109
+ <glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
110
+ <glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
111
+ <glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
112
+ <glyph unicode="&#xf053;" horiz-adv-x="1152" d="M742 -37l-652 651q-37 37 -37 90.5t37 90.5l652 651q37 37 90.5 37t90.5 -37l75 -75q37 -37 37 -90.5t-37 -90.5l-486 -486l486 -485q37 -38 37 -91t-37 -90l-75 -75q-37 -37 -90.5 -37t-90.5 37z" />
113
+ <glyph unicode="&#xf054;" horiz-adv-x="1152" d="M1099 704q0 -52 -37 -91l-652 -651q-37 -37 -90 -37t-90 37l-76 75q-37 39 -37 91q0 53 37 90l486 486l-486 485q-37 39 -37 91q0 53 37 90l76 75q36 38 90 38t90 -38l652 -651q37 -37 37 -90z" />
114
+ <glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
115
+ <glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
116
+ <glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
117
+ <glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
118
+ <glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
119
+ <glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
120
+ <glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
121
+ <glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
122
+ <glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
123
+ <glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
124
+ <glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
125
+ <glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
126
+ <glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
127
+ <glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
128
+ <glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
129
+ <glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
130
+ <glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
131
+ <glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
132
+ <glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
133
+ <glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
134
+ <glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
135
+ <glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
136
+ <glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
137
+ <glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
138
+ <glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
139
+ <glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
140
+ <glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
141
+ <glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
142
+ <glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
143
+ <glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
144
+ <glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
145
+ <glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
146
+ <glyph unicode="&#xf077;" horiz-adv-x="1664" d="M1611 320q0 -53 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-486 485l-486 -485q-36 -38 -90 -38t-90 38l-75 75q-38 36 -38 90q0 53 38 91l651 651q37 37 90 37q52 0 91 -37l650 -651q38 -38 38 -91z" />
147
+ <glyph unicode="&#xf078;" horiz-adv-x="1664" d="M1611 832q0 -53 -37 -90l-651 -651q-38 -38 -91 -38q-54 0 -90 38l-651 651q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l486 -486l486 486q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
148
+ <glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
149
+ <glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
150
+ <glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
151
+ <glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
152
+ <glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
153
+ <glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
154
+ <glyph unicode="&#xf080;" horiz-adv-x="1920" d="M512 512v-384h-256v384h256zM896 1024v-896h-256v896h256zM1280 768v-640h-256v640h256zM1664 1152v-1024h-256v1024h256zM1792 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5z M1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
155
+ <glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
156
+ <glyph unicode="&#xf082;" d="M1307 618l23 219h-198v109q0 49 15.5 68.5t71.5 19.5h110v219h-175q-152 0 -218 -72t-66 -213v-131h-131v-219h131v-635h262v635h175zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" />
157
+ <glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
158
+ <glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
159
+ <glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
160
+ <glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
161
+ <glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
162
+ <glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
163
+ <glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
164
+ <glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
165
+ <glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
166
+ <glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
167
+ <glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
168
+ <glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
169
+ <glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
170
+ <glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
171
+ <glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
172
+ <glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
173
+ <glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
174
+ <glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
175
+ <glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
176
+ <glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
177
+ <glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
178
+ <glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
179
+ <glyph unicode="&#xf09a;" horiz-adv-x="768" d="M511 980h257l-30 -284h-227v-824h-341v824h-170v284h170v171q0 182 86 275.5t283 93.5h227v-284h-142q-39 0 -62.5 -6.5t-34 -23.5t-13.5 -34.5t-3 -49.5v-142z" />
180
+ <glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
181
+ <glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
182
+ <glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
183
+ <glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
184
+ <glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
185
+ <glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
186
+ <glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM1664 128q0 -52 -38 -90t-90 -38 h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
187
+ <glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
188
+ <glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
189
+ <glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
190
+ <glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
191
+ <glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
192
+ <glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
193
+ <glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
194
+ <glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
195
+ <glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
196
+ <glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
197
+ <glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
198
+ <glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
199
+ <glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
200
+ <glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
201
+ <glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
202
+ <glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
203
+ <glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
204
+ <glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
205
+ <glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
206
+ <glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
207
+ <glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
208
+ <glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
209
+ <glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
210
+ <glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
211
+ <glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
212
+ <glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
213
+ <glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
214
+ <glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
215
+ <glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
216
+ <glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
217
+ <glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
218
+ <glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
219
+ <glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
220
+ <glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
221
+ <glyph unicode="&#xf0d4;" d="M678 -57q0 -38 -10 -71h-380q-95 0 -171.5 56.5t-103.5 147.5q24 45 69 77.5t100 49.5t107 24t107 7q32 0 49 -2q6 -4 30.5 -21t33 -23t31 -23t32 -25.5t27.5 -25.5t26.5 -29.5t21 -30.5t17.5 -34.5t9.5 -36t4.5 -40.5zM385 294q-234 -7 -385 -85v433q103 -118 273 -118 q32 0 70 5q-21 -61 -21 -86q0 -67 63 -149zM558 805q0 -100 -43.5 -160.5t-140.5 -60.5q-51 0 -97 26t-78 67.5t-56 93.5t-35.5 104t-11.5 99q0 96 51.5 165t144.5 69q66 0 119 -41t84 -104t47 -130t16 -128zM1536 896v-736q0 -119 -84.5 -203.5t-203.5 -84.5h-468 q39 73 39 157q0 66 -22 122.5t-55.5 93t-72 71t-72 59.5t-55.5 54.5t-22 59.5q0 36 23 68t56 61.5t65.5 64.5t55.5 93t23 131t-26.5 145.5t-75.5 118.5q-6 6 -14 11t-12.5 7.5t-10 9.5t-10.5 17h135l135 64h-437q-138 0 -244.5 -38.5t-182.5 -133.5q0 126 81 213t207 87h960 q119 0 203.5 -84.5t84.5 -203.5v-96h-256v256h-128v-256h-256v-128h256v-256h128v256h256z" />
222
+ <glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M876 71q0 21 -4.5 40.5t-9.5 36t-17.5 34.5t-21 30.5t-26.5 29.5t-27.5 25.5t-32 25.5t-31 23t-33 23t-30.5 21q-17 2 -50 2q-54 0 -106 -7t-108 -25t-98 -46t-69 -75t-27 -107q0 -68 35.5 -121.5t93 -84t120.5 -45.5t127 -15q59 0 112.5 12.5t100.5 39t74.5 73.5 t27.5 110zM756 933q0 60 -16.5 127.5t-47 130.5t-84 104t-119.5 41q-93 0 -144 -69t-51 -165q0 -47 11.5 -99t35.5 -104t56 -93.5t78 -67.5t97 -26q97 0 140.5 60.5t43.5 160.5zM625 1408h437l-135 -79h-135q71 -45 110 -126t39 -169q0 -74 -23 -131.5t-56 -92.5t-66 -64.5 t-56 -61t-23 -67.5q0 -26 16.5 -51t43 -48t58.5 -48t64 -55.5t58.5 -66t43 -85t16.5 -106.5q0 -160 -140 -282q-152 -131 -420 -131q-59 0 -119.5 10t-122 33.5t-108.5 58t-77 89t-30 121.5q0 61 37 135q32 64 96 110.5t145 71t155 36t150 13.5q-64 83 -64 149q0 12 2 23.5 t5 19.5t8 21.5t7 21.5q-40 -5 -70 -5q-149 0 -255.5 98t-106.5 246q0 140 95 250.5t234 141.5q94 20 187 20zM1664 1152v-128h-256v-256h-128v256h-256v128h256v256h128v-256h256z" />
223
+ <glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
224
+ <glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
225
+ <glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
226
+ <glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
227
+ <glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
228
+ <glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
229
+ <glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
230
+ <glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
231
+ <glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
232
+ <glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
233
+ <glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
234
+ <glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
235
+ <glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
236
+ <glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
237
+ <glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
238
+ <glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
239
+ <glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
240
+ <glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
241
+ <glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
242
+ <glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
243
+ <glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
244
+ <glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
245
+ <glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
246
+ <glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
247
+ <glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
248
+ <glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
249
+ <glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
250
+ <glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1664 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5 q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
251
+ <glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
252
+ <glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
253
+ <glyph unicode="&#xf0f6;" horiz-adv-x="1280" d="M1024 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1024 608v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280z M768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z" />
254
+ <glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
255
+ <glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
256
+ <glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
257
+ <glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
258
+ <glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
259
+ <glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
260
+ <glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
261
+ <glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
262
+ <glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
263
+ <glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
264
+ <glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
265
+ <glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
266
+ <glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
267
+ <glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
268
+ <glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
269
+ <glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
270
+ <glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
271
+ <glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
272
+ <glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
273
+ <glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
274
+ <glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
275
+ <glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
276
+ <glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
277
+ <glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
278
+ <glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
279
+ <glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
280
+ <glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
281
+ <glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
282
+ <glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
283
+ <glyph unicode="&#xf116;" horiz-adv-x="1792" />
284
+ <glyph unicode="&#xf117;" horiz-adv-x="1792" />
285
+ <glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
286
+ <glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
287
+ <glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
288
+ <glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
289
+ <glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
290
+ <glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
291
+ <glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
292
+ <glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
293
+ <glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
294
+ <glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
295
+ <glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
296
+ <glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
297
+ <glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
298
+ <glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
299
+ <glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
300
+ <glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
301
+ <glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
302
+ <glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
303
+ <glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
304
+ <glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
305
+ <glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
306
+ <glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
307
+ <glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
308
+ <glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
309
+ <glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
310
+ <glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
311
+ <glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
312
+ <glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
313
+ <glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
314
+ <glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
315
+ <glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
316
+ <glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
317
+ <glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
318
+ <glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
319
+ <glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
320
+ <glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
321
+ <glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
322
+ <glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
323
+ <glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
324
+ <glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
325
+ <glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
326
+ <glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
327
+ <glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
328
+ <glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
329
+ <glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
330
+ <glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
331
+ <glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
332
+ <glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
333
+ <glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
334
+ <glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
335
+ <glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
336
+ <glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
337
+ <glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
338
+ <glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
339
+ <glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
340
+ <glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
341
+ <glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
342
+ <glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
343
+ <glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
344
+ <glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
345
+ <glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
346
+ <glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
347
+ <glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
348
+ <glyph unicode="&#xf15b;" horiz-adv-x="1280" d="M1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
349
+ <glyph unicode="&#xf15c;" horiz-adv-x="1280" d="M1024 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1024 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28 t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
350
+ <glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
351
+ <glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
352
+ <glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
353
+ <glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
354
+ <glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
355
+ <glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
356
+ <glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
357
+ <glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
358
+ <glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
359
+ <glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
360
+ <glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
361
+ <glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
362
+ <glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
363
+ <glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
364
+ <glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
365
+ <glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
366
+ <glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
367
+ <glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
368
+ <glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
369
+ <glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
370
+ <glyph unicode="&#xf173;" horiz-adv-x="1024" d="M390 1408h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170v217q91 30 155 84q64 55 103 132q39 78 54 196z " />
371
+ <glyph unicode="&#xf174;" d="M1123 127v181q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
372
+ <glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
373
+ <glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
374
+ <glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
375
+ <glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
376
+ <glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
377
+ <glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
378
+ <glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
379
+ <glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
380
+ <glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
381
+ <glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
382
+ <glyph unicode="&#xf180;" horiz-adv-x="1664" d="M1483 512l-587 -587q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128t53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41 l619 619l2 -3q53 -53 53 -128t-53 -128zM1406 1138l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15v0q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36t14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15z" />
383
+ <glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
384
+ <glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
385
+ <glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
386
+ <glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
387
+ <glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
388
+ <glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
389
+ <glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
390
+ <glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
391
+ <glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
392
+ <glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
393
+ <glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
394
+ <glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
395
+ <glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
396
+ <glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
397
+ <glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
398
+ <glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
399
+ <glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
400
+ <glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
401
+ <glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
402
+ <glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
403
+ <glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
404
+ <glyph unicode="&#xf197;" horiz-adv-x="1792" />
405
+ <glyph unicode="&#xf198;" horiz-adv-x="1792" />
406
+ <glyph unicode="&#xf199;" horiz-adv-x="1792" />
407
+ <glyph unicode="&#xf19a;" horiz-adv-x="1792" />
408
+ <glyph unicode="&#xf19b;" horiz-adv-x="1792" />
409
+ <glyph unicode="&#xf19c;" horiz-adv-x="1792" />
410
+ <glyph unicode="&#xf19d;" horiz-adv-x="1792" />
411
+ <glyph unicode="&#xf19e;" horiz-adv-x="1792" />
412
+ <glyph unicode="&#xf500;" horiz-adv-x="1792" />
413
+ </font>
414
  </defs></svg>
shared/assets/includes/Snowplow/RefererParser/Config/INBOUND_ConfigFileReaderTrait.php CHANGED
@@ -1,54 +1,54 @@
1
- <?php
2
-
3
- abstract class INBOUND_ConfigFileReaderTrait
4
- {
5
- /** @var string */
6
- private $fileName;
7
-
8
- /** @var array */
9
- private $referers = array();
10
-
11
- public function __construct ()
12
- {
13
-
14
- }
15
-
16
- private function init($fileName)
17
- {
18
- if (!file_exists($fileName)) {
19
- throw INBOUND_InvalidArgumentException::fileNotExists($fileName);
20
- }
21
-
22
- $this->fileName = $fileName;
23
- }
24
-
25
- abstract protected function parse($content);
26
-
27
- private function read()
28
- {
29
- if ($this->referers) {
30
- return;
31
- }
32
-
33
- $hash = $this->parse(file_get_contents($this->fileName));
34
-
35
- foreach ($hash as $medium => $referers) {
36
- foreach ($referers as $source => $referer) {
37
- foreach ($referer['domains'] as $domain) {
38
- $this->referers[$domain] = array(
39
- 'source' => $source,
40
- 'medium' => $medium,
41
- 'parameters' => isset($referer['parameters']) ? $referer['parameters'] : array(),
42
- );
43
- }
44
- }
45
- }
46
- }
47
-
48
- public function lookup($lookupString)
49
- {
50
- $this->read();
51
-
52
- return isset($this->referers[$lookupString]) ? $this->referers[$lookupString] : null;
53
- }
54
- }
1
+ <?php
2
+
3
+ abstract class INBOUND_ConfigFileReaderTrait
4
+ {
5
+ /** @var string */
6
+ private $fileName;
7
+
8
+ /** @var array */
9
+ private $referers = array();
10
+
11
+ public function __construct ()
12
+ {
13
+
14
+ }
15
+
16
+ private function init($fileName)
17
+ {
18
+ if (!file_exists($fileName)) {
19
+ throw INBOUND_InvalidArgumentException::fileNotExists($fileName);
20
+ }
21
+
22
+ $this->fileName = $fileName;
23
+ }
24
+
25
+ abstract protected function parse($content);
26
+
27
+ private function read()
28
+ {
29
+ if ($this->referers) {
30
+ return;
31
+ }
32
+
33
+ $hash = $this->parse(file_get_contents($this->fileName));
34
+
35
+ foreach ($hash as $medium => $referers) {
36
+ foreach ($referers as $source => $referer) {
37
+ foreach ($referer['domains'] as $domain) {
38
+ $this->referers[$domain] = array(
39
+ 'source' => $source,
40
+ 'medium' => $medium,
41
+ 'parameters' => isset($referer['parameters']) ? $referer['parameters'] : array(),
42
+ );
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ public function lookup($lookupString)
49
+ {
50
+ $this->read();
51
+
52
+ return isset($this->referers[$lookupString]) ? $this->referers[$lookupString] : null;
53
+ }
54
+ }
shared/assets/includes/Snowplow/RefererParser/Config/INBOUND_ConfigReaderInterface.php CHANGED
@@ -1,15 +1,15 @@
1
- <?php
2
-
3
- include('INBOUND_ConfigFileReaderTrait.php');
4
-
5
- abstract class INBOUND_ConfigReaderInterface extends INBOUND_ConfigFileReaderTrait
6
- {
7
- /**
8
- * @param string $lookupString
9
- * @return array
10
- */
11
- public function lookup($lookupString)
12
- {
13
-
14
- }
15
- }
1
+ <?php
2
+
3
+ include('INBOUND_ConfigFileReaderTrait.php');
4
+
5
+ abstract class INBOUND_ConfigReaderInterface extends INBOUND_ConfigFileReaderTrait
6
+ {
7
+ /**
8
+ * @param string $lookupString
9
+ * @return array
10
+ */
11
+ public function lookup($lookupString)
12
+ {
13
+
14
+ }
15
+ }
shared/assets/includes/Snowplow/RefererParser/Config/INBOUND_JsonConfigReader.php CHANGED
@@ -1,57 +1,57 @@
1
- <?php
2
-
3
- class INBOUND_JsonConfigReader extends INBOUND_ConfigReaderInterface
4
- {
5
- /** @var string */
6
- private $fileName;
7
-
8
- /** @var array */
9
- private $referers = array();
10
-
11
- public function __construct ( $fileName )
12
- {
13
- $this->fileName = $fileName;
14
- }
15
-
16
- private function init($fileName)
17
- {
18
- if (!file_exists($fileName)) {
19
- throw INBOUND_InvalidArgumentException::fileNotExists($fileName);
20
- }
21
-
22
- $this->fileName = $fileName;
23
- }
24
-
25
- private function read()
26
- {
27
- if ($this->referers) {
28
- return;
29
- }
30
-
31
- $hash = $this->parse(file_get_contents($this->fileName));
32
-
33
- foreach ($hash as $medium => $referers) {
34
- foreach ($referers as $source => $referer) {
35
- foreach ($referer['domains'] as $domain) {
36
- $this->referers[$domain] = array(
37
- 'source' => $source,
38
- 'medium' => $medium,
39
- 'parameters' => isset($referer['parameters']) ? $referer['parameters'] : array(),
40
- );
41
- }
42
- }
43
- }
44
- }
45
-
46
- public function lookup($lookupString)
47
- {
48
- $this->read();
49
-
50
- return isset($this->referers[$lookupString]) ? $this->referers[$lookupString] : null;
51
- }
52
-
53
- protected function parse($content)
54
- {
55
- return json_decode($content, true);
56
- }
57
  }
1
+ <?php
2
+
3
+ class INBOUND_JsonConfigReader extends INBOUND_ConfigReaderInterface
4
+ {
5
+ /** @var string */
6
+ private $fileName;
7
+
8
+ /** @var array */
9
+ private $referers = array();
10
+
11
+ public function __construct ( $fileName )
12
+ {
13
+ $this->fileName = $fileName;
14
+ }
15
+
16
+ private function init($fileName)
17
+ {
18
+ if (!file_exists($fileName)) {
19
+ throw INBOUND_InvalidArgumentException::fileNotExists($fileName);
20
+ }
21
+
22
+ $this->fileName = $fileName;
23
+ }
24
+
25
+ private function read()
26
+ {
27
+ if ($this->referers) {
28
+ return;
29
+ }
30
+
31
+ $hash = $this->parse(file_get_contents($this->fileName));
32
+
33
+ foreach ($hash as $medium => $referers) {
34
+ foreach ($referers as $source => $referer) {
35
+ foreach ($referer['domains'] as $domain) {
36
+ $this->referers[$domain] = array(
37
+ 'source' => $source,
38
+ 'medium' => $medium,
39
+ 'parameters' => isset($referer['parameters']) ? $referer['parameters'] : array(),
40
+ );
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ public function lookup($lookupString)
47
+ {
48
+ $this->read();
49
+
50
+ return isset($this->referers[$lookupString]) ? $this->referers[$lookupString] : null;
51
+ }
52
+
53
+ protected function parse($content)
54
+ {
55
+ return json_decode($content, true);
56
+ }
57
  }
shared/assets/includes/Snowplow/RefererParser/Exception/INBOUND_InvalidArgumentException.php CHANGED
@@ -1,9 +1,9 @@
1
- <?php
2
-
3
- class INBOUND_InvalidArgumentException extends BaseInvalidArgumentException
4
- {
5
- public static function fileNotExists($fileName)
6
- {
7
- return new static(sprintf('File "%s" does not exist', $fileName));
8
- }
9
- }
1
+ <?php
2
+
3
+ class INBOUND_InvalidArgumentException extends BaseInvalidArgumentException
4
+ {
5
+ public static function fileNotExists($fileName)
6
+ {
7
+ return new static(sprintf('File "%s" does not exist', $fileName));
8
+ }
9
+ }
shared/assets/includes/Snowplow/RefererParser/INBOUND_Medium.php CHANGED
@@ -1,16 +1,16 @@
1
- <?php
2
-
3
- final class INBOUND_Medium
4
- {
5
- const SEARCH = 'search';
6
-
7
- const SOCIAL = 'social';
8
-
9
- const UNKNOWN = 'unknown';
10
-
11
- const INTERNAL = 'internal';
12
-
13
- const EMAIL = 'email';
14
-
15
- const INVALID = 'invalid';
16
- }
1
+ <?php
2
+
3
+ final class INBOUND_Medium
4
+ {
5
+ const SEARCH = 'search';
6
+
7
+ const SOCIAL = 'social';
8
+
9
+ const UNKNOWN = 'unknown';
10
+
11
+ const INTERNAL = 'internal';
12
+
13
+ const EMAIL = 'email';
14
+
15
+ const INVALID = 'invalid';
16
+ }
shared/assets/includes/Snowplow/RefererParser/INBOUND_Parser.php CHANGED
@@ -1,266 +1,266 @@
1
- <?php
2
-
3
- /* Usage:
4
-
5
- include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Parser.php');
6
- include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Referer.php');
7
- include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Medium.php');
8
-
9
- // intialized the parser class
10
- $this->parser = new INBOUND_Parser();
11
-
12
- $referer = $this->parser->parse($source);
13
- if ( $referer->isKnown() ) {
14
- return $referer->getMedium();
15
- } else {
16
- return 'referral';
17
- }
18
- */
19
-
20
- /*
21
-
22
- Functions to use in plugin
23
-
24
- // $source ex = http://clean.dev/
25
- // $origin ex = http://glocal.dev/?utm_source=the_source&utm_medium=camp%20med&utm_term=Bought%20keyword&utm_content=Funny%20Text&utm_campaign=400kpromo
26
-
27
- // ORIGIN URL grabbed from first ever page view
28
-
29
- function check_lead_source ( $source, $origin_url = '' )
30
- {
31
- if ( $source )
32
- {
33
- $decoded_source = urldecode($source);
34
-
35
- if ( stristr($decoded_source, 'utm_medium=cpc') || stristr($decoded_source, 'utm_medium=ppc') || stristr($decoded_source, 'aclk') || stristr($decoded_source, 'gclid') )
36
- return 'paid';
37
-
38
- if ( stristr($source, 'utm_') )
39
- {
40
- $url = $source;
41
- $url_parts = parse_url($url);
42
- parse_str($url_parts['query'], $path_parts);
43
-
44
- if ( isset($path_parts['adurl']) )
45
- return 'paid';
46
-
47
- if ( isset($path_parts['utm_medium']) )
48
- {
49
- if ( $path_parts['utm_medium'] == 'cpc' || $path_parts['utm_medium'] == 'ppc' )
50
- return 'paid';
51
-
52
- if ( $path_parts['utm_medium'] == 'social' )
53
- return 'social';
54
-
55
- if ( $path_parts['utm_medium'] == 'email' )
56
- return 'email';
57
- }
58
-
59
- if ( isset($path_parts['utm_source']) )
60
- {
61
- if ( stristr($path_parts['utm_source'], 'email') )
62
- return 'email';
63
- }
64
- }
65
-
66
- $referer = $this->parser->parse(
67
- $source
68
- );
69
-
70
- if ( $referer->isKnown() )
71
- return $referer->getMedium();
72
- else
73
- return 'referral';
74
- }
75
- else
76
- {
77
- $decoded_origin_url = urldecode($origin_url);
78
-
79
- if ( stristr($decoded_origin_url, 'utm_medium=cpc') || stristr($decoded_origin_url, 'utm_medium=ppc') || stristr($decoded_origin_url, 'aclk') || stristr($decoded_origin_url, 'gclid') )
80
- return 'paid';
81
-
82
- if ( stristr($decoded_origin_url, 'utm_') )
83
- {
84
- $url = $decoded_origin_url;
85
- $url_parts = parse_url($url);
86
- parse_str($url_parts['query'], $path_parts);
87
-
88
- if ( isset($path_parts['adurl']) )
89
- return 'paid';
90
-
91
- if ( isset($path_parts['utm_medium']) )
92
- {
93
- if ( $path_parts['utm_medium'] == 'cpc' || $path_parts['utm_medium'] == 'ppc' )
94
- return 'paid';
95
-
96
- if ( $path_parts['utm_medium'] == 'social' )
97
- return 'social';
98
-
99
- if ( $path_parts['utm_medium'] == 'email' )
100
- return 'email';
101
- }
102
-
103
- if ( isset($path_parts['utm_source']) )
104
- {
105
- if ( stristr($path_parts['utm_source'], 'email') )
106
- return 'email';
107
- }
108
- }
109
-
110
- return 'direct';
111
- }
112
- }
113
-
114
- function print_readable_source ( $source )
115
- {
116
- switch ( $source )
117
- {
118
- case 'search' :
119
- return 'Organic Search';
120
- break;
121
-
122
- case 'social' :
123
- return 'Social Media';
124
- break;
125
-
126
- case 'email' :
127
- return 'Email Marketing';
128
- break;
129
-
130
- case 'referral' :
131
- return 'Referral';
132
- break;
133
-
134
- case 'paid' :
135
- return 'Paid';
136
- break;
137
-
138
- case 'direct' :
139
- return 'Direct';
140
- break;
141
- }
142
- }
143
-
144
- */
145
-
146
- //echo 'hi';
147
- include_once('Config/INBOUND_ConfigReaderInterface.php');
148
- include_once('Config/INBOUND_JsonConfigReader.php');
149
-
150
- class INBOUND_Parser
151
- {
152
- /** @var ConfigReaderInterface */
153
- private $configReader;
154
-
155
- /**
156
- * @var string[]
157
- */
158
- private $internalHosts = array();
159
-
160
- public function __construct(INBOUND_ConfigReaderInterface $configReader = null, array $internalHosts = array() )
161
- {
162
- $this->configReader = $configReader ? $configReader : self::createDefaultConfigReader();
163
- $this->internalHosts = $internalHosts;
164
- }
165
-
166
- /**
167
- * Parse referer URL
168
- *
169
- * @param string $refererUrl
170
- * @param string $pageUrl
171
- * @return Referer
172
- */
173
- public function parse($refererUrl, $pageUrl = null)
174
- {
175
- $refererParts = $this->parseUrl($refererUrl);
176
- if (!$refererParts) {
177
- return INBOUND_Referer::createInvalid();
178
- }
179
-
180
- $pageUrlParts = $this->parseUrl($pageUrl);
181
-
182
- //print_r($refererParts);
183
-
184
- if ($pageUrlParts
185
- && $pageUrlParts['host'] === $refererParts['host']
186
- || in_array($refererParts['host'], $this->internalHosts)) {
187
- return INBOUND_Referer::createInternal();
188
- }
189
-
190
- $referer = $this->lookup($refererParts['host'], $refererParts['path']);
191
-
192
- if (!$referer) {
193
- return INBOUND_Referer::createUnknown();
194
- }
195
-
196
- $searchTerm = null;
197
-
198
- if (is_array($referer['parameters'])) {
199
- parse_str($refererParts['query'], $queryParts);
200
-
201
- //foreach ($queryParts as $key => $parameter) {
202
- $searchTerm = isset($queryParts['q']) ? $queryParts['q'] : $searchTerm;
203
- //}
204
- }
205
-
206
- return INBOUND_Referer::createKnown($referer['medium'], $referer['source'], $searchTerm);
207
- }
208
-
209
- private static function parseUrl($url)
210
- {
211
- if ($url === null) {
212
- return null;
213
- }
214
-
215
- $parts = parse_url($url);
216
- if (!isset($parts['scheme']) || !in_array(strtolower($parts['scheme']), array('http', 'https'))) {
217
- return null;
218
- }
219
-
220
- return array_merge(array('query' => null, 'path' => '/'), $parts);
221
- }
222
-
223
- private function lookup($host, $path)
224
- {
225
- $referer = $this->lookupPath($host, $path);
226
-
227
- if ($referer) {
228
- return $referer;
229
- }
230
-
231
- return $this->lookupHost($host);
232
- }
233
-
234
- private function lookupPath($host, $path)
235
- {
236
- $referer = $this->lookupHost($host, $path);
237
-
238
- if ($referer) {
239
- return $referer;
240
- }
241
-
242
- $path = substr($path, 0, strrpos($path, '/'));
243
-
244
- if (!$path) {
245
- return null;
246
- }
247
-
248
- return $this->lookupPath($host, $path);
249
- }
250
-
251
- private function lookupHost($host, $path = null)
252
- {
253
- do {
254
- $referer = $this->configReader->lookup($host . $path);
255
- $host = substr($host, strpos($host, '.') + 1);
256
- } while (!$referer && substr_count($host, '.') > 0);
257
-
258
- return $referer;
259
- }
260
-
261
- private static function createDefaultConfigReader()
262
- {
263
- //TODO FIX WITH GLOBAL SHARED CONSTANT
264
- return new INBOUND_JsonConfigReader( INBOUDNOW_SHARED_PATH . '/includes/referers.json');
265
- }
266
- }
1
+ <?php
2
+
3
+ /* Usage:
4
+
5
+ include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Parser.php');
6
+ include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Referer.php');
7
+ include_once(WP_CTA_URLPATH . '/shared/tracking/sources/Snowplow/RefererParser/INBOUND_Medium.php');
8
+
9
+ // intialized the parser class
10
+ $this->parser = new INBOUND_Parser();
11
+
12
+ $referer = $this->parser->parse($source);
13
+ if ( $referer->isKnown() ) {
14
+ return $referer->getMedium();
15
+ } else {
16
+ return 'referral';
17
+ }
18
+ */
19
+
20
+ /*
21
+
22
+ Functions to use in plugin
23
+
24
+ // $source ex = http://clean.dev/
25
+ // $origin ex = http://glocal.dev/?utm_source=the_source&utm_medium=camp%20med&utm_term=Bought%20keyword&utm_content=Funny%20Text&utm_campaign=400kpromo
26
+
27
+ // ORIGIN URL grabbed from first ever page view
28
+
29
+ function check_lead_source ( $source, $origin_url = '' )
30
+ {
31
+ if ( $source )
32
+ {
33
+ $decoded_source = urldecode($source);
34
+
35
+ if ( stristr($decoded_source, 'utm_medium=cpc') || stristr($decoded_source, 'utm_medium=ppc') || stristr($decoded_source, 'aclk') || stristr($decoded_source, 'gclid') )
36
+ return 'paid';
37
+
38
+ if ( stristr($source, 'utm_') )
39
+ {
40
+ $url = $source;
41
+ $url_parts = parse_url($url);
42
+ parse_str($url_parts['query'], $path_parts);
43
+
44
+ if ( isset($path_parts['adurl']) )
45
+ return 'paid';
46
+
47
+ if ( isset($path_parts['utm_medium']) )
48
+ {
49
+ if ( $path_parts['utm_medium'] == 'cpc' || $path_parts['utm_medium'] == 'ppc' )
50
+ return 'paid';
51
+
52
+ if ( $path_parts['utm_medium'] == 'social' )
53
+ return 'social';
54
+
55
+ if ( $path_parts['utm_medium'] == 'email' )
56
+ return 'email';
57
+ }
58
+
59
+ if ( isset($path_parts['utm_source']) )
60
+ {
61
+ if ( stristr($path_parts['utm_source'], 'email') )
62
+ return 'email';
63
+ }
64
+ }
65
+
66
+ $referer = $this->parser->parse(
67
+ $source
68
+ );
69
+
70
+ if ( $referer->isKnown() )
71
+ return $referer->getMedium();
72
+ else
73
+ return 'referral';
74
+ }
75
+ else
76
+ {
77
+ $decoded_origin_url = urldecode($origin_url);
78
+
79
+ if ( stristr($decoded_origin_url, 'utm_medium=cpc') || stristr($decoded_origin_url, 'utm_medium=ppc') || stristr($decoded_origin_url, 'aclk') || stristr($decoded_origin_url, 'gclid') )
80
+ return 'paid';
81
+
82
+ if ( stristr($decoded_origin_url, 'utm_') )
83
+ {
84
+ $url = $decoded_origin_url;
85
+ $url_parts = parse_url($url);
86
+ parse_str($url_parts['query'], $path_parts);
87
+
88
+ if ( isset($path_parts['adurl']) )
89
+ return 'paid';
90
+
91
+ if ( isset($path_parts['utm_medium']) )
92
+ {
93
+ if ( $path_parts['utm_medium'] == 'cpc' || $path_parts['utm_medium'] == 'ppc' )
94
+ return 'paid';
95
+
96
+ if ( $path_parts['utm_medium'] == 'social' )
97
+ return 'social';
98
+
99
+ if ( $path_parts['utm_medium'] == 'email' )
100
+ return 'email';
101
+ }
102
+
103
+ if ( isset($path_parts['utm_source']) )
104
+ {
105
+ if ( stristr($path_parts['utm_source'], 'email') )
106
+ return 'email';
107
+ }
108
+ }
109
+
110
+ return 'direct';
111
+ }
112
+ }
113
+
114
+ function print_readable_source ( $source )
115
+ {
116
+ switch ( $source )
117
+ {
118
+ case 'search' :
119
+ return 'Organic Search';
120
+ break;
121
+
122
+ case 'social' :
123
+ return 'Social Media';
124
+ break;
125
+
126
+ case 'email' :
127
+ return 'Email Marketing';
128
+ break;
129
+
130
+ case 'referral' :
131
+ return 'Referral';
132
+ break;
133
+
134
+ case 'paid' :
135
+ return 'Paid';
136
+ break;
137
+
138
+ case 'direct' :
139
+ return 'Direct';
140
+ break;
141
+ }
142
+ }
143
+
144
+ */
145
+
146
+ //echo 'hi';
147
+ include_once('Config/INBOUND_ConfigReaderInterface.php');
148
+ include_once('Config/INBOUND_JsonConfigReader.php');
149
+
150
+ class INBOUND_Parser
151
+ {
152
+ /** @var ConfigReaderInterface */
153
+ private $configReader;
154
+
155
+ /**
156
+ * @var string[]
157
+ */
158
+ private $internalHosts = array();
159
+
160
+ public function __construct(INBOUND_ConfigReaderInterface $configReader = null, array $internalHosts = array() )
161
+ {
162
+ $this->configReader = $configReader ? $configReader : self::createDefaultConfigReader();
163
+ $this->internalHosts = $internalHosts;
164
+ }
165
+
166
+ /**
167
+ * Parse referer URL
168
+ *
169
+ * @param string $refererUrl
170
+ * @param string $pageUrl
171
+ * @return Referer
172
+ */
173
+ public function parse($refererUrl, $pageUrl = null)
174
+ {
175
+ $refererParts = $this->parseUrl($refererUrl);
176
+ if (!$refererParts) {
177
+ return INBOUND_Referer::createInvalid();
178
+ }
179
+
180
+ $pageUrlParts = $this->parseUrl($pageUrl);
181
+
182
+ //print_r($refererParts);
183
+
184
+ if ($pageUrlParts
185
+ && $pageUrlParts['host'] === $refererParts['host']
186
+ || in_array($refererParts['host'], $this->internalHosts)) {
187
+ return INBOUND_Referer::createInternal();
188
+ }
189
+
190
+ $referer = $this->lookup($refererParts['host'], $refererParts['path']);
191
+
192
+ if (!$referer) {
193
+ return INBOUND_Referer::createUnknown();
194
+ }
195
+
196
+ $searchTerm = null;
197
+
198
+ if (is_array($referer['parameters'])) {
199
+ parse_str($refererParts['query'], $queryParts);
200
+
201
+ //foreach ($queryParts as $key => $parameter) {
202
+ $searchTerm = isset($queryParts['q']) ? $queryParts['q'] : $searchTerm;
203
+ //}
204
+ }
205
+
206
+ return INBOUND_Referer::createKnown($referer['medium'], $referer['source'], $searchTerm);
207
+ }
208
+
209
+ private static function parseUrl($url)
210
+ {
211
+ if ($url === null) {
212
+ return null;
213
+ }
214
+
215
+ $parts = parse_url($url);
216
+ if (!isset($parts['scheme']) || !in_array(strtolower($parts['scheme']), array('http', 'https'))) {
217
+ return null;
218
+ }
219
+
220
+ return array_merge(array('query' => null, 'path' => '/'), $parts);
221
+ }
222
+
223
+ private function lookup($host, $path)
224
+ {
225
+ $referer = $this->lookupPath($host, $path);
226
+
227
+ if ($referer) {
228
+ return $referer;
229
+ }
230
+
231
+ return $this->lookupHost($host);
232
+ }
233
+
234
+ private function lookupPath($host, $path)
235
+ {
236
+ $referer = $this->lookupHost($host, $path);
237
+
238
+ if ($referer) {
239
+ return $referer;
240
+ }
241
+
242
+ $path = substr($path, 0, strrpos($path, '/'));
243
+
244
+ if (!$path) {
245
+ return null;
246
+ }
247
+
248
+ return $this->lookupPath($host, $path);
249
+ }
250
+
251
+ private function lookupHost($host, $path = null)
252
+ {
253
+ do {
254
+ $referer = $this->configReader->lookup($host . $path);
255
+ $host = substr($host, strpos($host, '.') + 1);
256
+ } while (!$referer && substr_count($host, '.') > 0);
257
+
258
+ return $referer;
259
+ }
260
+
261
+ private static function createDefaultConfigReader()
262
+ {
263
+ //TODO FIX WITH GLOBAL SHARED CONSTANT
264
+ return new INBOUND_JsonConfigReader( INBOUDNOW_SHARED_PATH . '/includes/referers.json');
265
+ }
266
+ }
shared/assets/includes/Snowplow/RefererParser/INBOUND_Referer.php CHANGED
@@ -1,78 +1,78 @@
1
- <?php
2
-
3
- class INBOUND_Referer
4
- {
5
- /** @var string */
6
- private $medium;
7
-
8
- /** @var string */
9
- private $source;
10
-
11
- /** @var string|null */
12
- private $searchTerm;
13
-
14
- private function __construct()
15
- {}
16
-
17
- public static function createKnown($medium, $source, $searchTerm = null)
18
- {
19
- $referer = new self();
20
- $referer->medium = $medium;
21
- $referer->source = $source;
22
- $referer->searchTerm = $searchTerm;
23
-
24
- return $referer;
25
- }
26
-
27
- public static function createUnknown()
28
- {
29
- $referer = new self();
30
- $referer->medium = INBOUND_Medium::UNKNOWN;
31
-
32
- return $referer;
33
- }
34
-
35
- public static function createInternal()
36
- {
37
- $referer = new self();
38
- $referer->medium = INBOUND_Medium::INTERNAL;
39
-
40
- return $referer;
41
- }
42
-
43
- public static function createInvalid()
44
- {
45
- $referer = new self();
46
- $referer->medium = INBOUND_Medium::INVALID;
47
-
48
- return $referer;
49
- }
50
-
51
- /** @return boolean */
52
- public function isValid()
53
- {
54
- return $this->medium !== INBOUND_Medium::INVALID;
55
- }
56
-
57
- /** @return boolean */
58
- public function isKnown()
59
- {
60
- return !in_array($this->medium, array(INBOUND_Medium::UNKNOWN, INBOUND_Medium::INTERNAL, INBOUND_Medium::INVALID), true);
61
- }
62
-
63
- /** @return string */
64
- public function getMedium()
65
- {
66
- return $this->medium;
67
- }
68
-
69
- public function getSource()
70
- {
71
- return $this->source;
72
- }
73
-
74
- public function getSearchTerm()
75
- {
76
- return $this->searchTerm;
77
- }
78
- }
1
+ <?php
2
+
3
+ class INBOUND_Referer
4
+ {
5
+ /** @var string */
6
+ private $medium;
7
+
8
+ /** @var string */
9
+ private $source;
10
+
11
+ /** @var string|null */
12
+ private $searchTerm;
13
+
14
+ private function __construct()
15
+ {}
16
+
17
+ public static function createKnown($medium, $source, $searchTerm = null)
18
+ {
19
+ $referer = new self();
20
+ $referer->medium = $medium;
21
+ $referer->source = $source;
22
+ $referer->searchTerm = $searchTerm;
23
+
24
+ return $referer;
25
+ }
26
+
27
+ public static function createUnknown()
28
+ {
29
+ $referer = new self();
30
+ $referer->medium = INBOUND_Medium::UNKNOWN;
31
+
32
+ return $referer;
33
+ }
34
+
35
+ public static function createInternal()
36
+ {
37
+ $referer = new self();
38
+ $referer->medium = INBOUND_Medium::INTERNAL;
39
+
40
+ return $referer;
41
+ }
42
+
43
+ public static function createInvalid()
44
+ {
45
+ $referer = new self();
46
+ $referer->medium = INBOUND_Medium::INVALID;
47
+
48
+ return $referer;
49
+ }
50
+
51
+ /** @return boolean */
52
+ public function isValid()
53
+ {
54
+ return $this->medium !== INBOUND_Medium::INVALID;
55
+ }
56
+
57
+ /** @return boolean */
58
+ public function isKnown()
59
+ {
60
+ return !in_array($this->medium, array(INBOUND_Medium::UNKNOWN, INBOUND_Medium::INTERNAL, INBOUND_Medium::INVALID), true);
61
+ }
62
+
63
+ /** @return string */
64
+ public function getMedium()
65
+ {
66
+ return $this->medium;
67
+ }
68
+
69
+ public function getSource()
70
+ {
71
+ return $this->source;
72
+ }
73
+
74
+ public function getSearchTerm()
75
+ {
76
+ return $this->searchTerm;
77
+ }
78
+ }
shared/assets/includes/referers.json CHANGED
@@ -1,3890 +1,3890 @@
1
- {
2
- "unknown": {
3
- "Google": {
4
- "domains": [
5
- "support.google.com",
6
- "developers.google.com",
7
- "maps.google.com",
8
- "accounts.google.com",
9
- "drive.google.com",
10
- "sites.google.com",
11
- "groups.google.com",
12
- "groups.google.co.uk",
13
- "news.google.co.uk"
14
- ]
15
- },
16
- "Yahoo!": {
17
- "domains": [
18
- "finance.yahoo.com",
19
- "news.yahoo.com",
20
- "eurosport.yahoo.com",
21
- "sports.yahoo.com",
22
- "astrology.yahoo.com",
23
- "travel.yahoo.com",
24
- "answers.yahoo.com",
25
- "screen.yahoo.com",
26
- "weather.yahoo.com",
27
- "messenger.yahoo.com",
28
- "games.yahoo.com",
29
- "shopping.yahoo.net",
30
- "movies.yahoo.com",
31
- "cars.yahoo.com",
32
- "lifestyle.yahoo.com",
33
- "omg.yahoo.com",
34
- "match.yahoo.net"
35
- ]
36
- }
37
- },
38
- "search": {
39
- "TalkTalk": {
40
- "domains": [
41
- "www.talktalk.co.uk"
42
- ],
43
- "parameters": [
44
- "query"
45
- ]
46
- },
47
- "1.cz": {
48
- "domains": [
49
- "1.cz"
50
- ],
51
- "parameters": [
52
- "q"
53
- ]
54
- },
55
- "Softonic": {
56
- "domains": [
57
- "search.softonic.com"
58
- ],
59
- "parameters": [
60
- "q"
61
- ]
62
- },
63
- "GAIS": {
64
- "domains": [
65
- "gais.cs.ccu.edu.tw"
66
- ],
67
- "parameters": [
68
- "q"
69
- ]
70
- },
71
- "Freecause": {
72
- "domains": [
73
- "search.freecause.com"
74
- ],
75
- "parameters": [
76
- "p"
77
- ]
78
- },
79
- "RPMFind": {
80
- "domains": [
81
- "rpmfind.net",
82
- "fr2.rpmfind.net"
83
- ],
84
- "parameters": [
85
- "rpmfind.net",
86
- "fr2.rpmfind.net"
87
- ]
88
- },
89
- "Comcast": {
90
- "domains": [
91
- "serach.comcast.net"
92
- ],
93
- "parameters": [
94
- "q"
95
- ]
96
- },
97
- "Voila": {
98
- "domains": [
99
- "search.ke.voila.fr",
100
- "www.lemoteur.fr"
101
- ],
102
- "parameters": [
103
- "rdata"
104
- ]
105
- },
106
- "Nifty": {
107
- "domains": [
108
- "search.nifty.com"
109
- ],
110
- "parameters": [
111
- "q"
112
- ]
113
- },
114
- "Atlas": {
115
- "domains": [
116
- "searchatlas.centrum.cz"
117
- ],
118
- "parameters": [
119
- "q"
120
- ]
121
- },
122
- "Lo.st": {
123
- "domains": [
124
- "lo.st"
125
- ],
126
- "parameters": [
127
- "x_query"
128
- ]
129
- },
130
- "DasTelefonbuch": {
131
- "domains": [
132
- "www1.dastelefonbuch.de"
133
- ],
134
- "parameters": [
135
- "kw"
136
- ]
137
- },
138
- "Fireball": {
139
- "domains": [
140
- "www.fireball.de"
141
- ],
142
- "parameters": [
143
- "q"
144
- ]
145
- },
146
- "1und1": {
147
- "domains": [
148
- "search.1und1.de"
149
- ],
150
- "parameters": [
151
- "su"
152
- ]
153
- },
154
- "Virgilio": {
155
- "domains": [
156
- "ricerca.virgilio.it",
157
- "ricercaimmagini.virgilio.it",
158
- "ricercavideo.virgilio.it",
159
- "ricercanews.virgilio.it",
160
- "mobile.virgilio.it"
161
- ],
162
- "parameters": [
163
- "qs"
164
- ]
165
- },
166
- "Web.nl": {
167
- "domains": [
168
- "www.web.nl"
169
- ],
170
- "parameters": [
171
- "zoekwoord"
172
- ]
173
- },
174
- "Plazoo": {
175
- "domains": [
176
- "www.plazoo.com"
177
- ],
178
- "parameters": [
179
- "q"
180
- ]
181
- },
182
- "Goyellow.de": {
183
- "domains": [
184
- "www.goyellow.de"
185
- ],
186
- "parameters": [
187
- "MDN"
188
- ]
189
- },
190
- "AOL": {
191
- "domains": [
192
- "search.aol.com",
193
- "search.aol.it",
194
- "aolsearch.aol.com",
195
- "aolsearch.com",
196
- "www.aolrecherche.aol.fr",
197
- "www.aolrecherches.aol.fr",
198
- "www.aolimages.aol.fr",
199
- "aim.search.aol.com",
200
- "www.recherche.aol.fr",
201
- "find.web.aol.com",
202
- "recherche.aol.ca",
203
- "aolsearch.aol.co.uk",
204
- "search.aol.co.uk",
205
- "aolrecherche.aol.fr",
206
- "sucheaol.aol.de",
207
- "suche.aol.de",
208
- "suche.aolsvc.de",
209
- "aolbusqueda.aol.com.mx",
210
- "alicesuche.aol.de",
211
- "alicesuchet.aol.de",
212
- "suchet2.aol.de",
213
- "search.hp.my.aol.com.au",
214
- "search.hp.my.aol.de",
215
- "search.hp.my.aol.it",
216
- "search-intl.netscape.com"
217
- ],
218
- "parameters": [
219
- "q",
220
- "query"
221
- ]
222
- },
223
- "Acoon": {
224
- "domains": [
225
- "www.acoon.de"
226
- ],
227
- "parameters": [
228
- "begriff"
229
- ]
230
- },
231
- "Free": {
232
- "domains": [
233
- "search.free.fr",
234
- "search1-2.free.fr",
235
- "search1-1.free.fr"
236
- ],
237
- "parameters": [
238
- "q"
239
- ]
240
- },
241
- "Apollo Latvia": {
242
- "domains": [
243
- "apollo.lv/portal/search/"
244
- ],
245
- "parameters": [
246
- "q"
247
- ]
248
- },
249
- "HighBeam": {
250
- "domains": [
251
- "www.highbeam.com"
252
- ],
253
- "parameters": [
254
- "q"
255
- ]
256
- },
257
- "I-play": {
258
- "domains": [
259
- "start.iplay.com"
260
- ],
261
- "parameters": [
262
- "q"
263
- ]
264
- },
265
- "FriendFeed": {
266
- "domains": [
267
- "friendfeed.com"
268
- ],
269
- "parameters": [
270
- "q"
271
- ]
272
- },
273
- "Yasni": {
274
- "domains": [
275
- "www.yasni.de",
276
- "www.yasni.com",
277
- "www.yasni.co.uk",
278
- "www.yasni.ch",
279
- "www.yasni.at"
280
- ],
281
- "parameters": [
282
- "query"
283
- ]
284
- },
285
- "Gigablast": {
286
- "domains": [
287
- "www.gigablast.com",
288
- "dir.gigablast.com"
289
- ],
290
- "parameters": [
291
- "q"
292
- ]
293
- },
294
- "arama": {
295
- "domains": [
296
- "arama.com"
297
- ],
298
- "parameters": [
299
- "q"
300
- ]
301
- },
302
- "Fixsuche": {
303
- "domains": [
304
- "www.fixsuche.de"
305
- ],
306
- "parameters": [
307
- "q"
308
- ]
309
- },
310
- "Apontador": {
311
- "domains": [
312
- "apontador.com.br",
313
- "www.apontador.com.br"
314
- ],
315
- "parameters": [
316
- "q"
317
- ]
318
- },
319
- "Search.com": {
320
- "domains": [
321
- "www.search.com"
322
- ],
323
- "parameters": [
324
- "q"
325
- ]
326
- },
327
- "Monstercrawler": {
328
- "domains": [
329
- "www.monstercrawler.com"
330
- ],
331
- "parameters": [
332
- "qry"
333
- ]
334
- },
335
- "Google Images": {
336
- "domains": [
337
- "google.ac/imgres",
338
- "google.ad/imgres",
339
- "google.ae/imgres",
340
- "google.am/imgres",
341
- "google.as/imgres",
342
- "google.at/imgres",
343
- "google.az/imgres",
344
- "google.ba/imgres",
345
- "google.be/imgres",
346
- "google.bf/imgres",
347
- "google.bg/imgres",
348
- "google.bi/imgres",
349
- "google.bj/imgres",
350
- "google.bs/imgres",
351
- "google.by/imgres",
352
- "google.ca/imgres",
353
- "google.cat/imgres",
354
- "google.cc/imgres",
355
- "google.cd/imgres",
356
- "google.cf/imgres",
357
- "google.cg/imgres",
358
- "google.ch/imgres",
359
- "google.ci/imgres",
360
- "google.cl/imgres",
361
- "google.cm/imgres",
362
- "google.cn/imgres",
363
- "google.co.bw/imgres",
364
- "google.co.ck/imgres",
365
- "google.co.cr/imgres",
366
- "google.co.id/imgres",
367
- "google.co.il/imgres",
368
- "google.co.in/imgres",
369
- "google.co.jp/imgres",
370
- "google.co.ke/imgres",
371
- "google.co.kr/imgres",
372
- "google.co.ls/imgres",
373
- "google.co.ma/imgres",
374
- "google.co.mz/imgres",
375
- "google.co.nz/imgres",
376
- "google.co.th/imgres",
377
- "google.co.tz/imgres",
378
- "google.co.ug/imgres",
379
- "google.co.uk/imgres",
380
- "google.co.uz/imgres",
381
- "google.co.ve/imgres",
382
- "google.co.vi/imgres",
383
- "google.co.za/imgres",
384
- "google.co.zm/imgres",
385
- "google.co.zw/imgres",
386
- "google.com/imgres",
387
- "google.com.af/imgres",
388
- "google.com.ag/imgres",
389
- "google.com.ai/imgres",
390
- "google.com.ar/imgres",
391
- "google.com.au/imgres",
392
- "google.com.bd/imgres",
393
- "google.com.bh/imgres",
394
- "google.com.bn/imgres",
395
- "google.com.bo/imgres",
396
- "google.com.br/imgres",
397
- "google.com.by/imgres",
398
- "google.com.bz/imgres",
399
- "google.com.co/imgres",
400
- "google.com.cu/imgres",
401
- "google.com.cy/imgres",
402
- "google.com.do/imgres",
403
- "google.com.ec/imgres",
404
- "google.com.eg/imgres",
405
- "google.com.et/imgres",
406
- "google.com.fj/imgres",
407
- "google.com.gh/imgres",
408
- "google.com.gi/imgres",
409
- "google.com.gt/imgres",
410
- "google.com.hk/imgres",
411
- "google.com.jm/imgres",
412
- "google.com.kh/imgres",
413
- "google.com.kh/imgres",
414
- "google.com.kw/imgres",
415
- "google.com.lb/imgres",
416
- "google.com.lc/imgres",
417
- "google.com.ly/imgres",
418
- "google.com.mt/imgres",
419
- "google.com.mx/imgres",
420
- "google.com.my/imgres",
421
- "google.com.na/imgres",
422
- "google.com.nf/imgres",
423
- "google.com.ng/imgres",
424
- "google.com.ni/imgres",
425
- "google.com.np/imgres",
426
- "google.com.om/imgres",
427
- "google.com.pa/imgres",
428
- "google.com.pe/imgres",
429
- "google.com.ph/imgres",
430
- "google.com.pk/imgres",
431
- "google.com.pr/imgres",
432
- "google.com.py/imgres",
433
- "google.com.qa/imgres",
434
- "google.com.sa/imgres",
435
- "google.com.sb/imgres",
436
- "google.com.sg/imgres",
437
- "google.com.sl/imgres",
438
- "google.com.sv/imgres",
439
- "google.com.tj/imgres",
440
- "google.com.tn/imgres",
441
- "google.com.tr/imgres",
442
- "google.com.tw/imgres",
443
- "google.com.ua/imgres",
444
- "google.com.uy/imgres",
445
- "google.com.vc/imgres",
446
- "google.com.vn/imgres",
447
- "google.cv/imgres",
448
- "google.cz/imgres",
449
- "google.de/imgres",
450
- "google.dj/imgres",
451
- "google.dk/imgres",
452
- "google.dm/imgres",
453
- "google.dz/imgres",
454
- "google.ee/imgres",
455
- "google.es/imgres",
456
- "google.fi/imgres",
457
- "google.fm/imgres",
458
- "google.fr/imgres",
459
- "google.ga/imgres",
460
- "google.gd/imgres",
461
- "google.ge/imgres",
462
- "google.gf/imgres",
463
- "google.gg/imgres",
464
- "google.gl/imgres",
465
- "google.gm/imgres",
466
- "google.gp/imgres",
467
- "google.gr/imgres",
468
- "google.gy/imgres",
469
- "google.hn/imgres",
470
- "google.hr/imgres",
471
- "google.ht/imgres",
472
- "google.hu/imgres",
473
- "google.ie/imgres",
474
- "google.im/imgres",
475
- "google.io/imgres",
476
- "google.iq/imgres",
477
- "google.is/imgres",
478
- "google.it/imgres",
479
- "google.it.ao/imgres",
480
- "google.je/imgres",
481
- "google.jo/imgres",
482
- "google.kg/imgres",
483
- "google.ki/imgres",
484
- "google.kz/imgres",
485
- "google.la/imgres",
486
- "google.li/imgres",
487
- "google.lk/imgres",
488
- "google.lt/imgres",
489
- "google.lu/imgres",
490
- "google.lv/imgres",
491
- "google.md/imgres",
492
- "google.me/imgres",
493
- "google.mg/imgres",
494
- "google.mk/imgres",
495
- "google.ml/imgres",
496
- "google.mn/imgres",
497
- "google.ms/imgres",
498
- "google.mu/imgres",
499
- "google.mv/imgres",
500
- "google.mw/imgres",
501
- "google.ne/imgres",
502
- "google.nl/imgres",
503
- "google.no/imgres",
504
- "google.nr/imgres",
505
- "google.nu/imgres",
506
- "google.pl/imgres",
507
- "google.pn/imgres",
508
- "google.ps/imgres",
509
- "google.pt/imgres",
510
- "google.ro/imgres",
511
- "google.rs/imgres",
512
- "google.ru/imgres",
513
- "google.rw/imgres",
514
- "google.sc/imgres",
515
- "google.se/imgres",
516
- "google.sh/imgres",
517
- "google.si/imgres",
518
- "google.sk/imgres",
519
- "google.sm/imgres",
520
- "google.sn/imgres",
521
- "google.so/imgres",
522
- "google.st/imgres",
523
- "google.td/imgres",
524
- "google.tg/imgres",
525
- "google.tk/imgres",
526
- "google.tl/imgres",
527
- "google.tm/imgres",
528
- "google.to/imgres",
529
- "google.tt/imgres",
530
- "google.us/imgres",
531
- "google.vg/imgres",
532
- "google.vu/imgres",
533
- "images.google.ws",
534
- "images.google.ac",
535
- "images.google.ad",
536
- "images.google.ae",
537
- "images.google.am",
538
- "images.google.as",
539
- "images.google.at",
540
- "images.google.az",
541
- "images.google.ba",
542
- "images.google.be",
543
- "images.google.bf",
544
- "images.google.bg",
545
- "images.google.bi",
546
- "images.google.bj",
547
- "images.google.bs",
548
- "images.google.by",
549
- "images.google.ca",
550
- "images.google.cat",
551
- "images.google.cc",
552
- "images.google.cd",
553
- "images.google.cf",
554
- "images.google.cg",
555
- "images.google.ch",
556
- "images.google.ci",
557
- "images.google.cl",
558
- "images.google.cm",
559
- "images.google.cn",
560
- "images.google.co.bw",
561
- "images.google.co.ck",
562
- "images.google.co.cr",
563
- "images.google.co.id",
564
- "images.google.co.il",
565
- "images.google.co.in",
566
- "images.google.co.jp",
567
- "images.google.co.ke",
568
- "images.google.co.kr",
569
- "images.google.co.ls",
570
- "images.google.co.ma",
571
- "images.google.co.mz",
572
- "images.google.co.nz",
573
- "images.google.co.th",
574
- "images.google.co.tz",
575
- "images.google.co.ug",
576
- "images.google.co.uk",
577
- "images.google.co.uz",
578
- "images.google.co.ve",
579
- "images.google.co.vi",
580
- "images.google.co.za",
581
- "images.google.co.zm",
582
- "images.google.co.zw",
583
- "images.google.com",
584
- "images.google.com.af",
585
- "images.google.com.ag",
586
- "images.google.com.ai",
587
- "images.google.com.ar",
588
- "images.google.com.au",
589
- "images.google.com.bd",
590
- "images.google.com.bh",
591
- "images.google.com.bn",
592
- "images.google.com.bo",
593
- "images.google.com.br",
594
- "images.google.com.by",
595
- "images.google.com.bz",
596
- "images.google.com.co",
597
- "images.google.com.cu",
598
- "images.google.com.cy",
599
- "images.google.com.do",
600
- "images.google.com.ec",
601
- "images.google.com.eg",
602
- "images.google.com.et",
603
- "images.google.com.fj",
604
- "images.google.com.gh",
605
- "images.google.com.gi",
606
- "images.google.com.gt",
607
- "images.google.com.hk",
608
- "images.google.com.jm",
609
- "images.google.com.kh",
610
- "images.google.com.kh",
611
- "images.google.com.kw",
612
- "images.google.com.lb",
613
- "images.google.com.lc",
614
- "images.google.com.ly",
615
- "images.google.com.mt",
616
- "images.google.com.mx",
617
- "images.google.com.my",
618
- "images.google.com.na",
619
- "images.google.com.nf",
620
- "images.google.com.ng",
621
- "images.google.com.ni",
622
- "images.google.com.np",
623
- "images.google.com.om",
624
- "images.google.com.pa",
625
- "images.google.com.pe",
626
- "images.google.com.ph",
627
- "images.google.com.pk",
628
- "images.google.com.pr",
629
- "images.google.com.py",
630
- "images.google.com.qa",
631
- "images.google.com.sa",
632
- "images.google.com.sb",
633
- "images.google.com.sg",
634
- "images.google.com.sl",
635
- "images.google.com.sv",
636
- "images.google.com.tj",
637
- "images.google.com.tn",
638
- "images.google.com.tr",
639
- "images.google.com.tw",
640
- "images.google.com.ua",
641
- "images.google.com.uy",
642
- "images.google.com.vc",
643
- "images.google.com.vn",
644
- "images.google.cv",
645
- "images.google.cz",
646
- "images.google.de",
647
- "images.google.dj",
648
- "images.google.dk",
649
- "images.google.dm",
650
- "images.google.dz",
651
- "images.google.ee",
652
- "images.google.es",
653
- "images.google.fi",
654
- "images.google.fm",
655
- "images.google.fr",
656
- "images.google.ga",
657
- "images.google.gd",
658
- "images.google.ge",
659
- "images.google.gf",
660
- "images.google.gg",
661
- "images.google.gl",
662
- "images.google.gm",
663
- "images.google.gp",
664
- "images.google.gr",
665
- "images.google.gy",
666
- "images.google.hn",
667
- "images.google.hr",
668
- "images.google.ht",
669
- "images.google.hu",
670
- "images.google.ie",
671
- "images.google.im",
672
- "images.google.io",
673
- "images.google.iq",
674
- "images.google.is",
675
- "images.google.it",
676
- "images.google.it.ao",
677
- "images.google.je",
678
- "images.google.jo",
679
- "images.google.kg",
680
- "images.google.ki",
681
- "images.google.kz",
682
- "images.google.la",
683
- "images.google.li",
684
- "images.google.lk",
685
- "images.google.lt",
686
- "images.google.lu",
687
- "images.google.lv",
688
- "images.google.md",
689
- "images.google.me",
690
- "images.google.mg",
691
- "images.google.mk",
692
- "images.google.ml",
693
- "images.google.mn",
694
- "images.google.ms",
695
- "images.google.mu",
696
- "images.google.mv",
697
- "images.google.mw",
698
- "images.google.ne",
699
- "images.google.nl",
700
- "images.google.no",
701
- "images.google.nr",
702
- "images.google.nu",
703
- "images.google.pl",
704
- "images.google.pn",
705
- "images.google.ps",
706
- "images.google.pt",
707
- "images.google.ro",
708
- "images.google.rs",
709
- "images.google.ru",
710
- "images.google.rw",
711
- "images.google.sc",
712
- "images.google.se",
713
- "images.google.sh",
714
- "images.google.si",
715
- "images.google.sk",
716
- "images.google.sm",
717
- "images.google.sn",
718
- "images.google.so",
719
- "images.google.st",
720
- "images.google.td",
721
- "images.google.tg",
722
- "images.google.tk",
723
- "images.google.tl",
724
- "images.google.tm",
725
- "images.google.to",
726
- "images.google.tt",
727
- "images.google.us",
728
- "images.google.vg",
729
- "images.google.vu",
730
- "images.google.ws"
731
- ],
732
- "parameters": [
733
- "q"
734
- ]
735
- },
736
- "ABCs\u00f8k": {
737
- "domains": [
738
- "abcsolk.no",
739
- "verden.abcsok.no"
740
- ],
741
- "parameters": [
742
- "q"
743
- ]
744
- },
745
- "Google Product Search": {
746
- "domains": [
747
- "google.ac/products",
748
- "google.ad/products",
749
- "google.ae/products",
750
- "google.am/products",
751
- "google.as/products",
752
- "google.at/products",
753
- "google.az/products",
754
- "google.ba/products",
755
- "google.be/products",
756
- "google.bf/products",
757
- "google.bg/products",
758
- "google.bi/products",
759
- "google.bj/products",
760
- "google.bs/products",
761
- "google.by/products",
762
- "google.ca/products",
763
- "google.cat/products",
764
- "google.cc/products",
765
- "google.cd/products",
766
- "google.cf/products",
767
- "google.cg/products",
768
- "google.ch/products",
769
- "google.ci/products",
770
- "google.cl/products",
771
- "google.cm/products",
772
- "google.cn/products",
773
- "google.co.bw/products",
774
- "google.co.ck/products",
775
- "google.co.cr/products",
776
- "google.co.id/products",
777
- "google.co.il/products",
778
- "google.co.in/products",
779
- "google.co.jp/products",
780
- "google.co.ke/products",
781
- "google.co.kr/products",
782
- "google.co.ls/products",
783
- "google.co.ma/products",
784
- "google.co.mz/products",
785
- "google.co.nz/products",
786
- "google.co.th/products",
787
- "google.co.tz/products",
788
- "google.co.ug/products",
789
- "google.co.uk/products",
790
- "google.co.uz/products",
791
- "google.co.ve/products",
792
- "google.co.vi/products",
793
- "google.co.za/products",
794
- "google.co.zm/products",
795
- "google.co.zw/products",
796
- "google.com/products",
797
- "google.com.af/products",
798
- "google.com.ag/products",
799
- "google.com.ai/products",
800
- "google.com.ar/products",
801
- "google.com.au/products",
802
- "google.com.bd/products",
803
- "google.com.bh/products",
804
- "google.com.bn/products",
805
- "google.com.bo/products",
806
- "google.com.br/products",
807
- "google.com.by/products",
808
- "google.com.bz/products",
809
- "google.com.co/products",
810
- "google.com.cu/products",
811
- "google.com.cy/products",
812
- "google.com.do/products",
813
- "google.com.ec/products",
814
- "google.com.eg/products",
815
- "google.com.et/products",
816
- "google.com.fj/products",
817
- "google.com.gh/products",
818
- "google.com.gi/products",
819
- "google.com.gt/products",
820
- "google.com.hk/products",
821
- "google.com.jm/products",
822
- "google.com.kh/products",
823
- "google.com.kh/products",
824
- "google.com.kw/products",
825
- "google.com.lb/products",
826
- "google.com.lc/products",
827
- "google.com.ly/products",
828
- "google.com.mt/products",
829
- "google.com.mx/products",
830
- "google.com.my/products",
831
- "google.com.na/products",
832
- "google.com.nf/products",
833
- "google.com.ng/products",
834
- "google.com.ni/products",
835
- "google.com.np/products",
836
- "google.com.om/products",
837
- "google.com.pa/products",
838
- "google.com.pe/products",
839
- "google.com.ph/products",
840
- "google.com.pk/products",
841
- "google.com.pr/products",
842
- "google.com.py/products",
843
- "google.com.qa/products",
844
- "google.com.sa/products",
845
- "google.com.sb/products",
846
- "google.com.sg/products",
847
- "google.com.sl/products",
848
- "google.com.sv/products",
849
- "google.com.tj/products",
850
- "google.com.tn/products",
851
- "google.com.tr/products",
852
- "google.com.tw/products",
853
- "google.com.ua/products",
854
- "google.com.uy/products",
855
- "google.com.vc/products",
856
- "google.com.vn/products",
857
- "google.cv/products",
858
- "google.cz/products",
859
- "google.de/products",
860
- "google.dj/products",
861
- "google.dk/products",
862
- "google.dm/products",
863
- "google.dz/products",
864
- "google.ee/products",
865
- "google.es/products",
866
- "google.fi/products",
867
- "google.fm/products",
868
- "google.fr/products",
869
- "google.ga/products",
870
- "google.gd/products",
871
- "google.ge/products",
872
- "google.gf/products",
873
- "google.gg/products",
874
- "google.gl/products",
875
- "google.gm/products",
876
- "google.gp/products",
877
- "google.gr/products",
878
- "google.gy/products",
879
- "google.hn/products",
880
- "google.hr/products",
881
- "google.ht/products",
882
- "google.hu/products",
883
- "google.ie/products",
884
- "google.im/products",
885
- "google.io/products",
886
- "google.iq/products",
887
- "google.is/products",
888
- "google.it/products",
889
- "google.it.ao/products",
890
- "google.je/products",
891
- "google.jo/products",
892
- "google.kg/products",
893
- "google.ki/products",
894
- "google.kz/products",
895
- "google.la/products",
896
- "google.li/products",
897
- "google.lk/products",
898
- "google.lt/products",
899
- "google.lu/products",
900
- "google.lv/products",
901
- "google.md/products",
902
- "google.me/products",
903
- "google.mg/products",
904
- "google.mk/products",
905
- "google.ml/products",
906
- "google.mn/products",
907
- "google.ms/products",
908
- "google.mu/products",
909
- "google.mv/products",
910
- "google.mw/products",
911
- "google.ne/products",
912
- "google.nl/products",
913
- "google.no/products",
914
- "google.nr/products",
915
- "google.nu/products",
916
- "google.pl/products",
917
- "google.pn/products",
918
- "google.ps/products",
919
- "google.pt/products",
920
- "google.ro/products",
921
- "google.rs/products",
922
- "google.ru/products",
923
- "google.rw/products",
924
- "google.sc/products",
925
- "google.se/products",
926
- "google.sh/products",
927
- "google.si/products",
928
- "google.sk/products",
929
- "google.sm/products",
930
- "google.sn/products",
931
- "google.so/products",
932
- "google.st/products",
933
- "google.td/products",
934
- "google.tg/products",
935
- "google.tk/products",
936
- "google.tl/products",
937
- "google.tm/products",
938
- "google.to/products",
939
- "google.tt/products",
940
- "google.us/products",
941
- "google.vg/products",
942
- "google.vu/products",
943
- "google.ws/products",
944
- "www.google.ac/products",
945
- "www.google.ad/products",
946
- "www.google.ae/products",
947
- "www.google.am/products",
948
- "www.google.as/products",
949
- "www.google.at/products",
950
- "www.google.az/products",
951
- "www.google.ba/products",
952
- "www.google.be/products",
953
- "www.google.bf/products",
954
- "www.google.bg/products",
955
- "www.google.bi/products",
956
- "www.google.bj/products",
957
- "www.google.bs/products",
958
- "www.google.by/products",
959
- "www.google.ca/products",
960
- "www.google.cat/products",
961
- "www.google.cc/products",
962
- "www.google.cd/products",
963
- "www.google.cf/products",
964
- "www.google.cg/products",
965
- "www.google.ch/products",
966
- "www.google.ci/products",
967
- "www.google.cl/products",
968
- "www.google.cm/products",
969
- "www.google.cn/products",
970
- "www.google.co.bw/products",
971
- "www.google.co.ck/products",
972
- "www.google.co.cr/products",
973
- "www.google.co.id/products",
974
- "www.google.co.il/products",
975
- "www.google.co.in/products",
976
- "www.google.co.jp/products",
977
- "www.google.co.ke/products",
978
- "www.google.co.kr/products",
979
- "www.google.co.ls/products",
980
- "www.google.co.ma/products",
981
- "www.google.co.mz/products",
982
- "www.google.co.nz/products",
983
- "www.google.co.th/products",
984
- "www.google.co.tz/products",
985
- "www.google.co.ug/products",
986
- "www.google.co.uk/products",
987
- "www.google.co.uz/products",
988
- "www.google.co.ve/products",
989
- "www.google.co.vi/products",
990
- "www.google.co.za/products",
991
- "www.google.co.zm/products",
992
- "www.google.co.zw/products",
993
- "www.google.com/products",
994
- "www.google.com.af/products",
995
- "www.google.com.ag/products",
996
- "www.google.com.ai/products",
997
- "www.google.com.ar/products",
998
- "www.google.com.au/products",
999
- "www.google.com.bd/products",
1000
- "www.google.com.bh/products",
1001
- "www.google.com.bn/products",
1002
- "www.google.com.bo/products",
1003
- "www.google.com.br/products",
1004
- "www.google.com.by/products",
1005
- "www.google.com.bz/products",
1006
- "www.google.com.co/products",
1007
- "www.google.com.cu/products",
1008
- "www.google.com.cy/products",
1009
- "www.google.com.do/products",
1010
- "www.google.com.ec/products",
1011
- "www.google.com.eg/products",
1012
- "www.google.com.et/products",
1013
- "www.google.com.fj/products",
1014
- "www.google.com.gh/products",
1015
- "www.google.com.gi/products",
1016
- "www.google.com.gt/products",
1017
- "www.google.com.hk/products",
1018
- "www.google.com.jm/products",
1019
- "www.google.com.kh/products",
1020
- "www.google.com.kh/products",
1021
- "www.google.com.kw/products",
1022
- "www.google.com.lb/products",
1023
- "www.google.com.lc/products",
1024
- "www.google.com.ly/products",
1025
- "www.google.com.mt/products",
1026
- "www.google.com.mx/products",
1027
- "www.google.com.my/products",
1028
- "www.google.com.na/products",
1029
- "www.google.com.nf/products",
1030
- "www.google.com.ng/products",
1031
- "www.google.com.ni/products",
1032
- "www.google.com.np/products",
1033
- "www.google.com.om/products",
1034
- "www.google.com.pa/products",
1035
- "www.google.com.pe/products",
1036
- "www.google.com.ph/products",
1037
- "www.google.com.pk/products",
1038
- "www.google.com.pr/products",
1039
- "www.google.com.py/products",
1040
- "www.google.com.qa/products",
1041
- "www.google.com.sa/products",
1042
- "www.google.com.sb/products",
1043
- "www.google.com.sg/products",
1044
- "www.google.com.sl/products",
1045
- "www.google.com.sv/products",
1046
- "www.google.com.tj/products",
1047
- "www.google.com.tn/products",
1048
- "www.google.com.tr/products",
1049
- "www.google.com.tw/products",
1050
- "www.google.com.ua/products",
1051
- "www.google.com.uy/products",
1052
- "www.google.com.vc/products",
1053
- "www.google.com.vn/products",
1054
- "www.google.cv/products",
1055
- "www.google.cz/products",
1056
- "www.google.de/products",
1057
- "www.google.dj/products",
1058
- "www.google.dk/products",
1059
- "www.google.dm/products",
1060
- "www.google.dz/products",
1061
- "www.google.ee/products",
1062
- "www.google.es/products",
1063
- "www.google.fi/products",
1064
- "www.google.fm/products",
1065
- "www.google.fr/products",
1066
- "www.google.ga/products",
1067
- "www.google.gd/products",
1068
- "www.google.ge/products",
1069
- "www.google.gf/products",
1070
- "www.google.gg/products",
1071
- "www.google.gl/products",
1072
- "www.google.gm/products",
1073
- "www.google.gp/products",
1074
- "www.google.gr/products",
1075
- "www.google.gy/products",
1076
- "www.google.hn/products",
1077
- "www.google.hr/products",
1078
- "www.google.ht/products",
1079
- "www.google.hu/products",
1080
- "www.google.ie/products",
1081
- "www.google.im/products",
1082
- "www.google.io/products",
1083
- "www.google.iq/products",
1084
- "www.google.is/products",
1085
- "www.google.it/products",
1086
- "www.google.it.ao/products",
1087
- "www.google.je/products",
1088
- "www.google.jo/products",
1089
- "www.google.kg/products",
1090
- "www.google.ki/products",
1091
- "www.google.kz/products",
1092
- "www.google.la/products",
1093
- "www.google.li/products",
1094
- "www.google.lk/products",
1095
- "www.google.lt/products",
1096
- "www.google.lu/products",
1097
- "www.google.lv/products",
1098
- "www.google.md/products",
1099
- "www.google.me/products",
1100
- "www.google.mg/products",
1101
- "www.google.mk/products",
1102
- "www.google.ml/products",
1103
- "www.google.mn/products",
1104
- "www.google.ms/products",
1105
- "www.google.mu/products",
1106
- "www.google.mv/products",
1107
- "www.google.mw/products",
1108
- "www.google.ne/products",
1109
- "www.google.nl/products",
1110
- "www.google.no/products",
1111
- "www.google.nr/products",
1112
- "www.google.nu/products",
1113
- "www.google.pl/products",
1114
- "www.google.pn/products",
1115
- "www.google.ps/products",
1116
- "www.google.pt/products",
1117
- "www.google.ro/products",
1118
- "www.google.rs/products",
1119
- "www.google.ru/products",
1120
- "www.google.rw/products",
1121
- "www.google.sc/products",
1122
- "www.google.se/products",
1123
- "www.google.sh/products",
1124
- "www.google.si/products",
1125
- "www.google.sk/products",
1126
- "www.google.sm/products",
1127
- "www.google.sn/products",
1128
- "www.google.so/products",
1129
- "www.google.st/products",
1130
- "www.google.td/products",
1131
- "www.google.tg/products",
1132
- "www.google.tk/products",
1133
- "www.google.tl/products",
1134
- "www.google.tm/products",
1135
- "www.google.to/products",
1136
- "www.google.tt/products",
1137
- "www.google.us/products",
1138
- "www.google.vg/products",
1139
- "www.google.vu/products",
1140
- "www.google.ws/products"
1141
- ],
1142
- "parameters": [
1143
- "q"
1144
- ]
1145
- },
1146
- "DasOertliche": {
1147
- "domains": [
1148
- "www.dasoertliche.de"
1149
- ],
1150
- "parameters": [
1151
- "kw"
1152
- ]
1153
- },
1154
- "InfoSpace": {
1155
- "domains": [
1156
- "infospace.com",
1157
- "dogpile.com",
1158
- "www.dogpile.com",
1159
- "metacrawler.com",
1160
- "webfetch.com",
1161
- "webcrawler.com",
1162
- "search.kiwee.com",
1163
- "isearch.babylon.com",
1164
- "start.facemoods.com",
1165
- "search.magnetic.com",
1166
- "search.searchcompletion.com",
1167
- "clusty.com"
1168
- ],
1169
- "parameters": [
1170
- "q",
1171
- "s"
1172
- ]
1173
- },
1174
- "Weborama": {
1175
- "domains": [
1176
- "www.weborama.com"
1177
- ],
1178
- "parameters": [
1179
- "QUERY"
1180
- ]
1181
- },
1182
- "Bluewin": {
1183
- "domains": [
1184
- "search.bluewin.ch"
1185
- ],
1186
- "parameters": [
1187
- "searchTerm"
1188
- ]
1189
- },
1190
- "Neti": {
1191
- "domains": [
1192
- "www.neti.ee"
1193
- ],
1194
- "parameters": [
1195
- "query"
1196
- ]
1197
- },
1198
- "Winamp": {
1199
- "domains": [
1200
- "search.winamp.com"
1201
- ],
1202
- "parameters": [
1203
- "q"
1204
- ]
1205
- },
1206
- "Nigma": {
1207
- "domains": [
1208
- "nigma.ru"
1209
- ],
1210
- "parameters": [
1211
- "s"
1212
- ]
1213
- },
1214
- "Yahoo! Images": {
1215
- "domains": [
1216
- "image.yahoo.cn",
1217
- "images.search.yahoo.com"
1218
- ],
1219
- "parameters": [
1220
- "p",
1221
- "q"
1222
- ]
1223
- },
1224
- "Exalead": {
1225
- "domains": [
1226
- "www.exalead.fr",
1227
- "www.exalead.com"
1228
- ],
1229
- "parameters": [
1230
- "q"
1231
- ]
1232
- },
1233
- "Teoma": {
1234
- "domains": [
1235
- "www.teoma.com"
1236
- ],
1237
- "parameters": [
1238
- "q"
1239
- ]
1240
- },
1241
- "Needtofind": {
1242
- "domains": [
1243
- "ko.search.need2find.com"
1244
- ],
1245
- "parameters": [
1246
- "searchfor"
1247
- ]
1248
- },
1249
- "Looksmart": {
1250
- "domains": [
1251
- "www.looksmart.com"
1252
- ],
1253
- "parameters": [
1254
- "key"
1255
- ]
1256
- },
1257
- "Wirtualna Polska": {
1258
- "domains": [
1259
- "szukaj.wp.pl"
1260
- ],
1261
- "parameters": [
1262
- "szukaj"
1263
- ]
1264
- },
1265
- "Toolbarhome": {
1266
- "domains": [
1267
- "www.toolbarhome.com",
1268
- "vshare.toolbarhome.com"
1269
- ],
1270
- "parameters": [
1271
- "q"
1272
- ]
1273
- },
1274
- "Searchalot": {
1275
- "domains": [
1276
- "searchalot.com"
1277
- ],
1278
- "parameters": [
1279
- "q"
1280
- ]
1281
- },
1282
- "Yandex": {
1283
- "domains": [
1284
- "yandex.ru",
1285
- "yandex.ua",
1286
- "yandex.com",
1287
- "www.yandex.ru",
1288
- "www.yandex.ua",
1289
- "www.yandex.com"
1290
- ],
1291
- "parameters": [
1292
- "text"
1293
- ]
1294
- },
1295
- "canoe.ca": {
1296
- "domains": [
1297
- "web.canoe.ca"
1298
- ],
1299
- "parameters": [
1300
- "q"
1301
- ]
1302
- },
1303
- "Compuserve": {
1304
- "domains": [
1305
- "websearch.cs.com"
1306
- ],
1307
- "parameters": [
1308
- "query"
1309
- ]
1310
- },
1311
- "Startpagina": {
1312
- "domains": [
1313
- "startgoogle.startpagina.nl"
1314
- ],
1315
- "parameters": [
1316
- "q"
1317
- ]
1318
- },
1319
- "eo": {
1320
- "domains": [
1321
- "eo.st"
1322
- ],
1323
- "parameters": [
1324
- "x_query"
1325
- ]
1326
- },
1327
- "Zhongsou": {
1328
- "domains": [
1329
- "p.zhongsou.com"
1330
- ],
1331
- "parameters": [
1332
- "w"
1333
- ]
1334
- },
1335
- "La Toile Du Quebec Via Google": {
1336
- "domains": [
1337
- "www.toile.com",
1338
- "web.toile.com"
1339
- ],
1340
- "parameters": [
1341
- "q"
1342
- ]
1343
- },
1344
- "Paperball": {
1345
- "domains": [
1346
- "www.paperball.de"
1347
- ],
1348
- "parameters": [
1349
- "q"
1350
- ]
1351
- },
1352
- "Jungle Spider": {
1353
- "domains": [
1354
- "www.jungle-spider.de"
1355
- ],
1356
- "parameters": [
1357
- "q"
1358
- ]
1359
- },
1360
- "PeoplePC": {
1361
- "domains": [
1362
- "search.peoplepc.com"
1363
- ],
1364
- "parameters": [
1365
- "q"
1366
- ]
1367
- },
1368
- "MetaCrawler.de": {
1369
- "domains": [
1370
- "s1.metacrawler.de",
1371
- "s2.metacrawler.de",
1372
- "s3.metacrawler.de"
1373
- ],
1374
- "parameters": [
1375
- "qry"
1376
- ]
1377
- },
1378
- "Orange": {
1379
- "domains": [
1380
- "busca.orange.es",
1381
- "search.orange.co.uk"
1382
- ],
1383
- "parameters": [
1384
- "q"
1385
- ]
1386
- },
1387
- "Gule Sider": {
1388
- "domains": [
1389
- "www.gulesider.no"
1390
- ],
1391
- "parameters": [
1392
- "q"
1393
- ]
1394
- },
1395
- "Francite": {
1396
- "domains": [
1397
- "recherche.francite.com"
1398
- ],
1399
- "parameters": [
1400
- "name"
1401
- ]
1402
- },
1403
- "Ask Toolbar": {
1404
- "domains": [
1405
- "search.tb.ask.com"
1406
- ],
1407
- "parameters": [
1408
- "searchfor"
1409
- ]
1410
- },
1411
- "Aport": {
1412
- "domains": [
1413
- "sm.aport.ru"
1414
- ],
1415
- "parameters": [
1416
- "r"
1417
- ]
1418
- },
1419
- "Trusted-Search": {
1420
- "domains": [
1421
- "www.trusted--search.com"
1422
- ],
1423
- "parameters": [
1424
- "w"
1425
- ]
1426
- },
1427
- "goo": {
1428
- "domains": [
1429
- "search.goo.ne.jp",
1430
- "ocnsearch.goo.ne.jp"
1431
- ],
1432
- "parameters": [
1433
- "MT"
1434
- ]
1435
- },
1436
- "Fast Browser Search": {
1437
- "domains": [
1438
- "www.fastbrowsersearch.com"
1439
- ],
1440
- "parameters": [
1441
- "q"
1442
- ]
1443
- },
1444
- "Blogpulse": {
1445
- "domains": [
1446
- "www.blogpulse.com"
1447
- ],
1448
- "parameters": [
1449
- "query"
1450
- ]
1451
- },
1452
- "Volny": {
1453
- "domains": [
1454
- "web.volny.cz"
1455
- ],
1456
- "parameters": [
1457
- "search"
1458
- ]
1459
- },
1460
- "Icerockeet": {
1461
- "domains": [
1462
- "blogs.icerocket.com"
1463
- ],
1464
- "parameters": [
1465
- "q"
1466
- ]
1467
- },
1468
- "Terra": {
1469
- "domains": [
1470
- "buscador.terra.es",
1471
- "buscador.terra.cl",
1472
- "buscador.terra.com.br"
1473
- ],
1474
- "parameters": [
1475
- "query"
1476
- ]
1477
- },
1478
- "Searchy": {
1479
- "domains": [
1480
- "www.searchy.co.uk"
1481
- ],
1482
- "parameters": [
1483
- "q"
1484
- ]
1485
- },
1486
- "Onet": {
1487
- "domains": [
1488
- "szukaj.onet.pl"
1489
- ],
1490
- "parameters": [
1491
- "qt"
1492
- ]
1493
- },
1494
- "Digg": {
1495
- "domains": [
1496
- "digg.com"
1497
- ],
1498
- "parameters": [
1499
- "s"
1500
- ]
1501
- },
1502
- "Abacho": {
1503
- "domains": [
1504
- "www.abacho.de",
1505
- "www.abacho.com",
1506
- "www.abacho.co.uk",
1507
- "www.se.abacho.com",
1508
- "www.tr.abacho.com",
1509
- "www.abacho.at",
1510
- "www.abacho.fr",
1511
- "www.abacho.es",
1512
- "www.abacho.ch",
1513
- "www.abacho.it"
1514
- ],
1515
- "parameters": [
1516
- "q"
1517
- ]
1518
- },
1519
- "maailm": {
1520
- "domains": [
1521
- "www.maailm.com"
1522
- ],
1523
- "parameters": [
1524
- "tekst"
1525
- ]
1526
- },
1527
- "Flix": {
1528
- "domains": [
1529
- "www.flix.de"
1530
- ],
1531
- "parameters": [
1532
- "keyword"
1533
- ]
1534
- },
1535
- "Suchnase": {
1536
- "domains": [
1537
- "www.suchnase.de"
1538
- ],
1539
- "parameters": [
1540
- "q"
1541
- ]
1542
- },
1543
- "Freenet": {
1544
- "domains": [
1545
- "suche.freenet.de"
1546
- ],
1547
- "parameters": [
1548
- "query",
1549
- "Keywords"
1550
- ]
1551
- },
1552
- "DuckDuckGoL": {
1553
- "domains": [
1554
- "duckduckgo.com"
1555
- ],
1556
- "parameters": [
1557
- "q"
1558
- ]
1559
- },
1560
- "Poisk.ru": {
1561
- "domains": [
1562
- "www.plazoo.com"
1563
- ],
1564
- "parameters": [
1565
- "q"
1566
- ]
1567
- },
1568
- "Sharelook": {
1569
- "domains": [
1570
- "www.sharelook.fr"
1571
- ],
1572
- "parameters": [
1573
- "keyword"
1574
- ]
1575
- },
1576
- "Najdi": {
1577
- "domains": [
1578
- "www.najdi.si"
1579
- ],
1580
- "parameters": [
1581
- "q"
1582
- ]
1583
- },
1584
- "Picsearch": {
1585
- "domains": [
1586
- "www.picsearch.com"
1587
- ],
1588
- "parameters": [
1589
- "q"
1590
- ]
1591
- },
1592
- "Mail.ru": {
1593
- "domains": [
1594
- "go.mail.ru"
1595
- ],
1596
- "parameters": [
1597
- "q"
1598
- ]
1599
- },
1600
- "Alexa": {
1601
- "domains": [
1602
- "alexa.com",
1603
- "search.toolbars.alexa.com"
1604
- ],
1605
- "parameters": [
1606
- "q"
1607
- ]
1608
- },
1609
- "Metager": {
1610
- "domains": [
1611
- "meta.rrzn.uni-hannover.de",
1612
- "www.metager.de"
1613
- ],
1614
- "parameters": [
1615
- "eingabe"
1616
- ]
1617
- },
1618
- "Technorati": {
1619
- "domains": [
1620
- "technorati.com"
1621
- ],
1622
- "parameters": [
1623
- "q"
1624
- ]
1625
- },
1626
- "WWW": {
1627
- "domains": [
1628
- "search.www.ee"
1629
- ],
1630
- "parameters": [
1631
- "query"
1632
- ]
1633
- },
1634
- "Trouvez.com": {
1635
- "domains": [
1636
- "www.trouvez.com"
1637
- ],
1638
- "parameters": [
1639
- "query"
1640
- ]
1641
- },
1642
- "IXquick": {
1643
- "domains": [
1644
- "ixquick.com",
1645
- "www.eu.ixquick.com",
1646
- "ixquick.de",
1647
- "www.ixquick.de",
1648
- "us.ixquick.com",
1649
- "s1.us.ixquick.com",
1650
- "s2.us.ixquick.com",
1651
- "s3.us.ixquick.com",
1652
- "s4.us.ixquick.com",
1653
- "s5.us.ixquick.com",
1654
- "eu.ixquick.com",
1655
- "s8-eu.ixquick.com",
1656
- "s1-eu.ixquick.de"
1657
- ],
1658
- "parameters": [
1659
- "query"
1660
- ]
1661
- },
1662
- "Zapmeta": {
1663
- "domains": [
1664
- "www.zapmeta.com",
1665
- "www.zapmeta.nl",
1666
- "www.zapmeta.de",
1667
- "uk.zapmeta.com"
1668
- ],
1669
- "parameters": [
1670
- "q",
1671
- "query"
1672
- ]
1673
- },
1674
- "Yippy": {
1675
- "domains": [
1676
- "search.yippy.com"
1677
- ],
1678
- "parameters": [
1679
- "q",
1680
- "query"
1681
- ]
1682
- },
1683
- "Gomeo": {
1684
- "domains": [
1685
- "www.gomeo.com"
1686
- ],
1687
- "parameters": [
1688
- "Keywords"
1689
- ]
1690
- },
1691
- "Walhello": {
1692
- "domains": [
1693
- "www.walhello.info",
1694
- "www.walhello.com",
1695
- "www.walhello.de",
1696
- "www.walhello.nl"
1697
- ],
1698
- "parameters": [
1699
- "key"
1700
- ]
1701
- },
1702
- "Meta": {
1703
- "domains": [
1704
- "meta.ua"
1705
- ],
1706
- "parameters": [
1707
- "q"
1708
- ]
1709
- },
1710
- "Skynet": {
1711
- "domains": [
1712
- "www.skynet.be"
1713
- ],
1714
- "parameters": [
1715
- "q"
1716
- ]
1717
- },
1718
- "Blogdigger": {
1719
- "domains": [
1720
- "www.blogdigger.com"
1721
- ],
1722
- "parameters": [
1723
- "q"
1724
- ]
1725
- },
1726
- "WebSearch": {
1727
- "domains": [
1728
- "www.websearch.com"
1729
- ],
1730
- "parameters": [
1731
- "qkw",
1732
- "q"
1733
- ]
1734
- },
1735
- "Rambler": {
1736
- "domains": [
1737
- "nova.rambler.ru"
1738
- ],
1739
- "parameters": [
1740
- "query",
1741
- "words"
1742
- ]
1743
- },
1744
- "Latne": {
1745
- "domains": [
1746
- "www.latne.lv"
1747
- ],
1748
- "parameters": [
1749
- "q"
1750
- ]
1751
- },
1752
- "MySearch": {
1753
- "domains": [
1754
- "www.mysearch.com",
1755
- "ms114.mysearch.com",
1756
- "ms146.mysearch.com",
1757
- "kf.mysearch.myway.com",
1758
- "ki.mysearch.myway.com",
1759
- "search.myway.com",
1760
- "search.mywebsearch.com"
1761
- ],
1762
- "parameters": [
1763
- "searchfor",
1764
- "searchFor"
1765
- ]
1766
- },
1767
- "Cuil": {
1768
- "domains": [
1769
- "www.cuil.com"
1770
- ],
1771
- "parameters": [
1772
- "q"
1773
- ]
1774
- },
1775
- "Tixuma": {
1776
- "domains": [
1777
- "www.tixuma.de"
1778
- ],
1779
- "parameters": [
1780
- "sc"
1781
- ]
1782
- },
1783
- "Sapo": {
1784
- "domains": [
1785
- "pesquisa.sapo.pt"
1786
- ],
1787
- "parameters": [
1788
- "q"
1789
- ]
1790
- },
1791
- "Gnadenmeer": {
1792
- "domains": [
1793
- "www.gnadenmeer.de"
1794
- ],
1795
- "parameters": [
1796
- "keyword"
1797
- ]
1798
- },
1799
- "Arcor": {
1800
- "domains": [
1801
- "www.arcor.de"
1802
- ],
1803
- "parameters": [
1804
- "Keywords"
1805
- ]
1806
- },
1807
- "Naver": {
1808
- "domains": [
1809
- "search.naver.com"
1810
- ],
1811
- "parameters": [
1812
- "query"
1813
- ]
1814
- },
1815
- "Zoeken": {
1816
- "domains": [
1817
- "www.zoeken.nl"
1818
- ],
1819
- "parameters": [
1820
- "q"
1821
- ]
1822
- },
1823
- "Yam": {
1824
- "domains": [
1825
- "search.yam.com"
1826
- ],
1827
- "parameters": [
1828
- "k"
1829
- ]
1830
- },
1831
- "Eniro": {
1832
- "domains": [
1833
- "www.eniro.se"
1834
- ],
1835
- "parameters": [
1836
- "q",
1837
- "search_word"
1838
- ]
1839
- },
1840
- "APOLL07": {
1841
- "domains": [
1842
- "apollo7.de"
1843
- ],
1844
- "parameters": [
1845
- "query"
1846
- ]
1847
- },
1848
- "Biglobe": {
1849
- "domains": [
1850
- "cgi.search.biglobe.ne.jp"
1851
- ],
1852
- "parameters": [
1853
- "q"
1854
- ]
1855
- },
1856
- "Mozbot": {
1857
- "domains": [
1858
- "www.mozbot.fr",
1859
- "www.mozbot.co.uk",
1860
- "www.mozbot.com"
1861
- ],
1862
- "parameters": [
1863
- "q"
1864
- ]
1865
- },
1866
- "ICQ": {
1867
- "domains": [
1868
- "www.icq.com",
1869
- "search.icq.com"
1870
- ],
1871
- "parameters": [
1872
- "q"
1873
- ]
1874
- },
1875
- "Baidu": {
1876
- "domains": [
1877
- "www.baidu.com",
1878
- "www1.baidu.com",
1879
- "zhidao.baidu.com",
1880
- "tieba.baidu.com",
1881
- "news.baidu.com",
1882
- "web.gougou.com"
1883
- ],
1884
- "parameters": [
1885
- "wd",
1886
- "word",
1887
- "kw",
1888
- "k"
1889
- ]
1890
- },
1891
- "Conduit": {
1892
- "domains": [
1893
- "search.conduit.com"
1894
- ],
1895
- "parameters": [
1896
- "q"
1897
- ]
1898
- },
1899
- "Austronaut": {
1900
- "domains": [
1901
- "www2.austronaut.at",
1902
- "www1.astronaut.at"
1903
- ],
1904
- "parameters": [
1905
- "q"
1906
- ]
1907
- },
1908
- "Vindex": {
1909
- "domains": [
1910
- "www.vindex.nl",
1911
- "search.vindex.nl"
1912
- ],
1913
- "parameters": [
1914
- "search_for"
1915
- ]
1916
- },
1917
- "TrovaRapido": {
1918
- "domains": [
1919
- "www.trovarapido.com"
1920
- ],
1921
- "parameters": [
1922
- "q"
1923
- ]
1924
- },
1925
- "Suchmaschine.com": {
1926
- "domains": [
1927
- "www.suchmaschine.com"
1928
- ],
1929
- "parameters": [
1930
- "suchstr"
1931
- ]
1932
- },
1933
- "Lycos": {
1934
- "domains": [
1935
- "search.lycos.com",
1936
- "www.lycos.com",
1937
- "lycos.com"
1938
- ],
1939
- "parameters": [
1940
- "query"
1941
- ]
1942
- },
1943
- "Vinden": {
1944
- "domains": [
1945
- "www.vinden.nl"
1946
- ],
1947
- "parameters": [
1948
- "q"
1949
- ]
1950
- },
1951
- "Altavista": {
1952
- "domains": [
1953
- "www.altavista.com",
1954
- "search.altavista.com",
1955
- "listings.altavista.com",
1956
- "altavista.de",
1957
- "altavista.fr",
1958
- "be-nl.altavista.com",
1959
- "be-fr.altavista.com"
1960
- ],
1961
- "parameters": [
1962
- "q"
1963
- ]
1964
- },
1965
- "dmoz": {
1966
- "domains": [
1967
- "dmoz.org",
1968
- "editors.dmoz.org"
1969
- ],
1970
- "parameters": [
1971
- "q"
1972
- ]
1973
- },
1974
- "Ecosia": {
1975
- "domains": [
1976
- "ecosia.org"
1977
- ],
1978
- "parameters": [
1979
- "q"
1980
- ]
1981
- },
1982
- "Maxwebsearch": {
1983
- "domains": [
1984
- "maxwebsearch.com"
1985
- ],
1986
- "parameters": [
1987
- "query"
1988
- ]
1989
- },
1990
- "Euroseek": {
1991
- "domains": [
1992
- "www.euroseek.com"
1993
- ],
1994
- "parameters": [
1995
- "string"
1996
- ]
1997
- },
1998
- "Bing": {
1999
- "domains": [
2000
- "bing.com",
2001
- "www.bing.com",
2002
- "msnbc.msn.com",
2003
- "dizionario.it.msn.com",
2004
- "cc.bingj.com",
2005
- "m.bing.com"
2006
- ],
2007
- "parameters": [
2008
- "q",
2009
- "Q"
2010
- ]
2011
- },
2012
- "X-recherche": {
2013
- "domains": [
2014
- "www.x-recherche.com"
2015
- ],
2016
- "parameters": [
2017
- "MOTS"
2018
- ]
2019
- },
2020
- "Yandex Images": {
2021
- "domains": [
2022
- "images.yandex.ru",
2023
- "images.yandex.ua",
2024
- "images.yandex.com"
2025
- ],
2026
- "parameters": [
2027
- "text"
2028
- ]
2029
- },
2030
- "GMX": {
2031
- "domains": [
2032
- "suche.gmx.net"
2033
- ],
2034
- "parameters": [
2035
- "su"
2036
- ]
2037
- },
2038
- "Daemon search": {
2039
- "domains": [
2040
- "daemon-search.com",
2041
- "my.daemon-search.com"
2042
- ],
2043
- "parameters": [
2044
- "q"
2045
- ]
2046
- },
2047
- "Jungle Key": {
2048
- "domains": [
2049
- "junglekey.com",
2050
- "junglekey.fr"
2051
- ],
2052
- "parameters": [
2053
- "query"
2054
- ]
2055
- },
2056
- "Firstfind": {
2057
- "domains": [
2058
- "www.firstsfind.com"
2059
- ],
2060
- "parameters": [
2061
- "qry"
2062
- ]
2063
- },
2064
- "Crawler": {
2065
- "domains": [
2066
- "www.crawler.com"
2067
- ],
2068
- "parameters": [
2069
- "q"
2070
- ]
2071
- },
2072
- "Holmes": {
2073
- "domains": [
2074
- "holmes.ge"
2075
- ],
2076
- "parameters": [
2077
- "q"
2078
- ]
2079
- },
2080
- "Charter": {
2081
- "domains": [
2082
- "www.charter.net"
2083
- ],
2084
- "parameters": [
2085
- "q"
2086
- ]
2087
- },
2088
- "Ilse": {
2089
- "domains": [
2090
- "www.ilse.nl"
2091
- ],
2092
- "parameters": [
2093
- "search_for"
2094
- ]
2095
- },
2096
- "earthlink": {
2097
- "domains": [
2098
- "search.earthlink.net"
2099
- ],
2100
- "parameters": [
2101
- "q"
2102
- ]
2103
- },
2104
- "Qualigo": {
2105
- "domains": [
2106
- "www.qualigo.at",
2107
- "www.qualigo.ch",
2108
- "www.qualigo.de",
2109
- "www.qualigo.nl"
2110
- ],
2111
- "parameters": [
2112
- "q"
2113
- ]
2114
- },
2115
- "El Mundo": {
2116
- "domains": [
2117
- "ariadna.elmundo.es"
2118
- ],
2119
- "parameters": [
2120
- "q"
2121
- ]
2122
- },
2123
- "Metager2": {
2124
- "domains": [
2125
- "metager2.de"
2126
- ],
2127
- "parameters": [
2128
- "q"
2129
- ]
2130
- },
2131
- "Forestle": {
2132
- "domains": [
2133
- "forestle.org",
2134
- "www.forestle.org",
2135
- "forestle.mobi"
2136
- ],
2137
- "parameters": [
2138
- "q"
2139
- ]
2140
- },
2141
- "Search.ch": {
2142
- "domains": [
2143
- "www.search.ch"
2144
- ],
2145
- "parameters": [
2146
- "q"
2147
- ]
2148
- },
2149
- "Meinestadt": {
2150
- "domains": [
2151
- "www.meinestadt.de"
2152
- ],
2153
- "parameters": [
2154
- "words"
2155
- ]
2156
- },
2157
- "Freshweather": {
2158
- "domains": [
2159
- "www.fresh-weather.com"
2160
- ],
2161
- "parameters": [
2162
- "q"
2163
- ]
2164
- },
2165
- "AllTheWeb": {
2166
- "domains": [
2167
- "www.alltheweb.com"
2168
- ],
2169
- "parameters": [
2170
- "q"
2171
- ]
2172
- },
2173
- "Zoek": {
2174
- "domains": [
2175
- "www3.zoek.nl"
2176
- ],
2177
- "parameters": [
2178
- "q"
2179
- ]
2180
- },
2181
- "Daum": {
2182
- "domains": [
2183
- "search.daum.net"
2184
- ],
2185
- "parameters": [
2186
- "q"
2187
- ]
2188
- },
2189
- "Marktplaats": {
2190
- "domains": [
2191
- "www.marktplaats.nl"
2192
- ],
2193
- "parameters": [
2194
- "query"
2195
- ]
2196
- },
2197
- "suche.info": {
2198
- "domains": [
2199
- "suche.info"
2200
- ],
2201
- "parameters": [
2202
- "q"
2203
- ]
2204
- },
2205
- "Google News": {
2206
- "domains": [
2207
- "news.google.ac",
2208
- "news.google.ad",
2209
- "news.google.ae",
2210
- "news.google.am",
2211
- "news.google.as",
2212
- "news.google.at",
2213
- "news.google.az",
2214
- "news.google.ba",
2215
- "news.google.be",
2216
- "news.google.bf",
2217
- "news.google.bg",
2218
- "news.google.bi",
2219
- "news.google.bj",
2220
- "news.google.bs",
2221
- "news.google.by",
2222
- "news.google.ca",
2223
- "news.google.cat",
2224
- "news.google.cc",
2225
- "news.google.cd",
2226
- "news.google.cf",
2227
- "news.google.cg",
2228
- "news.google.ch",
2229
- "news.google.ci",
2230
- "news.google.cl",
2231
- "news.google.cm",
2232
- "news.google.cn",
2233
- "news.google.co.bw",
2234
- "news.google.co.ck",
2235
- "news.google.co.cr",
2236
- "news.google.co.id",
2237
- "news.google.co.il",
2238
- "news.google.co.in",
2239
- "news.google.co.jp",
2240
- "news.google.co.ke",
2241
- "news.google.co.kr",
2242
- "news.google.co.ls",
2243
- "news.google.co.ma",
2244
- "news.google.co.mz",
2245
- "news.google.co.nz",
2246
- "news.google.co.th",
2247
- "news.google.co.tz",
2248
- "news.google.co.ug",
2249
- "news.google.co.uk",
2250
- "news.google.co.uz",
2251
- "news.google.co.ve",
2252
- "news.google.co.vi",
2253
- "news.google.co.za",
2254
- "news.google.co.zm",
2255
- "news.google.co.zw",
2256
- "news.google.com",
2257
- "news.google.com.af",
2258
- "news.google.com.ag",
2259
- "news.google.com.ai",
2260
- "news.google.com.ar",
2261
- "news.google.com.au",
2262
- "news.google.com.bd",
2263
- "news.google.com.bh",
2264
- "news.google.com.bn",
2265
- "news.google.com.bo",
2266
- "news.google.com.br",
2267
- "news.google.com.by",
2268
- "news.google.com.bz",
2269
- "news.google.com.co",
2270
- "news.google.com.cu",
2271
- "news.google.com.cy",
2272
- "news.google.com.do",
2273
- "news.google.com.ec",
2274
- "news.google.com.eg",
2275
- "news.google.com.et",
2276
- "news.google.com.fj",
2277
- "news.google.com.gh",
2278
- "news.google.com.gi",
2279
- "news.google.com.gt",
2280
- "news.google.com.hk",
2281
- "news.google.com.jm",
2282
- "news.google.com.kh",
2283
- "news.google.com.kh",
2284
- "news.google.com.kw",
2285
- "news.google.com.lb",
2286
- "news.google.com.lc",
2287
- "news.google.com.ly",
2288
- "news.google.com.mt",
2289
- "news.google.com.mx",
2290
- "news.google.com.my",
2291
- "news.google.com.na",
2292
- "news.google.com.nf",
2293
- "news.google.com.ng",
2294
- "news.google.com.ni",
2295
- "news.google.com.np",
2296
- "news.google.com.om",
2297
- "news.google.com.pa",
2298
- "news.google.com.pe",
2299
- "news.google.com.ph",
2300
- "news.google.com.pk",
2301
- "news.google.com.pr",
2302
- "news.google.com.py",
2303
- "news.google.com.qa",
2304
- "news.google.com.sa",
2305
- "news.google.com.sb",
2306
- "news.google.com.sg",
2307
- "news.google.com.sl",
2308
- "news.google.com.sv",
2309
- "news.google.com.tj",
2310
- "news.google.com.tn",
2311
- "news.google.com.tr",
2312
- "news.google.com.tw",
2313
- "news.google.com.ua",
2314
- "news.google.com.uy",
2315
- "news.google.com.vc",
2316
- "news.google.com.vn",
2317
- "news.google.cv",
2318
- "news.google.cz",
2319
- "news.google.de",
2320
- "news.google.dj",
2321
- "news.google.dk",
2322
- "news.google.dm",
2323
- "news.google.dz",
2324
- "news.google.ee",
2325
- "news.google.es",
2326
- "news.google.fi",
2327
- "news.google.fm",
2328
- "news.google.fr",
2329
- "news.google.ga",
2330
- "news.google.gd",
2331
- "news.google.ge",
2332
- "news.google.gf",
2333
- "news.google.gg",
2334
- "news.google.gl",
2335
- "news.google.gm",
2336
- "news.google.gp",
2337
- "news.google.gr",
2338
- "news.google.gy",
2339
- "news.google.hn",
2340
- "news.google.hr",
2341
- "news.google.ht",
2342
- "news.google.hu",
2343
- "news.google.ie",
2344
- "news.google.im",
2345
- "news.google.io",
2346
- "news.google.iq",
2347
- "news.google.is",
2348
- "news.google.it",
2349
- "news.google.it.ao",
2350
- "news.google.je",
2351
- "news.google.jo",
2352
- "news.google.kg",
2353
- "news.google.ki",
2354
- "news.google.kz",
2355
- "news.google.la",
2356
- "news.google.li",
2357
- "news.google.lk",
2358
- "news.google.lt",
2359
- "news.google.lu",
2360
- "news.google.lv",
2361
- "news.google.md",
2362
- "news.google.me",
2363
- "news.google.mg",
2364
- "news.google.mk",
2365
- "news.google.ml",
2366
- "news.google.mn",
2367
- "news.google.ms",
2368
- "news.google.mu",
2369
- "news.google.mv",
2370
- "news.google.mw",
2371
- "news.google.ne",
2372
- "news.google.nl",
2373
- "news.google.no",
2374
- "news.google.nr",
2375
- "news.google.nu",
2376
- "news.google.pl",
2377
- "news.google.pn",
2378
- "news.google.ps",
2379
- "news.google.pt",
2380
- "news.google.ro",
2381
- "news.google.rs",
2382
- "news.google.ru",
2383
- "news.google.rw",
2384
- "news.google.sc",
2385
- "news.google.se",
2386
- "news.google.sh",
2387
- "news.google.si",
2388
- "news.google.sk",
2389
- "news.google.sm",
2390
- "news.google.sn",
2391
- "news.google.so",
2392
- "news.google.st",
2393
- "news.google.td",
2394
- "news.google.tg",
2395
- "news.google.tk",
2396
- "news.google.tl",
2397
- "news.google.tm",
2398
- "news.google.to",
2399
- "news.google.tt",
2400
- "news.google.us",
2401
- "news.google.vg",
2402
- "news.google.vu",
2403
- "news.google.ws"
2404
- ],
2405
- "parameters": [
2406
- "q"
2407
- ]
2408
- },
2409
- "Zoohoo": {
2410
- "domains": [
2411
- "zoohoo.cz"
2412
- ],
2413
- "parameters": [
2414
- "q"
2415
- ]
2416
- },
2417
- "Seznam": {
2418
- "domains": [
2419
- "search.seznam.cz"
2420
- ],
2421
- "parameters": [
2422
- "q"
2423
- ]
2424
- },
2425
- "Online.no": {
2426
- "domains": [
2427
- "online.no"
2428
- ],
2429
- "parameters": [
2430
- "q"
2431
- ]
2432
- },
2433
- "Eurip": {
2434
- "domains": [
2435
- "www.eurip.com"
2436
- ],
2437
- "parameters": [
2438
- "q"
2439
- ]
2440
- },
2441
- "all.by": {
2442
- "domains": [
2443
- "all.by"
2444
- ],
2445
- "parameters": [
2446
- "query"
2447
- ]
2448
- },
2449
- "Road Runner Search": {
2450
- "domains": [
2451
- "search.rr.com"
2452
- ],
2453
- "parameters": [
2454
- "q"
2455
- ]
2456
- },
2457
- "Opplysningen 1881": {
2458
- "domains": [
2459
- "www.1881.no"
2460
- ],
2461
- "parameters": [
2462
- "Query"
2463
- ]
2464
- },
2465
- "YouGoo": {
2466
- "domains": [
2467
- "www.yougoo.fr"
2468
- ],
2469
- "parameters": [
2470
- "q"
2471
- ]
2472
- },
2473
- "Bing Images": {
2474
- "domains": [
2475
- "bing.com/images/search",
2476
- "www.bing.com/images/search"
2477
- ],
2478
- "parameters": [
2479
- "q",
2480
- "Q"
2481
- ]
2482
- },
2483
- "Geona": {
2484
- "domains": [
2485
- "geona.net"
2486
- ],
2487
- "parameters": [
2488
- "q"
2489
- ]
2490
- },
2491
- "Nate": {
2492
- "domains": [
2493
- "search.nate.com"
2494
- ],
2495
- "parameters": [
2496
- "q"
2497
- ]
2498
- },
2499
- "T-Online": {
2500
- "domains": [
2501
- "suche.t-online.de",
2502
- "brisbane.t-online.de",
2503
- "navigationshilfe.t-online.de"
2504
- ],
2505
- "parameters": [
2506
- "q"
2507
- ]
2508
- },
2509
- "Hotbot": {
2510
- "domains": [
2511
- "www.hotbot.com"
2512
- ],
2513
- "parameters": [
2514
- "query"
2515
- ]
2516
- },
2517
- "Kvasir": {
2518
- "domains": [
2519
- "www.kvasir.no"
2520
- ],
2521
- "parameters": [
2522
- "q"
2523
- ]
2524
- },
2525
- "Babylon": {
2526
- "domains": [
2527
- "search.babylon.com",
2528
- "searchassist.babylon.com"
2529
- ],
2530
- "parameters": [
2531
- "q"
2532
- ]
2533
- },
2534
- "Excite": {
2535
- "domains": [
2536
- "search.excite.it",
2537
- "search.excite.fr",
2538
- "search.excite.de",
2539
- "search.excite.co.uk",
2540
- "serach.excite.es",
2541
- "search.excite.nl",
2542
- "msxml.excite.com",
2543
- "www.excite.co.jp"
2544
- ],
2545
- "parameters": [
2546
- "q",
2547
- "search"
2548
- ]
2549
- },
2550
- "qip": {
2551
- "domains": [
2552
- "search.qip.ru"
2553
- ],
2554
- "parameters": [
2555
- "query"
2556
- ]
2557
- },
2558
- "Yahoo!": {
2559
- "domains": [
2560
- "search.yahoo.com",
2561
- "yahoo.com",
2562
- "ar.search.yahoo.com",
2563
- "ar.yahoo.com",
2564
- "au.search.yahoo.com",
2565
- "au.yahoo.com",
2566
- "br.search.yahoo.com",
2567
- "br.yahoo.com",
2568
- "cade.searchde.yahoo.com",
2569
- "cade.yahoo.com",
2570
- "chinese.searchinese.yahoo.com",
2571
- "chinese.yahoo.com",
2572
- "cn.search.yahoo.com",
2573
- "cn.yahoo.com",
2574
- "de.search.yahoo.com",
2575
- "de.yahoo.com",
2576
- "dk.search.yahoo.com",
2577
- "dk.yahoo.com",
2578
- "es.search.yahoo.com",
2579
- "es.yahoo.com",
2580
- "espanol.searchpanol.yahoo.com",
2581
- "espanol.searchpanol.yahoo.com",
2582
- "espanol.yahoo.com",
2583
- "espanol.yahoo.com",
2584
- "fr.search.yahoo.com",
2585
- "fr.yahoo.com",
2586
- "ie.search.yahoo.com",
2587
- "ie.yahoo.com",
2588
- "it.search.yahoo.com",
2589
- "it.yahoo.com",
2590
- "kr.search.yahoo.com",
2591
- "kr.yahoo.com",
2592
- "mx.search.yahoo.com",
2593
- "mx.yahoo.com",
2594
- "no.search.yahoo.com",
2595
- "no.yahoo.com",
2596
- "nz.search.yahoo.com",
2597
- "nz.yahoo.com",
2598
- "one.cn.yahoo.com",
2599
- "one.searchn.yahoo.com",
2600
- "qc.search.yahoo.com",
2601
- "qc.search.yahoo.com",
2602
- "qc.search.yahoo.com",
2603
- "qc.yahoo.com",
2604
- "qc.yahoo.com",
2605
- "se.search.yahoo.com",
2606
- "se.search.yahoo.com",
2607
- "se.yahoo.com",
2608
- "search.searcharch.yahoo.com",
2609
- "search.yahoo.com",
2610
- "uk.search.yahoo.com",
2611
- "uk.yahoo.com",
2612
- "www.yahoo.co.jp",
2613
- "search.yahoo.co.jp",
2614
- "www.cercato.it",
2615
- "search.offerbox.com",
2616
- "ys.mirostart.com"
2617
- ],
2618
- "parameters": [
2619
- "p",
2620
- "q"
2621
- ]
2622
- },
2623
- "URL.ORGanizier": {
2624
- "domains": [
2625
- "www.url.org"
2626
- ],
2627
- "parameters": [
2628
- "q"
2629
- ]
2630
- },
2631
- "Witch": {
2632
- "domains": [
2633
- "www.witch.de"
2634
- ],
2635
- "parameters": [
2636
- "search"
2637
- ]
2638
- },
2639
- "Mister Wong": {
2640
- "domains": [
2641
- "www.mister-wong.com",
2642
- "www.mister-wong.de"
2643
- ],
2644
- "parameters": [
2645
- "Keywords"
2646
- ]
2647
- },
2648
- "Startsiden": {
2649
- "domains": [
2650
- "www.startsiden.no"
2651
- ],
2652
- "parameters": [
2653
- "q"
2654
- ]
2655
- },
2656
- "Web.de": {
2657
- "domains": [
2658
- "suche.web.de"
2659
- ],
2660
- "parameters": [
2661
- "su"
2662
- ]
2663
- },
2664
- "Ask": {
2665
- "domains": [
2666
- "ask.com",
2667
- "www.ask.com",
2668
- "web.ask.com",
2669
- "int.ask.com",
2670
- "mws.ask.com",
2671
- "uk.ask.com",
2672
- "images.ask.com",
2673
- "ask.reference.com",
2674
- "www.askkids.com",
2675
- "iwon.ask.com",
2676
- "www.ask.co.uk",
2677
- "www.qbyrd.com",
2678
- "search-results.com",
2679
- "uk.search-results.com",
2680
- "www.search-results.com",
2681
- "int.search-results.com"
2682
- ],
2683
- "parameters": [
2684
- "q"
2685
- ]
2686
- },
2687
- "Centrum": {
2688
- "domains": [
2689
- "serach.centrum.cz",
2690
- "morfeo.centrum.cz"
2691
- ],
2692
- "parameters": [
2693
- "q"
2694
- ]
2695
- },
2696
- "Everyclick": {
2697
- "domains": [
2698
- "www.everyclick.com"
2699
- ],
2700
- "parameters": [
2701
- "keyword"
2702
- ]
2703
- },
2704
- "Google Video": {
2705
- "domains": [
2706
- "video.google.com"
2707
- ],
2708
- "parameters": [
2709
- "q"
2710
- ]
2711
- },
2712
- "Delfi": {
2713
- "domains": [
2714
- "otsing.delfi.ee"
2715
- ],
2716
- "parameters": [
2717
- "q"
2718
- ]
2719
- },
2720
- "blekko": {
2721
- "domains": [
2722
- "blekko.com"
2723
- ],
2724
- "parameters": [
2725
- "q"
2726
- ]
2727
- },
2728
- "Jyxo": {
2729
- "domains": [
2730
- "jyxo.1188.cz"
2731
- ],
2732
- "parameters": [
2733
- "q"
2734
- ]
2735
- },
2736
- "Kataweb": {
2737
- "domains": [
2738
- "www.kataweb.it"
2739
- ],
2740
- "parameters": [
2741
- "q"
2742
- ]
2743
- },
2744
- "uol.com.br": {
2745
- "domains": [
2746
- "busca.uol.com.br"
2747
- ],
2748
- "parameters": [
2749
- "q"
2750
- ]
2751
- },
2752
- "Arianna": {
2753
- "domains": [
2754
- "arianna.libero.it",
2755
- "www.arianna.com"
2756
- ],
2757
- "parameters": [
2758
- "query"
2759
- ]
2760
- },
2761
- "Mamma": {
2762
- "domains": [
2763
- "www.mamma.com",
2764
- "mamma75.mamma.com"
2765
- ],
2766
- "parameters": [
2767
- "query"
2768
- ]
2769
- },
2770
- "Yatedo": {
2771
- "domains": [
2772
- "www.yatedo.com",
2773
- "www.yatedo.fr"
2774
- ],
2775
- "parameters": [
2776
- "q"
2777
- ]
2778
- },
2779
- "Twingly": {
2780
- "domains": [
2781
- "www.twingly.com"
2782
- ],
2783
- "parameters": [
2784
- "q"
2785
- ]
2786
- },
2787
- "Delfi latvia": {
2788
- "domains": [
2789
- "smart.delfi.lv"
2790
- ],
2791
- "parameters": [
2792
- "q"
2793
- ]
2794
- },
2795
- "PriceRunner": {
2796
- "domains": [
2797
- "www.pricerunner.co.uk"
2798
- ],
2799
- "parameters": [
2800
- "q"
2801
- ]
2802
- },
2803
- "Rakuten": {
2804
- "domains": [
2805
- "websearch.rakuten.co.jp"
2806
- ],
2807
- "parameters": [
2808
- "qt"
2809
- ]
2810
- },
2811
- "Google": {
2812
- "domains": [
2813
- "www.google.com",
2814
- "www.google.ac",
2815
- "www.google.ad",
2816
- "www.google.com.af",
2817
- "www.google.com.ag",
2818
- "www.google.com.ai",
2819
- "www.google.am",
2820
- "www.google.it.ao",
2821
- "www.google.com.ar",
2822
- "www.google.as",
2823
- "www.google.at",
2824
- "www.google.com.au",
2825
- "www.google.az",
2826
- "www.google.ba",
2827
- "www.google.com.bd",
2828
- "www.google.be",
2829
- "www.google.bf",
2830
- "www.google.bg",
2831
- "www.google.com.bh",
2832
- "www.google.bi",
2833
- "www.google.bj",
2834
- "www.google.com.bn",
2835
- "www.google.com.bo",
2836
- "www.google.com.br",
2837
- "www.google.bs",
2838
- "www.google.co.bw",
2839
- "www.google.com.by",
2840
- "www.google.by",
2841
- "www.google.com.bz",
2842
- "www.google.ca",
2843
- "www.google.com.kh",
2844
- "www.google.cc",
2845
- "www.google.cd",
2846
- "www.google.cf",
2847
- "www.google.cat",
2848
- "www.google.cg",
2849
- "www.google.ch",
2850
- "www.google.ci",
2851
- "www.google.co.ck",
2852
- "www.google.cl",
2853
- "www.google.cm",
2854
- "www.google.cn",
2855
- "www.google.com.co",
2856
- "www.google.co.cr",
2857
- "www.google.com.cu",
2858
- "www.google.cv",
2859
- "www.google.com.cy",
2860
- "www.google.cz",
2861
- "www.google.de",
2862
- "www.google.dj",
2863
- "www.google.dk",
2864
- "www.google.dm",
2865
- "www.google.com.do",
2866
- "www.google.dz",
2867
- "www.google.com.ec",
2868
- "www.google.ee",
2869
- "www.google.com.eg",
2870
- "www.google.es",
2871
- "www.google.com.et",
2872
- "www.google.fi",
2873
- "www.google.com.fj",
2874
- "www.google.fm",
2875
- "www.google.fr",
2876
- "www.google.ga",
2877
- "www.google.gd",
2878
- "www.google.ge",
2879
- "www.google.gf",
2880
- "www.google.gg",
2881
- "www.google.com.gh",
2882
- "www.google.com.gi",
2883
- "www.google.gl",
2884
- "www.google.gm",
2885
- "www.google.gp",
2886
- "www.google.gr",
2887
- "www.google.com.gt",
2888
- "www.google.gy",
2889
- "www.google.com.hk",
2890
- "www.google.hn",
2891
- "www.google.hr",
2892
- "www.google.ht",
2893
- "www.google.hu",
2894
- "www.google.co.id",
2895
- "www.google.iq",
2896
- "www.google.ie",
2897
- "www.google.co.il",
2898
- "www.google.im",
2899
- "www.google.co.in",
2900
- "www.google.io",
2901
- "www.google.is",
2902
- "www.google.it",
2903
- "www.google.je",
2904
- "www.google.com.jm",
2905
- "www.google.jo",
2906
- "www.google.co.jp",
2907
- "www.google.co.ke",
2908
- "www.google.com.kh",
2909
- "www.google.ki",
2910
- "www.google.kg",
2911
- "www.google.co.kr",
2912
- "www.google.com.kw",
2913
- "www.google.kz",
2914
- "www.google.la",
2915
- "www.google.com.lb",
2916
- "www.google.com.lc",
2917
- "www.google.li",
2918
- "www.google.lk",
2919
- "www.google.co.ls",
2920
- "www.google.lt",
2921
- "www.google.lu",
2922
- "www.google.lv",
2923
- "www.google.com.ly",
2924
- "www.google.co.ma",
2925
- "www.google.md",
2926
- "www.google.me",
2927
- "www.google.mg",
2928
- "www.google.mk",
2929
- "www.google.ml",
2930
- "www.google.mn",
2931
- "www.google.ms",
2932
- "www.google.com.mt",
2933
- "www.google.mu",
2934
- "www.google.mv",
2935
- "www.google.mw",
2936
- "www.google.com.mx",
2937
- "www.google.com.my",
2938
- "www.google.co.mz",
2939
- "www.google.com.na",
2940
- "www.google.ne",
2941
- "www.google.com.nf",
2942
- "www.google.com.ng",
2943
- "www.google.com.ni",
2944
- "www.google.nl",
2945
- "www.google.no",
2946
- "www.google.com.np",
2947
- "www.google.nr",
2948
- "www.google.nu",
2949
- "www.google.co.nz",
2950
- "www.google.com.om",
2951
- "www.google.com.pa",
2952
- "www.google.com.pe",
2953
- "www.google.com.ph",
2954
- "www.google.com.pk",
2955
- "www.google.pl",
2956
- "www.google.pn",
2957
- "www.google.com.pr",
2958
- "www.google.ps",
2959
- "www.google.pt",
2960
- "www.google.com.py",
2961
- "www.google.com.qa",
2962
- "www.google.ro",
2963
- "www.google.rs",
2964
- "www.google.ru",
2965
- "www.google.rw",
2966
- "www.google.com.sa",
2967
- "www.google.com.sb",
2968
- "www.google.sc",
2969
- "www.google.se",
2970
- "www.google.com.sg",
2971
- "www.google.sh",
2972
- "www.google.si",
2973
- "www.google.sk",
2974
- "www.google.com.sl",
2975
- "www.google.sn",
2976
- "www.google.sm",
2977
- "www.google.so",
2978
- "www.google.st",
2979
- "www.google.com.sv",
2980
- "www.google.td",
2981
- "www.google.tg",
2982
- "www.google.co.th",
2983
- "www.google.com.tj",
2984
- "www.google.tk",
2985
- "www.google.tl",
2986
- "www.google.tm",
2987
- "www.google.to",
2988
- "www.google.com.tn",
2989
- "www.google.com.tr",
2990
- "www.google.tt",
2991
- "www.google.com.tw",
2992
- "www.google.co.tz",
2993
- "www.google.com.ua",
2994
- "www.google.co.ug",
2995
- "www.google.ae",
2996
- "www.google.co.uk",
2997
- "www.google.us",
2998
- "www.google.com.uy",
2999
- "www.google.co.uz",
3000
- "www.google.com.vc",
3001
- "www.google.co.ve",
3002
- "www.google.vg",
3003
- "www.google.co.vi",
3004
- "www.google.com.vn",
3005
- "www.google.vu",
3006
- "www.google.ws",
3007
- "www.google.co.za",
3008
- "www.google.co.zm",
3009
- "www.google.co.zw",
3010
- "google.com",
3011
- "google.ac",
3012
- "google.ad",
3013
- "google.com.af",
3014
- "google.com.ag",
3015
- "google.com.ai",
3016
- "google.am",
3017
- "google.it.ao",
3018
- "google.com.ar",
3019
- "google.as",
3020
- "google.at",
3021
- "google.com.au",
3022
- "google.az",
3023
- "google.ba",
3024
- "google.com.bd",
3025
- "google.be",
3026
- "google.bf",
3027
- "google.bg",
3028
- "google.com.bh",
3029
- "google.bi",
3030
- "google.bj",
3031
- "google.com.bn",
3032
- "google.com.bo",
3033
- "google.com.br",
3034
- "google.bs",
3035
- "google.co.bw",
3036
- "google.com.by",
3037
- "google.by",
3038
- "google.com.bz",
3039
- "google.ca",
3040
- "google.com.kh",
3041
- "google.cc",
3042
- "google.cd",
3043
- "google.cf",
3044
- "google.cat",
3045
- "google.cg",
3046
- "google.ch",
3047
- "google.ci",
3048
- "google.co.ck",
3049
- "google.cl",
3050
- "google.cm",
3051
- "google.cn",
3052
- "google.com.co",
3053
- "google.co.cr",
3054
- "google.com.cu",
3055
- "google.cv",
3056
- "google.com.cy",
3057
- "google.cz",
3058
- "google.de",
3059
- "google.dj",
3060
- "google.dk",
3061
- "google.dm",
3062
- "google.com.do",
3063
- "google.dz",
3064
- "google.com.ec",
3065
- "google.ee",
3066
- "google.com.eg",
3067
- "google.es",
3068
- "google.com.et",
3069
- "google.fi",
3070
- "google.com.fj",
3071
- "google.fm",
3072
- "google.fr",
3073
- "google.ga",
3074
- "google.gd",
3075
- "google.ge",
3076
- "google.gf",
3077
- "google.gg",
3078
- "google.com.gh",
3079
- "google.com.gi",
3080
- "google.gl",
3081
- "google.gm",
3082
- "google.gp",
3083
- "google.gr",
3084
- "google.com.gt",
3085
- "google.gy",
3086
- "google.com.hk",
3087
- "google.hn",
3088
- "google.hr",
3089
- "google.ht",
3090
- "google.hu",
3091
- "google.co.id",
3092
- "google.iq",
3093
- "google.ie",
3094
- "google.co.il",
3095
- "google.im",
3096
- "google.co.in",
3097
- "google.io",
3098
- "google.is",
3099
- "google.it",
3100
- "google.je",
3101
- "google.com.jm",
3102
- "google.jo",
3103
- "google.co.jp",
3104
- "google.co.ke",
3105
- "google.com.kh",
3106
- "google.ki",
3107
- "google.kg",
3108
- "google.co.kr",
3109
- "google.com.kw",
3110
- "google.kz",
3111
- "google.la",
3112
- "google.com.lb",
3113
- "google.com.lc",
3114
- "google.li",
3115
- "google.lk",
3116
- "google.co.ls",
3117
- "google.lt",
3118
- "google.lu",
3119
- "google.lv",
3120
- "google.com.ly",
3121
- "google.co.ma",
3122
- "google.md",
3123
- "google.me",
3124
- "google.mg",
3125
- "google.mk",
3126
- "google.ml",
3127
- "google.mn",
3128
- "google.ms",
3129
- "google.com.mt",
3130
- "google.mu",
3131
- "google.mv",
3132
- "google.mw",
3133
- "google.com.mx",
3134
- "google.com.my",
3135
- "google.co.mz",
3136
- "google.com.na",
3137
- "google.ne",
3138
- "google.com.nf",
3139
- "google.com.ng",
3140
- "google.com.ni",
3141
- "google.nl",
3142
- "google.no",
3143
- "google.com.np",
3144
- "google.nr",
3145
- "google.nu",
3146
- "google.co.nz",
3147
- "google.com.om",
3148
- "google.com.pa",
3149
- "google.com.pe",
3150
- "google.com.ph",
3151
- "google.com.pk",
3152
- "google.pl",
3153
- "google.pn",
3154
- "google.com.pr",
3155
- "google.ps",
3156
- "google.pt",
3157
- "google.com.py",
3158
- "google.com.qa",
3159
- "google.ro",
3160
- "google.rs",
3161
- "google.ru",
3162
- "google.rw",
3163
- "google.com.sa",
3164
- "google.com.sb",
3165
- "google.sc",
3166
- "google.se",
3167
- "google.com.sg",
3168
- "google.sh",
3169
- "google.si",
3170
- "google.sk",
3171
- "google.com.sl",
3172
- "google.sn",
3173
- "google.sm",
3174
- "google.so",
3175
- "google.st",
3176
- "google.com.sv",
3177
- "google.td",
3178
- "google.tg",
3179
- "google.co.th",
3180
- "google.com.tj",
3181
- "google.tk",
3182
- "google.tl",
3183
- "google.tm",
3184
- "google.to",
3185
- "google.com.tn",
3186
- "google.com.tr",
3187
- "google.tt",
3188
- "google.com.tw",
3189
- "google.co.tz",
3190
- "google.com.ua",
3191
- "google.co.ug",
3192
- "google.ae",
3193
- "google.co.uk",
3194
- "google.us",
3195
- "google.com.uy",
3196
- "google.co.uz",
3197
- "google.com.vc",
3198
- "google.co.ve",
3199
- "google.vg",
3200
- "google.co.vi",
3201
- "google.com.vn",
3202
- "google.vu",
3203
- "google.ws",
3204
- "google.co.za",
3205
- "google.co.zm",
3206
- "google.co.zw",
3207
- "search.avg.com",
3208
- "isearch.avg.com",
3209
- "www.cnn.com",
3210
- "darkoogle.com",
3211
- "search.darkoogle.com",
3212
- "search.foxtab.com",
3213
- "www.gooofullsearch.com",
3214
- "search.hiyo.com",
3215
- "search.incredimail.com",
3216
- "search1.incredimail.com",
3217
- "search2.incredimail.com",
3218
- "search3.incredimail.com",
3219
- "search4.incredimail.com",
3220
- "search.incredibar.com",
3221
- "search.sweetim.com",
3222
- "www.fastweb.it",
3223
- "search.juno.com",
3224
- "find.tdc.dk",
3225
- "searchresults.verizon.com",
3226
- "search.walla.co.il",
3227
- "search.alot.com",
3228
- "www.googleearth.de",
3229
- "www.googleearth.fr",
3230
- "webcache.googleusercontent.com",
3231
- "encrypted.google.com",
3232
- "googlesyndicatedsearch.com"
3233
- ],
3234
- "parameters": [
3235
- "q",
3236
- "query",
3237
- "Keywords"
3238
- ]
3239
- },
3240
- "Google Blogsearch": {
3241
- "domains": [
3242
- "blogsearch.google.ac",
3243
- "blogsearch.google.ad",
3244
- "blogsearch.google.ae",
3245
- "blogsearch.google.am",
3246
- "blogsearch.google.as",
3247
- "blogsearch.google.at",
3248
- "blogsearch.google.az",
3249
- "blogsearch.google.ba",
3250
- "blogsearch.google.be",
3251
- "blogsearch.google.bf",
3252
- "blogsearch.google.bg",
3253
- "blogsearch.google.bi",
3254
- "blogsearch.google.bj",
3255
- "blogsearch.google.bs",
3256
- "blogsearch.google.by",
3257
- "blogsearch.google.ca",
3258
- "blogsearch.google.cat",
3259
- "blogsearch.google.cc",
3260
- "blogsearch.google.cd",
3261
- "blogsearch.google.cf",
3262
- "blogsearch.google.cg",
3263
- "blogsearch.google.ch",
3264
- "blogsearch.google.ci",
3265
- "blogsearch.google.cl",
3266
- "blogsearch.google.cm",
3267
- "blogsearch.google.cn",
3268
- "blogsearch.google.co.bw",
3269
- "blogsearch.google.co.ck",
3270
- "blogsearch.google.co.cr",
3271
- "blogsearch.google.co.id",
3272
- "blogsearch.google.co.il",
3273
- "blogsearch.google.co.in",
3274
- "blogsearch.google.co.jp",
3275
- "blogsearch.google.co.ke",
3276
- "blogsearch.google.co.kr",
3277
- "blogsearch.google.co.ls",
3278
- "blogsearch.google.co.ma",
3279
- "blogsearch.google.co.mz",
3280
- "blogsearch.google.co.nz",
3281
- "blogsearch.google.co.th",
3282
- "blogsearch.google.co.tz",
3283
- "blogsearch.google.co.ug",
3284
- "blogsearch.google.co.uk",
3285
- "blogsearch.google.co.uz",
3286
- "blogsearch.google.co.ve",
3287
- "blogsearch.google.co.vi",
3288
- "blogsearch.google.co.za",
3289
- "blogsearch.google.co.zm",
3290
- "blogsearch.google.co.zw",
3291
- "blogsearch.google.com",
3292
- "blogsearch.google.com.af",
3293
- "blogsearch.google.com.ag",
3294
- "blogsearch.google.com.ai",
3295
- "blogsearch.google.com.ar",
3296
- "blogsearch.google.com.au",
3297
- "blogsearch.google.com.bd",
3298
- "blogsearch.google.com.bh",
3299
- "blogsearch.google.com.bn",
3300
- "blogsearch.google.com.bo",
3301
- "blogsearch.google.com.br",
3302
- "blogsearch.google.com.by",
3303
- "blogsearch.google.com.bz",
3304
- "blogsearch.google.com.co",
3305
- "blogsearch.google.com.cu",
3306
- "blogsearch.google.com.cy",
3307
- "blogsearch.google.com.do",
3308
- "blogsearch.google.com.ec",
3309
- "blogsearch.google.com.eg",
3310
- "blogsearch.google.com.et",
3311
- "blogsearch.google.com.fj",
3312
- "blogsearch.google.com.gh",
3313
- "blogsearch.google.com.gi",
3314
- "blogsearch.google.com.gt",
3315
- "blogsearch.google.com.hk",
3316
- "blogsearch.google.com.jm",
3317
- "blogsearch.google.com.kh",
3318
- "blogsearch.google.com.kh",
3319
- "blogsearch.google.com.kw",
3320
- "blogsearch.google.com.lb",
3321
- "blogsearch.google.com.lc",
3322
- "blogsearch.google.com.ly",
3323
- "blogsearch.google.com.mt",
3324
- "blogsearch.google.com.mx",
3325
- "blogsearch.google.com.my",
3326
- "blogsearch.google.com.na",
3327
- "blogsearch.google.com.nf",
3328
- "blogsearch.google.com.ng",
3329
- "blogsearch.google.com.ni",
3330
- "blogsearch.google.com.np",
3331
- "blogsearch.google.com.om",
3332
- "blogsearch.google.com.pa",
3333
- "blogsearch.google.com.pe",
3334
- "blogsearch.google.com.ph",
3335
- "blogsearch.google.com.pk",
3336
- "blogsearch.google.com.pr",
3337
- "blogsearch.google.com.py",
3338
- "blogsearch.google.com.qa",
3339
- "blogsearch.google.com.sa",
3340
- "blogsearch.google.com.sb",
3341
- "blogsearch.google.com.sg",
3342
- "blogsearch.google.com.sl",
3343
- "blogsearch.google.com.sv",
3344
- "blogsearch.google.com.tj",
3345
- "blogsearch.google.com.tn",
3346
- "blogsearch.google.com.tr",
3347
- "blogsearch.google.com.tw",
3348
- "blogsearch.google.com.ua",
3349
- "blogsearch.google.com.uy",
3350
- "blogsearch.google.com.vc",
3351
- "blogsearch.google.com.vn",
3352
- "blogsearch.google.cv",
3353
- "blogsearch.google.cz",
3354
- "blogsearch.google.de",
3355
- "blogsearch.google.dj",
3356
- "blogsearch.google.dk",
3357
- "blogsearch.google.dm",
3358
- "blogsearch.google.dz",
3359
- "blogsearch.google.ee",
3360
- "blogsearch.google.es",
3361
- "blogsearch.google.fi",
3362
- "blogsearch.google.fm",
3363
- "blogsearch.google.fr",
3364
- "blogsearch.google.ga",
3365
- "blogsearch.google.gd",
3366
- "blogsearch.google.ge",
3367
- "blogsearch.google.gf",
3368
- "blogsearch.google.gg",
3369
- "blogsearch.google.gl",
3370
- "blogsearch.google.gm",
3371
- "blogsearch.google.gp",
3372
- "blogsearch.google.gr",
3373
- "blogsearch.google.gy",
3374
- "blogsearch.google.hn",
3375
- "blogsearch.google.hr",
3376
- "blogsearch.google.ht",
3377
- "blogsearch.google.hu",
3378
- "blogsearch.google.ie",
3379
- "blogsearch.google.im",
3380
- "blogsearch.google.io",
3381
- "blogsearch.google.iq",
3382
- "blogsearch.google.is",
3383
- "blogsearch.google.it",
3384
- "blogsearch.google.it.ao",
3385
- "blogsearch.google.je",
3386
- "blogsearch.google.jo",
3387
- "blogsearch.google.kg",
3388
- "blogsearch.google.ki",
3389
- "blogsearch.google.kz",
3390
- "blogsearch.google.la",
3391
- "blogsearch.google.li",
3392
- "blogsearch.google.lk",
3393
- "blogsearch.google.lt",
3394
- "blogsearch.google.lu",
3395
- "blogsearch.google.lv",
3396
- "blogsearch.google.md",
3397
- "blogsearch.google.me",
3398
- "blogsearch.google.mg",
3399
- "blogsearch.google.mk",
3400
- "blogsearch.google.ml",
3401
- "blogsearch.google.mn",
3402
- "blogsearch.google.ms",
3403
- "blogsearch.google.mu",
3404
- "blogsearch.google.mv",
3405
- "blogsearch.google.mw",
3406
- "blogsearch.google.ne",
3407
- "blogsearch.google.nl",
3408
- "blogsearch.google.no",
3409
- "blogsearch.google.nr",
3410
- "blogsearch.google.nu",
3411
- "blogsearch.google.pl",
3412
- "blogsearch.google.pn",
3413
- "blogsearch.google.ps",
3414
- "blogsearch.google.pt",
3415
- "blogsearch.google.ro",
3416
- "blogsearch.google.rs",
3417
- "blogsearch.google.ru",
3418
- "blogsearch.google.rw",
3419
- "blogsearch.google.sc",
3420
- "blogsearch.google.se",
3421
- "blogsearch.google.sh",
3422
- "blogsearch.google.si",
3423
- "blogsearch.google.sk",
3424
- "blogsearch.google.sm",
3425
- "blogsearch.google.sn",
3426
- "blogsearch.google.so",
3427
- "blogsearch.google.st",
3428
- "blogsearch.google.td",
3429
- "blogsearch.google.tg",
3430
- "blogsearch.google.tk",
3431
- "blogsearch.google.tl",
3432
- "blogsearch.google.tm",
3433
- "blogsearch.google.to",
3434
- "blogsearch.google.tt",
3435
- "blogsearch.google.us",
3436
- "blogsearch.google.vg",
3437
- "blogsearch.google.vu",
3438
- "blogsearch.google.ws"
3439
- ],
3440
- "parameters": [
3441
- "q"
3442
- ]
3443
- },
3444
- "Amazon": {
3445
- "domains": [
3446
- "amazon.com",
3447
- "www.amazon.com"
3448
- ],
3449
- "parameters": [
3450
- "keywords"
3451
- ]
3452
- },
3453
- "Hooseek.com": {
3454
- "domains": [
3455
- "www.hooseek.com"
3456
- ],
3457
- "parameters": [
3458
- "recherche"
3459
- ]
3460
- },
3461
- "Dalesearch": {
3462
- "domains": [
3463
- "www.dalesearch.com"
3464
- ],
3465
- "parameters": [
3466
- "q"
3467
- ]
3468
- },
3469
- "Alice Adsl": {
3470
- "domains": [
3471
- "rechercher.aliceadsl.fr"
3472
- ],
3473
- "parameters": [
3474
- "q"
3475
- ]
3476
- },
3477
- "soso.com": {
3478
- "domains": [
3479
- "www.soso.com"
3480
- ],
3481
- "parameters": [
3482
- "w"
3483
- ]
3484
- },
3485
- "Sogou": {
3486
- "domains": [
3487
- "www.sougou.com"
3488
- ],
3489
- "parameters": [
3490
- "query"
3491
- ]
3492
- },
3493
- "Hit-Parade": {
3494
- "domains": [
3495
- "req.-hit-parade.com",
3496
- "class.hit-parade.com",
3497
- "www.hit-parade.com"
3498
- ],
3499
- "parameters": [
3500
- "p7"
3501
- ]
3502
- },
3503
- "SearchCanvas": {
3504
- "domains": [
3505
- "www.searchcanvas.com"
3506
- ],
3507
- "parameters": [
3508
- "q"
3509
- ]
3510
- },
3511
- "Interia": {
3512
- "domains": [
3513
- "www.google.interia.pl"
3514
- ],
3515
- "parameters": [
3516
- "q"
3517
- ]
3518
- },
3519
- "Tiscali": {
3520
- "domains": [
3521
- "search.tiscali.it",
3522
- "search-dyn.tiscali.it",
3523
- "hledani.tiscali.cz"
3524
- ],
3525
- "parameters": [
3526
- "q",
3527
- "key"
3528
- ]
3529
- },
3530
- "Clix": {
3531
- "domains": [
3532
- "pesquisa.clix.pt"
3533
- ],
3534
- "parameters": [
3535
- "question"
3536
- ]
3537
- }
3538
- },
3539
- "email": {
3540
- "Outlook.com": {
3541
- "domains": [
3542
- "mail.live.com"
3543
- ]
3544
- },
3545
- "Orange Webmail": {
3546
- "domains": [
3547
- "orange.fr/webmail"
3548
- ]
3549
- },
3550
- "Yahoo! Mail": {
3551
- "domains": [
3552
- "mail.yahoo.net",
3553
- "mail.yahoo.com",
3554
- "mail.yahoo.co.uk"
3555
- ]
3556
- },
3557
- "Gmail": {
3558
- "domains": [
3559
- "mail.google.com"
3560
- ]
3561
- }
3562
- },
3563
- "social": {
3564
- "hi5": {
3565
- "domains": [
3566
- "hi5.com"
3567
- ]
3568
- },
3569
- "Friendster": {
3570
- "domains": [
3571
- "friendster.com"
3572
- ]
3573
- },
3574
- "Weibo": {
3575
- "domains": [
3576
- "weibo.com",
3577
- "t.cn"
3578
- ]
3579
- },
3580
- "Xanga": {
3581
- "domains": [
3582
- "xanga.com"
3583
- ]
3584
- },
3585
- "Myspace": {
3586
- "domains": [
3587
- "myspace.com"
3588
- ]
3589
- },
3590
- "Buzznet": {
3591
- "domains": [
3592
- "wayn.com"
3593
- ]
3594
- },
3595
- "MyLife": {
3596
- "domains": [
3597
- "mylife.ru"
3598
- ]
3599
- },
3600
- "Flickr": {
3601
- "domains": [
3602
- "flickr.com"
3603
- ]
3604
- },
3605
- "Sonico.com": {
3606
- "domains": [
3607
- "sonico.com"
3608
- ]
3609
- },
3610
- "Odnoklassniki": {
3611
- "domains": [
3612
- "odnoklassniki.ru"
3613
- ]
3614
- },
3615
- "GitHub": {
3616
- "domains": [
3617
- "github.com"
3618
- ]
3619
- },
3620
- "Classmates": {
3621
- "domains": [
3622
- "classmates.com"
3623
- ]
3624
- },
3625
- "Friends Reunited": {
3626
- "domains": [
3627
- "friendsreunited.com"
3628
- ]
3629
- },
3630
- "Renren": {
3631
- "domains": [
3632
- "renren.com"
3633
- ]
3634
- },
3635
- "vKruguDruzei.ru": {
3636
- "domains": [
3637
- "vkrugudruzei.ru"
3638
- ]
3639
- },
3640
- "Gaia Online": {
3641
- "domains": [
3642
- "gaiaonline.com"
3643
- ]
3644
- },
3645
- "Netlog": {
3646
- "domains": [
3647
- "netlog.com"
3648
- ]
3649
- },
3650
- "Orkut": {
3651
- "domains": [
3652
- "orkut.com"
3653
- ]
3654
- },
3655
- "MyHeritage": {
3656
- "domains": [
3657
- "myheritage.com"
3658
- ]
3659
- },
3660
- "Multiply": {
3661
- "domains": [
3662
- "multiply.com"
3663
- ]
3664
- },
3665
- "myYearbook": {
3666
- "domains": [
3667
- "myyearbook.com"
3668
- ]
3669
- },
3670
- "WeeWorld": {
3671
- "domains": [
3672
- "weeworld.com"
3673
- ]
3674
- },
3675
- "Geni": {
3676
- "domains": [
3677
- "geni.com"
3678
- ]
3679
- },
3680
- "SourceForge": {
3681
- "domains": [
3682
- "sourceforge.net"
3683
- ]
3684
- },
3685
- "Plaxo": {
3686
- "domains": [
3687
- "plaxo.com"
3688
- ]
3689
- },
3690
- "Taringa!": {
3691
- "domains": [
3692
- "taringa.net"
3693
- ]
3694
- },
3695
- "Tagged": {
3696
- "domains": [
3697
- "login.tagged.com"
3698
- ]
3699
- },
3700
- "XING": {
3701
- "domains": [
3702
- "xing.com"
3703
- ]
3704
- },
3705
- "Vkontakte": {
3706
- "domains": [
3707
- "vk.com",
3708
- "vkontakte.ru"
3709
- ]
3710
- },
3711
- "Twitter": {
3712
- "domains": [
3713
- "twitter.com",
3714
- "t.co"
3715
- ]
3716
- },
3717
- "WAYN": {
3718
- "domains": [
3719
- "wayn.com"
3720
- ]
3721
- },
3722
- "Tuenti": {
3723
- "domains": [
3724
- "tuenti.com"
3725
- ]
3726
- },
3727
- "Mail.ru": {
3728
- "domains": [
3729
- "my.mail.ru"
3730
- ]
3731
- },
3732
- "Badoo": {
3733
- "domains": [
3734
- "badoo.com"
3735
- ]
3736
- },
3737
- "Habbo": {
3738
- "domains": [
3739
- "habbo.com"
3740
- ]
3741
- },
3742
- "Pinterest": {
3743
- "domains": [
3744
- "pinterest.com"
3745
- ]
3746
- },
3747
- "LinkedIn": {
3748
- "domains": [
3749
- "linkedin.com"
3750
- ]
3751
- },
3752
- "Foursquare": {
3753
- "domains": [
3754
- "foursquare.com"
3755
- ]
3756
- },
3757
- "Flixster": {
3758
- "domains": [
3759
- "flixster.com"
3760
- ]
3761
- },
3762
- "Windows Live Spaces": {
3763
- "domains": [
3764
- "login.live.com"
3765
- ]
3766
- },
3767
- "BlackPlanet": {
3768
- "domains": [
3769
- "blackplanet.com"
3770
- ]
3771
- },
3772
- "Cyworld": {
3773
- "domains": [
3774
- "global.cyworld.com"
3775
- ]
3776
- },
3777
- "Skyrock": {
3778
- "domains": [
3779
- "skyrock.com"
3780
- ]
3781
- },
3782
- "Facebook": {
3783
- "domains": [
3784
- "facebook.com",
3785
- "fb.me"
3786
- ]
3787
- },
3788
- "StudiVZ": {
3789
- "domains": [
3790
- "studivz.net"
3791
- ]
3792
- },
3793
- "Fotolog": {
3794
- "domains": [
3795
- "fotolog.com"
3796
- ]
3797
- },
3798
- "Google+": {
3799
- "domains": [
3800
- "url.google.com",
3801
- "plus.google.com"
3802
- ]
3803
- },
3804
- "Nasza-klasa.pl": {
3805
- "domains": [
3806
- "nk.pl"
3807
- ]
3808
- },
3809
- "Douban": {
3810
- "domains": [
3811
- "douban.com"
3812
- ]
3813
- },
3814
- "Bebo": {
3815
- "domains": [
3816
- "bebo.com"
3817
- ]
3818
- },
3819
- "Reddit": {
3820
- "domains": [
3821
- "reddit.com"
3822
- ]
3823
- },
3824
- "Identi.ca": {
3825
- "domains": [
3826
- "identi.ca"
3827
- ]
3828
- },
3829
- "StackOverflow": {
3830
- "domains": [
3831
- "stackoverflow.com"
3832
- ]
3833
- },
3834
- "Mixi": {
3835
- "domains": [
3836
- "mixi.jp"
3837
- ]
3838
- },
3839
- "StumbleUpon": {
3840
- "domains": [
3841
- "stumbleupon.com"
3842
- ]
3843
- },
3844
- "Viadeo": {
3845
- "domains": [
3846
- "viadeo.com"
3847
- ]
3848
- },
3849
- "Last.fm": {
3850
- "domains": [
3851
- "lastfm.ru"
3852
- ]
3853
- },
3854
- "LiveJournal": {
3855
- "domains": [
3856
- "livejournal.ru"
3857
- ]
3858
- },
3859
- "Tumblr": {
3860
- "domains": [
3861
- "tumblr.com"
3862
- ]
3863
- },
3864
- "Hacker News": {
3865
- "domains": [
3866
- "news.ycombinator.com"
3867
- ]
3868
- },
3869
- "Qzone": {
3870
- "domains": [
3871
- "qzone.qq.com"
3872
- ]
3873
- },
3874
- "Hyves": {
3875
- "domains": [
3876
- "hyves.nl"
3877
- ]
3878
- },
3879
- "Paper.li": {
3880
- "domains": [
3881
- "paper.li"
3882
- ]
3883
- },
3884
- "MoiKrug.ru": {
3885
- "domains": [
3886
- "moikrug.ru"
3887
- ]
3888
- }
3889
- }
3890
  }
1
+ {
2
+ "unknown": {
3
+ "Google": {
4
+ "domains": [
5
+ "support.google.com",
6
+ "developers.google.com",
7
+ "maps.google.com",
8
+ "accounts.google.com",
9
+ "drive.google.com",
10
+ "sites.google.com",
11
+ "groups.google.com",
12
+ "groups.google.co.uk",
13
+ "news.google.co.uk"
14
+ ]
15
+ },
16
+ "Yahoo!": {
17
+ "domains": [
18
+ "finance.yahoo.com",
19
+ "news.yahoo.com",
20
+ "eurosport.yahoo.com",
21
+ "sports.yahoo.com",
22
+ "astrology.yahoo.com",
23
+ "travel.yahoo.com",
24
+ "answers.yahoo.com",
25
+ "screen.yahoo.com",
26
+ "weather.yahoo.com",
27
+ "messenger.yahoo.com",
28
+ "games.yahoo.com",
29
+ "shopping.yahoo.net",
30
+ "movies.yahoo.com",
31
+ "cars.yahoo.com",
32
+ "lifestyle.yahoo.com",
33
+ "omg.yahoo.com",
34
+ "match.yahoo.net"
35
+ ]
36
+ }
37
+ },
38
+ "search": {
39
+ "TalkTalk": {
40
+ "domains": [
41
+ "www.talktalk.co.uk"
42
+ ],
43
+ "parameters": [
44
+ "query"
45
+ ]
46
+ },
47
+ "1.cz": {
48
+ "domains": [
49
+ "1.cz"
50
+ ],
51
+ "parameters": [
52
+ "q"
53
+ ]
54
+ },
55
+ "Softonic": {
56
+ "domains": [
57
+ "search.softonic.com"
58
+ ],
59
+ "parameters": [
60
+ "q"
61
+ ]
62
+ },
63
+ "GAIS": {
64
+ "domains": [
65
+ "gais.cs.ccu.edu.tw"
66
+ ],
67
+ "parameters": [
68
+ "q"
69
+ ]
70
+ },
71
+ "Freecause": {
72
+ "domains": [
73
+ "search.freecause.com"
74
+ ],
75
+ "parameters": [
76
+ "p"
77
+ ]
78
+ },
79
+ "RPMFind": {
80
+ "domains": [
81
+ "rpmfind.net",
82
+ "fr2.rpmfind.net"
83
+ ],
84
+ "parameters": [
85
+ "rpmfind.net",
86
+ "fr2.rpmfind.net"
87
+ ]
88
+ },
89
+ "Comcast": {
90
+ "domains": [
91
+ "serach.comcast.net"
92
+ ],
93
+ "parameters": [
94
+ "q"
95
+ ]
96
+ },
97
+ "Voila": {
98
+ "domains": [
99
+ "search.ke.voila.fr",
100
+ "www.lemoteur.fr"
101
+ ],
102
+ "parameters": [
103
+ "rdata"
104
+ ]
105
+ },
106
+ "Nifty": {
107
+ "domains": [
108
+ "search.nifty.com"
109
+ ],
110
+ "parameters": [
111
+ "q"
112
+ ]
113
+ },
114
+ "Atlas": {
115
+ "domains": [
116
+ "searchatlas.centrum.cz"
117
+ ],
118
+ "parameters": [
119
+ "q"
120
+ ]
121
+ },
122
+ "Lo.st": {
123
+ "domains": [
124
+ "lo.st"
125
+ ],
126
+ "parameters": [
127
+ "x_query"
128
+ ]
129
+ },
130
+ "DasTelefonbuch": {
131
+ "domains": [
132
+ "www1.dastelefonbuch.de"
133
+ ],
134
+ "parameters": [
135
+ "kw"
136
+ ]
137
+ },
138
+ "Fireball": {
139
+ "domains": [
140
+ "www.fireball.de"
141
+ ],
142
+ "parameters": [
143
+ "q"
144
+ ]
145
+ },
146
+ "1und1": {
147
+ "domains": [
148
+ "search.1und1.de"
149
+ ],
150
+ "parameters": [
151
+ "su"
152
+ ]
153
+ },
154
+ "Virgilio": {
155
+ "domains": [
156
+ "ricerca.virgilio.it",
157
+ "ricercaimmagini.virgilio.it",
158
+ "ricercavideo.virgilio.it",
159
+ "ricercanews.virgilio.it",
160
+ "mobile.virgilio.it"
161
+ ],
162
+ "parameters": [
163
+ "qs"
164
+ ]
165
+ },
166
+ "Web.nl": {
167
+ "domains": [
168
+ "www.web.nl"
169
+ ],
170
+ "parameters": [
171
+ "zoekwoord"
172
+ ]
173
+ },
174
+ "Plazoo": {
175
+ "domains": [
176
+ "www.plazoo.com"
177
+ ],
178
+ "parameters": [
179
+ "q"
180
+ ]
181
+ },
182
+ "Goyellow.de": {
183
+ "domains": [
184
+ "www.goyellow.de"
185
+ ],
186
+ "parameters": [
187
+ "MDN"
188
+ ]
189
+ },
190
+ "AOL": {
191
+ "domains": [
192
+ "search.aol.com",
193
+ "search.aol.it",
194
+ "aolsearch.aol.com",
195
+ "aolsearch.com",
196
+ "www.aolrecherche.aol.fr",
197
+ "www.aolrecherches.aol.fr",
198
+ "www.aolimages.aol.fr",
199
+ "aim.search.aol.com",
200
+ "www.recherche.aol.fr",
201
+ "find.web.aol.com",
202
+ "recherche.aol.ca",
203
+ "aolsearch.aol.co.uk",
204
+ "search.aol.co.uk",
205
+ "aolrecherche.aol.fr",
206
+ "sucheaol.aol.de",
207
+ "suche.aol.de",
208
+ "suche.aolsvc.de",
209
+ "aolbusqueda.aol.com.mx",
210
+ "alicesuche.aol.de",
211
+ "alicesuchet.aol.de",
212
+ "suchet2.aol.de",
213
+ "search.hp.my.aol.com.au",
214
+ "search.hp.my.aol.de",
215
+ "search.hp.my.aol.it",
216
+ "search-intl.netscape.com"
217
+ ],
218
+ "parameters": [
219
+ "q",
220
+ "query"
221
+ ]
222
+ },
223
+ "Acoon": {
224
+ "domains": [
225
+ "www.acoon.de"
226
+ ],
227
+ "parameters": [
228
+ "begriff"
229
+ ]
230
+ },
231
+ "Free": {
232
+ "domains": [
233
+ "search.free.fr",
234
+ "search1-2.free.fr",
235
+ "search1-1.free.fr"
236
+ ],
237
+ "parameters": [
238
+ "q"
239
+ ]
240
+ },
241
+ "Apollo Latvia": {
242
+ "domains": [
243
+ "apollo.lv/portal/search/"
244
+ ],
245
+ "parameters": [
246
+ "q"
247
+ ]
248
+ },
249
+ "HighBeam": {
250
+ "domains": [
251
+ "www.highbeam.com"
252
+ ],
253
+ "parameters": [
254
+ "q"
255
+ ]
256
+ },
257
+ "I-play": {
258
+ "domains": [
259
+ "start.iplay.com"
260
+ ],
261
+ "parameters": [
262
+ "q"
263
+ ]
264
+ },
265
+ "FriendFeed": {
266
+ "domains": [
267
+ "friendfeed.com"
268
+ ],
269
+ "parameters": [
270
+ "q"
271
+ ]
272
+ },
273
+ "Yasni": {
274
+ "domains": [
275
+ "www.yasni.de",
276
+ "www.yasni.com",
277
+ "www.yasni.co.uk",
278
+ "www.yasni.ch",
279
+ "www.yasni.at"
280
+ ],
281
+ "parameters": [
282
+ "query"
283
+ ]
284
+ },
285
+ "Gigablast": {
286
+ "domains": [
287
+ "www.gigablast.com",
288
+ "dir.gigablast.com"
289
+ ],
290
+ "parameters": [
291
+ "q"
292
+ ]
293
+ },
294
+ "arama": {
295
+ "domains": [
296
+ "arama.com"
297
+ ],
298
+ "parameters": [
299
+ "q"
300
+ ]
301
+ },
302
+ "Fixsuche": {
303
+ "domains": [
304
+ "www.fixsuche.de"
305
+ ],
306
+ "parameters": [
307
+ "q"
308
+ ]
309
+ },
310
+ "Apontador": {
311
+ "domains": [
312
+ "apontador.com.br",
313
+ "www.apontador.com.br"
314
+ ],
315
+ "parameters": [
316
+ "q"
317
+ ]
318
+ },
319
+ "Search.com": {
320
+ "domains": [
321
+ "www.search.com"
322
+ ],
323
+ "parameters": [
324
+ "q"
325
+ ]
326
+ },
327
+ "Monstercrawler": {
328
+ "domains": [
329
+ "www.monstercrawler.com"
330
+ ],
331
+ "parameters": [
332
+ "qry"
333
+ ]
334
+ },
335
+ "Google Images": {
336
+ "domains": [
337
+ "google.ac/imgres",
338
+ "google.ad/imgres",
339
+ "google.ae/imgres",
340
+ "google.am/imgres",
341
+ "google.as/imgres",
342
+ "google.at/imgres",
343
+ "google.az/imgres",
344
+ "google.ba/imgres",
345
+ "google.be/imgres",
346
+ "google.bf/imgres",
347
+ "google.bg/imgres",
348
+ "google.bi/imgres",
349
+ "google.bj/imgres",
350
+ "google.bs/imgres",
351
+ "google.by/imgres",
352
+ "google.ca/imgres",
353
+ "google.cat/imgres",
354
+ "google.cc/imgres",
355
+ "google.cd/imgres",
356
+ "google.cf/imgres",
357
+ "google.cg/imgres",
358
+ "google.ch/imgres",
359
+ "google.ci/imgres",
360
+ "google.cl/imgres",
361
+ "google.cm/imgres",
362
+ "google.cn/imgres",
363
+ "google.co.bw/imgres",
364
+ "google.co.ck/imgres",
365
+ "google.co.cr/imgres",
366
+ "google.co.id/imgres",
367
+ "google.co.il/imgres",
368
+ "google.co.in/imgres",
369
+ "google.co.jp/imgres",
370
+ "google.co.ke/imgres",
371
+ "google.co.kr/imgres",
372
+ "google.co.ls/imgres",
373
+ "google.co.ma/imgres",
374
+ "google.co.mz/imgres",
375
+ "google.co.nz/imgres",
376
+ "google.co.th/imgres",
377
+ "google.co.tz/imgres",
378
+ "google.co.ug/imgres",
379
+ "google.co.uk/imgres",
380
+ "google.co.uz/imgres",
381
+ "google.co.ve/imgres",
382
+ "google.co.vi/imgres",
383
+ "google.co.za/imgres",
384
+ "google.co.zm/imgres",
385
+ "google.co.zw/imgres",
386
+ "google.com/imgres",
387
+ "google.com.af/imgres",
388
+ "google.com.ag/imgres",
389
+ "google.com.ai/imgres",
390
+ "google.com.ar/imgres",
391
+ "google.com.au/imgres",
392
+ "google.com.bd/imgres",
393
+ "google.com.bh/imgres",
394
+ "google.com.bn/imgres",
395
+ "google.com.bo/imgres",
396
+ "google.com.br/imgres",
397
+ "google.com.by/imgres",
398
+ "google.com.bz/imgres",
399
+ "google.com.co/imgres",
400
+ "google.com.cu/imgres",
401
+ "google.com.cy/imgres",
402
+ "google.com.do/imgres",
403
+ "google.com.ec/imgres",
404
+ "google.com.eg/imgres",
405
+ "google.com.et/imgres",
406
+ "google.com.fj/imgres",
407
+ "google.com.gh/imgres",
408
+ "google.com.gi/imgres",
409
+ "google.com.gt/imgres",
410
+ "google.com.hk/imgres",
411
+ "google.com.jm/imgres",
412
+ "google.com.kh/imgres",
413
+ "google.com.kh/imgres",
414
+ "google.com.kw/imgres",
415
+ "google.com.lb/imgres",
416
+ "google.com.lc/imgres",
417
+ "google.com.ly/imgres",
418
+ "google.com.mt/imgres",
419
+ "google.com.mx/imgres",
420
+ "google.com.my/imgres",
421
+ "google.com.na/imgres",
422
+ "google.com.nf/imgres",
423
+ "google.com.ng/imgres",
424
+ "google.com.ni/imgres",
425
+ "google.com.np/imgres",
426
+ "google.com.om/imgres",
427
+ "google.com.pa/imgres",
428
+ "google.com.pe/imgres",
429
+ "google.com.ph/imgres",
430
+ "google.com.pk/imgres",
431
+ "google.com.pr/imgres",
432
+ "google.com.py/imgres",
433
+ "google.com.qa/imgres",
434
+ "google.com.sa/imgres",
435
+ "google.com.sb/imgres",
436
+ "google.com.sg/imgres",
437
+ "google.com.sl/imgres",
438
+ "google.com.sv/imgres",
439
+ "google.com.tj/imgres",
440
+ "google.com.tn/imgres",
441
+ "google.com.tr/imgres",
442
+ "google.com.tw/imgres",
443
+ "google.com.ua/imgres",
444
+ "google.com.uy/imgres",
445
+ "google.com.vc/imgres",
446
+ "google.com.vn/imgres",
447
+ "google.cv/imgres",
448
+ "google.cz/imgres",
449
+ "google.de/imgres",
450
+ "google.dj/imgres",
451
+ "google.dk/imgres",
452
+ "google.dm/imgres",
453
+ "google.dz/imgres",
454
+ "google.ee/imgres",
455
+ "google.es/imgres",
456
+ "google.fi/imgres",
457
+ "google.fm/imgres",
458
+ "google.fr/imgres",
459
+ "google.ga/imgres",
460
+ "google.gd/imgres",
461
+ "google.ge/imgres",
462
+ "google.gf/imgres",
463
+ "google.gg/imgres",
464
+ "google.gl/imgres",
465
+ "google.gm/imgres",
466
+ "google.gp/imgres",
467
+ "google.gr/imgres",
468
+ "google.gy/imgres",
469
+ "google.hn/imgres",
470
+ "google.hr/imgres",
471
+ "google.ht/imgres",
472
+ "google.hu/imgres",
473
+ "google.ie/imgres",
474
+ "google.im/imgres",
475
+ "google.io/imgres",
476
+ "google.iq/imgres",
477
+ "google.is/imgres",
478
+ "google.it/imgres",
479
+ "google.it.ao/imgres",
480
+ "google.je/imgres",
481
+ "google.jo/imgres",
482
+ "google.kg/imgres",
483
+ "google.ki/imgres",
484
+ "google.kz/imgres",
485
+ "google.la/imgres",
486
+ "google.li/imgres",
487
+ "google.lk/imgres",
488
+ "google.lt/imgres",
489
+ "google.lu/imgres",
490
+ "google.lv/imgres",
491
+ "google.md/imgres",
492
+ "google.me/imgres",
493
+ "google.mg/imgres",
494
+ "google.mk/imgres",
495
+ "google.ml/imgres",
496
+ "google.mn/imgres",
497
+ "google.ms/imgres",
498
+ "google.mu/imgres",
499
+ "google.mv/imgres",
500
+ "google.mw/imgres",
501
+ "google.ne/imgres",
502
+ "google.nl/imgres",
503
+ "google.no/imgres",
504
+ "google.nr/imgres",
505
+ "google.nu/imgres",
506
+ "google.pl/imgres",
507
+ "google.pn/imgres",
508
+ "google.ps/imgres",
509
+ "google.pt/imgres",
510
+ "google.ro/imgres",
511
+ "google.rs/imgres",
512
+ "google.ru/imgres",
513
+ "google.rw/imgres",
514
+ "google.sc/imgres",
515
+ "google.se/imgres",
516
+ "google.sh/imgres",
517
+ "google.si/imgres",
518
+ "google.sk/imgres",
519
+ "google.sm/imgres",
520
+ "google.sn/imgres",
521
+ "google.so/imgres",
522
+ "google.st/imgres",
523
+ "google.td/imgres",
524
+ "google.tg/imgres",
525
+ "google.tk/imgres",
526
+ "google.tl/imgres",
527
+ "google.tm/imgres",
528
+ "google.to/imgres",
529
+ "google.tt/imgres",
530
+ "google.us/imgres",
531
+ "google.vg/imgres",
532
+ "google.vu/imgres",
533
+ "images.google.ws",
534
+ "images.google.ac",
535
+ "images.google.ad",
536
+ "images.google.ae",
537
+ "images.google.am",
538
+ "images.google.as",
539
+ "images.google.at",
540
+ "images.google.az",
541
+ "images.google.ba",
542
+ "images.google.be",
543
+ "images.google.bf",
544
+ "images.google.bg",
545
+ "images.google.bi",
546
+ "images.google.bj",
547
+ "images.google.bs",
548
+ "images.google.by",
549
+ "images.google.ca",
550
+ "images.google.cat",
551
+ "images.google.cc",
552
+ "images.google.cd",
553
+ "images.google.cf",
554
+ "images.google.cg",
555
+ "images.google.ch",
556
+ "images.google.ci",
557
+ "images.google.cl",
558
+ "images.google.cm",
559
+ "images.google.cn",
560
+ "images.google.co.bw",
561
+ "images.google.co.ck",
562
+ "images.google.co.cr",
563
+ "images.google.co.id",
564
+ "images.google.co.il",
565
+ "images.google.co.in",
566
+ "images.google.co.jp",
567
+ "images.google.co.ke",
568
+ "images.google.co.kr",
569
+ "images.google.co.ls",
570
+ "images.google.co.ma",
571
+ "images.google.co.mz",
572
+ "images.google.co.nz",
573
+ "images.google.co.th",
574
+ "images.google.co.tz",
575
+ "images.google.co.ug",
576
+ "images.google.co.uk",
577
+ "images.google.co.uz",
578
+ "images.google.co.ve",
579
+ "images.google.co.vi",
580
+ "images.google.co.za",
581
+ "images.google.co.zm",
582
+ "images.google.co.zw",
583
+ "images.google.com",
584
+ "images.google.com.af",
585
+ "images.google.com.ag",
586
+ "images.google.com.ai",
587
+ "images.google.com.ar",
588
+ "images.google.com.au",
589
+ "images.google.com.bd",
590
+ "images.google.com.bh",
591
+ "images.google.com.bn",
592
+ "images.google.com.bo",
593
+ "images.google.com.br",
594
+ "images.google.com.by",
595
+ "images.google.com.bz",
596
+ "images.google.com.co",
597
+ "images.google.com.cu",
598
+ "images.google.com.cy",
599
+ "images.google.com.do",
600
+ "images.google.com.ec",
601
+ "images.google.com.eg",
602
+ "images.google.com.et",
603
+ "images.google.com.fj",
604
+ "images.google.com.gh",
605
+ "images.google.com.gi",
606
+ "images.google.com.gt",
607
+ "images.google.com.hk",
608
+ "images.google.com.jm",
609
+ "images.google.com.kh",
610
+ "images.google.com.kh",
611
+ "images.google.com.kw",
612
+ "images.google.com.lb",
613
+ "images.google.com.lc",
614
+ "images.google.com.ly",
615
+ "images.google.com.mt",
616
+ "images.google.com.mx",
617
+ "images.google.com.my",
618
+ "images.google.com.na",
619
+ "images.google.com.nf",
620
+ "images.google.com.ng",
621
+ "images.google.com.ni",
622
+ "images.google.com.np",
623
+ "images.google.com.om",
624
+ "images.google.com.pa",
625
+ "images.google.com.pe",
626
+ "images.google.com.ph",
627
+ "images.google.com.pk",
628
+ "images.google.com.pr",
629
+ "images.google.com.py",
630
+ "images.google.com.qa",
631
+ "images.google.com.sa",
632
+ "images.google.com.sb",
633
+ "images.google.com.sg",
634
+ "images.google.com.sl",
635
+ "images.google.com.sv",
636
+ "images.google.com.tj",
637
+ "images.google.com.tn",
638
+ "images.google.com.tr",
639
+ "images.google.com.tw",
640
+ "images.google.com.ua",
641
+ "images.google.com.uy",
642
+ "images.google.com.vc",
643
+ "images.google.com.vn",
644
+ "images.google.cv",
645
+ "images.google.cz",
646
+ "images.google.de",
647
+ "images.google.dj",
648
+ "images.google.dk",
649
+ "images.google.dm",
650
+ "images.google.dz",
651
+ "images.google.ee",
652
+ "images.google.es",
653
+ "images.google.fi",
654
+ "images.google.fm",
655
+ "images.google.fr",
656
+ "images.google.ga",
657
+ "images.google.gd",
658
+ "images.google.ge",
659
+ "images.google.gf",
660
+ "images.google.gg",
661
+ "images.google.gl",
662
+ "images.google.gm",
663
+ "images.google.gp",
664
+ "images.google.gr",
665
+ "images.google.gy",
666
+ "images.google.hn",
667
+ "images.google.hr",
668
+ "images.google.ht",
669
+ "images.google.hu",
670
+ "images.google.ie",
671
+ "images.google.im",
672
+ "images.google.io",
673
+ "images.google.iq",
674
+ "images.google.is",
675
+ "images.google.it",
676
+ "images.google.it.ao",
677
+ "images.google.je",
678
+ "images.google.jo",
679
+ "images.google.kg",
680
+ "images.google.ki",
681
+ "images.google.kz",
682
+ "images.google.la",
683
+ "images.google.li",
684
+ "images.google.lk",
685
+ "images.google.lt",
686
+ "images.google.lu",
687
+ "images.google.lv",
688
+ "images.google.md",
689
+ "images.google.me",
690
+ "images.google.mg",
691
+ "images.google.mk",
692
+ "images.google.ml",
693
+ "images.google.mn",
694
+ "images.google.ms",
695
+ "images.google.mu",
696
+ "images.google.mv",
697
+ "images.google.mw",
698
+ "images.google.ne",
699
+ "images.google.nl",
700
+ "images.google.no",
701
+ "images.google.nr",
702
+ "images.google.nu",
703
+ "images.google.pl",
704
+ "images.google.pn",
705
+ "images.google.ps",
706
+ "images.google.pt",
707
+ "images.google.ro",
708
+ "images.google.rs",
709
+ "images.google.ru",
710
+ "images.google.rw",
711
+ "images.google.sc",
712
+ "images.google.se",
713
+ "images.google.sh",
714
+ "images.google.si",
715
+ "images.google.sk",
716
+ "images.google.sm",
717
+ "images.google.sn",
718
+ "images.google.so",
719
+ "images.google.st",
720
+ "images.google.td",
721
+ "images.google.tg",
722
+ "images.google.tk",
723
+ "images.google.tl",
724
+ "images.google.tm",
725
+ "images.google.to",
726
+ "images.google.tt",
727
+ "images.google.us",
728
+ "images.google.vg",
729
+ "images.google.vu",
730
+ "images.google.ws"
731
+ ],
732
+ "parameters": [
733
+ "q"
734
+ ]
735
+ },
736
+ "ABCs\u00f8k": {
737
+ "domains": [
738
+ "abcsolk.no",
739
+ "verden.abcsok.no"
740
+ ],
741
+ "parameters": [
742
+ "q"
743
+ ]
744
+ },
745
+ "Google Product Search": {
746
+ "domains": [
747
+ "google.ac/products",
748
+ "google.ad/products",
749
+ "google.ae/products",
750
+ "google.am/products",
751
+ "google.as/products",
752
+ "google.at/products",
753
+ "google.az/products",
754
+ "google.ba/products",
755
+ "google.be/products",
756
+ "google.bf/products",
757
+ "google.bg/products",
758
+ "google.bi/products",
759
+ "google.bj/products",
760
+ "google.bs/products",
761
+ "google.by/products",
762
+ "google.ca/products",
763
+ "google.cat/products",
764
+ "google.cc/products",
765
+ "google.cd/products",
766
+ "google.cf/products",
767
+ "google.cg/products",
768
+ "google.ch/products",
769
+ "google.ci/products",
770
+ "google.cl/products",
771
+ "google.cm/products",
772
+ "google.cn/products",
773
+ "google.co.bw/products",
774
+ "google.co.ck/products",
775
+ "google.co.cr/products",
776
+ "google.co.id/products",
777
+ "google.co.il/products",
778
+ "google.co.in/products",
779
+ "google.co.jp/products",
780
+ "google.co.ke/products",
781
+ "google.co.kr/products",
782
+ "google.co.ls/products",
783
+ "google.co.ma/products",
784
+ "google.co.mz/products",
785
+ "google.co.nz/products",
786
+ "google.co.th/products",
787
+ "google.co.tz/products",
788
+ "google.co.ug/products",
789
+ "google.co.uk/products",
790
+ "google.co.uz/products",
791
+ "google.co.ve/products",
792
+ "google.co.vi/products",
793
+ "google.co.za/products",
794
+ "google.co.zm/products",
795
+ "google.co.zw/products",
796
+ "google.com/products",
797
+ "google.com.af/products",
798
+ "google.com.ag/products",
799
+ "google.com.ai/products",
800
+ "google.com.ar/products",
801
+ "google.com.au/products",
802
+ "google.com.bd/products",
803
+ "google.com.bh/products",
804
+ "google.com.bn/products",
805
+ "google.com.bo/products",
806
+ "google.com.br/products",
807
+ "google.com.by/products",
808
+ "google.com.bz/products",
809
+ "google.com.co/products",
810
+ "google.com.cu/products",
811
+ "google.com.cy/products",
812
+ "google.com.do/products",
813
+ "google.com.ec/products",
814
+ "google.com.eg/products",
815
+ "google.com.et/products",
816
+ "google.com.fj/products",
817
+ "google.com.gh/products",
818
+ "google.com.gi/products",
819
+ "google.com.gt/products",
820
+ "google.com.hk/products",
821
+ "google.com.jm/products",
822
+ "google.com.kh/products",
823
+ "google.com.kh/products",
824
+ "google.com.kw/products",
825
+ "google.com.lb/products",
826
+ "google.com.lc/products",
827
+ "google.com.ly/products",
828
+ "google.com.mt/products",
829
+ "google.com.mx/products",
830
+ "google.com.my/products",
831
+ "google.com.na/products",
832
+ "google.com.nf/products",
833
+ "google.com.ng/products",
834
+ "google.com.ni/products",
835
+ "google.com.np/products",
836
+ "google.com.om/products",
837
+ "google.com.pa/products",
838
+ "google.com.pe/products",
839
+ "google.com.ph/products",
840
+ "google.com.pk/products",
841
+ "google.com.pr/products",
842
+ "google.com.py/products",
843
+ "google.com.qa/products",
844
+ "google.com.sa/products",
845
+ "google.com.sb/products",
846
+ "google.com.sg/products",
847
+ "google.com.sl/products",
848
+ "google.com.sv/products",
849
+ "google.com.tj/products",
850
+ "google.com.tn/products",
851
+ "google.com.tr/products",
852
+ "google.com.tw/products",
853
+ "google.com.ua/products",
854
+ "google.com.uy/products",
855
+ "google.com.vc/products",
856
+ "google.com.vn/products",
857
+ "google.cv/products",
858
+ "google.cz/products",
859
+ "google.de/products",
860
+ "google.dj/products",
861
+ "google.dk/products",
862
+ "google.dm/products",
863
+ "google.dz/products",
864
+ "google.ee/products",
865
+ "google.es/products",
866
+ "google.fi/products",
867
+ "google.fm/products",
868
+ "google.fr/products",
869
+ "google.ga/products",
870
+ "google.gd/products",
871
+ "google.ge/products",
872
+ "google.gf/products",
873
+ "google.gg/products",
874
+ "google.gl/products",
875
+ "google.gm/products",
876
+ "google.gp/products",
877
+ "google.gr/products",
878
+ "google.gy/products",
879
+ "google.hn/products",
880
+ "google.hr/products",
881
+ "google.ht/products",
882
+ "google.hu/products",
883
+ "google.ie/products",
884
+ "google.im/products",
885
+ "google.io/products",
886
+ "google.iq/products",
887
+ "google.is/products",
888
+ "google.it/products",
889
+ "google.it.ao/products",
890
+ "google.je/products",
891
+ "google.jo/products",
892
+ "google.kg/products",
893
+ "google.ki/products",
894
+ "google.kz/products",
895
+ "google.la/products",
896
+ "google.li/products",
897
+ "google.lk/products",
898
+ "google.lt/products",
899
+ "google.lu/products",
900
+ "google.lv/products",
901
+ "google.md/products",
902
+ "google.me/products",
903
+ "google.mg/products",
904
+ "google.mk/products",
905
+ "google.ml/products",
906
+ "google.mn/products",
907
+ "google.ms/products",
908
+ "google.mu/products",
909
+ "google.mv/products",
910
+ "google.mw/products",
911
+ "google.ne/products",
912
+ "google.nl/products",
913
+ "google.no/products",
914
+ "google.nr/products",
915
+ "google.nu/products",
916
+ "google.pl/products",
917
+ "google.pn/products",
918
+ "google.ps/products",
919
+ "google.pt/products",
920
+ "google.ro/products",
921
+ "google.rs/products",
922
+ "google.ru/products",
923
+ "google.rw/products",
924
+ "google.sc/products",
925
+ "google.se/products",
926
+ "google.sh/products",
927
+ "google.si/products",
928
+ "google.sk/products",
929
+ "google.sm/products",
930
+ "google.sn/products",
931
+ "google.so/products",
932
+ "google.st/products",
933
+ "google.td/products",
934
+ "google.tg/products",
935
+ "google.tk/products",
936
+ "google.tl/products",
937
+ "google.tm/products",
938
+ "google.to/products",
939
+ "google.tt/products",
940
+ "google.us/products",
941
+ "google.vg/products",
942
+ "google.vu/products",
943
+ "google.ws/products",
944
+ "www.google.ac/products",
945
+ "www.google.ad/products",
946
+ "www.google.ae/products",
947
+ "www.google.am/products",
948
+ "www.google.as/products",
949
+ "www.google.at/products",
950
+ "www.google.az/products",
951
+ "www.google.ba/products",
952
+ "www.google.be/products",
953
+ "www.google.bf/products",
954
+ "www.google.bg/products",
955
+ "www.google.bi/products",
956
+ "www.google.bj/products",
957
+ "www.google.bs/products",
958
+ "www.google.by/products",
959
+ "www.google.ca/products",
960
+ "www.google.cat/products",
961
+ "www.google.cc/products",
962
+ "www.google.cd/products",
963
+ "www.google.cf/products",
964
+ "www.google.cg/products",
965
+ "www.google.ch/products",
966
+ "www.google.ci/products",
967
+ "www.google.cl/products",
968
+ "www.google.cm/products",
969
+ "www.google.cn/products",
970
+ "www.google.co.bw/products",
971
+ "www.google.co.ck/products",
972
+ "www.google.co.cr/products",
973
+ "www.google.co.id/products",
974
+ "www.google.co.il/products",
975
+ "www.google.co.in/products",
976
+ "www.google.co.jp/products",
977
+ "www.google.co.ke/products",
978
+ "www.google.co.kr/products",
979
+ "www.google.co.ls/products",
980
+ "www.google.co.ma/products",
981
+ "www.google.co.mz/products",
982
+ "www.google.co.nz/products",
983
+ "www.google.co.th/products",
984
+ "www.google.co.tz/products",
985
+ "www.google.co.ug/products",
986
+ "www.google.co.uk/products",
987
+ "www.google.co.uz/products",
988
+ "www.google.co.ve/products",
989
+ "www.google.co.vi/products",
990
+ "www.google.co.za/products",
991
+ "www.google.co.zm/products",
992
+ "www.google.co.zw/products",
993
+ "www.google.com/products",
994
+ "www.google.com.af/products",
995
+ "www.google.com.ag/products",
996
+ "www.google.com.ai/products",
997
+ "www.google.com.ar/products",
998
+ "www.google.com.au/products",
999
+ "www.google.com.bd/products",
1000
+ "www.google.com.bh/products",
1001
+ "www.google.com.bn/products",
1002
+ "www.google.com.bo/products",
1003
+ "www.google.com.br/products",
1004
+ "www.google.com.by/products",
1005
+ "www.google.com.bz/products",
1006
+ "www.google.com.co/products",
1007
+ "www.google.com.cu/products",
1008
+ "www.google.com.cy/products",
1009
+ "www.google.com.do/products",
1010
+ "www.google.com.ec/products",
1011
+ "www.google.com.eg/products",
1012
+ "www.google.com.et/products",
1013
+ "www.google.com.fj/products",
1014
+ "www.google.com.gh/products",
1015
+ "www.google.com.gi/products",
1016
+ "www.google.com.gt/products",
1017
+ "www.google.com.hk/products",
1018
+ "www.google.com.jm/products",
1019
+ "www.google.com.kh/products",
1020
+ "www.google.com.kh/products",
1021
+ "www.google.com.kw/products",
1022
+ "www.google.com.lb/products",
1023
+ "www.google.com.lc/products",
1024
+ "www.google.com.ly/products",
1025
+ "www.google.com.mt/products",
1026
+ "www.google.com.mx/products",
1027
+ "www.google.com.my/products",
1028
+ "www.google.com.na/products",
1029
+ "www.google.com.nf/products",
1030
+ "www.google.com.ng/products",
1031
+ "www.google.com.ni/products",
1032
+ "www.google.com.np/products",
1033
+ "www.google.com.om/products",
1034
+ "www.google.com.pa/products",
1035
+ "www.google.com.pe/products",
1036
+ "www.google.com.ph/products",
1037
+ "www.google.com.pk/products",
1038
+ "www.google.com.pr/products",
1039
+ "www.google.com.py/products",
1040
+ "www.google.com.qa/products",
1041
+ "www.google.com.sa/products",
1042
+ "www.google.com.sb/products",
1043
+ "www.google.com.sg/products",
1044
+ "www.google.com.sl/products",
1045
+ "www.google.com.sv/products",
1046
+ "www.google.com.tj/products",
1047
+ "www.google.com.tn/products",
1048
+ "www.google.com.tr/products",
1049
+ "www.google.com.tw/products",
1050
+ "www.google.com.ua/products",
1051
+ "www.google.com.uy/products",
1052
+ "www.google.com.vc/products",
1053
+ "www.google.com.vn/products",
1054
+ "www.google.cv/products",
1055
+ "www.google.cz/products",
1056
+ "www.google.de/products",
1057
+ "www.google.dj/products",
1058
+ "www.google.dk/products",
1059
+ "www.google.dm/products",
1060
+ "www.google.dz/products",
1061
+ "www.google.ee/products",
1062
+ "www.google.es/products",
1063
+ "www.google.fi/products",
1064
+ "www.google.fm/products",
1065
+ "www.google.fr/products",
1066
+ "www.google.ga/products",
1067
+ "www.google.gd/products",
1068
+ "www.google.ge/products",
1069
+ "www.google.gf/products",
1070
+ "www.google.gg/products",
1071
+ "www.google.gl/products",
1072
+ "www.google.gm/products",
1073
+ "www.google.gp/products",
1074
+ "www.google.gr/products",
1075
+ "www.google.gy/products",
1076
+ "www.google.hn/products",
1077
+ "www.google.hr/products",
1078
+ "www.google.ht/products",
1079
+ "www.google.hu/products",
1080
+ "www.google.ie/products",
1081
+ "www.google.im/products",
1082
+ "www.google.io/products",
1083
+ "www.google.iq/products",
1084
+ "www.google.is/products",
1085
+ "www.google.it/products",
1086
+ "www.google.it.ao/products",
1087
+ "www.google.je/products",
1088
+ "www.google.jo/products",
1089
+ "www.google.kg/products",
1090
+ "www.google.ki/products",
1091
+ "www.google.kz/products",
1092
+ "www.google.la/products",
1093
+ "www.google.li/products",
1094
+ "www.google.lk/products",
1095
+ "www.google.lt/products",
1096
+ "www.google.lu/products",
1097
+ "www.google.lv/products",
1098
+ "www.google.md/products",
1099
+ "www.google.me/products",
1100
+ "www.google.mg/products",
1101
+ "www.google.mk/products",
1102
+ "www.google.ml/products",
1103
+ "www.google.mn/products",
1104
+ "www.google.ms/products",
1105
+ "www.google.mu/products",
1106
+ "www.google.mv/products",
1107
+ "www.google.mw/products",
1108
+ "www.google.ne/products",
1109
+ "www.google.nl/products",
1110
+ "www.google.no/products",
1111
+ "www.google.nr/products",
1112
+ "www.google.nu/products",
1113
+ "www.google.pl/products",
1114
+ "www.google.pn/products",
1115
+ "www.google.ps/products",
1116
+ "www.google.pt/products",
1117
+ "www.google.ro/products",
1118
+ "www.google.rs/products",
1119
+ "www.google.ru/products",
1120
+ "www.google.rw/products",
1121
+ "www.google.sc/products",
1122
+ "www.google.se/products",
1123
+ "www.google.sh/products",
1124
+ "www.google.si/products",
1125
+ "www.google.sk/products",
1126
+ "www.google.sm/products",
1127
+ "www.google.sn/products",
1128
+ "www.google.so/products",
1129
+ "www.google.st/products",
1130
+ "www.google.td/products",
1131
+ "www.google.tg/products",
1132
+ "www.google.tk/products",
1133
+ "www.google.tl/products",
1134
+ "www.google.tm/products",
1135
+ "www.google.to/products",
1136
+ "www.google.tt/products",
1137
+ "www.google.us/products",
1138
+ "www.google.vg/products",
1139
+ "www.google.vu/products",
1140
+ "www.google.ws/products"
1141
+ ],
1142
+ "parameters": [
1143
+ "q"
1144
+ ]
1145
+ },
1146
+ "DasOertliche": {
1147
+ "domains": [
1148
+ "www.dasoertliche.de"
1149
+ ],
1150
+ "parameters": [
1151
+ "kw"
1152
+ ]
1153
+ },
1154
+ "InfoSpace": {
1155
+ "domains": [
1156
+ "infospace.com",
1157
+ "dogpile.com",
1158
+ "www.dogpile.com",
1159
+ "metacrawler.com",
1160
+ "webfetch.com",
1161
+ "webcrawler.com",
1162
+ "search.kiwee.com",
1163
+ "isearch.babylon.com",
1164
+ "start.facemoods.com",
1165
+ "search.magnetic.com",
1166
+ "search.searchcompletion.com",
1167
+ "clusty.com"
1168
+ ],
1169
+ "parameters": [
1170
+ "q",
1171
+ "s"
1172
+ ]
1173
+ },
1174
+ "Weborama": {
1175
+ "domains": [
1176
+ "www.weborama.com"
1177
+ ],
1178
+ "parameters": [
1179
+ "QUERY"
1180
+ ]
1181
+ },
1182
+ "Bluewin": {
1183
+ "domains": [
1184
+ "search.bluewin.ch"
1185
+ ],
1186
+ "parameters": [
1187
+ "searchTerm"
1188
+ ]
1189
+ },
1190
+ "Neti": {
1191
+ "domains": [
1192
+ "www.neti.ee"
1193
+ ],
1194
+ "parameters": [
1195
+ "query"
1196
+ ]
1197
+ },
1198
+ "Winamp": {
1199
+ "domains": [
1200
+ "search.winamp.com"
1201
+ ],
1202
+ "parameters": [
1203
+ "q"
1204
+ ]
1205
+ },
1206
+ "Nigma": {
1207
+ "domains": [
1208
+ "nigma.ru"
1209
+ ],
1210
+ "parameters": [
1211
+ "s"
1212
+ ]
1213
+ },
1214
+ "Yahoo! Images": {
1215
+ "domains": [
1216
+ "image.yahoo.cn",
1217
+ "images.search.yahoo.com"
1218
+ ],
1219
+ "parameters": [
1220
+ "p",
1221
+ "q"
1222
+ ]
1223
+ },
1224
+ "Exalead": {
1225
+ "domains": [
1226
+ "www.exalead.fr",
1227
+ "www.exalead.com"
1228
+ ],
1229
+ "parameters": [
1230
+ "q"
1231
+ ]
1232
+ },
1233
+ "Teoma": {
1234
+ "domains": [
1235
+ "www.teoma.com"
1236
+ ],
1237
+ "parameters": [
1238
+ "q"
1239
+ ]
1240
+ },
1241
+ "Needtofind": {
1242
+ "domains": [
1243
+ "ko.search.need2find.com"
1244
+ ],
1245
+ "parameters": [
1246
+ "searchfor"
1247
+ ]
1248
+ },
1249
+ "Looksmart": {
1250
+ "domains": [
1251
+ "www.looksmart.com"
1252
+ ],
1253
+ "parameters": [
1254
+ "key"
1255
+ ]
1256
+ },
1257
+ "Wirtualna Polska": {
1258
+ "domains": [
1259
+ "szukaj.wp.pl"
1260
+ ],
1261
+ "parameters": [
1262
+ "szukaj"
1263
+ ]
1264
+ },
1265
+ "Toolbarhome": {
1266
+ "domains": [
1267
+ "www.toolbarhome.com",
1268
+ "vshare.toolbarhome.com"
1269
+ ],
1270
+ "parameters": [
1271
+ "q"
1272
+ ]
1273
+ },
1274
+ "Searchalot": {
1275
+ "domains": [
1276
+ "searchalot.com"
1277
+ ],
1278
+ "parameters": [
1279
+ "q"
1280
+ ]
1281
+ },
1282
+ "Yandex": {
1283
+ "domains": [
1284
+ "yandex.ru",
1285
+ "yandex.ua",
1286
+ "yandex.com",
1287
+ "www.yandex.ru",
1288
+ "www.yandex.ua",
1289
+ "www.yandex.com"
1290
+ ],
1291
+ "parameters": [
1292
+ "text"
1293
+ ]
1294
+ },
1295
+ "canoe.ca": {
1296
+ "domains": [
1297
+ "web.canoe.ca"
1298
+ ],
1299
+ "parameters": [
1300
+ "q"
1301
+ ]
1302
+ },
1303
+ "Compuserve": {
1304
+ "domains": [
1305
+ "websearch.cs.com"
1306
+ ],
1307
+ "parameters": [
1308
+ "query"
1309
+ ]
1310
+ },
1311
+ "Startpagina": {
1312
+ "domains": [
1313
+ "startgoogle.startpagina.nl"
1314
+ ],
1315
+ "parameters": [
1316
+ "q"
1317
+ ]
1318
+ },
1319
+ "eo": {
1320
+ "domains": [
1321
+ "eo.st"
1322
+ ],
1323
+ "parameters": [
1324
+ "x_query"
1325
+ ]
1326
+ },
1327
+ "Zhongsou": {
1328
+ "domains": [
1329
+ "p.zhongsou.com"
1330
+ ],
1331
+ "parameters": [
1332
+ "w"
1333
+ ]
1334
+ },
1335
+ "La Toile Du Quebec Via Google": {
1336
+ "domains": [
1337
+ "www.toile.com",
1338
+ "web.toile.com"
1339
+ ],
1340
+ "parameters": [
1341
+ "q"
1342
+ ]
1343
+ },
1344
+ "Paperball": {
1345
+ "domains": [
1346
+ "www.paperball.de"
1347
+ ],
1348
+ "parameters": [
1349
+ "q"
1350
+ ]
1351
+ },
1352
+ "Jungle Spider": {
1353
+ "domains": [
1354
+ "www.jungle-spider.de"
1355
+ ],
1356
+ "parameters": [
1357
+ "q"
1358
+ ]
1359
+ },
1360
+ "PeoplePC": {
1361
+ "domains": [
1362
+ "search.peoplepc.com"
1363
+ ],
1364
+ "parameters": [
1365
+ "q"
1366
+ ]
1367
+ },
1368
+ "MetaCrawler.de": {
1369
+ "domains": [
1370
+ "s1.metacrawler.de",
1371
+ "s2.metacrawler.de",
1372
+ "s3.metacrawler.de"
1373
+ ],
1374
+ "parameters": [
1375
+ "qry"
1376
+ ]
1377
+ },
1378
+ "Orange": {
1379
+ "domains": [
1380
+ "busca.orange.es",
1381
+ "search.orange.co.uk"
1382
+ ],
1383
+ "parameters": [
1384
+ "q"
1385
+ ]
1386
+ },
1387
+ "Gule Sider": {
1388
+ "domains": [
1389
+ "www.gulesider.no"
1390
+ ],
1391
+ "parameters": [
1392
+ "q"
1393
+ ]
1394
+ },
1395
+ "Francite": {
1396
+ "domains": [
1397
+ "recherche.francite.com"
1398
+ ],
1399
+ "parameters": [
1400
+ "name"
1401
+ ]
1402
+ },
1403
+ "Ask Toolbar": {
1404
+ "domains": [
1405
+ "search.tb.ask.com"
1406
+ ],
1407
+ "parameters": [
1408
+ "searchfor"
1409
+ ]
1410
+ },
1411
+ "Aport": {
1412
+ "domains": [
1413
+ "sm.aport.ru"
1414
+ ],
1415
+ "parameters": [
1416
+ "r"
1417
+ ]
1418
+ },
1419
+ "Trusted-Search": {
1420
+ "domains": [
1421
+ "www.trusted--search.com"
1422
+ ],
1423
+ "parameters": [
1424
+ "w"
1425
+ ]
1426
+ },
1427
+ "goo": {
1428
+ "domains": [
1429
+ "search.goo.ne.jp",
1430
+ "ocnsearch.goo.ne.jp"
1431
+ ],
1432
+ "parameters": [
1433
+ "MT"
1434
+ ]
1435
+ },
1436
+ "Fast Browser Search": {
1437
+ "domains": [
1438
+ "www.fastbrowsersearch.com"
1439
+ ],
1440
+ "parameters": [
1441
+ "q"
1442
+ ]
1443
+ },
1444
+ "Blogpulse": {
1445
+ "domains": [
1446
+ "www.blogpulse.com"
1447
+ ],
1448
+ "parameters": [
1449
+ "query"
1450
+ ]
1451
+ },
1452
+ "Volny": {
1453
+ "domains": [
1454
+ "web.volny.cz"
1455
+ ],
1456
+ "parameters": [
1457
+ "search"
1458
+ ]
1459
+ },
1460
+ "Icerockeet": {
1461
+ "domains": [
1462
+ "blogs.icerocket.com"
1463
+ ],
1464
+ "parameters": [
1465
+ "q"
1466
+ ]
1467
+ },
1468
+ "Terra": {
1469
+ "domains": [
1470
+ "buscador.terra.es",
1471
+ "buscador.terra.cl",
1472
+ "buscador.terra.com.br"
1473
+ ],
1474
+ "parameters": [
1475
+ "query"
1476
+ ]
1477
+ },
1478
+ "Searchy": {
1479
+ "domains": [
1480
+ "www.searchy.co.uk"
1481
+ ],
1482
+ "parameters": [
1483
+ "q"
1484
+ ]
1485
+ },
1486
+ "Onet": {
1487
+ "domains": [
1488
+ "szukaj.onet.pl"
1489
+ ],
1490
+ "parameters": [
1491
+ "qt"
1492
+ ]
1493
+ },
1494
+ "Digg": {
1495
+ "domains": [
1496
+ "digg.com"
1497
+ ],
1498
+ "parameters": [
1499
+ "s"
1500
+ ]
1501
+ },
1502
+ "Abacho": {
1503
+ "domains": [
1504
+ "www.abacho.de",
1505
+ "www.abacho.com",
1506
+ "www.abacho.co.uk",
1507
+ "www.se.abacho.com",
1508
+ "www.tr.abacho.com",
1509
+ "www.abacho.at",
1510
+ "www.abacho.fr",
1511
+ "www.abacho.es",
1512
+ "www.abacho.ch",
1513
+ "www.abacho.it"
1514
+ ],
1515
+ "parameters": [
1516
+ "q"
1517
+ ]
1518
+ },
1519
+ "maailm": {
1520
+ "domains": [
1521
+ "www.maailm.com"
1522
+ ],
1523
+ "parameters": [
1524
+ "tekst"
1525
+ ]
1526
+ },
1527
+ "Flix": {
1528
+ "domains": [
1529
+ "www.flix.de"
1530
+ ],
1531
+ "parameters": [
1532
+ "keyword"
1533
+ ]
1534
+ },
1535
+ "Suchnase": {
1536
+ "domains": [
1537
+ "www.suchnase.de"
1538
+ ],
1539
+ "parameters": [
1540
+ "q"
1541
+ ]
1542
+ },
1543
+ "Freenet": {
1544
+ "domains": [
1545
+ "suche.freenet.de"
1546
+ ],
1547
+ "parameters": [
1548
+ "query",
1549
+ "Keywords"
1550
+ ]
1551
+ },
1552
+ "DuckDuckGoL": {
1553
+ "domains": [
1554
+ "duckduckgo.com"
1555
+ ],
1556
+ "parameters": [
1557
+ "q"
1558
+ ]
1559
+ },
1560
+ "Poisk.ru": {
1561
+ "domains": [
1562
+ "www.plazoo.com"
1563
+ ],
1564
+ "parameters": [
1565
+ "q"
1566
+ ]
1567
+ },
1568
+ "Sharelook": {
1569
+ "domains": [
1570
+ "www.sharelook.fr"
1571
+ ],
1572
+ "parameters": [
1573
+ "keyword"
1574
+ ]
1575
+ },
1576
+ "Najdi": {
1577
+ "domains": [
1578
+ "www.najdi.si"
1579
+ ],
1580
+ "parameters": [
1581
+ "q"
1582
+ ]
1583
+ },
1584
+ "Picsearch": {
1585
+ "domains": [
1586
+ "www.picsearch.com"
1587
+ ],
1588
+ "parameters": [
1589
+ "q"
1590
+ ]
1591
+ },
1592
+ "Mail.ru": {
1593
+ "domains": [
1594
+ "go.mail.ru"
1595
+ ],
1596
+ "parameters": [
1597
+ "q"
1598
+ ]
1599
+ },
1600
+ "Alexa": {
1601
+ "domains": [
1602
+ "alexa.com",
1603
+ "search.toolbars.alexa.com"
1604
+ ],
1605
+ "parameters": [
1606
+ "q"
1607
+ ]
1608
+ },
1609
+ "Metager": {
1610
+ "domains": [
1611
+ "meta.rrzn.uni-hannover.de",
1612
+ "www.metager.de"
1613
+ ],
1614
+ "parameters": [
1615
+ "eingabe"
1616
+ ]
1617
+ },
1618
+ "Technorati": {
1619
+ "domains": [
1620
+ "technorati.com"
1621
+ ],
1622
+ "parameters": [
1623
+ "q"
1624
+ ]
1625
+ },
1626
+ "WWW": {
1627
+ "domains": [
1628
+ "search.www.ee"
1629
+ ],
1630
+ "parameters": [
1631
+ "query"
1632
+ ]
1633
+ },
1634
+ "Trouvez.com": {
1635
+ "domains": [
1636
+ "www.trouvez.com"
1637
+ ],
1638
+ "parameters": [
1639
+ "query"
1640
+ ]
1641
+ },
1642
+ "IXquick": {
1643
+ "domains": [
1644
+ "ixquick.com",
1645
+ "www.eu.ixquick.com",
1646
+ "ixquick.de",
1647
+ "www.ixquick.de",
1648
+ "us.ixquick.com",
1649
+ "s1.us.ixquick.com",
1650
+ "s2.us.ixquick.com",
1651
+ "s3.us.ixquick.com",
1652
+ "s4.us.ixquick.com",
1653
+ "s5.us.ixquick.com",
1654
+ "eu.ixquick.com",
1655
+ "s8-eu.ixquick.com",
1656
+ "s1-eu.ixquick.de"
1657
+ ],
1658
+ "parameters": [
1659
+ "query"
1660
+ ]
1661
+ },
1662
+ "Zapmeta": {
1663
+ "domains": [
1664
+ "www.zapmeta.com",
1665
+ "www.zapmeta.nl",
1666
+ "www.zapmeta.de",
1667
+ "uk.zapmeta.com"
1668
+ ],
1669
+ "parameters": [
1670
+ "q",
1671
+ "query"
1672
+ ]
1673
+ },
1674
+ "Yippy": {
1675
+ "domains": [
1676
+ "search.yippy.com"
1677
+ ],
1678
+ "parameters": [
1679
+ "q",
1680
+ "query"
1681
+ ]
1682
+ },
1683
+ "Gomeo": {
1684
+ "domains": [
1685
+ "www.gomeo.com"
1686
+ ],
1687
+ "parameters": [
1688
+ "Keywords"
1689
+ ]
1690
+ },
1691
+ "Walhello": {
1692
+ "domains": [
1693
+ "www.walhello.info",
1694
+ "www.walhello.com",
1695
+ "www.walhello.de",
1696
+ "www.walhello.nl"
1697
+ ],
1698
+ "parameters": [
1699
+ "key"
1700
+ ]
1701
+ },
1702
+ "Meta": {
1703
+ "domains": [
1704
+ "meta.ua"
1705
+ ],
1706
+ "parameters": [
1707
+ "q"
1708
+ ]
1709
+ },
1710
+ "Skynet": {
1711
+ "domains": [
1712
+ "www.skynet.be"
1713
+ ],
1714
+ "parameters": [
1715
+ "q"
1716
+ ]
1717
+ },
1718
+ "Blogdigger": {
1719
+ "domains": [
1720
+ "www.blogdigger.com"
1721
+ ],
1722
+ "parameters": [
1723
+ "q"
1724
+ ]
1725
+ },
1726
+ "WebSearch": {
1727
+ "domains": [
1728
+ "www.websearch.com"
1729
+ ],
1730
+ "parameters": [
1731
+ "qkw",
1732
+ "q"
1733
+ ]
1734
+ },
1735
+ "Rambler": {
1736
+ "domains": [
1737
+ "nova.rambler.ru"
1738
+ ],
1739
+ "parameters": [
1740
+ "query",
1741
+ "words"
1742
+ ]
1743
+ },
1744
+ "Latne": {
1745
+ "domains": [
1746
+ "www.latne.lv"
1747
+ ],
1748
+ "parameters": [
1749
+ "q"
1750
+ ]
1751
+ },
1752
+ "MySearch": {
1753
+ "domains": [
1754
+ "www.mysearch.com",
1755
+ "ms114.mysearch.com",
1756
+ "ms146.mysearch.com",
1757
+ "kf.mysearch.myway.com",
1758
+ "ki.mysearch.myway.com",
1759
+ "search.myway.com",
1760
+ "search.mywebsearch.com"
1761
+ ],
1762
+ "parameters": [
1763
+ "searchfor",
1764
+ "searchFor"
1765
+ ]
1766
+ },
1767
+ "Cuil": {
1768
+ "domains": [
1769
+ "www.cuil.com"
1770
+ ],
1771
+ "parameters": [
1772
+ "q"
1773
+ ]
1774
+ },
1775
+ "Tixuma": {
1776
+ "domains": [
1777
+ "www.tixuma.de"
1778
+ ],
1779
+ "parameters": [
1780
+ "sc"
1781
+ ]
1782
+ },
1783
+ "Sapo": {
1784
+ "domains": [
1785
+ "pesquisa.sapo.pt"
1786
+ ],
1787
+ "parameters": [
1788
+ "q"
1789
+ ]
1790
+ },
1791
+ "Gnadenmeer": {
1792
+ "domains": [
1793
+ "www.gnadenmeer.de"
1794
+ ],
1795
+ "parameters": [
1796
+ "keyword"
1797
+ ]
1798
+ },
1799
+ "Arcor": {
1800
+ "domains": [
1801
+ "www.arcor.de"
1802
+ ],
1803
+ "parameters": [
1804
+ "Keywords"
1805
+ ]
1806
+ },
1807
+ "Naver": {
1808
+ "domains": [
1809
+ "search.naver.com"
1810
+ ],
1811
+ "parameters": [
1812
+ "query"
1813
+ ]
1814
+ },
1815
+ "Zoeken": {
1816
+ "domains": [
1817
+ "www.zoeken.nl"
1818
+ ],
1819
+ "parameters": [
1820
+ "q"
1821
+ ]
1822
+ },
1823
+ "Yam": {
1824
+ "domains": [
1825
+ "search.yam.com"
1826
+ ],
1827
+ "parameters": [
1828
+ "k"
1829
+ ]
1830
+ },
1831
+ "Eniro": {
1832
+ "domains": [
1833
+ "www.eniro.se"
1834
+ ],
1835
+ "parameters": [
1836
+ "q",
1837
+ "search_word"
1838
+ ]
1839
+ },
1840
+ "APOLL07": {
1841
+ "domains": [
1842
+ "apollo7.de"
1843
+ ],
1844
+ "parameters": [
1845
+ "query"
1846
+ ]
1847
+ },
1848
+ "Biglobe": {
1849
+ "domains": [
1850
+ "cgi.search.biglobe.ne.jp"
1851
+ ],
1852
+ "parameters": [
1853
+ "q"
1854
+ ]
1855
+ },
1856
+ "Mozbot": {
1857
+ "domains": [
1858
+ "www.mozbot.fr",
1859
+ "www.mozbot.co.uk",
1860
+ "www.mozbot.com"
1861
+ ],
1862
+ "parameters": [
1863
+ "q"
1864
+ ]
1865
+ },
1866
+ "ICQ": {
1867
+ "domains": [
1868
+ "www.icq.com",
1869
+ "search.icq.com"
1870
+ ],
1871
+ "parameters": [
1872
+ "q"
1873
+ ]
1874
+ },
1875
+ "Baidu": {
1876
+ "domains": [
1877
+ "www.baidu.com",
1878
+ "www1.baidu.com",
1879
+ "zhidao.baidu.com",
1880
+ "tieba.baidu.com",
1881
+ "news.baidu.com",
1882
+ "web.gougou.com"
1883
+ ],
1884
+ "parameters": [
1885
+ "wd",
1886
+ "word",
1887
+ "kw",
1888
+ "k"
1889
+ ]
1890
+ },
1891
+ "Conduit": {
1892
+ "domains": [
1893
+ "search.conduit.com"
1894
+ ],
1895
+ "parameters": [
1896
+ "q"
1897
+ ]
1898
+ },
1899
+ "Austronaut": {
1900
+ "domains": [
1901
+ "www2.austronaut.at",
1902
+ "www1.astronaut.at"
1903
+ ],
1904
+ "parameters": [
1905
+ "q"
1906
+ ]
1907
+ },
1908
+ "Vindex": {
1909
+ "domains": [
1910
+ "www.vindex.nl",
1911
+ "search.vindex.nl"
1912
+ ],
1913
+ "parameters": [
1914
+ "search_for"
1915
+ ]
1916
+ },
1917
+ "TrovaRapido": {
1918
+ "domains": [
1919
+ "www.trovarapido.com"
1920
+ ],
1921
+ "parameters": [
1922
+ "q"
1923
+ ]
1924
+ },
1925
+ "Suchmaschine.com": {
1926
+ "domains": [
1927
+ "www.suchmaschine.com"
1928
+ ],
1929
+ "parameters": [
1930
+ "suchstr"
1931
+ ]
1932
+ },
1933
+ "Lycos": {
1934
+ "domains": [
1935
+ "search.lycos.com",
1936
+ "www.lycos.com",
1937
+ "lycos.com"
1938
+ ],
1939
+ "parameters": [
1940
+ "query"
1941
+ ]
1942
+ },
1943
+ "Vinden": {
1944
+ "domains": [
1945
+ "www.vinden.nl"
1946
+ ],
1947
+ "parameters": [
1948
+ "q"
1949
+ ]
1950
+ },
1951
+ "Altavista": {
1952
+ "domains": [
1953
+ "www.altavista.com",
1954
+ "search.altavista.com",
1955
+ "listings.altavista.com",
1956
+ "altavista.de",
1957
+ "altavista.fr",
1958
+ "be-nl.altavista.com",
1959
+ "be-fr.altavista.com"
1960
+ ],
1961
+ "parameters": [
1962
+ "q"
1963
+ ]
1964
+ },
1965
+ "dmoz": {
1966
+ "domains": [
1967
+ "dmoz.org",
1968
+ "editors.dmoz.org"
1969
+ ],
1970
+ "parameters": [
1971
+ "q"
1972
+ ]
1973
+ },
1974
+ "Ecosia": {
1975
+ "domains": [
1976
+ "ecosia.org"
1977
+ ],
1978
+ "parameters": [
1979
+ "q"
1980
+ ]
1981
+ },
1982
+ "Maxwebsearch": {
1983
+ "domains": [
1984
+ "maxwebsearch.com"
1985
+ ],
1986
+ "parameters": [
1987
+ "query"
1988
+ ]
1989
+ },
1990
+ "Euroseek": {
1991
+ "domains": [
1992
+ "www.euroseek.com"
1993
+ ],
1994
+ "parameters": [
1995
+ "string"
1996
+ ]
1997
+ },
1998
+ "Bing": {
1999
+ "domains": [
2000
+ "bing.com",
2001
+ "www.bing.com",
2002
+ "msnbc.msn.com",
2003
+ "dizionario.it.msn.com",
2004
+ "cc.bingj.com",
2005
+ "m.bing.com"
2006
+ ],
2007
+ "parameters": [
2008
+ "q",
2009
+ "Q"
2010
+ ]
2011
+ },
2012
+ "X-recherche": {
2013
+ "domains": [
2014
+ "www.x-recherche.com"
2015
+ ],
2016
+ "parameters": [
2017
+ "MOTS"
2018
+ ]
2019
+ },
2020
+ "Yandex Images": {
2021
+ "domains": [
2022
+ "images.yandex.ru",
2023
+ "images.yandex.ua",
2024
+ "images.yandex.com"
2025
+ ],
2026
+ "parameters": [
2027
+ "text"
2028
+ ]
2029
+ },
2030
+ "GMX": {
2031
+ "domains": [
2032
+ "suche.gmx.net"
2033
+ ],
2034
+ "parameters": [
2035
+ "su"
2036
+ ]
2037
+ },
2038
+ "Daemon search": {
2039
+ "domains": [
2040
+ "daemon-search.com",
2041
+ "my.daemon-search.com"
2042
+ ],
2043
+ "parameters": [
2044
+ "q"
2045
+ ]
2046
+ },
2047
+ "Jungle Key": {
2048
+ "domains": [
2049
+ "junglekey.com",
2050
+ "junglekey.fr"
2051
+ ],
2052
+ "parameters": [
2053
+ "query"
2054
+ ]
2055
+ },
2056
+ "Firstfind": {
2057
+ "domains": [
2058
+ "www.firstsfind.com"
2059
+ ],
2060
+ "parameters": [
2061
+ "qry"
2062
+ ]
2063
+ },
2064
+ "Crawler": {
2065
+ "domains": [
2066
+ "www.crawler.com"
2067
+ ],
2068
+ "parameters": [
2069
+ "q"
2070
+ ]
2071
+ },
2072
+ "Holmes": {
2073
+ "domains": [
2074
+ "holmes.ge"
2075
+ ],
2076
+ "parameters": [
2077
+ "q"
2078
+ ]
2079
+ },
2080
+ "Charter": {
2081
+ "domains": [
2082
+ "www.charter.net"
2083
+ ],
2084
+ "parameters": [
2085
+ "q"
2086
+ ]
2087
+ },
2088
+ "Ilse": {
2089
+ "domains": [
2090
+ "www.ilse.nl"
2091
+ ],
2092
+ "parameters": [
2093
+ "search_for"
2094
+ ]
2095
+ },
2096
+ "earthlink": {
2097
+ "domains": [
2098
+ "search.earthlink.net"
2099
+ ],
2100
+ "parameters": [
2101
+ "q"
2102
+ ]
2103
+ },
2104
+ "Qualigo": {
2105
+ "domains": [
2106
+ "www.qualigo.at",
2107
+ "www.qualigo.ch",
2108
+ "www.qualigo.de",
2109
+ "www.qualigo.nl"
2110
+ ],
2111
+ "parameters": [
2112
+ "q"
2113
+ ]
2114
+ },
2115
+ "El Mundo": {
2116
+ "domains": [
2117
+ "ariadna.elmundo.es"
2118
+ ],
2119
+ "parameters": [
2120
+ "q"
2121
+ ]
2122
+ },
2123
+ "Metager2": {
2124
+ "domains": [
2125
+ "metager2.de"
2126
+ ],
2127
+ "parameters": [
2128
+ "q"
2129
+ ]
2130
+ },
2131
+ "Forestle": {
2132
+ "domains": [
2133
+ "forestle.org",
2134
+ "www.forestle.org",
2135
+ "forestle.mobi"
2136
+ ],
2137
+ "parameters": [
2138
+ "q"
2139
+ ]
2140
+ },
2141
+ "Search.ch": {
2142
+ "domains": [
2143
+ "www.search.ch"
2144
+ ],
2145
+ "parameters": [
2146
+ "q"
2147
+ ]
2148
+ },
2149
+ "Meinestadt": {
2150
+ "domains": [
2151
+ "www.meinestadt.de"
2152
+ ],
2153
+ "parameters": [
2154
+ "words"
2155
+ ]
2156
+ },
2157
+ "Freshweather": {
2158
+ "domains": [
2159
+ "www.fresh-weather.com"
2160
+ ],
2161
+ "parameters": [
2162
+ "q"
2163
+ ]
2164
+ },
2165
+ "AllTheWeb": {
2166
+ "domains": [
2167
+ "www.alltheweb.com"
2168
+ ],
2169
+ "parameters": [
2170
+ "q"
2171
+ ]
2172
+ },
2173
+ "Zoek": {
2174
+ "domains": [
2175
+ "www3.zoek.nl"
2176
+ ],
2177
+ "parameters": [
2178
+ "q"
2179
+ ]
2180
+ },
2181
+ "Daum": {
2182
+ "domains": [
2183
+ "search.daum.net"
2184
+ ],
2185
+ "parameters": [
2186
+ "q"
2187
+ ]
2188
+ },
2189
+ "Marktplaats": {
2190
+ "domains": [
2191
+ "www.marktplaats.nl"
2192
+ ],
2193
+ "parameters": [
2194
+ "query"
2195
+ ]
2196
+ },
2197
+ "suche.info": {
2198
+ "domains": [
2199
+ "suche.info"
2200
+ ],
2201
+ "parameters": [
2202
+ "q"
2203
+ ]
2204
+ },
2205
+ "Google News": {
2206
+ "domains": [
2207
+ "news.google.ac",
2208
+ "news.google.ad",
2209
+ "news.google.ae",
2210
+ "news.google.am",
2211
+ "news.google.as",
2212
+ "news.google.at",
2213
+ "news.google.az",
2214
+ "news.google.ba",
2215
+ "news.google.be",
2216
+ "news.google.bf",
2217
+ "news.google.bg",
2218
+ "news.google.bi",
2219
+ "news.google.bj",
2220
+ "news.google.bs",
2221
+ "news.google.by",
2222
+ "news.google.ca",
2223
+ "news.google.cat",
2224
+ "news.google.cc",
2225
+ "news.google.cd",
2226
+ "news.google.cf",
2227
+ "news.google.cg",
2228
+ "news.google.ch",
2229
+ "news.google.ci",
2230
+ "news.google.cl",
2231
+ "news.google.cm",
2232
+ "news.google.cn",
2233
+ "news.google.co.bw",
2234
+ "news.google.co.ck",
2235
+ "news.google.co.cr",
2236
+ "news.google.co.id",
2237
+ "news.google.co.il",
2238
+ "news.google.co.in",
2239
+ "news.google.co.jp",
2240
+ "news.google.co.ke",
2241
+ "news.google.co.kr",
2242
+ "news.google.co.ls",
2243
+ "news.google.co.ma",
2244
+ "news.google.co.mz",
2245
+ "news.google.co.nz",
2246
+ "news.google.co.th",
2247
+ "news.google.co.tz",
2248
+ "news.google.co.ug",
2249
+ "news.google.co.uk",
2250
+ "news.google.co.uz",
2251
+ "news.google.co.ve",
2252
+ "news.google.co.vi",
2253
+ "news.google.co.za",
2254
+ "news.google.co.zm",
2255
+ "news.google.co.zw",
2256
+ "news.google.com",
2257
+ "news.google.com.af",
2258
+ "news.google.com.ag",
2259
+ "news.google.com.ai",
2260
+ "news.google.com.ar",
2261
+ "news.google.com.au",
2262
+ "news.google.com.bd",
2263
+ "news.google.com.bh",
2264
+ "news.google.com.bn",
2265
+ "news.google.com.bo",
2266
+ "news.google.com.br",
2267
+ "news.google.com.by",
2268
+ "news.google.com.bz",
2269
+ "news.google.com.co",
2270
+ "news.google.com.cu",
2271
+ "news.google.com.cy",
2272
+ "news.google.com.do",
2273
+ "news.google.com.ec",
2274
+ "news.google.com.eg",
2275
+ "news.google.com.et",
2276
+ "news.google.com.fj",
2277
+ "news.google.com.gh",
2278
+ "news.google.com.gi",
2279
+ "news.google.com.gt",
2280
+ "news.google.com.hk",
2281
+ "news.google.com.jm",
2282
+ "news.google.com.kh",
2283
+ "news.google.com.kh",
2284
+ "news.google.com.kw",
2285
+ "news.google.com.lb",
2286
+ "news.google.com.lc",
2287
+ "news.google.com.ly",
2288
+ "news.google.com.mt",
2289
+ "news.google.com.mx",
2290
+ "news.google.com.my",
2291
+ "news.google.com.na",
2292
+ "news.google.com.nf",
2293
+ "news.google.com.ng",
2294
+ "news.google.com.ni",
2295
+ "news.google.com.np",
2296
+ "news.google.com.om",
2297
+ "news.google.com.pa",
2298
+ "news.google.com.pe",
2299
+ "news.google.com.ph",
2300
+ "news.google.com.pk",
2301
+ "news.google.com.pr",
2302
+ "news.google.com.py",
2303
+ "news.google.com.qa",
2304
+ "news.google.com.sa",
2305
+ "news.google.com.sb",
2306
+ "news.google.com.sg",
2307
+ "news.google.com.sl",
2308
+ "news.google.com.sv",
2309
+ "news.google.com.tj",
2310
+ "news.google.com.tn",
2311
+ "news.google.com.tr",
2312
+ "news.google.com.tw",
2313
+ "news.google.com.ua",
2314
+ "news.google.com.uy",
2315
+ "news.google.com.vc",
2316
+ "news.google.com.vn",
2317
+ "news.google.cv",
2318
+ "news.google.cz",
2319
+ "news.google.de",
2320
+ "news.google.dj",
2321
+ "news.google.dk",
2322
+ "news.google.dm",
2323
+ "news.google.dz",
2324
+ "news.google.ee",
2325
+ "news.google.es",
2326
+ "news.google.fi",
2327
+ "news.google.fm",
2328
+ "news.google.fr",
2329
+ "news.google.ga",
2330
+ "news.google.gd",
2331
+ "news.google.ge",
2332
+ "news.google.gf",
2333
+ "news.google.gg",
2334
+ "news.google.gl",
2335
+ "news.google.gm",
2336
+ "news.google.gp",
2337
+ "news.google.gr",
2338
+ "news.google.gy",
2339
+ "news.google.hn",
2340
+ "news.google.hr",
2341
+ "news.google.ht",
2342
+ "news.google.hu",
2343
+ "news.google.ie",
2344
+ "news.google.im",
2345
+ "news.google.io",
2346
+ "news.google.iq",
2347
+ "news.google.is",
2348
+ "news.google.it",
2349
+ "news.google.it.ao",
2350
+ "news.google.je",
2351
+ "news.google.jo",
2352
+ "news.google.kg",
2353
+ "news.google.ki",
2354
+ "news.google.kz",
2355
+ "news.google.la",
2356
+ "news.google.li",
2357
+ "news.google.lk",
2358
+ "news.google.lt",
2359
+ "news.google.lu",
2360
+ "news.google.lv",
2361
+ "news.google.md",
2362
+ "news.google.me",
2363
+ "news.google.mg",
2364
+ "news.google.mk",
2365
+ "news.google.ml",
2366
+ "news.google.mn",
2367
+ "news.google.ms",
2368
+ "news.google.mu",
2369
+ "news.google.mv",
2370
+ "news.google.mw",
2371
+ "news.google.ne",
2372
+ "news.google.nl",
2373
+ "news.google.no",
2374
+ "news.google.nr",
2375
+ "news.google.nu",
2376
+ "news.google.pl",
2377
+ "news.google.pn",
2378
+ "news.google.ps",
2379
+ "news.google.pt",
2380
+ "news.google.ro",
2381
+ "news.google.rs",
2382
+ "news.google.ru",
2383
+ "news.google.rw",
2384
+ "news.google.sc",
2385
+ "news.google.se",
2386
+ "news.google.sh",
2387
+ "news.google.si",
2388
+ "news.google.sk",
2389
+ "news.google.sm",
2390
+ "news.google.sn",
2391
+ "news.google.so",
2392
+ "news.google.st",
2393
+ "news.google.td",
2394
+ "news.google.tg",
2395
+ "news.google.tk",
2396
+ "news.google.tl",
2397
+ "news.google.tm",
2398
+ "news.google.to",
2399
+ "news.google.tt",
2400
+ "news.google.us",
2401
+ "news.google.vg",
2402
+ "news.google.vu",
2403
+ "news.google.ws"
2404
+ ],
2405
+ "parameters": [
2406
+ "q"
2407
+ ]
2408
+ },
2409
+ "Zoohoo": {
2410
+ "domains": [
2411
+ "zoohoo.cz"
2412
+ ],
2413
+ "parameters": [
2414
+ "q"
2415
+ ]
2416
+ },
2417
+ "Seznam": {
2418
+ "domains": [
2419
+ "search.seznam.cz"
2420
+ ],
2421
+ "parameters": [
2422
+ "q"
2423
+ ]
2424
+ },
2425
+ "Online.no": {
2426
+ "domains": [
2427
+ "online.no"
2428
+ ],
2429
+ "parameters": [
2430
+ "q"
2431
+ ]
2432
+ },
2433
+ "Eurip": {
2434
+ "domains": [
2435
+ "www.eurip.com"
2436
+ ],
2437
+ "parameters": [
2438
+ "q"
2439
+ ]
2440
+ },
2441
+ "all.by": {
2442
+ "domains": [
2443
+ "all.by"
2444
+ ],
2445
+ "parameters": [
2446
+ "query"
2447
+ ]
2448
+ },
2449
+ "Road Runner Search": {
2450
+ "domains": [
2451
+ "search.rr.com"
2452
+ ],
2453
+ "parameters": [
2454
+ "q"
2455
+ ]
2456
+ },
2457
+ "Opplysningen 1881": {
2458
+ "domains": [
2459
+ "www.1881.no"
2460
+ ],
2461
+ "parameters": [
2462
+ "Query"
2463
+ ]
2464
+ },
2465
+ "YouGoo": {
2466
+ "domains": [
2467
+ "www.yougoo.fr"
2468
+ ],
2469
+ "parameters": [
2470
+ "q"
2471
+ ]
2472
+ },
2473
+ "Bing Images": {
2474
+ "domains": [
2475
+ "bing.com/images/search",
2476
+ "www.bing.com/images/search"
2477
+ ],
2478
+ "parameters": [
2479
+ "q",
2480
+ "Q"
2481
+ ]
2482
+ },
2483
+ "Geona": {
2484
+ "domains": [
2485
+ "geona.net"
2486
+ ],
2487
+ "parameters": [
2488
+ "q"
2489
+ ]
2490
+ },
2491
+ "Nate": {
2492
+ "domains": [
2493
+ "search.nate.com"
2494
+ ],
2495
+ "parameters": [
2496
+ "q"
2497
+ ]
2498
+ },
2499
+ "T-Online": {
2500
+ "domains": [
2501
+ "suche.t-online.de",
2502
+ "brisbane.t-online.de",
2503
+ "navigationshilfe.t-online.de"
2504
+ ],
2505
+ "parameters": [
2506
+ "q"
2507
+ ]
2508
+ },
2509
+ "Hotbot": {
2510
+ "domains": [
2511
+ "www.hotbot.com"
2512
+ ],
2513
+ "parameters": [
2514
+ "query"
2515
+ ]
2516
+ },
2517
+ "Kvasir": {
2518
+ "domains": [
2519
+ "www.kvasir.no"
2520
+ ],
2521
+ "parameters": [
2522
+ "q"
2523
+ ]
2524
+ },
2525
+ "Babylon": {
2526
+ "domains": [
2527
+ "search.babylon.com",
2528
+ "searchassist.babylon.com"
2529
+ ],
2530
+ "parameters": [
2531
+ "q"
2532
+ ]
2533
+ },
2534
+ "Excite": {
2535
+ "domains": [
2536
+ "search.excite.it",
2537
+ "search.excite.fr",
2538
+ "search.excite.de",
2539
+ "search.excite.co.uk",
2540
+ "serach.excite.es",
2541
+ "search.excite.nl",
2542
+ "msxml.excite.com",
2543
+ "www.excite.co.jp"
2544
+ ],
2545
+ "parameters": [
2546
+ "q",
2547
+ "search"
2548
+ ]
2549
+ },
2550
+ "qip": {
2551
+ "domains": [
2552
+ "search.qip.ru"
2553
+ ],
2554
+ "parameters": [
2555
+ "query"
2556
+ ]
2557
+ },
2558
+ "Yahoo!": {
2559
+ "domains": [
2560
+ "search.yahoo.com",
2561
+ "yahoo.com",
2562
+ "ar.search.yahoo.com",
2563
+ "ar.yahoo.com",
2564
+ "au.search.yahoo.com",
2565
+ "au.yahoo.com",
2566
+ "br.search.yahoo.com",
2567
+ "br.yahoo.com",
2568
+ "cade.searchde.yahoo.com",
2569
+ "cade.yahoo.com",
2570
+ "chinese.searchinese.yahoo.com",
2571
+ "chinese.yahoo.com",
2572
+ "cn.search.yahoo.com",
2573
+ "cn.yahoo.com",
2574
+ "de.search.yahoo.com",
2575
+ "de.yahoo.com",
2576
+ "dk.search.yahoo.com",
2577
+ "dk.yahoo.com",
2578
+ "es.search.yahoo.com",
2579
+ "es.yahoo.com",
2580
+ "espanol.searchpanol.yahoo.com",
2581
+ "espanol.searchpanol.yahoo.com",
2582
+ "espanol.yahoo.com",
2583
+ "espanol.yahoo.com",
2584
+ "fr.search.yahoo.com",
2585
+ "fr.yahoo.com",
2586
+ "ie.search.yahoo.com",
2587
+ "ie.yahoo.com",
2588
+ "it.search.yahoo.com",
2589
+ "it.yahoo.com",
2590
+ "kr.search.yahoo.com",
2591
+ "kr.yahoo.com",
2592
+ "mx.search.yahoo.com",
2593
+ "mx.yahoo.com",
2594
+ "no.search.yahoo.com",
2595
+ "no.yahoo.com",
2596
+ "nz.search.yahoo.com",
2597
+ "nz.yahoo.com",
2598
+ "one.cn.yahoo.com",
2599
+ "one.searchn.yahoo.com",
2600
+ "qc.search.yahoo.com",
2601
+ "qc.search.yahoo.com",
2602
+ "qc.search.yahoo.com",
2603
+ "qc.yahoo.com",
2604
+ "qc.yahoo.com",
2605
+ "se.search.yahoo.com",
2606
+ "se.search.yahoo.com",
2607
+ "se.yahoo.com",
2608
+ "search.searcharch.yahoo.com",
2609
+ "search.yahoo.com",
2610
+ "uk.search.yahoo.com",
2611
+ "uk.yahoo.com",
2612
+ "www.yahoo.co.jp",
2613
+ "search.yahoo.co.jp",
2614
+ "www.cercato.it",
2615
+ "search.offerbox.com",
2616
+ "ys.mirostart.com"
2617
+ ],
2618
+ "parameters": [
2619
+ "p",
2620
+ "q"
2621
+ ]
2622
+ },
2623
+ "URL.ORGanizier": {
2624
+ "domains": [
2625
+ "www.url.org"
2626
+ ],
2627
+ "parameters": [
2628
+ "q"
2629
+ ]
2630
+ },
2631
+ "Witch": {
2632
+ "domains": [
2633
+ "www.witch.de"
2634
+ ],
2635
+ "parameters": [
2636
+ "search"
2637
+ ]
2638
+ },
2639
+ "Mister Wong": {
2640
+ "domains": [
2641
+ "www.mister-wong.com",
2642
+ "www.mister-wong.de"
2643
+ ],
2644
+ "parameters": [
2645
+ "Keywords"
2646
+ ]
2647
+ },
2648
+ "Startsiden": {
2649
+ "domains": [
2650
+ "www.startsiden.no"
2651
+ ],
2652
+ "parameters": [
2653
+ "q"
2654
+ ]
2655
+ },
2656
+ "Web.de": {
2657
+ "domains": [
2658
+ "suche.web.de"
2659
+ ],
2660
+ "parameters": [
2661
+ "su"
2662
+ ]
2663
+ },
2664
+ "Ask": {
2665
+ "domains": [
2666
+ "ask.com",
2667
+ "www.ask.com",
2668
+ "web.ask.com",
2669
+ "int.ask.com",
2670
+ "mws.ask.com",
2671
+ "uk.ask.com",
2672
+ "images.ask.com",
2673
+ "ask.reference.com",
2674
+ "www.askkids.com",
2675
+ "iwon.ask.com",
2676
+ "www.ask.co.uk",
2677
+ "www.qbyrd.com",
2678
+ "search-results.com",
2679
+ "uk.search-results.com",
2680
+ "www.search-results.com",
2681
+ "int.search-results.com"
2682
+ ],
2683
+ "parameters": [
2684
+ "q"
2685
+ ]
2686
+ },
2687
+ "Centrum": {
2688
+ "domains": [
2689
+ "serach.centrum.cz",
2690
+ "morfeo.centrum.cz"
2691
+ ],
2692
+ "parameters": [
2693
+ "q"
2694
+ ]
2695
+ },
2696
+ "Everyclick": {
2697
+ "domains": [
2698
+ "www.everyclick.com"
2699
+ ],
2700
+ "parameters": [
2701
+ "keyword"
2702
+ ]
2703
+ },
2704
+ "Google Video": {
2705
+ "domains": [
2706
+ "video.google.com"
2707
+ ],
2708
+ "parameters": [
2709
+ "q"
2710
+ ]
2711
+ },
2712
+ "Delfi": {
2713
+ "domains": [
2714
+ "otsing.delfi.ee"
2715
+ ],
2716
+ "parameters": [
2717
+ "q"
2718
+ ]
2719
+ },
2720
+ "blekko": {
2721
+ "domains": [
2722
+ "blekko.com"
2723
+ ],
2724
+ "parameters": [
2725
+ "q"
2726
+ ]
2727
+ },
2728
+ "Jyxo": {
2729
+ "domains": [
2730
+ "jyxo.1188.cz"
2731
+ ],
2732
+ "parameters": [
2733
+ "q"
2734
+ ]
2735
+ },
2736
+ "Kataweb": {
2737
+ "domains": [
2738
+ "www.kataweb.it"
2739
+ ],
2740
+ "parameters": [
2741
+ "q"
2742
+ ]
2743
+ },
2744
+ "uol.com.br": {
2745
+ "domains": [
2746
+ "busca.uol.com.br"
2747
+ ],
2748
+ "parameters": [
2749
+ "q"
2750
+ ]
2751
+ },
2752
+ "Arianna": {
2753
+ "domains": [
2754
+ "arianna.libero.it",
2755
+ "www.arianna.com"
2756
+ ],
2757
+ "parameters": [
2758
+ "query"
2759
+ ]
2760
+ },
2761
+ "Mamma": {
2762
+ "domains": [
2763
+ "www.mamma.com",
2764
+ "mamma75.mamma.com"
2765
+ ],
2766
+ "parameters": [
2767
+ "query"
2768
+ ]
2769
+ },
2770
+ "Yatedo": {
2771
+ "domains": [
2772
+ "www.yatedo.com",
2773
+ "www.yatedo.fr"
2774
+ ],
2775
+ "parameters": [
2776
+ "q"
2777
+ ]
2778
+ },
2779
+ "Twingly": {
2780
+ "domains": [
2781
+ "www.twingly.com"
2782
+ ],
2783
+ "parameters": [
2784
+ "q"
2785
+ ]
2786
+ },
2787
+ "Delfi latvia": {
2788
+ "domains": [
2789
+ "smart.delfi.lv"
2790
+ ],
2791
+ "parameters": [
2792
+ "q"
2793
+ ]
2794
+ },
2795
+ "PriceRunner": {
2796
+ "domains": [
2797
+ "www.pricerunner.co.uk"
2798
+ ],
2799
+ "parameters": [
2800
+ "q"
2801
+ ]
2802
+ },
2803
+ "Rakuten": {
2804
+ "domains": [
2805
+ "websearch.rakuten.co.jp"
2806
+ ],
2807
+ "parameters": [
2808
+ "qt"
2809
+ ]
2810
+ },
2811
+ "Google": {
2812
+ "domains": [
2813
+ "www.google.com",
2814
+ "www.google.ac",
2815
+ "www.google.ad",
2816
+ "www.google.com.af",
2817
+ "www.google.com.ag",
2818
+ "www.google.com.ai",
2819
+ "www.google.am",
2820
+ "www.google.it.ao",
2821
+ "www.google.com.ar",
2822
+ "www.google.as",
2823
+ "www.google.at",
2824
+ "www.google.com.au",
2825
+ "www.google.az",
2826
+ "www.google.ba",
2827
+ "www.google.com.bd",
2828
+ "www.google.be",
2829
+ "www.google.bf",
2830
+ "www.google.bg",
2831
+ "www.google.com.bh",
2832
+ "www.google.bi",
2833
+ "www.google.bj",
2834
+ "www.google.com.bn",
2835
+ "www.google.com.bo",
2836
+ "www.google.com.br",
2837
+ "www.google.bs",
2838
+ "www.google.co.bw",
2839
+ "www.google.com.by",
2840
+ "www.google.by",
2841
+ "www.google.com.bz",
2842
+ "www.google.ca",
2843
+ "www.google.com.kh",
2844
+ "www.google.cc",
2845
+ "www.google.cd",
2846
+ "www.google.cf",
2847
+ "www.google.cat",
2848
+ "www.google.cg",
2849
+ "www.google.ch",
2850
+ "www.google.ci",
2851
+ "www.google.co.ck",
2852
+ "www.google.cl",
2853
+ "www.google.cm",
2854
+ "www.google.cn",
2855
+ "www.google.com.co",
2856
+ "www.google.co.cr",
2857
+ "www.google.com.cu",
2858
+ "www.google.cv",
2859
+ "www.google.com.cy",
2860
+ "www.google.cz",
2861
+ "www.google.de",
2862
+ "www.google.dj",
2863
+ "www.google.dk",
2864
+ "www.google.dm",
2865
+ "www.google.com.do",
2866
+ "www.google.dz",
2867
+ "www.google.com.ec",
2868
+ "www.google.ee",
2869
+ "www.google.com.eg",
2870
+ "www.google.es",
2871
+ "www.google.com.et",
2872
+ "www.google.fi",
2873
+ "www.google.com.fj",
2874
+ "www.google.fm",
2875
+ "www.google.fr",
2876
+ "www.google.ga",
2877
+ "www.google.gd",
2878
+ "www.google.ge",
2879
+ "www.google.gf",
2880
+ "www.google.gg",
2881
+ "www.google.com.gh",
2882
+ "www.google.com.gi",
2883
+ "www.google.gl",
2884
+ "www.google.gm",
2885
+ "www.google.gp",
2886
+ "www.google.gr",
2887
+ "www.google.com.gt",
2888
+ "www.google.gy",
2889
+ "www.google.com.hk",
2890
+ "www.google.hn",
2891
+ "www.google.hr",
2892
+ "www.google.ht",
2893
+ "www.google.hu",
2894
+ "www.google.co.id",
2895
+ "www.google.iq",
2896
+ "www.google.ie",
2897
+ "www.google.co.il",
2898
+ "www.google.im",
2899
+ "www.google.co.in",
2900
+ "www.google.io",
2901
+ "www.google.is",
2902
+ "www.google.it",
2903
+ "www.google.je",
2904
+ "www.google.com.jm",
2905
+ "www.google.jo",
2906
+ "www.google.co.jp",
2907
+ "www.google.co.ke",
2908
+ "www.google.com.kh",
2909
+ "www.google.ki",
2910
+ "www.google.kg",
2911
+ "www.google.co.kr",
2912
+ "www.google.com.kw",
2913
+ "www.google.kz",
2914
+ "www.google.la",
2915
+ "www.google.com.lb",
2916
+ "www.google.com.lc",
2917
+ "www.google.li",
2918
+ "www.google.lk",
2919
+ "www.google.co.ls",
2920
+ "www.google.lt",
2921
+ "www.google.lu",
2922
+ "www.google.lv",
2923
+ "www.google.com.ly",
2924
+ "www.google.co.ma",
2925
+ "www.google.md",
2926
+ "www.google.me",
2927
+ "www.google.mg",
2928
+ "www.google.mk",
2929
+ "www.google.ml",
2930
+ "www.google.mn",
2931
+ "www.google.ms",
2932
+ "www.google.com.mt",
2933
+ "www.google.mu",
2934
+ "www.google.mv",
2935
+ "www.google.mw",
2936
+ "www.google.com.mx",
2937
+ "www.google.com.my",
2938
+ "www.google.co.mz",
2939
+ "www.google.com.na",
2940
+ "www.google.ne",
2941
+ "www.google.com.nf",
2942
+ "www.google.com.ng",
2943
+ "www.google.com.ni",
2944
+ "www.google.nl",
2945
+ "www.google.no",
2946
+ "www.google.com.np",
2947
+ "www.google.nr",
2948
+ "www.google.nu",
2949
+ "www.google.co.nz",
2950
+ "www.google.com.om",
2951
+ "www.google.com.pa",
2952
+ "www.google.com.pe",
2953
+ "www.google.com.ph",
2954
+ "www.google.com.pk",
2955
+ "www.google.pl",
2956
+ "www.google.pn",
2957
+ "www.google.com.pr",
2958
+ "www.google.ps",
2959
+ "www.google.pt",
2960
+ "www.google.com.py",
2961
+ "www.google.com.qa",
2962
+ "www.google.ro",
2963
+ "www.google.rs",
2964
+ "www.google.ru",
2965
+ "www.google.rw",
2966
+ "www.google.com.sa",
2967
+ "www.google.com.sb",
2968
+ "www.google.sc",
2969
+ "www.google.se",
2970
+ "www.google.com.sg",
2971
+ "www.google.sh",
2972
+ "www.google.si",
2973
+ "www.google.sk",
2974
+ "www.google.com.sl",
2975
+ "www.google.sn",
2976
+ "www.google.sm",
2977
+ "www.google.so",
2978
+ "www.google.st",
2979
+ "www.google.com.sv",
2980
+ "www.google.td",
2981
+ "www.google.tg",
2982
+ "www.google.co.th",
2983
+ "www.google.com.tj",
2984
+ "www.google.tk",
2985
+ "www.google.tl",
2986
+ "www.google.tm",
2987
+ "www.google.to",
2988
+ "www.google.com.tn",
2989
+ "www.google.com.tr",
2990
+ "www.google.tt",
2991
+ "www.google.com.tw",
2992
+ "www.google.co.tz",
2993
+ "www.google.com.ua",
2994
+ "www.google.co.ug",
2995
+ "www.google.ae",
2996
+ "www.google.co.uk",
2997
+ "www.google.us",
2998
+ "www.google.com.uy",
2999
+ "www.google.co.uz",
3000
+ "www.google.com.vc",
3001
+ "www.google.co.ve",
3002
+ "www.google.vg",
3003
+ "www.google.co.vi",
3004
+ "www.google.com.vn",
3005
+ "www.google.vu",
3006
+ "www.google.ws",
3007
+ "www.google.co.za",
3008
+ "www.google.co.zm",
3009
+ "www.google.co.zw",
3010
+ "google.com",
3011
+ "google.ac",
3012
+ "google.ad",
3013
+ "google.com.af",
3014
+ "google.com.ag",
3015
+ "google.com.ai",
3016
+ "google.am",
3017
+ "google.it.ao",
3018
+ "google.com.ar",
3019
+ "google.as",
3020
+ "google.at",
3021
+ "google.com.au",
3022
+ "google.az",
3023
+ "google.ba",
3024
+ "google.com.bd",
3025
+ "google.be",
3026
+ "google.bf",
3027
+ "google.bg",
3028
+ "google.com.bh",
3029
+ "google.bi",
3030
+ "google.bj",
3031
+ "google.com.bn",
3032
+ "google.com.bo",
3033
+ "google.com.br",
3034
+ "google.bs",
3035
+ "google.co.bw",
3036
+ "google.com.by",
3037
+ "google.by",
3038
+ "google.com.bz",
3039
+ "google.ca",
3040
+ "google.com.kh",
3041
+ "google.cc",
3042
+ "google.cd",
3043
+ "google.cf",
3044
+ "google.cat",
3045
+ "google.cg",
3046
+ "google.ch",
3047
+ "google.ci",
3048
+ "google.co.ck",
3049
+ "google.cl",
3050
+ "google.cm",
3051
+ "google.cn",
3052
+ "google.com.co",
3053
+ "google.co.cr",
3054
+ "google.com.cu",
3055
+ "google.cv",
3056
+ "google.com.cy",
3057
+ "google.cz",
3058
+ "google.de",
3059
+ "google.dj",
3060
+ "google.dk",
3061
+ "google.dm",
3062
+ "google.com.do",
3063
+ "google.dz",
3064
+ "google.com.ec",
3065
+ "google.ee",
3066
+ "google.com.eg",
3067
+ "google.es",
3068
+ "google.com.et",
3069
+ "google.fi",
3070
+ "google.com.fj",
3071
+ "google.fm",
3072
+ "google.fr",
3073
+ "google.ga",
3074
+ "google.gd",
3075
+ "google.ge",
3076
+ "google.gf",
3077
+ "google.gg",
3078
+ "google.com.gh",
3079
+ "google.com.gi",
3080
+ "google.gl",
3081
+ "google.gm",
3082
+ "google.gp",
3083
+ "google.gr",
3084
+ "google.com.gt",
3085
+ "google.gy",
3086
+ "google.com.hk",
3087
+ "google.hn",
3088
+ "google.hr",
3089
+ "google.ht",
3090
+ "google.hu",
3091
+ "google.co.id",
3092
+ "google.iq",
3093
+ "google.ie",
3094
+ "google.co.il",
3095
+ "google.im",
3096
+ "google.co.in",
3097
+ "google.io",
3098
+ "google.is",
3099
+ "google.it",
3100
+ "google.je",
3101
+ "google.com.jm",
3102
+ "google.jo",
3103
+ "google.co.jp",
3104
+ "google.co.ke",
3105
+ "google.com.kh",
3106
+ "google.ki",
3107
+ "google.kg",
3108
+ "google.co.kr",
3109
+ "google.com.kw",
3110
+ "google.kz",
3111
+ "google.la",
3112
+ "google.com.lb",
3113
+ "google.com.lc",
3114
+ "google.li",
3115
+ "google.lk",
3116
+ "google.co.ls",
3117
+ "google.lt",
3118
+ "google.lu",
3119
+ "google.lv",
3120
+ "google.com.ly",
3121
+ "google.co.ma",
3122
+ "google.md",
3123
+ "google.me",
3124
+ "google.mg",
3125
+ "google.mk",
3126
+ "google.ml",
3127
+ "google.mn",
3128
+ "google.ms",
3129
+ "google.com.mt",
3130
+ "google.mu",
3131
+ "google.mv",
3132
+ "google.mw",
3133
+ "google.com.mx",
3134
+ "google.com.my",
3135
+ "google.co.mz",
3136
+ "google.com.na",
3137
+ "google.ne",
3138
+ "google.com.nf",
3139
+ "google.com.ng",
3140
+ "google.com.ni",
3141
+ "google.nl",
3142
+ "google.no",
3143
+ "google.com.np",
3144
+ "google.nr",
3145
+ "google.nu",
3146
+ "google.co.nz",
3147
+ "google.com.om",
3148
+ "google.com.pa",
3149
+ "google.com.pe",
3150
+ "google.com.ph",
3151
+ "google.com.pk",
3152
+ "google.pl",
3153
+ "google.pn",
3154
+ "google.com.pr",
3155
+ "google.ps",
3156
+ "google.pt",
3157
+ "google.com.py",
3158
+ "google.com.qa",
3159
+ "google.ro",
3160
+ "google.rs",
3161
+ "google.ru",
3162
+ "google.rw",
3163
+ "google.com.sa",
3164
+ "google.com.sb",
3165
+ "google.sc",
3166
+ "google.se",
3167
+ "google.com.sg",
3168
+ "google.sh",
3169
+ "google.si",
3170
+ "google.sk",
3171
+ "google.com.sl",
3172
+ "google.sn",
3173
+ "google.sm",
3174
+ "google.so",
3175
+ "google.st",
3176
+ "google.com.sv",
3177
+ "google.td",
3178
+ "google.tg",
3179
+ "google.co.th",
3180
+ "google.com.tj",
3181
+ "google.tk",
3182
+ "google.tl",
3183
+ "google.tm",
3184
+ "google.to",
3185
+ "google.com.tn",
3186
+ "google.com.tr",
3187
+ "google.tt",
3188
+ "google.com.tw",
3189
+ "google.co.tz",
3190
+ "google.com.ua",
3191
+ "google.co.ug",
3192
+ "google.ae",
3193
+ "google.co.uk",
3194
+ "google.us",
3195
+ "google.com.uy",
3196
+ "google.co.uz",
3197
+ "google.com.vc",
3198
+ "google.co.ve",
3199
+ "google.vg",
3200
+ "google.co.vi",
3201
+ "google.com.vn",
3202
+ "google.vu",
3203
+ "google.ws",
3204
+ "google.co.za",
3205
+ "google.co.zm",
3206
+ "google.co.zw",
3207
+ "search.avg.com",
3208
+ "isearch.avg.com",
3209
+ "www.cnn.com",
3210
+ "darkoogle.com",
3211
+ "search.darkoogle.com",
3212
+ "search.foxtab.com",
3213
+ "www.gooofullsearch.com",
3214
+ "search.hiyo.com",
3215
+ "search.incredimail.com",
3216
+ "search1.incredimail.com",
3217
+ "search2.incredimail.com",
3218
+ "search3.incredimail.com",
3219
+ "search4.incredimail.com",
3220
+ "search.incredibar.com",
3221
+ "search.sweetim.com",
3222
+ "www.fastweb.it",
3223
+ "search.juno.com",
3224
+ "find.tdc.dk",
3225
+ "searchresults.verizon.com",
3226
+ "search.walla.co.il",
3227
+ "search.alot.com",
3228
+ "www.googleearth.de",
3229
+ "www.googleearth.fr",
3230
+ "webcache.googleusercontent.com",
3231
+ "encrypted.google.com",
3232
+ "googlesyndicatedsearch.com"
3233
+ ],
3234
+ "parameters": [
3235
+ "q",
3236
+ "query",
3237
+ "Keywords"
3238
+ ]
3239
+ },
3240
+ "Google Blogsearch": {
3241
+ "domains": [
3242
+ "blogsearch.google.ac",
3243
+ "blogsearch.google.ad",
3244
+ "blogsearch.google.ae",
3245
+ "blogsearch.google.am",
3246
+ "blogsearch.google.as",
3247
+ "blogsearch.google.at",
3248
+ "blogsearch.google.az",
3249
+ "blogsearch.google.ba",
3250
+ "blogsearch.google.be",
3251
+ "blogsearch.google.bf",
3252
+ "blogsearch.google.bg",
3253
+ "blogsearch.google.bi",
3254
+ "blogsearch.google.bj",
3255
+ "blogsearch.google.bs",
3256
+ "blogsearch.google.by",
3257
+ "blogsearch.google.ca",
3258
+ "blogsearch.google.cat",
3259
+ "blogsearch.google.cc",
3260
+ "blogsearch.google.cd",
3261
+ "blogsearch.google.cf",
3262
+ "blogsearch.google.cg",
3263
+ "blogsearch.google.ch",
3264
+ "blogsearch.google.ci",
3265
+ "blogsearch.google.cl",
3266
+ "blogsearch.google.cm",
3267
+ "blogsearch.google.cn",
3268
+ "blogsearch.google.co.bw",
3269
+ "blogsearch.google.co.ck",
3270
+ "blogsearch.google.co.cr",
3271
+ "blogsearch.google.co.id",
3272
+ "blogsearch.google.co.il",
3273
+ "blogsearch.google.co.in",
3274
+ "blogsearch.google.co.jp",
3275
+ "blogsearch.google.co.ke",
3276
+ "blogsearch.google.co.kr",
3277
+ "blogsearch.google.co.ls",
3278
+ "blogsearch.google.co.ma",
3279
+ "blogsearch.google.co.mz",
3280
+ "blogsearch.google.co.nz",
3281
+ "blogsearch.google.co.th",
3282
+ "blogsearch.google.co.tz",
3283
+ "blogsearch.google.co.ug",
3284
+ "blogsearch.google.co.uk",
3285
+ "blogsearch.google.co.uz",
3286
+ "blogsearch.google.co.ve",
3287
+ "blogsearch.google.co.vi",
3288
+ "blogsearch.google.co.za",
3289
+ "blogsearch.google.co.zm",
3290
+ "blogsearch.google.co.zw",
3291
+ "blogsearch.google.com",
3292
+ "blogsearch.google.com.af",
3293
+ "blogsearch.google.com.ag",
3294
+ "blogsearch.google.com.ai",
3295
+ "blogsearch.google.com.ar",
3296
+ "blogsearch.google.com.au",
3297
+ "blogsearch.google.com.bd",
3298
+ "blogsearch.google.com.bh",
3299
+ "blogsearch.google.com.bn",
3300
+ "blogsearch.google.com.bo",
3301
+ "blogsearch.google.com.br",
3302
+ "blogsearch.google.com.by",
3303
+ "blogsearch.google.com.bz",
3304
+ "blogsearch.google.com.co",
3305
+ "blogsearch.google.com.cu",
3306
+ "blogsearch.google.com.cy",
3307
+ "blogsearch.google.com.do",
3308
+ "blogsearch.google.com.ec",
3309
+ "blogsearch.google.com.eg",
3310
+ "blogsearch.google.com.et",
3311
+ "blogsearch.google.com.fj",
3312
+ "blogsearch.google.com.gh",
3313
+ "blogsearch.google.com.gi",
3314
+ "blogsearch.google.com.gt",
3315
+ "blogsearch.google.com.hk",
3316
+ "blogsearch.google.com.jm",
3317
+ "blogsearch.google.com.kh",
3318
+ "blogsearch.google.com.kh",
3319
+ "blogsearch.google.com.kw",
3320
+ "blogsearch.google.com.lb",
3321
+ "blogsearch.google.com.lc",
3322
+ "blogsearch.google.com.ly",
3323
+ "blogsearch.google.com.mt",
3324
+ "blogsearch.google.com.mx",
3325
+ "blogsearch.google.com.my",
3326
+ "blogsearch.google.com.na",
3327
+ "blogsearch.google.com.nf",
3328
+ "blogsearch.google.com.ng",
3329
+ "blogsearch.google.com.ni",
3330
+ "blogsearch.google.com.np",
3331
+ "blogsearch.google.com.om",
3332
+ "blogsearch.google.com.pa",
3333
+ "blogsearch.google.com.pe",
3334
+ "blogsearch.google.com.ph",
3335
+ "blogsearch.google.com.pk",
3336
+ "blogsearch.google.com.pr",
3337
+ "blogsearch.google.com.py",
3338
+ "blogsearch.google.com.qa",
3339
+ "blogsearch.google.com.sa",
3340
+ "blogsearch.google.com.sb",
3341
+ "blogsearch.google.com.sg",
3342
+ "blogsearch.google.com.sl",
3343
+ "blogsearch.google.com.sv",
3344
+ "blogsearch.google.com.tj",
3345
+ "blogsearch.google.com.tn",
3346
+ "blogsearch.google.com.tr",
3347
+ "blogsearch.google.com.tw",
3348
+ "blogsearch.google.com.ua",
3349
+ "blogsearch.google.com.uy",
3350
+ "blogsearch.google.com.vc",
3351
+ "blogsearch.google.com.vn",
3352
+ "blogsearch.google.cv",
3353
+ "blogsearch.google.cz",
3354
+ "blogsearch.google.de",
3355
+ "blogsearch.google.dj",
3356
+ "blogsearch.google.dk",
3357
+ "blogsearch.google.dm",
3358
+ "blogsearch.google.dz",
3359
+ "blogsearch.google.ee",
3360
+ "blogsearch.google.es",
3361
+ "blogsearch.google.fi",
3362
+ "blogsearch.google.fm",
3363
+ "blogsearch.google.fr",
3364
+ "blogsearch.google.ga",
3365
+ "blogsearch.google.gd",
3366
+ "blogsearch.google.ge",
3367
+ "blogsearch.google.gf",
3368
+ "blogsearch.google.gg",
3369
+ "blogsearch.google.gl",
3370
+ "blogsearch.google.gm",
3371
+ "blogsearch.google.gp",
3372
+ "blogsearch.google.gr",
3373
+ "blogsearch.google.gy",
3374
+ "blogsearch.google.hn",
3375
+ "blogsearch.google.hr",
3376
+ "blogsearch.google.ht",
3377
+ "blogsearch.google.hu",
3378
+ "blogsearch.google.ie",
3379
+ "blogsearch.google.im",
3380
+ "blogsearch.google.io",
3381
+ "blogsearch.google.iq",
3382
+ "blogsearch.google.is",
3383
+ "blogsearch.google.it",
3384
+ "blogsearch.google.it.ao",
3385
+ "blogsearch.google.je",
3386
+ "blogsearch.google.jo",
3387
+ "blogsearch.google.kg",
3388
+ "blogsearch.google.ki",
3389
+ "blogsearch.google.kz",
3390
+ "blogsearch.google.la",
3391
+ "blogsearch.google.li",
3392
+ "blogsearch.google.lk",
3393
+ "blogsearch.google.lt",
3394
+ "blogsearch.google.lu",
3395
+ "blogsearch.google.lv",
3396
+ "blogsearch.google.md",
3397
+ "blogsearch.google.me",
3398
+ "blogsearch.google.mg",
3399
+ "blogsearch.google.mk",
3400
+ "blogsearch.google.ml",
3401
+ "blogsearch.google.mn",
3402
+ "blogsearch.google.ms",
3403
+ "blogsearch.google.mu",
3404
+ "blogsearch.google.mv",
3405
+ "blogsearch.google.mw",
3406
+ "blogsearch.google.ne",
3407
+ "blogsearch.google.nl",
3408
+ "blogsearch.google.no",
3409
+ "blogsearch.google.nr",
3410
+ "blogsearch.google.nu",
3411
+ "blogsearch.google.pl",
3412
+ "blogsearch.google.pn",
3413
+ "blogsearch.google.ps",
3414
+ "blogsearch.google.pt",
3415
+ "blogsearch.google.ro",
3416
+ "blogsearch.google.rs",
3417
+ "blogsearch.google.ru",
3418
+ "blogsearch.google.rw",
3419
+ "blogsearch.google.sc",
3420
+ "blogsearch.google.se",
3421
+ "blogsearch.google.sh",
3422
+ "blogsearch.google.si",
3423
+ "blogsearch.google.sk",
3424
+ "blogsearch.google.sm",
3425
+ "blogsearch.google.sn",
3426
+ "blogsearch.google.so",
3427
+ "blogsearch.google.st",
3428
+ "blogsearch.google.td",
3429
+ "blogsearch.google.tg",
3430
+ "blogsearch.google.tk",
3431
+ "blogsearch.google.tl",
3432
+ "blogsearch.google.tm",
3433
+ "blogsearch.google.to",
3434
+ "blogsearch.google.tt",
3435
+ "blogsearch.google.us",
3436
+ "blogsearch.google.vg",
3437
+ "blogsearch.google.vu",
3438
+ "blogsearch.google.ws"
3439
+ ],
3440
+ "parameters": [
3441
+ "q"
3442
+ ]
3443
+ },
3444
+ "Amazon": {
3445
+ "domains": [
3446
+ "amazon.com",
3447
+ "www.amazon.com"
3448
+ ],
3449
+ "parameters": [
3450
+ "keywords"
3451
+ ]
3452
+ },
3453
+ "Hooseek.com": {
3454
+ "domains": [
3455
+ "www.hooseek.com"
3456
+ ],
3457
+ "parameters": [
3458
+ "recherche"
3459
+ ]
3460
+ },
3461
+ "Dalesearch": {
3462
+ "domains": [
3463
+ "www.dalesearch.com"
3464
+ ],
3465
+ "parameters": [
3466
+ "q"
3467
+ ]
3468
+ },
3469
+ "Alice Adsl": {
3470
+ "domains": [
3471
+ "rechercher.aliceadsl.fr"
3472
+ ],
3473
+ "parameters": [
3474
+ "q"
3475
+ ]
3476
+ },
3477
+ "soso.com": {
3478
+ "domains": [
3479
+ "www.soso.com"
3480
+ ],
3481
+ "parameters": [
3482
+ "w"
3483
+ ]
3484
+ },
3485
+ "Sogou": {
3486
+ "domains": [
3487
+ "www.sougou.com"
3488
+ ],
3489
+ "parameters": [
3490
+ "query"
3491
+ ]
3492
+ },
3493
+ "Hit-Parade": {
3494
+ "domains": [
3495
+ "req.-hit-parade.com",
3496
+ "class.hit-parade.com",
3497
+ "www.hit-parade.com"
3498
+ ],
3499
+ "parameters": [
3500
+ "p7"
3501
+ ]
3502
+ },
3503
+ "SearchCanvas": {
3504
+ "domains": [
3505
+ "www.searchcanvas.com"
3506
+ ],
3507
+ "parameters": [
3508
+ "q"
3509
+ ]
3510
+ },
3511
+ "Interia": {
3512
+ "domains": [
3513
+ "www.google.interia.pl"
3514
+ ],
3515
+ "parameters": [
3516
+ "q"
3517
+ ]
3518
+ },
3519
+ "Tiscali": {
3520
+ "domains": [
3521
+ "search.tiscali.it",
3522
+ "search-dyn.tiscali.it",
3523
+ "hledani.tiscali.cz"
3524
+ ],
3525
+ "parameters": [
3526
+ "q",
3527
+ "key"
3528
+ ]
3529
+ },
3530
+ "Clix": {
3531
+ "domains": [
3532
+ "pesquisa.clix.pt"
3533
+ ],
3534
+ "parameters": [
3535
+ "question"
3536
+ ]
3537
+ }
3538
+ },
3539
+ "email": {
3540
+ "Outlook.com": {
3541
+ "domains": [
3542
+ "mail.live.com"
3543
+ ]
3544
+ },
3545
+ "Orange Webmail": {
3546
+ "domains": [
3547
+ "orange.fr/webmail"
3548
+ ]
3549
+ },
3550
+ "Yahoo! Mail": {
3551
+ "domains": [
3552
+ "mail.yahoo.net",
3553
+ "mail.yahoo.com",
3554
+ "mail.yahoo.co.uk"
3555
+ ]
3556
+ },
3557
+ "Gmail": {
3558
+ "domains": [
3559
+ "mail.google.com"
3560
+ ]
3561
+ }
3562
+ },
3563
+ "social": {
3564
+ "hi5": {
3565
+ "domains": [
3566
+ "hi5.com"
3567
+ ]
3568
+ },
3569
+ "Friendster": {
3570
+ "domains": [
3571
+ "friendster.com"
3572
+ ]
3573
+ },
3574
+ "Weibo": {
3575
+ "domains": [
3576
+ "weibo.com",
3577
+ "t.cn"
3578
+ ]
3579
+ },
3580
+ "Xanga": {
3581
+ "domains": [
3582
+ "xanga.com"
3583
+ ]
3584
+ },
3585
+ "Myspace": {
3586
+ "domains": [
3587
+ "myspace.com"
3588
+ ]
3589
+ },
3590
+ "Buzznet": {
3591
+ "domains": [
3592
+ "wayn.com"
3593
+ ]
3594
+ },
3595
+ "MyLife": {
3596
+ "domains": [
3597
+ "mylife.ru"
3598
+ ]
3599
+ },
3600
+ "Flickr": {
3601
+ "domains": [
3602
+ "flickr.com"
3603
+ ]
3604
+ },
3605
+ "Sonico.com": {
3606
+ "domains": [
3607
+ "sonico.com"
3608
+ ]
3609
+ },
3610
+ "Odnoklassniki": {
3611
+ "domains": [
3612
+ "odnoklassniki.ru"
3613
+ ]
3614
+ },
3615
+ "GitHub": {
3616
+ "domains": [
3617
+ "github.com"
3618
+ ]
3619
+ },
3620
+ "Classmates": {
3621
+ "domains": [
3622
+ "classmates.com"
3623
+ ]
3624
+ },
3625
+ "Friends Reunited": {
3626
+ "domains": [
3627
+ "friendsreunited.com"
3628
+ ]
3629
+ },
3630
+ "Renren": {
3631
+ "domains": [
3632
+ "renren.com"
3633
+ ]
3634
+ },
3635
+ "vKruguDruzei.ru": {
3636
+ "domains": [
3637
+ "vkrugudruzei.ru"
3638
+ ]
3639
+ },
3640
+ "Gaia Online": {
3641
+ "domains": [
3642
+ "gaiaonline.com"
3643
+ ]
3644
+ },
3645
+ "Netlog": {
3646
+ "domains": [
3647
+ "netlog.com"
3648
+ ]
3649
+ },
3650
+ "Orkut": {
3651
+ "domains": [
3652
+ "orkut.com"
3653
+ ]
3654
+ },
3655
+ "MyHeritage": {
3656
+ "domains": [
3657
+ "myheritage.com"
3658
+ ]
3659
+ },
3660
+ "Multiply": {
3661
+ "domains": [
3662
+ "multiply.com"
3663
+ ]
3664
+ },
3665
+ "myYearbook": {
3666
+ "domains": [
3667
+ "myyearbook.com"
3668
+ ]
3669
+ },
3670
+ "WeeWorld": {
3671
+ "domains": [
3672
+ "weeworld.com"
3673
+ ]
3674
+ },
3675
+ "Geni": {
3676
+ "domains": [
3677
+ "geni.com"
3678
+ ]
3679
+ },
3680
+ "SourceForge": {
3681
+ "domains": [
3682
+ "sourceforge.net"
3683
+ ]
3684
+ },
3685
+ "Plaxo": {
3686
+ "domains": [
3687
+ "plaxo.com"
3688
+ ]
3689
+ },
3690
+ "Taringa!": {
3691
+ "domains": [
3692
+ "taringa.net"
3693
+ ]
3694
+ },
3695
+ "Tagged": {
3696
+ "domains": [
3697
+ "login.tagged.com"
3698
+ ]
3699
+ },
3700
+ "XING": {
3701
+ "domains": [
3702
+ "xing.com"
3703
+ ]
3704
+ },
3705
+ "Vkontakte": {
3706
+ "domains": [
3707
+ "vk.com",
3708
+ "vkontakte.ru"
3709
+ ]
3710
+ },
3711
+ "Twitter": {
3712
+ "domains": [
3713
+ "twitter.com",
3714
+ "t.co"
3715
+ ]
3716
+ },
3717
+ "WAYN": {
3718
+ "domains": [
3719
+ "wayn.com"
3720
+ ]
3721
+ },
3722
+ "Tuenti": {
3723
+ "domains": [
3724
+ "tuenti.com"
3725
+ ]
3726
+ },
3727
+ "Mail.ru": {
3728
+ "domains": [
3729
+ "my.mail.ru"
3730
+ ]
3731
+ },
3732
+ "Badoo": {
3733
+ "domains": [
3734
+ "badoo.com"
3735
+ ]
3736
+ },
3737
+ "Habbo": {
3738
+ "domains": [
3739
+ "habbo.com"
3740
+ ]
3741
+ },
3742
+ "Pinterest": {
3743
+ "domains": [
3744
+ "pinterest.com"
3745
+ ]
3746
+ },
3747
+ "LinkedIn": {
3748
+ "domains": [
3749
+ "linkedin.com"
3750
+ ]
3751
+ },
3752
+ "Foursquare": {
3753
+ "domains": [
3754
+ "foursquare.com"
3755
+ ]
3756
+ },
3757
+ "Flixster": {
3758
+ "domains": [
3759
+ "flixster.com"
3760
+ ]
3761
+ },
3762
+ "Windows Live Spaces": {
3763
+ "domains": [
3764
+ "login.live.com"
3765
+ ]
3766
+ },
3767
+ "BlackPlanet": {
3768
+ "domains": [
3769
+ "blackplanet.com"
3770
+ ]
3771
+ },
3772
+ "Cyworld": {
3773
+ "domains": [
3774
+ "global.cyworld.com"
3775
+ ]
3776
+ },
3777
+ "Skyrock": {
3778
+ "domains": [
3779
+ "skyrock.com"
3780
+ ]
3781
+ },
3782
+ "Facebook": {
3783
+ "domains": [
3784
+ "facebook.com",
3785
+ "fb.me"
3786
+ ]
3787
+ },
3788
+ "StudiVZ": {
3789
+ "domains": [
3790
+ "studivz.net"
3791
+ ]
3792
+ },
3793
+ "Fotolog": {
3794
+ "domains": [
3795
+ "fotolog.com"
3796
+ ]
3797
+ },
3798
+ "Google+": {
3799
+ "domains": [
3800
+ "url.google.com",
3801
+ "plus.google.com"
3802
+ ]
3803
+ },
3804
+ "Nasza-klasa.pl": {
3805
+ "domains": [
3806
+ "nk.pl"
3807
+ ]
3808
+ },
3809
+ "Douban": {
3810
+ "domains": [
3811
+ "douban.com"
3812
+ ]
3813
+ },
3814
+ "Bebo": {
3815
+ "domains": [
3816
+ "bebo.com"
3817
+ ]
3818
+ },
3819
+ "Reddit": {
3820
+ "domains": [
3821
+ "reddit.com"
3822
+ ]
3823
+ },
3824
+ "Identi.ca": {
3825
+ "domains": [
3826
+ "identi.ca"
3827
+ ]
3828
+ },
3829
+ "StackOverflow": {
3830
+ "domains": [
3831
+ "stackoverflow.com"
3832
+ ]
3833
+ },
3834
+ "Mixi": {
3835
+ "domains": [
3836
+ "mixi.jp"
3837
+ ]
3838
+ },
3839
+ "StumbleUpon": {
3840
+ "domains": [
3841
+ "stumbleupon.com"
3842
+ ]
3843
+ },
3844
+ "Viadeo": {
3845
+ "domains": [
3846
+ "viadeo.com"
3847
+ ]
3848
+ },
3849
+ "Last.fm": {
3850
+ "domains": [
3851
+ "lastfm.ru"
3852
+ ]
3853
+ },
3854
+ "LiveJournal": {
3855
+ "domains": [
3856
+ "livejournal.ru"
3857
+ ]
3858
+ },
3859
+ "Tumblr": {
3860
+ "domains": [
3861
+ "tumblr.com"
3862
+ ]
3863
+ },
3864
+ "Hacker News": {
3865
+ "domains": [
3866
+ "news.ycombinator.com"
3867
+ ]
3868
+ },
3869
+ "Qzone": {
3870
+ "domains": [
3871
+ "qzone.qq.com"
3872
+ ]
3873
+ },
3874
+ "Hyves": {
3875
+ "domains": [
3876
+ "hyves.nl"
3877
+ ]
3878
+ },
3879
+ "Paper.li": {
3880
+ "domains": [
3881
+ "paper.li"
3882
+ ]
3883
+ },
3884
+ "MoiKrug.ru": {
3885
+ "domains": [
3886
+ "moikrug.ru"
3887
+ ]
3888
+ }
3889
+ }
3890
  }
shared/assets/js/admin/image-picker.js CHANGED
@@ -1,301 +1,301 @@
1
- // Image Picker
2
- // by Rodrigo Vera
3
- //
4
- // Version 0.2.4
5
- // Full source at https://github.com/rvera/image-picker
6
- // MIT License, https://github.com/rvera/image-picker/blob/master/LICENSE
7
- // Generated by CoffeeScript 1.4.0
8
- (function() {
9
- var ImagePicker, ImagePickerOption, both_array_are_equal, sanitized_options,
10
- __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
11
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
12
-
13
- jQuery.fn.extend({
14
- imagepicker: function(opts) {
15
- if (opts == null) {
16
- opts = {};
17
- }
18
- return this.each(function() {
19
- var select;
20
- select = jQuery(this);
21
- if (select.data("picker")) {
22
- select.data("picker").destroy();
23
- }
24
- select.data("picker", new ImagePicker(this, sanitized_options(opts)));
25
- if (opts.initialized != null) {
26
- return opts.initialized.call(select.data("picker"));
27
- }
28
- });
29
- }
30
- });
31
-
32
- sanitized_options = function(opts) {
33
- var default_options;
34
- default_options = {
35
- hide_select: true,
36
- show_label: false,
37
- initialized: void 0,
38
- changed: void 0,
39
- clicked: void 0,
40
- selected: void 0,
41
- limit: void 0,
42
- limit_reached: void 0
43
- };
44
- return jQuery.extend(default_options, opts);
45
- };
46
-
47
- both_array_are_equal = function(a, b) {
48
- return jQuery(a).not(b).length === 0 && jQuery(b).not(a).length === 0;
49
- };
50
-
51
- ImagePicker = (function() {
52
-
53
- function ImagePicker(select_element, opts) {
54
- this.opts = opts != null ? opts : {};
55
- this.sync_picker_with_select = __bind(this.sync_picker_with_select, this);
56
-
57
- this.select = jQuery(select_element);
58
- this.multiple = this.select.attr("multiple") === "multiple";
59
- if (this.select.data("limit") != null) {
60
- this.opts.limit = parseInt(this.select.data("limit"));
61
- }
62
- this.build_and_append_picker();
63
- }
64
-
65
- ImagePicker.prototype.destroy = function() {
66
- var option, _i, _len, _ref;
67
- _ref = this.picker_options;
68
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
69
- option = _ref[_i];
70
- option.destroy();
71
- }
72
- this.picker.remove();
73
- this.select.unbind("change");
74
- this.select.removeData("picker");
75
- return this.select.show();
76
- };
77
-
78
- ImagePicker.prototype.build_and_append_picker = function() {
79
- var _this = this;
80
- if (this.opts.hide_select) {
81
- this.select.hide();
82
- }
83
- this.select.change(function() {
84
- return _this.sync_picker_with_select();
85
- });
86
- if (this.picker != null) {
87
- this.picker.remove();
88
- }
89
- this.create_picker();
90
- this.select.after(this.picker);
91
- return this.sync_picker_with_select();
92
- };
93
-
94
- ImagePicker.prototype.sync_picker_with_select = function() {
95
- var option, _i, _len, _ref, _results;
96
- _ref = this.picker_options;
97
- _results = [];
98
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
99
- option = _ref[_i];
100
- if (option.is_selected()) {
101
- _results.push(option.mark_as_selected());
102
- } else {
103
- _results.push(option.unmark_as_selected());
104
- }
105
- }
106
- return _results;
107
- };
108
-
109
- ImagePicker.prototype.create_picker = function() {
110
- this.picker = jQuery("<ul class='thumbnails image_picker_selector'></ul>");
111
- this.picker_options = [];
112
- this.recursively_parse_option_groups(this.select, this.picker);
113
- return this.picker;
114
- };
115
-
116
- ImagePicker.prototype.recursively_parse_option_groups = function(scoped_dom, target_container) {
117
- var container, option, option_group, _i, _j, _len, _len1, _ref, _ref1, _results;
118
- _ref = scoped_dom.children("optgroup");
119
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
120
- option_group = _ref[_i];
121
- option_group = jQuery(option_group);
122
- container = jQuery("<ul></ul>");
123
- container.append(jQuery("<li class='group_title'>" + (option_group.attr("label")) + "</li>"));
124
- target_container.append(jQuery("<li>").append(container));
125
- this.recursively_parse_option_groups(option_group, container);
126
- }
127
- _ref1 = (function() {
128
- var _k, _len1, _ref1, _results1;
129
- _ref1 = scoped_dom.children("option");
130
- _results1 = [];
131
- for (_k = 0, _len1 = _ref1.length; _k < _len1; _k++) {
132
- option = _ref1[_k];
133
- _results1.push(new ImagePickerOption(option, this, this.opts));
134
- }
135
- return _results1;
136
- }).call(this);
137
- _results = [];
138
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
139
- option = _ref1[_j];
140
- this.picker_options.push(option);
141
- if (!option.has_image()) {
142
- continue;
143
- }
144
- _results.push(target_container.append(option.node));
145
- }
146
- return _results;
147
- };
148
-
149
- ImagePicker.prototype.has_implicit_blanks = function() {
150
- var option;
151
- return ((function() {
152
- var _i, _len, _ref, _results;
153
- _ref = this.picker_options;
154
- _results = [];
155
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
156
- option = _ref[_i];
157
- if (option.is_blank() && !option.has_image()) {
158
- _results.push(option);
159
- }
160
- }
161
- return _results;
162
- }).call(this)).length > 0;
163
- };
164
-
165
- ImagePicker.prototype.selected_values = function() {
166
- if (this.multiple) {
167
- return this.select.val() || [];
168
- } else {
169
- return [this.select.val()];
170
- }
171
- };
172
-
173
- ImagePicker.prototype.toggle = function(imagepicker_option) {
174
- var new_values, old_values, selected_value;
175
- old_values = this.selected_values();
176
- selected_value = imagepicker_option.value().toString();
177
- if (this.multiple) {
178
- if (__indexOf.call(this.selected_values(), selected_value) >= 0) {
179
- new_values = this.selected_values();
180
- new_values.splice(jQuery.inArray(selected_value, old_values), 1);
181
- this.select.val([]);
182
- this.select.val(new_values);
183
- } else {
184
- if ((this.opts.limit != null) && this.selected_values().length >= this.opts.limit) {
185
- if (this.opts.limit_reached != null) {
186
- this.opts.limit_reached.call(this.select);
187
- }
188
- } else {
189
- this.select.val(this.selected_values().concat(selected_value));
190
- }
191
- }
192
- } else {
193
- if (this.has_implicit_blanks() && imagepicker_option.is_selected()) {
194
- this.select.val("");
195
- } else {
196
- this.select.val(selected_value);
197
- }
198
- }
199
- if (!both_array_are_equal(old_values, this.selected_values())) {
200
- this.select.change();
201
- if (this.opts.changed != null) {
202
- return this.opts.changed.call(this.select, old_values, this.selected_values());
203
- }
204
- }
205
- };
206
-
207
- return ImagePicker;
208
-
209
- })();
210
-
211
- ImagePickerOption = (function() {
212
-
213
- function ImagePickerOption(option_element, picker, opts) {
214
- this.picker = picker;
215
- this.opts = opts != null ? opts : {};
216
- this.clicked = __bind(this.clicked, this);
217
-
218
- this.option = jQuery(option_element);
219
- this.create_node();
220
- }
221
-
222
- ImagePickerOption.prototype.destroy = function() {
223
- return this.node.find(".thumbnail").unbind();
224
- };
225
-
226
- ImagePickerOption.prototype.has_image = function() {
227
- return this.option.data("img-src") != null;
228
- };
229
-
230
- ImagePickerOption.prototype.is_blank = function() {
231
- return !((this.value() != null) && this.value() !== "");
232
- };
233
-
234
- ImagePickerOption.prototype.is_selected = function() {
235
- var select_value;
236
- select_value = this.picker.select.val();
237
- if (this.picker.multiple) {
238
- return jQuery.inArray(this.value(), select_value) >= 0;
239
- } else {
240
- return this.value() === select_value;
241
- }
242
- };
243
-
244
- ImagePickerOption.prototype.mark_as_selected = function() {
245
- return this.node.find(".thumbnail").addClass("selected");
246
- };
247
-
248
- ImagePickerOption.prototype.unmark_as_selected = function() {
249
- return this.node.find(".thumbnail").removeClass("selected");
250
- };
251
-
252
- ImagePickerOption.prototype.value = function() {
253
- return this.option.val();
254
- };
255
-
256
- ImagePickerOption.prototype.label = function() {
257
- if (this.option.data("img-label")) {
258
- return this.option.data("img-label");
259
- } else {
260
- return this.option.text();
261
- }
262
- };
263
-
264
- ImagePickerOption.prototype.clicked = function() {
265
- this.picker.toggle(this);
266
- if (this.opts.clicked != null) {
267
- this.opts.clicked.call(this.picker.select, this);
268
- }
269
- if ((this.opts.selected != null) && this.is_selected()) {
270
- return this.opts.selected.call(this.picker.select, this);
271
- }
272
- };
273
-
274
- ImagePickerOption.prototype.create_node = function() {
275
- var image, thumbnail;
276
- this.node = jQuery("<li/>");
277
- image = jQuery("<img class='image_picker_image'/>");
278
- image.attr("src", this.option.data("img-src"));
279
- thumbnail = jQuery("<div class='thumbnail'>");
280
- thumbnail.click({
281
- option: this
282
- }, function(event) {
283
- return event.data.option.clicked();
284
- });
285
- thumbnail.append(image);
286
- if (this.opts.show_label) {
287
- thumbnail.append(jQuery("<p/>").html(this.label()));
288
- }
289
- this.node.append(thumbnail);
290
- return this.node;
291
- };
292
-
293
- return ImagePickerOption;
294
-
295
- })();
296
-
297
- }).call(this);
298
-
299
- jQuery(document).ready(function($) {
300
- jQuery(".image-picker").imagepicker()
301
  });
1
+ // Image Picker
2
+ // by Rodrigo Vera
3
+ //
4
+ // Version 0.2.4
5
+ // Full source at https://github.com/rvera/image-picker
6
+ // MIT License, https://github.com/rvera/image-picker/blob/master/LICENSE
7
+ // Generated by CoffeeScript 1.4.0
8
+ (function() {
9
+ var ImagePicker, ImagePickerOption, both_array_are_equal, sanitized_options,
10
+ __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
11
+ __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
12
+
13
+ jQuery.fn.extend({
14
+ imagepicker: function(opts) {
15
+ if (opts == null) {
16
+ opts = {};
17
+ }
18
+ return this.each(function() {
19
+ var select;
20
+ select = jQuery(this);
21
+ if (select.data("picker")) {
22
+ select.data("picker").destroy();
23
+ }
24
+ select.data("picker", new ImagePicker(this, sanitized_options(opts)));
25
+ if (opts.initialized != null) {
26
+ return opts.initialized.call(select.data("picker"));
27
+ }
28
+ });
29
+ }
30
+ });
31
+
32
+ sanitized_options = function(opts) {
33
+ var default_options;
34
+ default_options = {
35
+ hide_select: true,
36
+ show_label: false,
37
+ initialized: void 0,
38
+ changed: void 0,
39
+ clicked: void 0,
40
+ selected: void 0,
41
+ limit: void 0,
42
+ limit_reached: void 0
43
+ };
44
+ return jQuery.extend(default_options, opts);
45
+ };
46
+
47
+ both_array_are_equal = function(a, b) {
48
+ return jQuery(a).not(b).length === 0 && jQuery(b).not(a).length === 0;
49
+ };
50
+
51
+ ImagePicker = (function() {
52
+
53
+ function ImagePicker(select_element, opts) {
54
+ this.opts = opts != null ? opts : {};
55
+ this.sync_picker_with_select = __bind(this.sync_picker_with_select, this);
56
+
57
+ this.select = jQuery(select_element);
58
+ this.multiple = this.select.attr("multiple") === "multiple";
59
+ if (this.select.data("limit") != null) {
60
+ this.opts.limit = parseInt(this.select.data("limit"));
61
+ }
62
+ this.build_and_append_picker();
63
+ }
64
+
65
+ ImagePicker.prototype.destroy = function() {
66
+ var option, _i, _len, _ref;
67
+ _ref = this.picker_options;
68
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
69
+ option = _ref[_i];
70
+ option.destroy();
71
+ }
72
+ this.picker.remove();
73
+ this.select.unbind("change");
74
+ this.select.removeData("picker");
75
+ return this.select.show();
76
+ };
77
+
78
+ ImagePicker.prototype.build_and_append_picker = function() {
79
+ var _this = this;
80
+ if (this.opts.hide_select) {
81
+ this.select.hide();
82
+ }
83
+ this.select.change(function() {
84
+ return _this.sync_picker_with_select();
85
+ });
86
+ if (this.picker != null) {
87
+ this.picker.remove();
88
+ }
89
+ this.create_picker();
90
+ this.select.after(this.picker);
91
+ return this.sync_picker_with_select();
92
+ };
93
+
94
+ ImagePicker.prototype.sync_picker_with_select = function() {
95
+ var option, _i, _len, _ref, _results;
96
+ _ref = this.picker_options;
97
+ _results = [];
98
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
99
+ option = _ref[_i];
100
+ if (option.is_selected()) {
101
+ _results.push(option.mark_as_selected());
102
+ } else {
103
+ _results.push(option.unmark_as_selected());
104
+ }
105
+ }
106
+ return _results;
107
+ };
108
+
109
+ ImagePicker.prototype.create_picker = function() {
110
+ this.picker = jQuery("<ul class='thumbnails image_picker_selector'></ul>");
111
+ this.picker_options = [];
112
+ this.recursively_parse_option_groups(this.select, this.picker);
113
+ return this.picker;
114
+ };
115
+
116
+ ImagePicker.prototype.recursively_parse_option_groups = function(scoped_dom, target_container) {
117
+ var container, option, option_group, _i, _j, _len, _len1, _ref, _ref1, _results;
118
+ _ref = scoped_dom.children("optgroup");
119
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
120
+ option_group = _ref[_i];
121
+ option_group = jQuery(option_group);
122
+ container = jQuery("<ul></ul>");
123
+ container.append(jQuery("<li class='group_title'>" + (option_group.attr("label")) + "</li>"));
124
+ target_container.append(jQuery("<li>").append(container));
125
+ this.recursively_parse_option_groups(option_group, container);
126
+ }
127
+ _ref1 = (function() {
128
+ var _k, _len1, _ref1, _results1;
129
+ _ref1 = scoped_dom.children("option");
130
+ _results1 = [];
131
+ for (_k = 0, _len1 = _ref1.length; _k < _len1; _k++) {
132
+ option = _ref1[_k];
133
+ _results1.push(new ImagePickerOption(option, this, this.opts));
134
+ }
135
+ return _results1;
136
+ }).call(this);
137
+ _results = [];
138
+ for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
139
+ option = _ref1[_j];
140
+ this.picker_options.push(option);
141
+ if (!option.has_image()) {
142
+ continue;
143
+ }
144
+ _results.push(target_container.append(option.node));
145
+ }
146
+ return _results;
147
+ };
148
+
149
+ ImagePicker.prototype.has_implicit_blanks = function() {
150
+ var option;
151
+ return ((function() {
152
+ var _i, _len, _ref, _results;
153
+ _ref = this.picker_options;
154
+ _results = [];
155
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
156
+ option = _ref[_i];
157
+ if (option.is_blank() && !option.has_image()) {
158
+ _results.push(option);
159
+ }
160
+ }
161
+ return _results;
162
+ }).call(this)).length > 0;
163
+ };
164
+
165
+ ImagePicker.prototype.selected_values = function() {
166
+ if (this.multiple) {
167
+ return this.select.val() || [];
168
+ } else {
169
+ return [this.select.val()];
170
+ }
171
+ };
172
+
173
+ ImagePicker.prototype.toggle = function(imagepicker_option) {
174
+ var new_values, old_values, selected_value;
175
+ old_values = this.selected_values();
176
+ selected_value = imagepicker_option.value().toString();
177
+ if (this.multiple) {
178
+ if (__indexOf.call(this.selected_values(), selected_value) >= 0) {
179
+ new_values = this.selected_values();
180
+ new_values.splice(jQuery.inArray(selected_value, old_values), 1);
181
+ this.select.val([]);
182
+ this.select.val(new_values);
183
+ } else {
184
+ if ((this.opts.limit != null) && this.selected_values().length >= this.opts.limit) {
185
+ if (this.opts.limit_reached != null) {
186
+ this.opts.limit_reached.call(this.select);
187
+ }
188
+ } else {
189
+ this.select.val(this.selected_values().concat(selected_value));
190
+ }
191
+ }
192
+ } else {
193
+ if (this.has_implicit_blanks() && imagepicker_option.is_selected()) {
194
+ this.select.val("");
195
+ } else {
196
+ this.select.val(selected_value);
197
+ }
198
+ }
199
+ if (!both_array_are_equal(old_values, this.selected_values())) {
200
+ this.select.change();
201
+ if (this.opts.changed != null) {
202
+ return this.opts.changed.call(this.select, old_values, this.selected_values());
203
+ }
204
+ }
205
+ };
206
+
207
+ return ImagePicker;
208
+
209
+ })();
210
+
211
+ ImagePickerOption = (function() {
212
+
213
+ function ImagePickerOption(option_element, picker, opts) {
214
+ this.picker = picker;
215
+ this.opts = opts != null ? opts : {};
216
+ this.clicked = __bind(this.clicked, this);
217
+
218
+ this.option = jQuery(option_element);
219
+ this.create_node();
220
+ }
221
+
222
+ ImagePickerOption.prototype.destroy = function() {
223
+ return this.node.find(".thumbnail").unbind();
224
+ };
225
+
226
+ ImagePickerOption.prototype.has_image = function() {
227
+ return this.option.data("img-src") != null;
228
+ };
229
+
230
+ ImagePickerOption.prototype.is_blank = function() {
231
+ return !((this.value() != null) && this.value() !== "");
232
+ };
233
+
234
+ ImagePickerOption.prototype.is_selected = function() {
235
+ var select_value;
236
+ select_value = this.picker.select.val();
237
+ if (this.picker.multiple) {
238
+ return jQuery.inArray(this.value(), select_value) >= 0;
239
+ } else {
240
+ return this.value() === select_value;
241
+ }
242
+ };
243
+
244
+ ImagePickerOption.prototype.mark_as_selected = function() {
245
+ return this.node.find(".thumbnail").addClass("selected");
246
+ };
247
+
248
+ ImagePickerOption.prototype.unmark_as_selected = function() {
249
+ return this.node.find(".thumbnail").removeClass("selected");
250
+ };
251
+
252
+ ImagePickerOption.prototype.value = function() {
253
+ return this.option.val();
254
+ };
255
+
256
+ ImagePickerOption.prototype.label = function() {
257
+ if (this.option.data("img-label")) {
258
+ return this.option.data("img-label");
259
+ } else {
260
+ return this.option.text();
261
+ }
262
+ };
263
+
264
+ ImagePickerOption.prototype.clicked = function() {
265
+ this.picker.toggle(this);
266
+ if (this.opts.clicked != null) {
267
+ this.opts.clicked.call(this.picker.select, this);
268
+ }
269
+ if ((this.opts.selected != null) && this.is_selected()) {
270
+ return this.opts.selected.call(this.picker.select, this);
271
+ }
272
+ };
273
+
274
+ ImagePickerOption.prototype.create_node = function() {
275
+ var image, thumbnail;
276
+ this.node = jQuery("<li/>");
277
+ image = jQuery("<img class='image_picker_image'/>");
278
+ image.attr("src", this.option.data("img-src"));
279
+ thumbnail = jQuery("<div class='thumbnail'>");
280
+ thumbnail.click({
281
+ option: this
282
+ }, function(event) {
283
+ return event.data.option.clicked();
284
+ });
285
+ thumbnail.append(image);
286
+ if (this.opts.show_label) {
287
+ thumbnail.append(jQuery("<p/>").html(this.label()));
288
+ }
289
+ this.node.append(thumbnail);
290
+ return this.node;
291
+ };
292
+
293
+ return ImagePickerOption;
294
+
295
+ })();
296
+
297
+ }).call(this);
298
+
299
+ jQuery(document).ready(function($) {
300
+ jQuery(".image-picker").imagepicker()
301
  });
shared/assets/js/admin/select2.js CHANGED
@@ -1,3137 +1,3137 @@
1
- /*
2
- Copyright 2012 Igor Vaynberg
3
-
4
- Version: 3.4.1 Timestamp: Thu Jun 27 18:02:10 PDT 2013
5
-
6
- This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
7
- General Public License version 2 (the "GPL License"). You may choose either license to govern your
8
- use of this software only upon the condition that you accept all of the terms of either the Apache
9
- License or the GPL License.
10
-
11
- You may obtain a copy of the Apache License and the GPL License at:
12
-
13
- http://www.apache.org/licenses/LICENSE-2.0
14
- http://www.gnu.org/licenses/gpl-2.0.html
15
-
16
- Unless required by applicable law or agreed to in writing, software distributed under the
17
- Apache License or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
18
- CONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for
19
- the specific language governing permissions and limitations under the Apache License and the GPL License.
20
- */
21
- (function ($) {
22
- if(typeof $.fn.each2 == "undefined") {
23
- $.fn.extend({
24
- /*
25
- * 4-10 times faster .each replacement
26
- * use it carefully, as it overrides jQuery context of element on each iteration
27
- */
28
- each2 : function (c) {
29
- var j = $([0]), i = -1, l = this.length;
30
- while (
31
- ++i < l
32
- && (j.context = j[0] = this[i])
33
- && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object
34
- );
35
- return this;
36
- }
37
- });
38
- }
39
- })(jQuery);
40
-
41
- (function ($, undefined) {
42
- "use strict";
43
- /*global document, window, jQuery, console */
44
-
45
- if (window.Select2 !== undefined) {
46
- return;
47
- }
48
-
49
- var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer,
50
- lastMousePosition={x:0,y:0}, $document, scrollBarDimensions,
51
-
52
- KEY = {
53
- TAB: 9,
54
- ENTER: 13,
55
- ESC: 27,
56
- SPACE: 32,
57
- LEFT: 37,
58
- UP: 38,
59
- RIGHT: 39,
60
- DOWN: 40,
61
- SHIFT: 16,
62
- CTRL: 17,
63
- ALT: 18,
64
- PAGE_UP: 33,
65
- PAGE_DOWN: 34,
66
- HOME: 36,
67
- END: 35,
68
- BACKSPACE: 8,
69
- DELETE: 46,
70
- isArrow: function (k) {
71
- k = k.which ? k.which : k;
72
- switch (k) {
73
- case KEY.LEFT:
74
- case KEY.RIGHT:
75
- case KEY.UP:
76
- case KEY.DOWN:
77
- return true;
78
- }
79
- return false;
80
- },
81
- isControl: function (e) {
82
- var k = e.which;
83
- switch (k) {
84
- case KEY.SHIFT:
85
- case KEY.CTRL:
86
- case KEY.ALT:
87
- return true;
88
- }
89
-
90
- if (e.metaKey) return true;
91
-
92
- return false;
93
- },
94
- isFunctionKey: function (k) {
95
- k = k.which ? k.which : k;
96
- return k >= 112 && k <= 123;
97
- }
98
- },
99
- MEASURE_SCROLLBAR_TEMPLATE = "<div class='select2-measure-scrollbar'></div>";
100
-
101
- $document = $(document);
102
-
103
- nextUid=(function() { var counter=1; return function() { return counter++; }; }());
104
-
105
- function indexOf(value, array) {
106
- var i = 0, l = array.length;
107
- for (; i < l; i = i + 1) {
108
- if (equal(value, array[i])) return i;
109
- }
110
- return -1;
111
- }
112
-
113
- function measureScrollbar () {
114
- var $template = $( MEASURE_SCROLLBAR_TEMPLATE );
115
- $template.appendTo('body');
116
-
117
- var dim = {
118
- width: $template.width() - $template[0].clientWidth,
119
- height: $template.height() - $template[0].clientHeight
120
- };
121
- $template.remove();
122
-
123
- return dim;
124
- }
125
-
126
- /**
127
- * Compares equality of a and b
128
- * @param a
129
- * @param b
130
- */
131
- function equal(a, b) {
132
- if (a === b) return true;
133
- if (a === undefined || b === undefined) return false;
134
- if (a === null || b === null) return false;
135
- // Check whether 'a' or 'b' is a string (primitive or object).
136
- // The concatenation of an empty string (+'') converts its argument to a string's primitive.
137
- if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object
138
- if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object
139
- return false;
140
- }
141
-
142
- /**
143
- * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty
144
- * strings
145
- * @param string
146
- * @param separator
147
- */
148
- function splitVal(string, separator) {
149
- var val, i, l;
150
- if (string === null || string.length < 1) return [];
151
- val = string.split(separator);
152
- for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]);
153
- return val;
154
- }
155
-
156
- function getSideBorderPadding(element) {
157
- return element.outerWidth(false) - element.width();
158
- }
159
-
160
- function installKeyUpChangeEvent(element) {
161
- var key="keyup-change-value";
162
- element.on("keydown", function () {
163
- if ($.data(element, key) === undefined) {
164
- $.data(element, key, element.val());
165
- }
166
- });
167
- element.on("keyup", function () {
168
- var val= $.data(element, key);
169
- if (val !== undefined && element.val() !== val) {
170
- $.removeData(element, key);
171
- element.trigger("keyup-change");
172
- }
173
- });
174
- }
175
-
176
- $document.on("mousemove", function (e) {
177
- lastMousePosition.x = e.pageX;
178
- lastMousePosition.y = e.pageY;
179
- });
180
-
181
- /**
182
- * filters mouse events so an event is fired only if the mouse moved.
183
- *
184
- * filters out mouse events that occur when mouse is stationary but
185
- * the elements under the pointer are scrolled.
186
- */
187
- function installFilteredMouseMove(element) {
188
- element.on("mousemove", function (e) {
189
- var lastpos = lastMousePosition;
190
- if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {
191
- $(e.target).trigger("mousemove-filtered", e);
192
- }
193
- });
194
- }
195
-
196
- /**
197
- * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made
198
- * within the last quietMillis milliseconds.
199
- *
200
- * @param quietMillis number of milliseconds to wait before invoking fn
201
- * @param fn function to be debounced
202
- * @param ctx object to be used as this reference within fn
203
- * @return debounced version of fn
204
- */
205
- function debounce(quietMillis, fn, ctx) {
206
- ctx = ctx || undefined;
207
- var timeout;
208
- return function () {
209
- var args = arguments;
210
- window.clearTimeout(timeout);
211
- timeout = window.setTimeout(function() {
212
- fn.apply(ctx, args);
213
- }, quietMillis);
214
- };
215
- }
216
-
217
- /**
218
- * A simple implementation of a thunk
219
- * @param formula function used to lazily initialize the thunk
220
- * @return {Function}
221
- */
222
- function thunk(formula) {
223
- var evaluated = false,
224
- value;
225
- return function() {
226
- if (evaluated === false) { value = formula(); evaluated = true; }
227
- return value;
228
- };
229
- };
230
-
231
- function installDebouncedScroll(threshold, element) {
232
- var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);});
233
- element.on("scroll", function (e) {
234
- if (indexOf(e.target, element.get()) >= 0) notify(e);
235
- });
236
- }
237
-
238
- function focus($el) {
239
- if ($el[0] === document.activeElement) return;
240
-
241
- /* set the focus in a 0 timeout - that way the focus is set after the processing
242
- of the current event has finished - which seems like the only reliable way
243
- to set focus */
244
- window.setTimeout(function() {
245
- var el=$el[0], pos=$el.val().length, range;
246
-
247
- $el.focus();
248
-
249
- /* make sure el received focus so we do not error out when trying to manipulate the caret.
250
- sometimes modals or others listeners may steal it after its set */
251
- if ($el.is(":visible") && el === document.activeElement) {
252
-
253
- /* after the focus is set move the caret to the end, necessary when we val()
254
- just before setting focus */
255
- if(el.setSelectionRange)
256
- {
257
- el.setSelectionRange(pos, pos);
258
- }
259
- else if (el.createTextRange) {
260
- range = el.createTextRange();
261
- range.collapse(false);
262
- range.select();
263
- }
264
- }
265
- }, 0);
266
- }
267
-
268
- function getCursorInfo(el) {
269
- el = $(el)[0];
270
- var offset = 0;
271
- var length = 0;
272
- if ('selectionStart' in el) {
273
- offset = el.selectionStart;
274
- length = el.selectionEnd - offset;
275
- } else if ('selection' in document) {
276
- el.focus();
277
- var sel = document.selection.createRange();
278
- length = document.selection.createRange().text.length;
279
- sel.moveStart('character', -el.value.length);
280
- offset = sel.text.length - length;
281
- }
282
- return { offset: offset, length: length };
283
- }
284
-
285
- function killEvent(event) {
286
- event.preventDefault();
287
- event.stopPropagation();
288
- }
289
- function killEventImmediately(event) {
290
- event.preventDefault();
291
- event.stopImmediatePropagation();
292
- }
293
-
294
- function measureTextWidth(e) {
295
- if (!sizer){
296
- var style = e[0].currentStyle || window.getComputedStyle(e[0], null);
297
- sizer = $(document.createElement("div")).css({
298
- position: "absolute",
299
- left: "-10000px",
300
- top: "-10000px",
301
- display: "none",
302
- fontSize: style.fontSize,
303
- fontFamily: style.fontFamily,
304
- fontStyle: style.fontStyle,
305
- fontWeight: style.fontWeight,
306
- letterSpacing: style.letterSpacing,
307
- textTransform: style.textTransform,
308
- whiteSpace: "nowrap"
309
- });
310
- sizer.attr("class","select2-sizer");
311
- $("body").append(sizer);
312
- }
313
- sizer.text(e.val());
314
- return sizer.width();
315
- }
316
-
317
- function syncCssClasses(dest, src, adapter) {
318
- var classes, replacements = [], adapted;
319
-
320
- classes = dest.attr("class");
321
- if (classes) {
322
- classes = '' + classes; // for IE which returns object
323
- $(classes.split(" ")).each2(function() {
324
- if (this.indexOf("select2-") === 0) {
325
- replacements.push(this);
326
- }
327
- });
328
- }
329
- classes = src.attr("class");
330
- if (classes) {
331
- classes = '' + classes; // for IE which returns object
332
- $(classes.split(" ")).each2(function() {
333
- if (this.indexOf("select2-") !== 0) {
334
- adapted = adapter(this);
335
- if (adapted) {
336
- replacements.push(this);
337
- }
338
- }
339
- });
340
- }
341
- dest.attr("class", replacements.join(" "));
342
- }
343
-
344
-
345
- function markMatch(text, term, markup, escapeMarkup) {
346
- var match=text.toUpperCase().indexOf(term.toUpperCase()),
347
- tl=term.length;
348
-
349
- if (match<0) {
350
- markup.push(escapeMarkup(text));
351
- return;
352
- }
353
-
354
- markup.push(escapeMarkup(text.substring(0, match)));
355
- markup.push("<span class='select2-match'>");
356
- markup.push(escapeMarkup(text.substring(match, match + tl)));
357
- markup.push("</span>");
358
- markup.push(escapeMarkup(text.substring(match + tl, text.length)));
359
- }
360
-
361
- function defaultEscapeMarkup(markup) {
362
- var replace_map = {
363
- '\\': '&#92;',
364
- '&': '&amp;',
365
- '<': '&lt;',
366
- '>': '&gt;',
367
- '"': '&quot;',
368
- "'": '&#39;',
369
- "/": '&#47;'
370
- };
371
-
372
- return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
373
- return replace_map[match];
374
- });
375
- }
376
-
377
- /**
378
- * Produces an ajax-based query function
379
- *
380
- * @param options object containing configuration paramters
381
- * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax
382
- * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax
383
- * @param options.url url for the data
384
- * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url.
385
- * @param options.dataType request data type: ajax, jsonp, other datatatypes supported by jQuery's $.ajax function or the transport function if specified
386
- * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often
387
- * @param options.results a function(remoteData, pageNumber) that converts data returned form the remote request to the format expected by Select2.
388
- * The expected format is an object containing the following keys:
389
- * results array of objects that will be used as choices
390
- * more (optional) boolean indicating whether there are more results available
391
- * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true}
392
- */
393
- function ajax(options) {
394
- var timeout, // current scheduled but not yet executed request
395
- requestSequence = 0, // sequence used to drop out-of-order responses
396
- handler = null,
397
- quietMillis = options.quietMillis || 100,
398
- ajaxUrl = options.url,
399
- self = this;
400
-
401
- return function (query) {
402
- window.clearTimeout(timeout);
403
- timeout = window.setTimeout(function () {
404
- requestSequence += 1; // increment the sequence
405
- var requestNumber = requestSequence, // this request's sequence number
406
- data = options.data, // ajax data function
407
- url = ajaxUrl, // ajax url string or function
408
- transport = options.transport || $.fn.select2.ajaxDefaults.transport,
409
- // deprecated - to be removed in 4.0 - use params instead
410
- deprecated = {
411
- type: options.type || 'GET', // set type of request (GET or POST)
412
- cache: options.cache || false,
413
- jsonpCallback: options.jsonpCallback||undefined,
414
- dataType: options.dataType||"json"
415
- },
416
- params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated);
417
-
418
- data = data ? data.call(self, query.term, query.page, query.context) : null;
419
- url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url;
420
-
421
- if (handler) { handler.abort(); }
422
-
423
- if (options.params) {
424
- if ($.isFunction(options.params)) {
425
- $.extend(params, options.params.call(self));
426
- } else {
427
- $.extend(params, options.params);
428
- }
429
- }
430
-
431
- $.extend(params, {
432
- url: url,
433
- dataType: options.dataType,
434
- data: data,
435
- success: function (data) {
436
- if (requestNumber < requestSequence) {
437
- return;
438
- }
439
- // TODO - replace query.page with query so users have access to term, page, etc.
440
- var results = options.results(data, query.page);
441
- query.callback(results);
442
- }
443
- });
444
- handler = transport.call(self, params);
445
- }, quietMillis);
446
- };
447
- }
448
-
449
- /**
450
- * Produces a query function that works with a local array
451
- *
452
- * @param options object containing configuration parameters. The options parameter can either be an array or an
453
- * object.
454
- *
455
- * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys.
456
- *
457
- * If the object form is used ti is assumed that it contains 'data' and 'text' keys. The 'data' key should contain
458
- * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text'
459
- * key can either be a String in which case it is expected that each element in the 'data' array has a key with the
460
- * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract
461
- * the text.
462
- */
463
- function local(options) {
464
- var data = options, // data elements
465
- dataText,
466
- tmp,
467
- text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search
468
-
469
- if ($.isArray(data)) {
470
- tmp = data;
471
- data = { results: tmp };
472
- }
473
-
474
- if ($.isFunction(data) === false) {
475
- tmp = data;
476
- data = function() { return tmp; };
477
- }
478
-
479
- var dataItem = data();
480
- if (dataItem.text) {
481
- text = dataItem.text;
482
- // if text is not a function we assume it to be a key name
483
- if (!$.isFunction(text)) {
484
- dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available
485
- text = function (item) { return item[dataText]; };
486
- }
487
- }
488
-
489
- return function (query) {
490
- var t = query.term, filtered = { results: [] }, process;
491
- if (t === "") {
492
- query.callback(data());
493
- return;
494
- }
495
-
496
- process = function(datum, collection) {
497
- var group, attr;
498
- datum = datum[0];
499
- if (datum.children) {
500
- group = {};
501
- for (attr in datum) {
502
- if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];
503
- }
504
- group.children=[];
505
- $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });
506
- if (group.children.length || query.matcher(t, text(group), datum)) {
507
- collection.push(group);
508
- }
509
- } else {
510
- if (query.matcher(t, text(datum), datum)) {
511
- collection.push(datum);
512
- }
513
- }
514
- };
515
-
516
- $(data().results).each2(function(i, datum) { process(datum, filtered.results); });
517
- query.callback(filtered);
518
- };
519
- }
520
-
521
- // TODO javadoc
522
- function tags(data) {
523
- var isFunc = $.isFunction(data);
524
- return function (query) {
525
- var t = query.term, filtered = {results: []};
526
- $(isFunc ? data() : data).each(function () {
527
- var isObject = this.text !== undefined,
528
- text = isObject ? this.text : this;
529
- if (t === "" || query.matcher(t, text)) {
530
- filtered.results.push(isObject ? this : {id: this, text: this});
531
- }
532
- });
533
- query.callback(filtered);
534
- };
535
- }
536
-
537
- /**
538
- * Checks if the formatter function should be used.
539
- *
540
- * Throws an error if it is not a function. Returns true if it should be used,
541
- * false if no formatting should be performed.
542
- *
543
- * @param formatter
544
- */
545
- function checkFormatter(formatter, formatterName) {
546
- if ($.isFunction(formatter)) return true;
547
- if (!formatter) return false;
548
- throw new Error(formatterName +" must be a function or a falsy value");
549
- }
550
-
551
- function evaluate(val) {
552
- return $.isFunction(val) ? val() : val;
553
- }
554
-
555
- function countResults(results) {
556
- var count = 0;
557
- $.each(results, function(i, item) {
558
- if (item.children) {
559
- count += countResults(item.children);
560
- } else {
561
- count++;
562
- }
563
- });
564
- return count;
565
- }
566
-
567
- /**
568
- * Default tokenizer. This function uses breaks the input on substring match of any string from the
569
- * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those
570
- * two options have to be defined in order for the tokenizer to work.
571
- *
572
- * @param input text user has typed so far or pasted into the search field
573
- * @param selection currently selected choices
574
- * @param selectCallback function(choice) callback tho add the choice to selection
575
- * @param opts select2's opts
576
- * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value
577
- */
578
- function defaultTokenizer(input, selection, selectCallback, opts) {
579
- var original = input, // store the original so we can compare and know if we need to tell the search to update its text
580
- dupe = false, // check for whether a token we extracted represents a duplicate selected choice
581
- token, // token
582
- index, // position at which the separator was found
583
- i, l, // looping variables
584
- separator; // the matched separator
585
-
586
- if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined;
587
-
588
- while (true) {
589
- index = -1;
590
-
591
- for (i = 0, l = opts.tokenSeparators.length; i < l; i++) {
592
- separator = opts.tokenSeparators[i];
593
- index = input.indexOf(separator);
594
- if (index >= 0) break;
595
- }
596
-
597
- if (index < 0) break; // did not find any token separator in the input string, bail
598
-
599
- token = input.substring(0, index);
600
- input = input.substring(index + separator.length);
601
-
602
- if (token.length > 0) {
603
- token = opts.createSearchChoice.call(this, token, selection);
604
- if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) {
605
- dupe = false;
606
- for (i = 0, l = selection.length; i < l; i++) {
607
- if (equal(opts.id(token), opts.id(selection[i]))) {
608
- dupe = true; break;
609
- }
610
- }
611
-
612
- if (!dupe) selectCallback(token);
613
- }
614
- }
615
- }
616
-
617
- if (original!==input) return input;
618
- }
619
-
620
- /**
621
- * Creates a new class
622
- *
623
- * @param superClass
624
- * @param methods
625
- */
626
- function clazz(SuperClass, methods) {
627
- var constructor = function () {};
628
- constructor.prototype = new SuperClass;
629
- constructor.prototype.constructor = constructor;
630
- constructor.prototype.parent = SuperClass.prototype;
631
- constructor.prototype = $.extend(constructor.prototype, methods);
632
- return constructor;
633
- }
634
-
635
- AbstractSelect2 = clazz(Object, {
636
-
637
- // abstract
638
- bind: function (func) {
639
- var self = this;
640
- return function () {
641
- func.apply(self, arguments);
642
- };
643
- },
644
-
645
- // abstract
646
- init: function (opts) {
647
- var results, search, resultsSelector = ".select2-results", disabled, readonly;
648
-
649
- // prepare options
650
- this.opts = opts = this.prepareOpts(opts);
651
-
652
- this.id=opts.id;
653
-
654
- // destroy if called on an existing component
655
- if (opts.element.data("select2") !== undefined &&
656
- opts.element.data("select2") !== null) {
657
- opts.element.data("select2").destroy();
658
- }
659
-
660
- this.container = this.createContainer();
661
-
662
- this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid());
663
- this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
664
- this.container.attr("id", this.containerId);
665
-
666
- // cache the body so future lookups are cheap
667
- this.body = thunk(function() { return opts.element.closest("body"); });
668
-
669
- syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
670
-
671
- this.container.css(evaluate(opts.containerCss));
672
- this.container.addClass(evaluate(opts.containerCssClass));
673
-
674
- this.elementTabIndex = this.opts.element.attr("tabindex");
675
-
676
- // swap container for the element
677
- this.opts.element
678
- .data("select2", this)
679
- .attr("tabindex", "-1")
680
- .before(this.container);
681
- this.container.data("select2", this);
682
-
683
- this.dropdown = this.container.find(".select2-drop");
684
- this.dropdown.addClass(evaluate(opts.dropdownCssClass));
685
- this.dropdown.data("select2", this);
686
-
687
- this.results = results = this.container.find(resultsSelector);
688
- this.search = search = this.container.find("input.select2-input");
689
-
690
- this.resultsPage = 0;
691
- this.context = null;
692
-
693
- // initialize the container
694
- this.initContainer();
695
-
696
- installFilteredMouseMove(this.results);
697
- this.dropdown.on("mousemove-filtered touchstart touchmove touchend", resultsSelector, this.bind(this.highlightUnderEvent));
698
-
699
- installDebouncedScroll(80, this.results);
700
- this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded));
701
-
702
- // do not propagate change event from the search field out of the component
703
- $(this.container).on("change", ".select2-input", function(e) {e.stopPropagation();});
704
- $(this.dropdown).on("change", ".select2-input", function(e) {e.stopPropagation();});
705
-
706
- // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel
707
- if ($.fn.mousewheel) {
708
- results.mousewheel(function (e, delta, deltaX, deltaY) {
709
- var top = results.scrollTop(), height;
710
- if (deltaY > 0 && top - deltaY <= 0) {
711
- results.scrollTop(0);
712
- killEvent(e);
713
- } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) {
714
- results.scrollTop(results.get(0).scrollHeight - results.height());
715
- killEvent(e);
716
- }
717
- });
718
- }
719
-
720
- installKeyUpChangeEvent(search);
721
- search.on("keyup-change input paste", this.bind(this.updateResults));
722
- search.on("focus", function () { search.addClass("select2-focused"); });
723
- search.on("blur", function () { search.removeClass("select2-focused");});
724
-
725
- this.dropdown.on("mouseup", resultsSelector, this.bind(function (e) {
726
- if ($(e.target).closest(".select2-result-selectable").length > 0) {
727
- this.highlightUnderEvent(e);
728
- this.selectHighlighted(e);
729
- }
730
- }));
731
-
732
- // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening
733
- // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's
734
- // dom it will trigger the popup close, which is not what we want
735
- this.dropdown.on("click mouseup mousedown", function (e) { e.stopPropagation(); });
736
-
737
- if ($.isFunction(this.opts.initSelection)) {
738
- // initialize selection based on the current value of the source element
739
- this.initSelection();
740
-
741
- // if the user has provided a function that can set selection based on the value of the source element
742
- // we monitor the change event on the element and trigger it, allowing for two way synchronization
743
- this.monitorSource();
744
- }
745
-
746
- if (opts.maximumInputLength !== null) {
747
- this.search.attr("maxlength", opts.maximumInputLength);
748
- }
749
-
750
- var disabled = opts.element.prop("disabled");
751
- if (disabled === undefined) disabled = false;
752
- this.enable(!disabled);
753
-
754
- var readonly = opts.element.prop("readonly");
755
- if (readonly === undefined) readonly = false;
756
- this.readonly(readonly);
757
-
758
- // Calculate size of scrollbar
759
- scrollBarDimensions = scrollBarDimensions || measureScrollbar();
760
-
761
- this.autofocus = opts.element.prop("autofocus")
762
- opts.element.prop("autofocus", false);
763
- if (this.autofocus) this.focus();
764
- },
765
-
766
- // abstract
767
- destroy: function () {
768
- var element=this.opts.element, select2 = element.data("select2");
769
-
770
- if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; }
771
-
772
- if (select2 !== undefined) {
773
- select2.container.remove();
774
- select2.dropdown.remove();
775
- element
776
- .removeClass("select2-offscreen")
777
- .removeData("select2")
778
- .off(".select2")
779
- .prop("autofocus", this.autofocus || false);
780
- if (this.elementTabIndex) {
781
- element.attr({tabindex: this.elementTabIndex});
782
- } else {
783
- element.removeAttr("tabindex");
784
- }
785
- element.show();
786
- }
787
- },
788
-
789
- // abstract
790
- optionToData: function(element) {
791
- if (element.is("option")) {
792
- return {
793
- id:element.prop("value"),
794
- text:element.text(),
795
- element: element.get(),
796
- css: element.attr("class"),
797
- disabled: element.prop("disabled"),
798
- locked: equal(element.attr("locked"), "locked") || equal(element.data("locked"), true)
799
- };
800
- } else if (element.is("optgroup")) {
801
- return {
802
- text:element.attr("label"),
803
- children:[],
804
- element: element.get(),
805
- css: element.attr("class")
806
- };
807
- }
808
- },
809
-
810
- // abstract
811
- prepareOpts: function (opts) {
812
- var element, select, idKey, ajaxUrl, self = this;
813
-
814
- element = opts.element;
815
-
816
- if (element.get(0).tagName.toLowerCase() === "select") {
817
- this.select = select = opts.element;
818
- }
819
-
820
- if (select) {
821
- // these options are not allowed when attached to a select because they are picked up off the element itself
822
- $.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () {
823
- if (this in opts) {
824
- throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a <select> element.");
825
- }
826
- });
827
- }
828
-
829
- opts = $.extend({}, {
830
- populateResults: function(container, results, query) {
831
- var populate, data, result, children, id=this.opts.id;
832
-
833
- populate=function(results, container, depth) {
834
-
835
- var i, l, result, selectable, disabled, compound, node, label, innerContainer, formatted;
836
-
837
- results = opts.sortResults(results, container, query);
838
-
839
- for (i = 0, l = results.length; i < l; i = i + 1) {
840
-
841
- result=results[i];
842
-
843
- disabled = (result.disabled === true);
844
- selectable = (!disabled) && (id(result) !== undefined);
845
-
846
- compound=result.children && result.children.length > 0;
847
-
848
- node=$("<li></li>");
849
- node.addClass("select2-results-dept-"+depth);
850
- node.addClass("select2-result");
851
- node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable");
852
- if (disabled) { node.addClass("select2-disabled"); }
853
- if (compound) { node.addClass("select2-result-with-children"); }
854
- node.addClass(self.opts.formatResultCssClass(result));
855
-
856
- label=$(document.createElement("div"));
857
- label.addClass("select2-result-label");
858
-
859
- formatted=opts.formatResult(result, label, query, self.opts.escapeMarkup);
860
- if (formatted!==undefined) {
861
- label.html(formatted);
862
- }
863
-
864
- node.append(label);
865
-
866
- if (compound) {
867
-
868
- innerContainer=$("<ul></ul>");
869
- innerContainer.addClass("select2-result-sub");
870
- populate(result.children, innerContainer, depth+1);
871
- node.append(innerContainer);
872
- }
873
-
874
- node.data("select2-data", result);
875
- container.append(node);
876
- }
877
- };
878
-
879
- populate(results, container, 0);
880
- }
881
- }, $.fn.select2.defaults, opts);
882
-
883
- if (typeof(opts.id) !== "function") {
884
- idKey = opts.id;
885
- opts.id = function (e) { return e[idKey]; };
886
- }
887
-
888
- if ($.isArray(opts.element.data("select2Tags"))) {
889
- if ("tags" in opts) {
890
- throw "tags specified as both an attribute 'data-select2-tags' and in options of Select2 " + opts.element.attr("id");
891
- }
892
- opts.tags=opts.element.data("select2Tags");
893
- }
894
-
895
- if (select) {
896
- opts.query = this.bind(function (query) {
897
- var data = { results: [], more: false },
898
- term = query.term,
899
- children, placeholderOption, process;
900
-
901
- process=function(element, collection) {
902
- var group;
903
- if (element.is("option")) {
904
- if (query.matcher(term, element.text(), element)) {
905
- collection.push(self.optionToData(element));
906
- }
907
- } else if (element.is("optgroup")) {
908
- group=self.optionToData(element);
909
- element.children().each2(function(i, elm) { process(elm, group.children); });
910
- if (group.children.length>0) {
911
- collection.push(group);
912
- }
913
- }
914
- };
915
-
916
- children=element.children();
917
-
918
- // ignore the placeholder option if there is one
919
- if (this.getPlaceholder() !== undefined && children.length > 0) {
920
- placeholderOption = this.getPlaceholderOption();
921
- if (placeholderOption) {
922
- children=children.not(placeholderOption);
923
- }
924
- }
925
-
926
- children.each2(function(i, elm) { process(elm, data.results); });
927
-
928
- query.callback(data);
929
- });
930
- // this is needed because inside val() we construct choices from options and there id is hardcoded
931
- opts.id=function(e) { return e.id; };
932
- opts.formatResultCssClass = function(data) { return data.css; };
933
- } else {
934
- if (!("query" in opts)) {
935
-
936
- if ("ajax" in opts) {
937
- ajaxUrl = opts.element.data("ajax-url");
938
- if (ajaxUrl && ajaxUrl.length > 0) {
939
- opts.ajax.url = ajaxUrl;
940
- }
941
- opts.query = ajax.call(opts.element, opts.ajax);
942
- } else if ("data" in opts) {
943
- opts.query = local(opts.data);
944
- } else if ("tags" in opts) {
945
- opts.query = tags(opts.tags);
946
- if (opts.createSearchChoice === undefined) {
947
- opts.createSearchChoice = function (term) { return {id: term, text: term}; };
948
- }
949
- if (opts.initSelection === undefined) {
950
- opts.initSelection = function (element, callback) {
951
- var data = [];
952
- $(splitVal(element.val(), opts.separator)).each(function () {
953
- var id = this, text = this, tags=opts.tags;
954
- if ($.isFunction(tags)) tags=tags();
955
- $(tags).each(function() { if (equal(this.id, id)) { text = this.text; return false; } });
956
- data.push({id: id, text: text});
957
- });
958
-
959
- callback(data);
960
- };
961
- }
962
- }
963
- }
964
- }
965
- if (typeof(opts.query) !== "function") {
966
- throw "query function not defined for Select2 " + opts.element.attr("id");
967
- }
968
-
969
- return opts;
970
- },
971
-
972
- /**
973
- * Monitor the original element for changes and update select2 accordingly
974
- */
975
- // abstract
976
- monitorSource: function () {
977
- var el = this.opts.element, sync;
978
-
979
- el.on("change.select2", this.bind(function (e) {
980
- if (this.opts.element.data("select2-change-triggered") !== true) {
981
- this.initSelection();
982
- }
983
- }));
984
-
985
- sync = this.bind(function () {
986
-
987
- var enabled, readonly, self = this;
988
-
989
- // sync enabled state
990
- var disabled = el.prop("disabled");
991
- if (disabled === undefined) disabled = false;
992
- this.enable(!disabled);
993
-
994
- var readonly = el.prop("readonly");
995
- if (readonly === undefined) readonly = false;
996
- this.readonly(readonly);
997
-
998
- syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
999
- this.container.addClass(evaluate(this.opts.containerCssClass));
1000
-
1001
- syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
1002
- this.dropdown.addClass(evaluate(this.opts.dropdownCssClass));
1003
-
1004
- });
1005
-
1006
- // mozilla and IE
1007
- el.on("propertychange.select2 DOMAttrModified.select2", sync);
1008
-
1009
-
1010
- // hold onto a reference of the callback to work around a chromium bug
1011
- if (this.mutationCallback === undefined) {
1012
- this.mutationCallback = function (mutations) {
1013
- mutations.forEach(sync);
1014
- }
1015
- }
1016
-
1017
- // safari and chrome
1018
- if (typeof WebKitMutationObserver !== "undefined") {
1019
- if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; }
1020
- this.propertyObserver = new WebKitMutationObserver(this.mutationCallback);
1021
- this.propertyObserver.observe(el.get(0), { attributes:true, subtree:false });
1022
- }
1023
- },
1024
-
1025
- // abstract
1026
- triggerSelect: function(data) {
1027
- var evt = $.Event("select2-selecting", { val: this.id(data), object: data });
1028
- this.opts.element.trigger(evt);
1029
- return !evt.isDefaultPrevented();
1030
- },
1031
-
1032
- /**
1033
- * Triggers the change event on the source element
1034
- */
1035
- // abstract
1036
- triggerChange: function (details) {
1037
-
1038
- details = details || {};
1039
- details= $.extend({}, details, { type: "change", val: this.val() });
1040
- // prevents recursive triggering
1041
- this.opts.element.data("select2-change-triggered", true);
1042
- this.opts.element.trigger(details);
1043
- this.opts.element.data("select2-change-triggered", false);
1044
-
1045
- // some validation frameworks ignore the change event and listen instead to keyup, click for selects
1046
- // so here we trigger the click event manually
1047
- this.opts.element.click();
1048
-
1049
- // ValidationEngine ignorea the change event and listens instead to blur
1050
- // so here we trigger the blur event manually if so desired
1051
- if (this.opts.blurOnChange)
1052
- this.opts.element.blur();
1053
- },
1054
-
1055
- //abstract
1056
- isInterfaceEnabled: function()
1057
- {
1058
- return this.enabledInterface === true;
1059
- },
1060
-
1061
- // abstract
1062
- enableInterface: function() {
1063
- var enabled = this._enabled && !this._readonly,
1064
- disabled = !enabled;
1065
-
1066
- if (enabled === this.enabledInterface) return false;
1067
-
1068
- this.container.toggleClass("select2-container-disabled", disabled);
1069
- this.close();
1070
- this.enabledInterface = enabled;
1071
-
1072
- return true;
1073
- },
1074
-
1075
- // abstract
1076
- enable: function(enabled) {
1077
- if (enabled === undefined) enabled = true;
1078
- if (this._enabled === enabled) return false;
1079
- this._enabled = enabled;
1080
-
1081
- this.opts.element.prop("disabled", !enabled);
1082
- this.enableInterface();
1083
- return true;
1084
- },
1085
-
1086
- // abstract
1087
- readonly: function(enabled) {
1088
- if (enabled === undefined) enabled = false;
1089
- if (this._readonly === enabled) return false;
1090
- this._readonly = enabled;
1091
-
1092
- this.opts.element.prop("readonly", enabled);
1093
- this.enableInterface();
1094
- return true;
1095
- },
1096
-
1097
- // abstract
1098
- opened: function () {
1099
- return this.container.hasClass("select2-dropdown-open");
1100
- },
1101
-
1102
- // abstract
1103
- positionDropdown: function() {
1104
- var $dropdown = this.dropdown,
1105
- offset = this.container.offset(),
1106
- height = this.container.outerHeight(false),
1107
- width = this.container.outerWidth(false),
1108
- dropHeight = $dropdown.outerHeight(false),
1109
- viewPortRight = $(window).scrollLeft() + $(window).width(),
1110
- viewportBottom = $(window).scrollTop() + $(window).height(),
1111
- dropTop = offset.top + height,
1112
- dropLeft = offset.left,
1113
- enoughRoomBelow = dropTop + dropHeight <= viewportBottom,
1114
- enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(),
1115
- dropWidth = $dropdown.outerWidth(false),
1116
- enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight,
1117
- aboveNow = $dropdown.hasClass("select2-drop-above"),
1118
- bodyOffset,
1119
- above,
1120
- css,
1121
- resultsListNode;
1122
-
1123
- if (this.opts.dropdownAutoWidth) {
1124
- resultsListNode = $('.select2-results', $dropdown)[0];
1125
- $dropdown.addClass('select2-drop-auto-width');
1126
- $dropdown.css('width', '');
1127
- // Add scrollbar width to dropdown if vertical scrollbar is present
1128
- dropWidth = $dropdown.outerWidth(false) + (resultsListNode.scrollHeight === resultsListNode.clientHeight ? 0 : scrollBarDimensions.width);
1129
- dropWidth > width ? width = dropWidth : dropWidth = width;
1130
- enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight;
1131
- }
1132
- else {
1133
- this.container.removeClass('select2-drop-auto-width');
1134
- }
1135
-
1136
- //console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow);
1137
- //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove);
1138
-
1139
- // fix positioning when body has an offset and is not position: static
1140
- if (this.body().css('position') !== 'static') {
1141
- bodyOffset = this.body().offset();
1142
- dropTop -= bodyOffset.top;
1143
- dropLeft -= bodyOffset.left;
1144
- }
1145
-
1146
- // always prefer the current above/below alignment, unless there is not enough room
1147
- if (aboveNow) {
1148
- above = true;
1149
- if (!enoughRoomAbove && enoughRoomBelow) above = false;
1150
- } else {
1151
- above = false;
1152
- if (!enoughRoomBelow && enoughRoomAbove) above = true;
1153
- }
1154
-
1155
- if (!enoughRoomOnRight) {
1156
- dropLeft = offset.left + width - dropWidth;
1157
- }
1158
-
1159
- if (above) {
1160
- dropTop = offset.top - dropHeight;
1161
- this.container.addClass("select2-drop-above");
1162
- $dropdown.addClass("select2-drop-above");
1163
- }
1164
- else {
1165
- this.container.removeClass("select2-drop-above");
1166
- $dropdown.removeClass("select2-drop-above");
1167
- }
1168
-
1169
- css = $.extend({
1170
- top: dropTop,
1171
- left: dropLeft,
1172
- width: width
1173
- }, evaluate(this.opts.dropdownCss));
1174
-
1175
- $dropdown.css(css);
1176
- },
1177
-
1178
- // abstract
1179
- shouldOpen: function() {
1180
- var event;
1181
-
1182
- if (this.opened()) return false;
1183
-
1184
- if (this._enabled === false || this._readonly === true) return false;
1185
-
1186
- event = $.Event("select2-opening");
1187
- this.opts.element.trigger(event);
1188
- return !event.isDefaultPrevented();
1189
- },
1190
-
1191
- // abstract
1192
- clearDropdownAlignmentPreference: function() {
1193
- // clear the classes used to figure out the preference of where the dropdown should be opened
1194
- this.container.removeClass("select2-drop-above");
1195
- this.dropdown.removeClass("select2-drop-above");
1196
- },
1197
-
1198
- /**
1199
- * Opens the dropdown
1200
- *
1201
- * @return {Boolean} whether or not dropdown was opened. This method will return false if, for example,
1202
- * the dropdown is already open, or if the 'open' event listener on the element called preventDefault().
1203
- */
1204
- // abstract
1205
- open: function () {
1206
-
1207
- if (!this.shouldOpen()) return false;
1208
-
1209
- this.opening();
1210
-
1211
- return true;
1212
- },
1213
-
1214
- /**
1215
- * Performs the opening of the dropdown
1216
- */
1217
- // abstract
1218
- opening: function() {
1219
- var cid = this.containerId,
1220
- scroll = "scroll." + cid,
1221
- resize = "resize."+cid,
1222
- orient = "orientationchange."+cid,
1223
- mask, maskCss;
1224
-
1225
- this.container.addClass("select2-dropdown-open").addClass("select2-container-active");
1226
-
1227
- this.clearDropdownAlignmentPreference();
1228
-
1229
- if(this.dropdown[0] !== this.body().children().last()[0]) {
1230
- this.dropdown.detach().appendTo(this.body());
1231
- }
1232
-
1233
- // create the dropdown mask if doesnt already exist
1234
- mask = $("#select2-drop-mask");
1235
- if (mask.length == 0) {
1236
- mask = $(document.createElement("div"));
1237
- mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask");
1238
- mask.hide();
1239
- mask.appendTo(this.body());
1240
- mask.on("mousedown touchstart click", function (e) {
1241
- var dropdown = $("#select2-drop"), self;
1242
- if (dropdown.length > 0) {
1243
- self=dropdown.data("select2");
1244
- if (self.opts.selectOnBlur) {
1245
- self.selectHighlighted({noFocus: true});
1246
- }
1247
- self.close();
1248
- e.preventDefault();
1249
- e.stopPropagation();
1250
- }
1251
- });
1252
- }
1253
-
1254
- // ensure the mask is always right before the dropdown
1255
- if (this.dropdown.prev()[0] !== mask[0]) {
1256
- this.dropdown.before(mask);
1257
- }
1258
-
1259
- // move the global id to the correct dropdown
1260
- $("#select2-drop").removeAttr("id");
1261
- this.dropdown.attr("id", "select2-drop");
1262
-
1263
- // show the elements
1264
- maskCss=_makeMaskCss();
1265
-
1266
- mask.css(maskCss).show();
1267
-
1268
- this.dropdown.show();
1269
- this.positionDropdown();
1270
-
1271
- this.dropdown.addClass("select2-drop-active");
1272
-
1273
- // attach listeners to events that can change the position of the container and thus require
1274
- // the position of the dropdown to be updated as well so it does not come unglued from the container
1275
- var that = this;
1276
- this.container.parents().add(window).each(function () {
1277
- $(this).on(resize+" "+scroll+" "+orient, function (e) {
1278
- var maskCss=_makeMaskCss();
1279
- $("#select2-drop-mask").css(maskCss);
1280
- that.positionDropdown();
1281
- });
1282
- });
1283
-
1284
- function _makeMaskCss() {
1285
- return {
1286
- width : Math.max(document.documentElement.scrollWidth, $(window).width()),
1287
- height : Math.max(document.documentElement.scrollHeight, $(window).height())
1288
- }
1289
- }
1290
- },
1291
-
1292
- // abstract
1293
- close: function () {
1294
- if (!this.opened()) return;
1295
-
1296
- var cid = this.containerId,
1297
- scroll = "scroll." + cid,
1298
- resize = "resize."+cid,
1299
- orient = "orientationchange."+cid;
1300
-
1301
- // unbind event listeners
1302
- this.container.parents().add(window).each(function () { $(this).off(scroll).off(resize).off(orient); });
1303
-
1304
- this.clearDropdownAlignmentPreference();
1305
-
1306
- $("#select2-drop-mask").hide();
1307
- this.dropdown.removeAttr("id"); // only the active dropdown has the select2-drop id
1308
- this.dropdown.hide();
1309
- this.container.removeClass("select2-dropdown-open");
1310
- this.results.empty();
1311
-
1312
-
1313
- this.clearSearch();
1314
- this.search.removeClass("select2-active");
1315
- this.opts.element.trigger($.Event("select2-close"));
1316
- },
1317
-
1318
- /**
1319
- * Opens control, sets input value, and updates results.
1320
- */
1321
- // abstract
1322
- externalSearch: function (term) {
1323
- this.open();
1324
- this.search.val(term);
1325
- this.updateResults(false);
1326
- },
1327
-
1328
- // abstract
1329
- clearSearch: function () {
1330
-
1331
- },
1332
-
1333
- //abstract
1334
- getMaximumSelectionSize: function() {
1335
- return evaluate(this.opts.maximumSelectionSize);
1336
- },
1337
-
1338
- // abstract
1339
- ensureHighlightVisible: function () {
1340
- var results = this.results, children, index, child, hb, rb, y, more;
1341
-
1342
- index = this.highlight();
1343
-
1344
- if (index < 0) return;
1345
-
1346
- if (index == 0) {
1347
-
1348
- // if the first element is highlighted scroll all the way to the top,
1349
- // that way any unselectable headers above it will also be scrolled
1350
- // into view
1351
-
1352
- results.scrollTop(0);
1353
- return;
1354
- }
1355
-
1356
- children = this.findHighlightableChoices().find('.select2-result-label');
1357
-
1358
- child = $(children[index]);
1359
-
1360
- hb = child.offset().top + child.outerHeight(true);
1361
-
1362
- // if this is the last child lets also make sure select2-more-results is visible
1363
- if (index === children.length - 1) {
1364
- more = results.find("li.select2-more-results");
1365
- if (more.length > 0) {
1366
- hb = more.offset().top + more.outerHeight(true);
1367
- }
1368
- }
1369
-
1370
- rb = results.offset().top + results.outerHeight(true);
1371
- if (hb > rb) {
1372
- results.scrollTop(results.scrollTop() + (hb - rb));
1373
- }
1374
- y = child.offset().top - results.offset().top;
1375
-
1376
- // make sure the top of the element is visible
1377
- if (y < 0 && child.css('display') != 'none' ) {
1378
- results.scrollTop(results.scrollTop() + y); // y is negative
1379
- }
1380
- },
1381
-
1382
- // abstract
1383
- findHighlightableChoices: function() {
1384
- return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)");
1385
- },
1386
-
1387
- // abstract
1388
- moveHighlight: function (delta) {
1389
- var choices = this.findHighlightableChoices(),
1390
- index = this.highlight();
1391
-
1392
- while (index > -1 && index < choices.length) {
1393
- index += delta;
1394
- var choice = $(choices[index]);
1395
- if (choice.hasClass("select2-result-selectable") && !choice.hasClass("select2-disabled") && !choice.hasClass("select2-selected")) {
1396
- this.highlight(index);
1397
- break;
1398
- }
1399
- }
1400
- },
1401
-
1402
- // abstract
1403
- highlight: function (index) {
1404
- var choices = this.findHighlightableChoices(),
1405
- choice,
1406
- data;
1407
-
1408
- if (arguments.length === 0) {
1409
- return indexOf(choices.filter(".select2-highlighted")[0], choices.get());
1410
- }
1411
-
1412
- if (index >= choices.length) index = choices.length - 1;
1413
- if (index < 0) index = 0;
1414
-
1415
- this.results.find(".select2-highlighted").removeClass("select2-highlighted");
1416
-
1417
- choice = $(choices[index]);
1418
- choice.addClass("select2-highlighted");
1419
-
1420
- this.ensureHighlightVisible();
1421
-
1422
- data = choice.data("select2-data");
1423
- if (data) {
1424
- this.opts.element.trigger({ type: "select2-highlight", val: this.id(data), choice: data });
1425
- }
1426
- },
1427
-
1428
- // abstract
1429
- countSelectableResults: function() {
1430
- return this.findHighlightableChoices().length;
1431
- },
1432
-
1433
- // abstract
1434
- highlightUnderEvent: function (event) {
1435
- var el = $(event.target).closest(".select2-result-selectable");
1436
- if (el.length > 0 && !el.is(".select2-highlighted")) {
1437
- var choices = this.findHighlightableChoices();
1438
- this.highlight(choices.index(el));
1439
- } else if (el.length == 0) {
1440
- // if we are over an unselectable item remove al highlights
1441
- this.results.find(".select2-highlighted").removeClass("select2-highlighted");
1442
- }
1443
- },
1444
-
1445
- // abstract
1446
- loadMoreIfNeeded: function () {
1447
- var results = this.results,
1448
- more = results.find("li.select2-more-results"),
1449
- below, // pixels the element is below the scroll fold, below==0 is when the element is starting to be visible
1450
- offset = -1, // index of first element without data
1451
- page = this.resultsPage + 1,
1452
- self=this,
1453
- term=this.search.val(),
1454
- context=this.context;
1455
-
1456
- if (more.length === 0) return;
1457
- below = more.offset().top - results.offset().top - results.height();
1458
-
1459
- if (below <= this.opts.loadMorePadding) {
1460
- more.addClass("select2-active");
1461
- this.opts.query({
1462
- element: this.opts.element,
1463
- term: term,
1464
- page: page,
1465
- context: context,
1466
- matcher: this.opts.matcher,
1467
- callback: this.bind(function (data) {
1468
-
1469
- // ignore a response if the select2 has been closed before it was received
1470
- if (!self.opened()) return;
1471
-
1472
-
1473
- self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context});
1474
- self.postprocessResults(data, false, false);
1475
-
1476
- if (data.more===true) {
1477
- more.detach().appendTo(results).text(self.opts.formatLoadMore(page+1));
1478
- window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1479
- } else {
1480
- more.remove();
1481
- }
1482
- self.positionDropdown();
1483
- self.resultsPage = page;
1484
- self.context = data.context;
1485
- })});
1486
- }
1487
- },
1488
-
1489
- /**
1490
- * Default tokenizer function which does nothing
1491
- */
1492
- tokenize: function() {
1493
-
1494
- },
1495
-
1496
- /**
1497
- * @param initial whether or not this is the call to this method right after the dropdown has been opened
1498
- */
1499
- // abstract
1500
- updateResults: function (initial) {
1501
- var search = this.search,
1502
- results = this.results,
1503
- opts = this.opts,
1504
- data,
1505
- self = this,
1506
- input,
1507
- term = search.val(),
1508
- lastTerm=$.data(this.container, "select2-last-term");
1509
-
1510
- // prevent duplicate queries against the same term
1511
- if (initial !== true && lastTerm && equal(term, lastTerm)) return;
1512
-
1513
- $.data(this.container, "select2-last-term", term);
1514
-
1515
- // if the search is currently hidden we do not alter the results
1516
- if (initial !== true && (this.showSearchInput === false || !this.opened())) {
1517
- return;
1518
- }
1519
-
1520
- function postRender() {
1521
- search.removeClass("select2-active");
1522
- self.positionDropdown();
1523
- }
1524
-
1525
- function render(html) {
1526
- results.html(html);
1527
- postRender();
1528
- }
1529
-
1530
- var maxSelSize = this.getMaximumSelectionSize();
1531
- if (maxSelSize >=1) {
1532
- data = this.data();
1533
- if ($.isArray(data) && data.length >= maxSelSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) {
1534
- render("<li class='select2-selection-limit'>" + opts.formatSelectionTooBig(maxSelSize) + "</li>");
1535
- return;
1536
- }
1537
- }
1538
-
1539
- if (search.val().length < opts.minimumInputLength) {
1540
- if (checkFormatter(opts.formatInputTooShort, "formatInputTooShort")) {
1541
- render("<li class='select2-no-results'>" + opts.formatInputTooShort(search.val(), opts.minimumInputLength) + "</li>");
1542
- } else {
1543
- render("");
1544
- }
1545
- if (initial && this.showSearch) this.showSearch(true);
1546
- return;
1547
- }
1548
-
1549
- if (opts.maximumInputLength && search.val().length > opts.maximumInputLength) {
1550
- if (checkFormatter(opts.formatInputTooLong, "formatInputTooLong")) {
1551
- render("<li class='select2-no-results'>" + opts.formatInputTooLong(search.val(), opts.maximumInputLength) + "</li>");
1552
- } else {
1553
- render("");
1554
- }
1555
- return;
1556
- }
1557
-
1558
- if (opts.formatSearching && this.findHighlightableChoices().length === 0) {
1559
- render("<li class='select2-searching'>" + opts.formatSearching() + "</li>");
1560
- }
1561
-
1562
- search.addClass("select2-active");
1563
-
1564
- // give the tokenizer a chance to pre-process the input
1565
- input = this.tokenize();
1566
- if (input != undefined && input != null) {
1567
- search.val(input);
1568
- }
1569
-
1570
- this.resultsPage = 1;
1571
-
1572
- opts.query({
1573
- element: opts.element,
1574
- term: search.val(),
1575
- page: this.resultsPage,
1576
- context: null,
1577
- matcher: opts.matcher,
1578
- callback: this.bind(function (data) {
1579
- var def; // default choice
1580
-
1581
- // ignore a response if the select2 has been closed before it was received
1582
- if (!this.opened()) {
1583
- this.search.removeClass("select2-active");
1584
- return;
1585
- }
1586
-
1587
- // save context, if any
1588
- this.context = (data.context===undefined) ? null : data.context;
1589
- // create a default choice and prepend it to the list
1590
- if (this.opts.createSearchChoice && search.val() !== "") {
1591
- def = this.opts.createSearchChoice.call(self, search.val(), data.results);
1592
- if (def !== undefined && def !== null && self.id(def) !== undefined && self.id(def) !== null) {
1593
- if ($(data.results).filter(
1594
- function () {
1595
- return equal(self.id(this), self.id(def));
1596
- }).length === 0) {
1597
- data.results.unshift(def);
1598
- }
1599
- }
1600
- }
1601
-
1602
- if (data.results.length === 0 && checkFormatter(opts.formatNoMatches, "formatNoMatches")) {
1603
- render("<li class='select2-no-results'>" + opts.formatNoMatches(search.val()) + "</li>");
1604
- return;
1605
- }
1606
-
1607
- results.empty();
1608
- self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null});
1609
-
1610
- if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) {
1611
- results.append("<li class='select2-more-results'>" + self.opts.escapeMarkup(opts.formatLoadMore(this.resultsPage)) + "</li>");
1612
- window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1613
- }
1614
-
1615
- this.postprocessResults(data, initial);
1616
-
1617
- postRender();
1618
-
1619
- this.opts.element.trigger({ type: "select2-loaded", items: data });
1620
- })});
1621
- },
1622
-
1623
- // abstract
1624
- cancel: function () {
1625
- this.close();
1626
- },
1627
-
1628
- // abstract
1629
- blur: function () {
1630
- // if selectOnBlur == true, select the currently highlighted option
1631
- if (this.opts.selectOnBlur)
1632
- this.selectHighlighted({noFocus: true});
1633
-
1634
- this.close();
1635
- this.container.removeClass("select2-container-active");
1636
- // synonymous to .is(':focus'), which is available in jquery >= 1.6
1637
- if (this.search[0] === document.activeElement) { this.search.blur(); }
1638
- this.clearSearch();
1639
- this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
1640
- },
1641
-
1642
- // abstract
1643
- focusSearch: function () {
1644
- focus(this.search);
1645
- },
1646
-
1647
- // abstract
1648
- selectHighlighted: function (options) {
1649
- var index=this.highlight(),
1650
- highlighted=this.results.find(".select2-highlighted"),
1651
- data = highlighted.closest('.select2-result').data("select2-data");
1652
-
1653
- if (data) {
1654
- this.highlight(index);
1655
- this.onSelect(data, options);
1656
- } else if (options && options.noFocus) {
1657
- this.close();
1658
- }
1659
- },
1660
-
1661
- // abstract
1662
- getPlaceholder: function () {
1663
- var placeholderOption;
1664
- return this.opts.element.attr("placeholder") ||
1665
- this.opts.element.attr("data-placeholder") || // jquery 1.4 compat
1666
- this.opts.element.data("placeholder") ||
1667
- this.opts.placeholder ||
1668
- ((placeholderOption = this.getPlaceholderOption()) !== undefined ? placeholderOption.text() : undefined);
1669
- },
1670
-
1671
- // abstract
1672
- getPlaceholderOption: function() {
1673
- if (this.select) {
1674
- var firstOption = this.select.children().first();
1675
- if (this.opts.placeholderOption !== undefined ) {
1676
- //Determine the placeholder option based on the specified placeholderOption setting
1677
- return (this.opts.placeholderOption === "first" && firstOption) ||
1678
- (typeof this.opts.placeholderOption === "function" && this.opts.placeholderOption(this.select));
1679
- } else if (firstOption.text() === "" && firstOption.val() === "") {
1680
- //No explicit placeholder option specified, use the first if it's blank
1681
- return firstOption;
1682
- }
1683
- }
1684
- },
1685
-
1686
- /**
1687
- * Get the desired width for the container element. This is
1688
- * derived first from option `width` passed to select2, then
1689
- * the inline 'style' on the original element, and finally
1690
- * falls back to the jQuery calculated element width.
1691
- */
1692
- // abstract
1693
- initContainerWidth: function () {
1694
- function resolveContainerWidth() {
1695
- var style, attrs, matches, i, l;
1696
-
1697
- if (this.opts.width === "off") {
1698
- return null;
1699
- } else if (this.opts.width === "element"){
1700
- return this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px';
1701
- } else if (this.opts.width === "copy" || this.opts.width === "resolve") {
1702
- // check if there is inline style on the element that contains width
1703
- style = this.opts.element.attr('style');
1704
- if (style !== undefined) {
1705
- attrs = style.split(';');
1706
- for (i = 0, l = attrs.length; i < l; i = i + 1) {
1707
- matches = attrs[i].replace(/\s/g, '')
1708
- .match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);
1709
- if (matches !== null && matches.length >= 1)
1710
- return matches[1];
1711
- }
1712
- }
1713
-
1714
- if (this.opts.width === "resolve") {
1715
- // next check if css('width') can resolve a width that is percent based, this is sometimes possible
1716
- // when attached to input type=hidden or elements hidden via css
1717
- style = this.opts.element.css('width');
1718
- if (style.indexOf("%") > 0) return style;
1719
-
1720
- // finally, fallback on the calculated width of the element
1721
- return (this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px');
1722
- }
1723
-
1724
- return null;
1725
- } else if ($.isFunction(this.opts.width)) {
1726
- return this.opts.width();
1727
- } else {
1728
- return this.opts.width;
1729
- }
1730
- };
1731
-
1732
- var width = resolveContainerWidth.call(this);
1733
- if (width !== null) {
1734
- this.container.css("width", width);
1735
- }
1736
- }
1737
- });
1738
-
1739
- SingleSelect2 = clazz(AbstractSelect2, {
1740
-
1741
- // single
1742
-
1743
- createContainer: function () {
1744
- var container = $(document.createElement("div")).attr({
1745
- "class": "select2-container"
1746
- }).html([
1747
- "<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>",
1748
- " <span class='select2-chosen'>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>",
1749
- " <span class='select2-arrow'><b></b></span>",
1750
- "</a>",
1751
- "<input class='select2-focusser select2-offscreen' type='text'/>",
1752
- "<div class='select2-drop select2-display-none'>",
1753
- " <div class='select2-search'>",
1754
- " <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>",
1755
- " </div>",
1756
- " <ul class='select2-results'>",
1757
- " </ul>",
1758
- "</div>"].join(""));
1759
- return container;
1760
- },
1761
-
1762
- // single
1763
- enableInterface: function() {
1764
- if (this.parent.enableInterface.apply(this, arguments)) {
1765
- this.focusser.prop("disabled", !this.isInterfaceEnabled());
1766
- }
1767
- },
1768
-
1769
- // single
1770
- opening: function () {
1771
- var el, range, len;
1772
-
1773
- if (this.opts.minimumResultsForSearch >= 0) {
1774
- this.showSearch(true);
1775
- }
1776
-
1777
- this.parent.opening.apply(this, arguments);
1778
-
1779
- if (this.showSearchInput !== false) {
1780
- // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range
1781
- // all other browsers handle this just fine
1782
-
1783
- this.search.val(this.focusser.val());
1784
- }
1785
- this.search.focus();
1786
- // move the cursor to the end after focussing, otherwise it will be at the beginning and
1787
- // new text will appear *before* focusser.val()
1788
- el = this.search.get(0);
1789
- if (el.createTextRange) {
1790
- range = el.createTextRange();
1791
- range.collapse(false);
1792
- range.select();
1793
- } else if (el.setSelectionRange) {
1794
- len = this.search.val().length;
1795
- el.setSelectionRange(len, len);
1796
- }
1797
-
1798
- this.focusser.prop("disabled", true).val("");
1799
- this.updateResults(true);
1800
- this.opts.element.trigger($.Event("select2-open"));
1801
- },
1802
-
1803
- // single
1804
- close: function () {
1805
- if (!this.opened()) return;
1806
- this.parent.close.apply(this, arguments);
1807
- this.focusser.removeAttr("disabled");
1808
- this.focusser.focus();
1809
- },
1810
-
1811
- // single
1812
- focus: function () {
1813
- if (this.opened()) {
1814
- this.close();
1815
- } else {
1816
- this.focusser.removeAttr("disabled");
1817
- this.focusser.focus();
1818
- }
1819
- },
1820
-
1821
- // single
1822
- isFocused: function () {
1823
- return this.container.hasClass("select2-container-active");
1824
- },
1825
-
1826
- // single
1827
- cancel: function () {
1828
- this.parent.cancel.apply(this, arguments);
1829
- this.focusser.removeAttr("disabled");
1830
- this.focusser.focus();
1831
- },
1832
-
1833
- // single
1834
- initContainer: function () {
1835
-
1836
- var selection,
1837
- container = this.container,
1838
- dropdown = this.dropdown;
1839
-
1840
- if (this.opts.minimumResultsForSearch < 0) {
1841
- this.showSearch(false);
1842
- } else {
1843
- this.showSearch(true);
1844
- }
1845
-
1846
- this.selection = selection = container.find(".select2-choice");
1847
-
1848
- this.focusser = container.find(".select2-focusser");
1849
-
1850
- // rewrite labels from original element to focusser
1851
- this.focusser.attr("id", "s2id_autogen"+nextUid());
1852
-
1853
- $("label[for='" + this.opts.element.attr("id") + "']")
1854
- .attr('for', this.focusser.attr('id'));
1855
-
1856
- this.focusser.attr("tabindex", this.elementTabIndex);
1857
-
1858
- this.search.on("keydown", this.bind(function (e) {
1859
- if (!this.isInterfaceEnabled()) return;
1860
-
1861
- if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
1862
- // prevent the page from scrolling
1863
- killEvent(e);
1864
- return;
1865
- }
1866
-
1867
- switch (e.which) {
1868
- case KEY.UP:
1869
- case KEY.DOWN:
1870
- this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
1871
- killEvent(e);
1872
- return;
1873
- case KEY.ENTER:
1874
- this.selectHighlighted();
1875
- killEvent(e);
1876
- return;
1877
- case KEY.TAB:
1878
- this.selectHighlighted({noFocus: true});
1879
- return;
1880
- case KEY.ESC:
1881
- this.cancel(e);
1882
- killEvent(e);
1883
- return;
1884
- }
1885
- }));
1886
-
1887
- this.search.on("blur", this.bind(function(e) {
1888
- // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown.
1889
- // without this the search field loses focus which is annoying
1890
- if (document.activeElement === this.body().get(0)) {
1891
- window.setTimeout(this.bind(function() {
1892
- this.search.focus();
1893
- }), 0);
1894
- }
1895
- }));
1896
-
1897
- this.focusser.on("keydown", this.bind(function (e) {
1898
- if (!this.isInterfaceEnabled()) return;
1899
-
1900
- if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {
1901
- return;
1902
- }
1903
-
1904
- if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {
1905
- killEvent(e);
1906
- return;
1907
- }
1908
-
1909
- if (e.which == KEY.DOWN || e.which == KEY.UP
1910
- || (e.which == KEY.ENTER && this.opts.openOnEnter)) {
1911
-
1912
- if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return;
1913
-
1914
- this.open();
1915
- killEvent(e);
1916
- return;
1917
- }
1918
-
1919
- if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) {
1920
- if (this.opts.allowClear) {
1921
- this.clear();
1922
- }
1923
- killEvent(e);
1924
- return;
1925
- }
1926
- }));
1927
-
1928
-
1929
- installKeyUpChangeEvent(this.focusser);
1930
- this.focusser.on("keyup-change input", this.bind(function(e) {
1931
- if (this.opts.minimumResultsForSearch >= 0) {
1932
- e.stopPropagation();
1933
- if (this.opened()) return;
1934
- this.open();
1935
- }
1936
- }));
1937
-
1938
- selection.on("mousedown", "abbr", this.bind(function (e) {
1939
- if (!this.isInterfaceEnabled()) return;
1940
- this.clear();
1941
- killEventImmediately(e);
1942
- this.close();
1943
- this.selection.focus();
1944
- }));
1945
-
1946
- selection.on("mousedown", this.bind(function (e) {
1947
-
1948
- if (!this.container.hasClass("select2-container-active")) {
1949
- this.opts.element.trigger($.Event("select2-focus"));
1950
- }
1951
-
1952
- if (this.opened()) {
1953
- this.close();
1954
- } else if (this.isInterfaceEnabled()) {
1955
- this.open();
1956
- }
1957
-
1958
- killEvent(e);
1959
- }));
1960
-
1961
- dropdown.on("mousedown", this.bind(function() { this.search.focus(); }));
1962
-
1963
- selection.on("focus", this.bind(function(e) {
1964
- killEvent(e);
1965
- }));
1966
-
1967
- this.focusser.on("focus", this.bind(function(){
1968
- if (!this.container.hasClass("select2-container-active")) {
1969
- this.opts.element.trigger($.Event("select2-focus"));
1970
- }
1971
- this.container.addClass("select2-container-active");
1972
- })).on("blur", this.bind(function() {
1973
- if (!this.opened()) {
1974
- this.container.removeClass("select2-container-active");
1975
- this.opts.element.trigger($.Event("select2-blur"));
1976
- }
1977
- }));
1978
- this.search.on("focus", this.bind(function(){
1979
- if (!this.container.hasClass("select2-container-active")) {
1980
- this.opts.element.trigger($.Event("select2-focus"));
1981
- }
1982
- this.container.addClass("select2-container-active");
1983
- }));
1984
-
1985
- this.initContainerWidth();
1986
- this.opts.element.addClass("select2-offscreen");
1987
- this.setPlaceholder();
1988
-
1989
- },
1990
-
1991
- // single
1992
- clear: function(triggerChange) {
1993
- var data=this.selection.data("select2-data");
1994
- if (data) { // guard against queued quick consecutive clicks
1995
- var placeholderOption = this.getPlaceholderOption();
1996
- this.opts.element.val(placeholderOption ? placeholderOption.val() : "");
1997
- this.selection.find(".select2-chosen").empty();
1998
- this.selection.removeData("select2-data");
1999
- this.setPlaceholder();
2000
-
2001
- if (triggerChange !== false){
2002
- this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data });
2003
- this.triggerChange({removed:data});
2004
- }
2005
- }
2006
- },
2007
-
2008
- /**
2009
- * Sets selection based on source element's value
2010
- */
2011
- // single
2012
- initSelection: function () {
2013
- var selected;
2014
- if (this.isPlaceholderOptionSelected()) {
2015
- this.updateSelection([]);
2016
- this.close();
2017
- this.setPlaceholder();
2018
- } else {
2019
- var self = this;
2020
- this.opts.initSelection.call(null, this.opts.element, function(selected){
2021
- if (selected !== undefined && selected !== null) {
2022
- self.updateSelection(selected);
2023
- self.close();
2024
- self.setPlaceholder();
2025
- }
2026
- });
2027
- }
2028
- },
2029
-
2030
- isPlaceholderOptionSelected: function() {
2031
- var placeholderOption;
2032
- return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.is(':selected')) ||
2033
- (this.opts.element.val() === "") ||
2034
- (this.opts.element.val() === undefined) ||
2035
- (this.opts.element.val() === null);
2036
- },
2037
-
2038
- // single
2039
- prepareOpts: function () {
2040
- var opts = this.parent.prepareOpts.apply(this, arguments),
2041
- self=this;
2042
-
2043
- if (opts.element.get(0).tagName.toLowerCase() === "select") {
2044
- // install the selection initializer
2045
- opts.initSelection = function (element, callback) {
2046
- var selected = element.find(":selected");
2047
- // a single select box always has a value, no need to null check 'selected'
2048
- callback(self.optionToData(selected));
2049
- };
2050
- } else if ("data" in opts) {
2051
- // install default initSelection when applied to hidden input and data is local
2052
- opts.initSelection = opts.initSelection || function (element, callback) {
2053
- var id = element.val();
2054
- //search in data by id, storing the actual matching item
2055
- var match = null;
2056
- opts.query({
2057
- matcher: function(term, text, el){
2058
- var is_match = equal(id, opts.id(el));
2059
- if (is_match) {
2060
- match = el;
2061
- }
2062
- return is_match;
2063
- },
2064
- callback: !$.isFunction(callback) ? $.noop : function() {
2065
- callback(match);
2066
- }
2067
- });
2068
- };
2069
- }
2070
-
2071
- return opts;
2072
- },
2073
-
2074
- // single
2075
- getPlaceholder: function() {
2076
- // if a placeholder is specified on a single select without a valid placeholder option ignore it
2077
- if (this.select) {
2078
- if (this.getPlaceholderOption() === undefined) {
2079
- return undefined;
2080
- }
2081
- }
2082
-
2083
- return this.parent.getPlaceholder.apply(this, arguments);
2084
- },
2085
-
2086
- // single
2087
- setPlaceholder: function () {
2088
- var placeholder = this.getPlaceholder();
2089
-
2090
- if (this.isPlaceholderOptionSelected() && placeholder !== undefined) {
2091
-
2092
- // check for a placeholder option if attached to a select
2093
- if (this.select && this.getPlaceholderOption() === undefined) return;
2094
-
2095
- this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder));
2096
-
2097
- this.selection.addClass("select2-default");
2098
-
2099
- this.container.removeClass("select2-allowclear");
2100
- }
2101
- },
2102
-
2103
- // single
2104
- postprocessResults: function (data, initial, noHighlightUpdate) {
2105
- var selected = 0, self = this, showSearchInput = true;
2106
-
2107
- // find the selected element in the result list
2108
-
2109
- this.findHighlightableChoices().each2(function (i, elm) {
2110
- if (equal(self.id(elm.data("select2-data")), self.opts.element.val())) {
2111
- selected = i;
2112
- return false;
2113
- }
2114
- });
2115
-
2116
- // and highlight it
2117
- if (noHighlightUpdate !== false) {
2118
- if (initial === true && selected >= 0) {
2119
- this.highlight(selected);
2120
- } else {
2121
- this.highlight(0);
2122
- }
2123
- }
2124
-
2125
- // hide the search box if this is the first we got the results and there are enough of them for search
2126
-
2127
- if (initial === true) {
2128
- var min = this.opts.minimumResultsForSearch;
2129
- if (min >= 0) {
2130
- this.showSearch(countResults(data.results) >= min);
2131
- }
2132
- }
2133
- },
2134
-
2135
- // single
2136
- showSearch: function(showSearchInput) {
2137
- if (this.showSearchInput === showSearchInput) return;
2138
-
2139
- this.showSearchInput = showSearchInput;
2140
-
2141
- this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !showSearchInput);
2142
- this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !showSearchInput);
2143
- //add "select2-with-searchbox" to the container if search box is shown
2144
- $(this.dropdown, this.container).toggleClass("select2-with-searchbox", showSearchInput);
2145
- },
2146
-
2147
- // single
2148
- onSelect: function (data, options) {
2149
-
2150
- if (!this.triggerSelect(data)) { return; }
2151
-
2152
- var old = this.opts.element.val(),
2153
- oldData = this.data();
2154
-
2155
- this.opts.element.val(this.id(data));
2156
- this.updateSelection(data);
2157
-
2158
- this.opts.element.trigger({ type: "select2-selected", val: this.id(data), choice: data });
2159
-
2160
- this.close();
2161
-
2162
- if (!options || !options.noFocus)
2163
- this.selection.focus();
2164
-
2165
- if (!equal(old, this.id(data))) { this.triggerChange({added:data,removed:oldData}); }
2166
- },
2167
-
2168
- // single
2169
- updateSelection: function (data) {
2170
-
2171
- var container=this.selection.find(".select2-chosen"), formatted, cssClass;
2172
-
2173
- this.selection.data("select2-data", data);
2174
-
2175
- container.empty();
2176
- formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup);
2177
- if (formatted !== undefined) {
2178
- container.append(formatted);
2179
- }
2180
- cssClass=this.opts.formatSelectionCssClass(data, container);
2181
- if (cssClass !== undefined) {
2182
- container.addClass(cssClass);
2183
- }
2184
-
2185
- this.selection.removeClass("select2-default");
2186
-
2187
- if (this.opts.allowClear && this.getPlaceholder() !== undefined) {
2188
- this.container.addClass("select2-allowclear");
2189
- }
2190
- },
2191
-
2192
- // single
2193
- val: function () {
2194
- var val,
2195
- triggerChange = false,
2196
- data = null,
2197
- self = this,
2198
- oldData = this.data();
2199
-
2200
- if (arguments.length === 0) {
2201
- return this.opts.element.val();
2202
- }
2203
-
2204
- val = arguments[0];
2205
-
2206
- if (arguments.length > 1) {
2207
- triggerChange = arguments[1];
2208
- }
2209
-
2210
- if (this.select) {
2211
- this.select
2212
- .val(val)
2213
- .find(":selected").each2(function (i, elm) {
2214
- data = self.optionToData(elm);
2215
- return false;
2216
- });
2217
- this.updateSelection(data);
2218
- this.setPlaceholder();
2219
- if (triggerChange) {
2220
- this.triggerChange({added: data, removed:oldData});
2221
- }
2222
- } else {
2223
- // val is an id. !val is true for [undefined,null,'',0] - 0 is legal
2224
- if (!val && val !== 0) {
2225
- this.clear(triggerChange);
2226
- return;
2227
- }
2228
- if (this.opts.initSelection === undefined) {
2229
- throw new Error("cannot call val() if initSelection() is not defined");
2230
- }
2231
- this.opts.element.val(val);
2232
- this.opts.initSelection(this.opts.element, function(data){
2233
- self.opts.element.val(!data ? "" : self.id(data));
2234
- self.updateSelection(data);
2235
- self.setPlaceholder();
2236
- if (triggerChange) {
2237
- self.triggerChange({added: data, removed:oldData});
2238
- }
2239
- });
2240
- }
2241
- },
2242
-
2243
- // single
2244
- clearSearch: function () {
2245
- this.search.val("");
2246
- this.focusser.val("");
2247
- },
2248
-
2249
- // single
2250
- data: function(value, triggerChange) {
2251
- var data;
2252
-
2253
- if (arguments.length === 0) {
2254
- data = this.selection.data("select2-data");
2255
- if (data == undefined) data = null;
2256
- return data;
2257
- } else {
2258
- if (!value || value === "") {
2259
- this.clear(triggerChange);
2260
- } else {
2261
- data = this.data();
2262
- this.opts.element.val(!value ? "" : this.id(value));
2263
- this.updateSelection(value);
2264
- if (triggerChange) {
2265
- this.triggerChange({added: value, removed:data});
2266
- }
2267
- }
2268
- }
2269
- }
2270
- });
2271
-
2272
- MultiSelect2 = clazz(AbstractSelect2, {
2273
-
2274
- // multi
2275
- createContainer: function () {
2276
- var container = $(document.createElement("div")).attr({
2277
- "class": "select2-container select2-container-multi"
2278
- }).html([
2279
- "<ul class='select2-choices'>",
2280
- " <li class='select2-search-field'>",
2281
- " <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'>",
2282
- " </li>",
2283
- "</ul>",
2284
- "<div class='select2-drop select2-drop-multi select2-display-none'>",
2285
- " <ul class='select2-results'>",
2286
- " </ul>",
2287
- "</div>"].join(""));
2288
- return container;
2289
- },
2290
-
2291
- // multi
2292
- prepareOpts: function () {
2293
- var opts = this.parent.prepareOpts.apply(this, arguments),
2294
- self=this;
2295
-
2296
- // TODO validate placeholder is a string if specified
2297
-
2298
- if (opts.element.get(0).tagName.toLowerCase() === "select") {
2299
- // install sthe selection initializer
2300
- opts.initSelection = function (element, callback) {
2301
-
2302
- var data = [];
2303
-
2304
- element.find(":selected").each2(function (i, elm) {
2305
- data.push(self.optionToData(elm));
2306
- });
2307
- callback(data);
2308
- };
2309
- } else if ("data" in opts) {
2310
- // install default initSelection when applied to hidden input and data is local
2311
- opts.initSelection = opts.initSelection || function (element, callback) {
2312
- var ids = splitVal(element.val(), opts.separator);
2313
- //search in data by array of ids, storing matching items in a list
2314
- var matches = [];
2315
- opts.query({
2316
- matcher: function(term, text, el){
2317
- var is_match = $.grep(ids, function(id) {
2318
- return equal(id, opts.id(el));
2319
- }).length;
2320
- if (is_match) {
2321
- matches.push(el);
2322
- }
2323
- return is_match;
2324
- },
2325
- callback: !$.isFunction(callback) ? $.noop : function() {
2326
- // reorder matches based on the order they appear in the ids array because right now
2327
- // they are in the order in which they appear in data array
2328
- var ordered = [];
2329
- for (var i = 0; i < ids.length; i++) {
2330
- var id = ids[i];
2331
- for (var j = 0; j < matches.length; j++) {
2332
- var match = matches[j];
2333
- if (equal(id, opts.id(match))) {
2334
- ordered.push(match);
2335
- matches.splice(j, 1);
2336
- break;
2337
- }
2338
- }
2339
- }
2340
- callback(ordered);
2341
- }
2342
- });
2343
- };
2344
- }
2345
-
2346
- return opts;
2347
- },
2348
-
2349
- selectChoice: function (choice) {
2350
-
2351
- var selected = this.container.find(".select2-search-choice-focus");
2352
- if (selected.length && choice && choice[0] == selected[0]) {
2353
-
2354
- } else {
2355
- if (selected.length) {
2356
- this.opts.element.trigger("choice-deselected", selected);
2357
- }
2358
- selected.removeClass("select2-search-choice-focus");
2359
- if (choice && choice.length) {
2360
- this.close();
2361
- choice.addClass("select2-search-choice-focus");
2362
- this.opts.element.trigger("choice-selected", choice);
2363
- }
2364
- }
2365
- },
2366
-
2367
- // multi
2368
- initContainer: function () {
2369
-
2370
- var selector = ".select2-choices", selection;
2371
-
2372
- this.searchContainer = this.container.find(".select2-search-field");
2373
- this.selection = selection = this.container.find(selector);
2374
-
2375
- var _this = this;
2376
- this.selection.on("mousedown", ".select2-search-choice", function (e) {
2377
- //killEvent(e);
2378
- _this.search[0].focus();
2379
- _this.selectChoice($(this));
2380
- })
2381
-
2382
- // rewrite labels from original element to focusser
2383
- this.search.attr("id", "s2id_autogen"+nextUid());
2384
- $("label[for='" + this.opts.element.attr("id") + "']")
2385
- .attr('for', this.search.attr('id'));
2386
-
2387
- this.search.on("input paste", this.bind(function() {
2388
- if (!this.isInterfaceEnabled()) return;
2389
- if (!this.opened()) {
2390
- this.open();
2391
- }
2392
- }));
2393
-
2394
- this.search.attr("tabindex", this.elementTabIndex);
2395
-
2396
- this.keydowns = 0;
2397
- this.search.on("keydown", this.bind(function (e) {
2398
- if (!this.isInterfaceEnabled()) return;
2399
-
2400
- ++this.keydowns;
2401
- var selected = selection.find(".select2-search-choice-focus");
2402
- var prev = selected.prev(".select2-search-choice:not(.select2-locked)");
2403
- var next = selected.next(".select2-search-choice:not(.select2-locked)");
2404
- var pos = getCursorInfo(this.search);
2405
-
2406
- if (selected.length &&
2407
- (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) {
2408
- var selectedChoice = selected;
2409
- if (e.which == KEY.LEFT && prev.length) {
2410
- selectedChoice = prev;
2411
- }
2412
- else if (e.which == KEY.RIGHT) {
2413
- selectedChoice = next.length ? next : null;
2414
- }
2415
- else if (e.which === KEY.BACKSPACE) {
2416
- this.unselect(selected.first());
2417
- this.search.width(10);
2418
- selectedChoice = prev.length ? prev : next;
2419
- } else if (e.which == KEY.DELETE) {
2420
- this.unselect(selected.first());
2421
- this.search.width(10);
2422
- selectedChoice = next.length ? next : null;
2423
- } else if (e.which == KEY.ENTER) {
2424
- selectedChoice = null;
2425
- }
2426
-
2427
- this.selectChoice(selectedChoice);
2428
- killEvent(e);
2429
- if (!selectedChoice || !selectedChoice.length) {
2430
- this.open();
2431
- }
2432
- return;
2433
- } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1)
2434
- || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) {
2435
-
2436
- this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last());
2437
- killEvent(e);
2438
- return;
2439
- } else {
2440
- this.selectChoice(null);
2441
- }
2442
-
2443
- if (this.opened()) {
2444
- switch (e.which) {
2445
- case KEY.UP:
2446
- case KEY.DOWN:
2447
- this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
2448
- killEvent(e);
2449
- return;
2450
- case KEY.ENTER:
2451
- this.selectHighlighted();
2452
- killEvent(e);
2453
- return;
2454
- case KEY.TAB:
2455
- this.selectHighlighted({noFocus:true});
2456
- this.close();
2457
- return;
2458
- case KEY.ESC:
2459
- this.cancel(e);
2460
- killEvent(e);
2461
- return;
2462
- }
2463
- }
2464
-
2465
- if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)
2466
- || e.which === KEY.BACKSPACE || e.which === KEY.ESC) {
2467
- return;
2468
- }
2469
-
2470
- if (e.which === KEY.ENTER) {
2471
- if (this.opts.openOnEnter === false) {
2472
- return;
2473
- } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
2474
- return;
2475
- }
2476
- }
2477
-
2478
- this.open();
2479
-
2480
- if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
2481
- // prevent the page from scrolling
2482
- killEvent(e);
2483
- }
2484
-
2485
- if (e.which === KEY.ENTER) {
2486
- // prevent form from being submitted
2487
- killEvent(e);
2488
- }
2489
-
2490
- }));
2491
-
2492
- this.search.on("keyup", this.bind(function (e) {
2493
- this.keydowns = 0;
2494
- this.resizeSearch();
2495
- })
2496
- );
2497
-
2498
- this.search.on("blur", this.bind(function(e) {
2499
- this.container.removeClass("select2-container-active");
2500
- this.search.removeClass("select2-focused");
2501
- this.selectChoice(null);
2502
- if (!this.opened()) this.clearSearch();
2503
- e.stopImmediatePropagation();
2504
- this.opts.element.trigger($.Event("select2-blur"));
2505
- }));
2506
-
2507
- this.container.on("click", selector, this.bind(function (e) {
2508
- if (!this.isInterfaceEnabled()) return;
2509
- if ($(e.target).closest(".select2-search-choice").length > 0) {
2510
- // clicked inside a select2 search choice, do not open
2511
- return;
2512
- }
2513
- this.selectChoice(null);
2514
- this.clearPlaceholder();
2515
- if (!this.container.hasClass("select2-container-active")) {
2516
- this.opts.element.trigger($.Event("select2-focus"));
2517
- }
2518
- this.open();
2519
- this.focusSearch();
2520
- e.preventDefault();
2521
- }));
2522
-
2523
- this.container.on("focus", selector, this.bind(function () {
2524
- if (!this.isInterfaceEnabled()) return;
2525
- if (!this.container.hasClass("select2-container-active")) {
2526
- this.opts.element.trigger($.Event("select2-focus"));
2527
- }
2528
- this.container.addClass("select2-container-active");
2529
- this.dropdown.addClass("select2-drop-active");
2530
- this.clearPlaceholder();
2531
- }));
2532
-
2533
- this.initContainerWidth();
2534
- this.opts.element.addClass("select2-offscreen");
2535
-
2536
- // set the placeholder if necessary
2537
- this.clearSearch();
2538
- },
2539
-
2540
- // multi
2541
- enableInterface: function() {
2542
- if (this.parent.enableInterface.apply(this, arguments)) {
2543
- this.search.prop("disabled", !this.isInterfaceEnabled());
2544
- }
2545
- },
2546
-
2547
- // multi
2548
- initSelection: function () {
2549
- var data;
2550
- if (this.opts.element.val() === "" && this.opts.element.text() === "") {
2551
- this.updateSelection([]);
2552
- this.close();
2553
- // set the placeholder if necessary
2554
- this.clearSearch();
2555
- }
2556
- if (this.select || this.opts.element.val() !== "") {
2557
- var self = this;
2558
- this.opts.initSelection.call(null, this.opts.element, function(data){
2559
- if (data !== undefined && data !== null) {
2560
- self.updateSelection(data);
2561
- self.close();
2562
- // set the placeholder if necessary
2563
- self.clearSearch();
2564
- }
2565
- });
2566
- }
2567
- },
2568
-
2569
- // multi
2570
- clearSearch: function () {
2571
- var placeholder = this.getPlaceholder(),
2572
- maxWidth = this.getMaxSearchWidth();
2573
-
2574
- if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) {
2575
- this.search.val(placeholder).addClass("select2-default");
2576
- // stretch the search box to full width of the container so as much of the placeholder is visible as possible
2577
- // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944
2578
- this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width"));
2579
- } else {
2580
- this.search.val("").width(10);
2581
- }
2582
- },
2583
-
2584
- // multi
2585
- clearPlaceholder: function () {
2586
- if (this.search.hasClass("select2-default")) {
2587
- this.search.val("").removeClass("select2-default");
2588
- }
2589
- },
2590
-
2591
- // multi
2592
- opening: function () {
2593
- this.clearPlaceholder(); // should be done before super so placeholder is not used to search
2594
- this.resizeSearch();
2595
-
2596
- this.parent.opening.apply(this, arguments);
2597
-
2598
- this.focusSearch();
2599
-
2600
- this.updateResults(true);
2601
- this.search.focus();
2602
- this.opts.element.trigger($.Event("select2-open"));
2603
- },
2604
-
2605
- // multi
2606
- close: function () {
2607
- if (!this.opened()) return;
2608
- this.parent.close.apply(this, arguments);
2609
- },
2610
-
2611
- // multi
2612
- focus: function () {
2613
- this.close();
2614
- this.search.focus();
2615
- },
2616
-
2617
- // multi
2618
- isFocused: function () {
2619
- return this.search.hasClass("select2-focused");
2620
- },
2621
-
2622
- // multi
2623
- updateSelection: function (data) {
2624
- var ids = [], filtered = [], self = this;
2625
-
2626
- // filter out duplicates
2627
- $(data).each(function () {
2628
- if (indexOf(self.id(this), ids) < 0) {
2629
- ids.push(self.id(this));
2630
- filtered.push(this);
2631
- }
2632
- });
2633
- data = filtered;
2634
-
2635
- this.selection.find(".select2-search-choice").remove();
2636
- $(data).each(function () {
2637
- self.addSelectedChoice(this);
2638
- });
2639
- self.postprocessResults();
2640
- },
2641
-
2642
- // multi
2643
- tokenize: function() {
2644
- var input = this.search.val();
2645
- input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts);
2646
- if (input != null && input != undefined) {
2647
- this.search.val(input);
2648
- if (input.length > 0) {
2649
- this.open();
2650
- }
2651
- }
2652
-
2653
- },
2654
-
2655
- // multi
2656
- onSelect: function (data, options) {
2657
-
2658
- if (!this.triggerSelect(data)) { return; }
2659
-
2660
- this.addSelectedChoice(data);
2661
-
2662
- this.opts.element.trigger({ type: "selected", val: this.id(data), choice: data });
2663
-
2664
- if (this.select || !this.opts.closeOnSelect) this.postprocessResults();
2665
-
2666
- if (this.opts.closeOnSelect) {
2667
- this.close();
2668
- this.search.width(10);
2669
- } else {
2670
- if (this.countSelectableResults()>0) {
2671
- this.search.width(10);
2672
- this.resizeSearch();
2673
- if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) {
2674
- // if we reached max selection size repaint the results so choices
2675
- // are replaced with the max selection reached message
2676
- this.updateResults(true);
2677
- }
2678
- this.positionDropdown();
2679
- } else {
2680
- // if nothing left to select close
2681
- this.close();
2682
- this.search.width(10);
2683
- }
2684
- }
2685
-
2686
- // since its not possible to select an element that has already been
2687
- // added we do not need to check if this is a new element before firing change
2688
- this.triggerChange({ added: data });
2689
-
2690
- if (!options || !options.noFocus)
2691
- this.focusSearch();
2692
- },
2693
-
2694
- // multi
2695
- cancel: function () {
2696
- this.close();
2697
- this.focusSearch();
2698
- },
2699
-
2700
- addSelectedChoice: function (data) {
2701
- var enableChoice = !data.locked,
2702
- enabledItem = $(
2703
- "<li class='select2-search-choice'>" +
2704
- " <div></div>" +
2705
- " <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a>" +
2706
- "</li>"),
2707
- disabledItem = $(
2708
- "<li class='select2-search-choice select2-locked'>" +
2709
- "<div></div>" +
2710
- "</li>");
2711
- var choice = enableChoice ? enabledItem : disabledItem,
2712
- id = this.id(data),
2713
- val = this.getVal(),
2714
- formatted,
2715
- cssClass;
2716
-
2717
- formatted=this.opts.formatSelection(data, choice.find("div"), this.opts.escapeMarkup);
2718
- if (formatted != undefined) {
2719
- choice.find("div").replaceWith("<div>"+formatted+"</div>");
2720
- }
2721
- cssClass=this.opts.formatSelectionCssClass(data, choice.find("div"));
2722
- if (cssClass != undefined) {
2723
- choice.addClass(cssClass);
2724
- }
2725
-
2726
- if(enableChoice){
2727
- choice.find(".select2-search-choice-close")
2728
- .on("mousedown", killEvent)
2729
- .on("click dblclick", this.bind(function (e) {
2730
- if (!this.isInterfaceEnabled()) return;
2731
-
2732
- $(e.target).closest(".select2-search-choice").fadeOut('fast', this.bind(function(){
2733
- this.unselect($(e.target));
2734
- this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
2735
- this.close();
2736
- this.focusSearch();
2737
- })).dequeue();
2738
- killEvent(e);
2739
- })).on("focus", this.bind(function () {
2740
- if (!this.isInterfaceEnabled()) return;
2741
- this.container.addClass("select2-container-active");
2742
- this.dropdown.addClass("select2-drop-active");
2743
- }));
2744
- }
2745
-
2746
- choice.data("select2-data", data);
2747
- choice.insertBefore(this.searchContainer);
2748
-
2749
- val.push(id);
2750
- this.setVal(val);
2751
- },
2752
-
2753
- // multi
2754
- unselect: function (selected) {
2755
- var val = this.getVal(),
2756
- data,
2757
- index;
2758
-
2759
- selected = selected.closest(".select2-search-choice");
2760
-
2761
- if (selected.length === 0) {
2762
- throw "Invalid argument: " + selected + ". Must be .select2-search-choice";
2763
- }
2764
-
2765
- data = selected.data("select2-data");
2766
-
2767
- if (!data) {
2768
- // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued
2769
- // and invoked on an element already removed
2770
- return;
2771
- }
2772
-
2773
- index = indexOf(this.id(data), val);
2774
-
2775
- if (index >= 0) {
2776
- val.splice(index, 1);
2777
- this.setVal(val);
2778
- if (this.select) this.postprocessResults();
2779
- }
2780
- selected.remove();
2781
-
2782
- this.opts.element.trigger({ type: "removed", val: this.id(data), choice: data });
2783
- this.triggerChange({ removed: data });
2784
- },
2785
-
2786
- // multi
2787
- postprocessResults: function (data, initial, noHighlightUpdate) {
2788
- var val = this.getVal(),
2789
- choices = this.results.find(".select2-result"),
2790
- compound = this.results.find(".select2-result-with-children"),
2791
- self = this;
2792
-
2793
- choices.each2(function (i, choice) {
2794
- var id = self.id(choice.data("select2-data"));
2795
- if (indexOf(id, val) >= 0) {
2796
- choice.addClass("select2-selected");
2797
- // mark all children of the selected parent as selected
2798
- choice.find(".select2-result-selectable").addClass("select2-selected");
2799
- }
2800
- });
2801
-
2802
- compound.each2(function(i, choice) {
2803
- // hide an optgroup if it doesnt have any selectable children
2804
- if (!choice.is('.select2-result-selectable')
2805
- && choice.find(".select2-result-selectable:not(.select2-selected)").length === 0) {
2806
- choice.addClass("select2-selected");
2807
- }
2808
- });
2809
-
2810
- if (this.highlight() == -1 && noHighlightUpdate !== false){
2811
- self.highlight(0);
2812
- }
2813
-
2814
- //If all results are chosen render formatNoMAtches
2815
- if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){
2816
- if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) {
2817
- if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) {
2818
- this.results.append("<li class='select2-no-results'>" + self.opts.formatNoMatches(self.search.val()) + "</li>");
2819
- }
2820
- }
2821
- }
2822
-
2823
- },
2824
-
2825
- // multi
2826
- getMaxSearchWidth: function() {
2827
- return this.selection.width() - getSideBorderPadding(this.search);
2828
- },
2829
-
2830
- // multi
2831
- resizeSearch: function () {
2832
- var minimumWidth, left, maxWidth, containerLeft, searchWidth,
2833
- sideBorderPadding = getSideBorderPadding(this.search);
2834
-
2835
- minimumWidth = measureTextWidth(this.search) + 10;
2836
-
2837
- left = this.search.offset().left;
2838
-
2839
- maxWidth = this.selection.width();
2840
- containerLeft = this.selection.offset().left;
2841
-
2842
- searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding;
2843
-
2844
- if (searchWidth < minimumWidth) {
2845
- searchWidth = maxWidth - sideBorderPadding;
2846
- }
2847
-
2848
- if (searchWidth < 40) {
2849
- searchWidth = maxWidth - sideBorderPadding;
2850
- }
2851
-
2852
- if (searchWidth <= 0) {
2853
- searchWidth = minimumWidth;
2854
- }
2855
-
2856
- this.search.width(searchWidth);
2857
- },
2858
-
2859
- // multi
2860
- getVal: function () {
2861
- var val;
2862
- if (this.select) {
2863
- val = this.select.val();
2864
- return val === null ? [] : val;
2865
- } else {
2866
- val = this.opts.element.val();
2867
- return splitVal(val, this.opts.separator);
2868
- }
2869
- },
2870
-
2871
- // multi
2872
- setVal: function (val) {
2873
- var unique;
2874
- if (this.select) {
2875
- this.select.val(val);
2876
- } else {
2877
- unique = [];
2878
- // filter out duplicates
2879
- $(val).each(function () {
2880
- if (indexOf(this, unique) < 0) unique.push(this);
2881
- });
2882
- this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator));
2883
- }
2884
- },
2885
-
2886
- // multi
2887
- buildChangeDetails: function (old, current) {
2888
- var current = current.slice(0),
2889
- old = old.slice(0);
2890
-
2891
- // remove intersection from each array
2892
- for (var i = 0; i < current.length; i++) {
2893
- for (var j = 0; j < old.length; j++) {
2894
- if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) {
2895
- current.splice(i, 1);
2896
- i--;
2897
- old.splice(j, 1);
2898
- j--;
2899
- }
2900
- }
2901
- }
2902
-
2903
- return {added: current, removed: old};
2904
- },
2905
-
2906
-
2907
- // multi
2908
- val: function (val, triggerChange) {
2909
- var oldData, self=this, changeDetails;
2910
-
2911
- if (arguments.length === 0) {
2912
- return this.getVal();
2913
- }
2914
-
2915
- oldData=this.data();
2916
- if (!oldData.length) oldData=[];
2917
-
2918
- // val is an id. !val is true for [undefined,null,'',0] - 0 is legal
2919
- if (!val && val !== 0) {
2920
- this.opts.element.val("");
2921
- this.updateSelection([]);
2922
- this.clearSearch();
2923
- if (triggerChange) {
2924
- this.triggerChange({added: this.data(), removed: oldData});
2925
- }
2926
- return;
2927
- }
2928
-
2929
- // val is a list of ids
2930
- this.setVal(val);
2931
-
2932
- if (this.select) {
2933
- this.opts.initSelection(this.select, this.bind(this.updateSelection));
2934
- if (triggerChange) {
2935
- this.triggerChange(this.buildChangeDetails(oldData, this.data()));
2936
- }
2937
- } else {
2938
- if (this.opts.initSelection === undefined) {
2939
- throw new Error("val() cannot be called if initSelection() is not defined");
2940
- }
2941
-
2942
- this.opts.initSelection(this.opts.element, function(data){
2943
- var ids=$.map(data, self.id);
2944
- self.setVal(ids);
2945
- self.updateSelection(data);
2946
- self.clearSearch();
2947
- if (triggerChange) {
2948
- self.triggerChange(this.buildChangeDetails(oldData, this.data()));
2949
- }
2950
- });
2951
- }
2952
- this.clearSearch();
2953
- },
2954
-
2955
- // multi
2956
- onSortStart: function() {
2957
- if (this.select) {
2958
- throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");
2959
- }
2960
-
2961
- // collapse search field into 0 width so its container can be collapsed as well
2962
- this.search.width(0);
2963
- // hide the container
2964
- this.searchContainer.hide();
2965
- },
2966
-
2967
- // multi
2968
- onSortEnd:function() {
2969
-
2970
- var val=[], self=this;
2971
-
2972
- // show search and move it to the end of the list
2973
- this.searchContainer.show();
2974
- // make sure the search container is the last item in the list
2975
- this.searchContainer.appendTo(this.searchContainer.parent());
2976
- // since we collapsed the width in dragStarted, we resize it here
2977
- this.resizeSearch();
2978
-
2979
- // update selection
2980
- this.selection.find(".select2-search-choice").each(function() {
2981
- val.push(self.opts.id($(this).data("select2-data")));
2982
- });
2983
- this.setVal(val);
2984
- this.triggerChange();
2985
- },
2986
-
2987
- // multi
2988
- data: function(values, triggerChange) {
2989
- var self=this, ids, old;
2990
- if (arguments.length === 0) {
2991
- return this.selection
2992
- .find(".select2-search-choice")
2993
- .map(function() { return $(this).data("select2-data"); })
2994
- .get();
2995
- } else {
2996
- old = this.data();
2997
- if (!values) { values = []; }
2998
- ids = $.map(values, function(e) { return self.opts.id(e); });
2999
- this.setVal(ids);
3000
- this.updateSelection(values);
3001
- this.clearSearch();
3002
- if (triggerChange) {
3003
- this.triggerChange(this.buildChangeDetails(old, this.data()));
3004
- }
3005
- }
3006
- }
3007
- });
3008
-
3009
- $.fn.select2 = function () {
3010
-
3011
- var args = Array.prototype.slice.call(arguments, 0),
3012
- opts,
3013
- select2,
3014
- method, value, multiple,
3015
- allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "readonly", "positionDropdown", "data", "search"],
3016
- valueMethods = ["val", "opened", "isFocused", "container", "data"],
3017
- methodsMap = { search: "externalSearch" };
3018
-
3019
- this.each(function () {
3020
- if (args.length === 0 || typeof(args[0]) === "object") {
3021
- opts = args.length === 0 ? {} : $.extend({}, args[0]);
3022
- opts.element = $(this);
3023
-
3024
- if (opts.element.get(0).tagName.toLowerCase() === "select") {
3025
- multiple = opts.element.prop("multiple");
3026
- } else {
3027
- multiple = opts.multiple || false;
3028
- if ("tags" in opts) {opts.multiple = multiple = true;}
3029
- }
3030
-
3031
- select2 = multiple ? new MultiSelect2() : new SingleSelect2();
3032
- select2.init(opts);
3033
- } else if (typeof(args[0]) === "string") {
3034
-
3035
- if (indexOf(args[0], allowedMethods) < 0) {
3036
- throw "Unknown method: " + args[0];
3037
- }
3038
-
3039
- value = undefined;
3040
- select2 = $(this).data("select2");
3041
- if (select2 === undefined) return;
3042
-
3043
- method=args[0];
3044
-
3045
- if (method === "container") {
3046
- value = select2.container;
3047
- } else if (method === "dropdown") {
3048
- value = select2.dropdown;
3049
- } else {
3050
- if (methodsMap[method]) method = methodsMap[method];
3051
-
3052
- value = select2[method].apply(select2, args.slice(1));
3053
- }
3054
- if (indexOf(args[0], valueMethods) >= 0) {
3055
- return false;
3056
- }
3057
- } else {
3058
- throw "Invalid arguments to select2 plugin: " + args;
3059
- }
3060
- });
3061
- return (value === undefined) ? this : value;
3062
- };
3063
-
3064
- // plugin defaults, accessible to users
3065
- $.fn.select2.defaults = {
3066
- width: "copy",
3067
- loadMorePadding: 0,
3068
- closeOnSelect: true,
3069
- openOnEnter: true,
3070
- containerCss: {},
3071
- dropdownCss: {},
3072
- containerCssClass: "",
3073
- dropdownCssClass: "",
3074
- formatResult: function(result, container, query, escapeMarkup) {
3075
- var markup=[];
3076
- markMatch(result.text, query.term, markup, escapeMarkup);
3077
- return markup.join("");
3078
- },
3079
- formatSelection: function (data, container, escapeMarkup) {
3080
- return data ? escapeMarkup(data.text) : undefined;
3081
- },
3082
- sortResults: function (results, container, query) {
3083
- return results;
3084
- },
3085
- formatResultCssClass: function(data) {return undefined;},
3086
- formatSelectionCssClass: function(data, container) {return undefined;},
3087
- formatNoMatches: function () { return "No matches found"; },
3088
- formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1? "" : "s"); },
3089
- formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1? "" : "s"); },
3090
- formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
3091
- formatLoadMore: function (pageNumber) { return "Loading more results..."; },
3092
- formatSearching: function () { return "Searching..."; },
3093
- minimumResultsForSearch: 0,
3094
- minimumInputLength: 0,
3095
- maximumInputLength: null,
3096
- maximumSelectionSize: 0,
3097
- id: function (e) { return e.id; },
3098
- matcher: function(term, text) {
3099
- return (''+text).toUpperCase().indexOf((''+term).toUpperCase()) >= 0;
3100
- },
3101
- separator: ",",
3102
- tokenSeparators: [],
3103
- tokenizer: defaultTokenizer,
3104
- escapeMarkup: defaultEscapeMarkup,
3105
- blurOnChange: false,
3106
- selectOnBlur: false,
3107
- adaptContainerCssClass: function(c) { return c; },
3108
- adaptDropdownCssClass: function(c) { return null; }
3109
- };
3110
-
3111
- $.fn.select2.ajaxDefaults = {
3112
- transport: $.ajax,
3113
- params: {
3114
- type: "GET",
3115
- cache: false,
3116
- dataType: "json"
3117
- }
3118
- };
3119
-
3120
- // exports
3121
- window.Select2 = {
3122
- query: {
3123
- ajax: ajax,
3124
- local: local,
3125
- tags: tags
3126
- }, util: {
3127
- debounce: debounce,
3128
- markMatch: markMatch,
3129
- escapeMarkup: defaultEscapeMarkup
3130
- }, "class": {
3131
- "abstract": AbstractSelect2,
3132
- "single": SingleSelect2,
3133
- "multi": MultiSelect2
3134
- }
3135
- };
3136
-
3137
- }(jQuery));
1
+ /*
2
+ Copyright 2012 Igor Vaynberg
3
+
4
+ Version: 3.4.1 Timestamp: Thu Jun 27 18:02:10 PDT 2013
5
+
6
+ This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
7
+ General Public License version 2 (the "GPL License"). You may choose either license to govern your
8
+ use of this software only upon the condition that you accept all of the terms of either the Apache
9
+ License or the GPL License.
10
+
11
+ You may obtain a copy of the Apache License and the GPL License at:
12
+
13
+ http://www.apache.org/licenses/LICENSE-2.0
14
+ http://www.gnu.org/licenses/gpl-2.0.html
15
+
16
+ Unless required by applicable law or agreed to in writing, software distributed under the
17
+ Apache License or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
18
+ CONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for
19
+ the specific language governing permissions and limitations under the Apache License and the GPL License.
20
+ */
21
+ (function ($) {
22
+ if(typeof $.fn.each2 == "undefined") {
23
+ $.fn.extend({
24
+ /*
25
+ * 4-10 times faster .each replacement
26
+ * use it carefully, as it overrides jQuery context of element on each iteration
27
+ */
28
+ each2 : function (c) {
29
+ var j = $([0]), i = -1, l = this.length;
30
+ while (
31
+ ++i < l
32
+ && (j.context = j[0] = this[i])
33
+ && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object
34
+ );
35
+ return this;
36
+ }
37
+ });
38
+ }
39
+ })(jQuery);
40
+
41
+ (function ($, undefined) {
42
+ "use strict";
43
+ /*global document, window, jQuery, console */
44
+
45
+ if (window.Select2 !== undefined) {
46
+ return;
47
+ }
48
+
49
+ var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer,
50
+ lastMousePosition={x:0,y:0}, $document, scrollBarDimensions,
51
+
52
+ KEY = {
53
+ TAB: 9,
54
+ ENTER: 13,
55
+ ESC: 27,
56
+ SPACE: 32,
57
+ LEFT: 37,
58
+ UP: 38,
59
+ RIGHT: 39,
60
+ DOWN: 40,
61
+ SHIFT: 16,
62
+ CTRL: 17,
63
+ ALT: 18,
64
+ PAGE_UP: 33,
65
+ PAGE_DOWN: 34,
66
+ HOME: 36,
67
+ END: 35,
68
+ BACKSPACE: 8,
69
+ DELETE: 46,
70
+ isArrow: function (k) {
71
+ k = k.which ? k.which : k;
72
+ switch (k) {
73
+ case KEY.LEFT:
74
+ case KEY.RIGHT:
75
+ case KEY.UP:
76
+ case KEY.DOWN:
77
+ return true;
78
+ }
79
+ return false;
80
+ },
81
+ isControl: function (e) {
82
+ var k = e.which;
83
+ switch (k) {
84
+ case KEY.SHIFT:
85
+ case KEY.CTRL:
86
+ case KEY.ALT:
87
+ return true;
88
+ }
89
+
90
+ if (e.metaKey) return true;
91
+
92
+ return false;
93
+ },
94
+ isFunctionKey: function (k) {
95
+ k = k.which ? k.which : k;
96
+ return k >= 112 && k <= 123;
97
+ }
98
+ },
99
+ MEASURE_SCROLLBAR_TEMPLATE = "<div class='select2-measure-scrollbar'></div>";
100
+
101
+ $document = $(document);
102
+
103
+ nextUid=(function() { var counter=1; return function() { return counter++; }; }());
104
+
105
+ function indexOf(value, array) {
106
+ var i = 0, l = array.length;
107
+ for (; i < l; i = i + 1) {
108
+ if (equal(value, array[i])) return i;
109
+ }
110
+ return -1;
111
+ }
112
+
113
+ function measureScrollbar () {
114
+ var $template = $( MEASURE_SCROLLBAR_TEMPLATE );
115
+ $template.appendTo('body');
116
+
117
+ var dim = {
118
+ width: $template.width() - $template[0].clientWidth,
119
+ height: $template.height() - $template[0].clientHeight
120
+ };
121
+ $template.remove();
122
+
123
+ return dim;
124
+ }
125
+
126
+ /**
127
+ * Compares equality of a and b
128
+ * @param a
129
+ * @param b
130
+ */
131
+ function equal(a, b) {
132
+ if (a === b) return true;
133
+ if (a === undefined || b === undefined) return false;
134
+ if (a === null || b === null) return false;
135
+ // Check whether 'a' or 'b' is a string (primitive or object).
136
+ // The concatenation of an empty string (+'') converts its argument to a string's primitive.
137
+ if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object
138
+ if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object
139
+ return false;
140
+ }
141
+
142
+ /**
143
+ * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty
144
+ * strings
145
+ * @param string
146
+ * @param separator
147
+ */
148
+ function splitVal(string, separator) {
149
+ var val, i, l;
150
+ if (string === null || string.length < 1) return [];
151
+ val = string.split(separator);
152
+ for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]);
153
+ return val;
154
+ }
155
+
156
+ function getSideBorderPadding(element) {
157
+ return element.outerWidth(false) - element.width();
158
+ }
159
+
160
+ function installKeyUpChangeEvent(element) {
161
+ var key="keyup-change-value";
162
+ element.on("keydown", function () {
163
+ if ($.data(element, key) === undefined) {
164
+ $.data(element, key, element.val());
165
+ }
166
+ });
167
+ element.on("keyup", function () {
168
+ var val= $.data(element, key);
169
+ if (val !== undefined && element.val() !== val) {
170
+ $.removeData(element, key);
171
+ element.trigger("keyup-change");
172
+ }
173
+ });
174
+ }
175
+
176
+ $document.on("mousemove", function (e) {
177
+ lastMousePosition.x = e.pageX;
178
+ lastMousePosition.y = e.pageY;
179
+ });
180
+
181
+ /**
182
+ * filters mouse events so an event is fired only if the mouse moved.
183
+ *
184
+ * filters out mouse events that occur when mouse is stationary but
185
+ * the elements under the pointer are scrolled.
186
+ */
187
+ function installFilteredMouseMove(element) {
188
+ element.on("mousemove", function (e) {
189
+ var lastpos = lastMousePosition;
190
+ if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {
191
+ $(e.target).trigger("mousemove-filtered", e);
192
+ }
193
+ });
194
+ }
195
+
196
+ /**
197
+ * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made
198
+ * within the last quietMillis milliseconds.
199
+ *
200
+ * @param quietMillis number of milliseconds to wait before invoking fn
201
+ * @param fn function to be debounced
202
+ * @param ctx object to be used as this reference within fn
203
+ * @return debounced version of fn
204
+ */
205
+ function debounce(quietMillis, fn, ctx) {
206
+ ctx = ctx || undefined;
207
+ var timeout;
208
+ return function () {
209
+ var args = arguments;
210
+ window.clearTimeout(timeout);
211
+ timeout = window.setTimeout(function() {
212
+ fn.apply(ctx, args);
213
+ }, quietMillis);
214
+ };
215
+ }
216
+
217
+ /**
218
+ * A simple implementation of a thunk
219
+ * @param formula function used to lazily initialize the thunk
220
+ * @return {Function}
221
+ */
222
+ function thunk(formula) {
223
+ var evaluated = false,
224
+ value;
225
+ return function() {
226
+ if (evaluated === false) { value = formula(); evaluated = true; }
227
+ return value;
228
+ };
229
+ };
230
+
231
+ function installDebouncedScroll(threshold, element) {
232
+ var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);});
233
+ element.on("scroll", function (e) {
234
+ if (indexOf(e.target, element.get()) >= 0) notify(e);
235
+ });
236
+ }
237
+
238
+ function focus($el) {
239
+ if ($el[0] === document.activeElement) return;
240
+
241
+ /* set the focus in a 0 timeout - that way the focus is set after the processing
242
+ of the current event has finished - which seems like the only reliable way
243
+ to set focus */
244
+ window.setTimeout(function() {
245
+ var el=$el[0], pos=$el.val().length, range;
246
+
247
+ $el.focus();
248
+
249
+ /* make sure el received focus so we do not error out when trying to manipulate the caret.
250
+ sometimes modals or others listeners may steal it after its set */
251
+ if ($el.is(":visible") && el === document.activeElement) {
252
+
253
+ /* after the focus is set move the caret to the end, necessary when we val()
254
+ just before setting focus */
255
+ if(el.setSelectionRange)
256
+ {
257
+ el.setSelectionRange(pos, pos);
258
+ }
259
+ else if (el.createTextRange) {
260
+ range = el.createTextRange();
261
+ range.collapse(false);
262
+ range.select();
263
+ }
264
+ }
265
+ }, 0);
266
+ }
267
+
268
+ function getCursorInfo(el) {
269
+ el = $(el)[0];
270
+ var offset = 0;
271
+ var length = 0;
272
+ if ('selectionStart' in el) {
273
+ offset = el.selectionStart;
274
+ length = el.selectionEnd - offset;
275
+ } else if ('selection' in document) {
276
+ el.focus();
277
+ var sel = document.selection.createRange();
278
+ length = document.selection.createRange().text.length;
279
+ sel.moveStart('character', -el.value.length);
280
+ offset = sel.text.length - length;
281
+ }
282
+ return { offset: offset, length: length };
283
+ }
284
+
285
+ function killEvent(event) {
286
+ event.preventDefault();
287
+ event.stopPropagation();
288
+ }
289
+ function killEventImmediately(event) {
290
+ event.preventDefault();
291
+ event.stopImmediatePropagation();
292
+ }
293
+
294
+ function measureTextWidth(e) {
295
+ if (!sizer){
296
+ var style = e[0].currentStyle || window.getComputedStyle(e[0], null);
297
+ sizer = $(document.createElement("div")).css({
298
+ position: "absolute",
299
+ left: "-10000px",
300
+ top: "-10000px",
301
+ display: "none",
302
+ fontSize: style.fontSize,
303
+ fontFamily: style.fontFamily,
304
+ fontStyle: style.fontStyle,
305
+ fontWeight: style.fontWeight,
306
+ letterSpacing: style.letterSpacing,
307
+ textTransform: style.textTransform,
308
+ whiteSpace: "nowrap"
309
+ });
310
+ sizer.attr("class","select2-sizer");
311
+ $("body").append(sizer);
312
+ }
313
+ sizer.text(e.val());
314
+ return sizer.width();
315
+ }
316
+
317
+ function syncCssClasses(dest, src, adapter) {
318
+ var classes, replacements = [], adapted;
319
+
320
+ classes = dest.attr("class");
321
+ if (classes) {
322
+ classes = '' + classes; // for IE which returns object
323
+ $(classes.split(" ")).each2(function() {
324
+ if (this.indexOf("select2-") === 0) {
325
+ replacements.push(this);
326
+ }
327
+ });
328
+ }
329
+ classes = src.attr("class");
330
+ if (classes) {
331
+ classes = '' + classes; // for IE which returns object
332
+ $(classes.split(" ")).each2(function() {
333
+ if (this.indexOf("select2-") !== 0) {
334
+ adapted = adapter(this);
335
+ if (adapted) {
336
+ replacements.push(this);
337
+ }
338
+ }
339
+ });
340
+ }
341
+ dest.attr("class", replacements.join(" "));
342
+ }
343
+
344
+
345
+ function markMatch(text, term, markup, escapeMarkup) {
346
+ var match=text.toUpperCase().indexOf(term.toUpperCase()),
347
+ tl=term.length;
348
+
349
+ if (match<0) {
350
+ markup.push(escapeMarkup(text));
351
+ return;
352
+ }
353
+
354
+ markup.push(escapeMarkup(text.substring(0, match)));
355
+ markup.push("<span class='select2-match'>");
356
+ markup.push(escapeMarkup(text.substring(match, match + tl)));
357
+ markup.push("</span>");
358
+ markup.push(escapeMarkup(text.substring(match + tl, text.length)));
359
+ }
360
+
361
+ function defaultEscapeMarkup(markup) {
362
+ var replace_map = {
363
+ '\\': '&#92;',
364
+ '&': '&amp;',
365
+ '<': '&lt;',
366
+ '>': '&gt;',
367
+ '"': '&quot;',
368
+ "'": '&#39;',
369
+ "/": '&#47;'
370
+ };
371
+
372
+ return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
373
+ return replace_map[match];
374
+ });
375
+ }
376
+
377
+ /**
378
+ * Produces an ajax-based query function
379
+ *
380
+ * @param options object containing configuration paramters
381
+ * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax
382
+ * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax
383
+ * @param options.url url for the data
384
+ * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url.
385
+ * @param options.dataType request data type: ajax, jsonp, other datatatypes supported by jQuery's $.ajax function or the transport function if specified
386
+ * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often
387
+ * @param options.results a function(remoteData, pageNumber) that converts data returned form the remote request to the format expected by Select2.
388
+ * The expected format is an object containing the following keys:
389
+ * results array of objects that will be used as choices
390
+ * more (optional) boolean indicating whether there are more results available
391
+ * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true}
392
+ */
393
+ function ajax(options) {
394
+ var timeout, // current scheduled but not yet executed request
395
+ requestSequence = 0, // sequence used to drop out-of-order responses
396
+ handler = null,
397
+ quietMillis = options.quietMillis || 100,
398
+ ajaxUrl = options.url,
399
+ self = this;
400
+
401
+ return function (query) {
402
+ window.clearTimeout(timeout);
403
+ timeout = window.setTimeout(function () {
404
+ requestSequence += 1; // increment the sequence
405
+ var requestNumber = requestSequence, // this request's sequence number
406
+ data = options.data, // ajax data function
407
+ url = ajaxUrl, // ajax url string or function
408
+ transport = options.transport || $.fn.select2.ajaxDefaults.transport,
409
+ // deprecated - to be removed in 4.0 - use params instead
410
+ deprecated = {
411
+ type: options.type || 'GET', // set type of request (GET or POST)
412
+ cache: options.cache || false,
413
+ jsonpCallback: options.jsonpCallback||undefined,
414
+ dataType: options.dataType||"json"
415
+ },
416
+ params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated);
417
+
418
+ data = data ? data.call(self, query.term, query.page, query.context) : null;
419
+ url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url;
420
+
421
+ if (handler) { handler.abort(); }
422
+
423
+ if (options.params) {
424
+ if ($.isFunction(options.params)) {
425
+ $.extend(params, options.params.call(self));
426
+ } else {
427
+ $.extend(params, options.params);
428
+ }
429
+ }
430
+
431
+ $.extend(params, {
432
+ url: url,
433
+ dataType: options.dataType,
434
+ data: data,
435
+ success: function (data) {
436
+ if (requestNumber < requestSequence) {
437
+ return;
438
+ }
439
+ // TODO - replace query.page with query so users have access to term, page, etc.
440
+ var results = options.results(data, query.page);
441
+ query.callback(results);
442
+ }
443
+ });
444
+ handler = transport.call(self, params);
445
+ }, quietMillis);
446
+ };
447
+ }
448
+
449
+ /**
450
+ * Produces a query function that works with a local array
451
+ *
452
+ * @param options object containing configuration parameters. The options parameter can either be an array or an
453
+ * object.
454
+ *
455
+ * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys.
456
+ *
457
+ * If the object form is used ti is assumed that it contains 'data' and 'text' keys. The 'data' key should contain
458
+ * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text'
459
+ * key can either be a String in which case it is expected that each element in the 'data' array has a key with the
460
+ * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract
461
+ * the text.
462
+ */
463
+ function local(options) {
464
+ var data = options, // data elements
465
+ dataText,
466
+ tmp,
467
+ text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search
468
+
469
+ if ($.isArray(data)) {
470
+ tmp = data;
471
+ data = { results: tmp };
472
+ }
473
+
474
+ if ($.isFunction(data) === false) {
475
+ tmp = data;
476
+ data = function() { return tmp; };
477
+ }
478
+
479
+ var dataItem = data();
480
+ if (dataItem.text) {
481
+ text = dataItem.text;
482
+ // if text is not a function we assume it to be a key name
483
+ if (!$.isFunction(text)) {
484
+ dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available
485
+ text = function (item) { return item[dataText]; };
486
+ }
487
+ }
488
+
489
+ return function (query) {
490
+ var t = query.term, filtered = { results: [] }, process;
491
+ if (t === "") {
492
+ query.callback(data());
493
+ return;
494
+ }
495
+
496
+ process = function(datum, collection) {
497
+ var group, attr;
498
+ datum = datum[0];
499
+ if (datum.children) {
500
+ group = {};
501
+ for (attr in datum) {
502
+ if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];
503
+ }
504
+ group.children=[];
505
+ $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });
506
+ if (group.children.length || query.matcher(t, text(group), datum)) {
507
+ collection.push(group);
508
+ }
509
+ } else {
510
+ if (query.matcher(t, text(datum), datum)) {
511
+ collection.push(datum);
512
+ }
513
+ }
514
+ };
515
+
516
+ $(data().results).each2(function(i, datum) { process(datum, filtered.results); });
517
+ query.callback(filtered);
518
+ };
519
+ }
520
+
521
+ // TODO javadoc
522
+ function tags(data) {
523
+ var isFunc = $.isFunction(data);
524
+ return function (query) {
525
+ var t = query.term, filtered = {results: []};
526
+ $(isFunc ? data() : data).each(function () {
527
+ var isObject = this.text !== undefined,
528
+ text = isObject ? this.text : this;
529
+ if (t === "" || query.matcher(t, text)) {
530
+ filtered.results.push(isObject ? this : {id: this, text: this});
531
+ }
532
+ });
533
+ query.callback(filtered);
534
+ };
535
+ }
536
+
537
+ /**
538
+ * Checks if the formatter function should be used.
539
+ *
540
+ * Throws an error if it is not a function. Returns true if it should be used,
541
+ * false if no formatting should be performed.
542
+ *
543
+ * @param formatter
544
+ */
545
+ function checkFormatter(formatter, formatterName) {
546
+ if ($.isFunction(formatter)) return true;
547
+ if (!formatter) return false;
548
+ throw new Error(formatterName +" must be a function or a falsy value");
549
+ }
550
+
551
+ function evaluate(val) {
552
+ return $.isFunction(val) ? val() : val;
553
+ }
554
+
555
+ function countResults(results) {
556
+ var count = 0;
557
+ $.each(results, function(i, item) {
558
+ if (item.children) {
559
+ count += countResults(item.children);
560
+ } else {
561
+ count++;
562
+ }
563
+ });
564
+ return count;
565
+ }
566
+
567
+ /**
568
+ * Default tokenizer. This function uses breaks the input on substring match of any string from the
569
+ * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those
570
+ * two options have to be defined in order for the tokenizer to work.
571
+ *
572
+ * @param input text user has typed so far or pasted into the search field
573
+ * @param selection currently selected choices
574
+ * @param selectCallback function(choice) callback tho add the choice to selection
575
+ * @param opts select2's opts
576
+ * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value
577
+ */
578
+ function defaultTokenizer(input, selection, selectCallback, opts) {
579
+ var original = input, // store the original so we can compare and know if we need to tell the search to update its text
580
+ dupe = false, // check for whether a token we extracted represents a duplicate selected choice
581
+ token, // token
582
+ index, // position at which the separator was found
583
+ i, l, // looping variables
584
+ separator; // the matched separator
585
+
586
+ if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined;
587
+
588
+ while (true) {
589
+ index = -1;
590
+
591
+ for (i = 0, l = opts.tokenSeparators.length; i < l; i++) {
592
+ separator = opts.tokenSeparators[i];
593
+ index = input.indexOf(separator);
594
+ if (index >= 0) break;
595
+ }
596
+
597
+ if (index < 0) break; // did not find any token separator in the input string, bail
598
+
599
+ token = input.substring(0, index);
600
+ input = input.substring(index + separator.length);
601
+
602
+ if (token.length > 0) {
603
+ token = opts.createSearchChoice.call(this, token, selection);
604
+ if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) {
605
+ dupe = false;
606
+ for (i = 0, l = selection.length; i < l; i++) {
607
+ if (equal(opts.id(token), opts.id(selection[i]))) {
608
+ dupe = true; break;
609
+ }
610
+ }
611
+
612
+ if (!dupe) selectCallback(token);
613
+ }
614
+ }
615
+ }
616
+
617
+ if (original!==input) return input;
618
+ }
619
+
620
+ /**
621
+ * Creates a new class
622
+ *
623
+ * @param superClass
624
+ * @param methods
625
+ */
626
+ function clazz(SuperClass, methods) {
627
+ var constructor = function () {};
628
+ constructor.prototype = new SuperClass;
629
+ constructor.prototype.constructor = constructor;
630
+ constructor.prototype.parent = SuperClass.prototype;
631
+ constructor.prototype = $.extend(constructor.prototype, methods);
632
+ return constructor;
633
+ }
634
+
635
+ AbstractSelect2 = clazz(Object, {
636
+
637
+ // abstract
638
+ bind: function (func) {
639
+ var self = this;
640
+ return function () {
641
+ func.apply(self, arguments);
642
+ };
643
+ },
644
+
645
+ // abstract
646
+ init: function (opts) {
647
+ var results, search, resultsSelector = ".select2-results", disabled, readonly;
648
+
649
+ // prepare options
650
+ this.opts = opts = this.prepareOpts(opts);
651
+
652
+ this.id=opts.id;
653
+
654
+ // destroy if called on an existing component
655
+ if (opts.element.data("select2") !== undefined &&
656
+ opts.element.data("select2") !== null) {
657
+ opts.element.data("select2").destroy();
658
+ }
659
+
660
+ this.container = this.createContainer();
661
+
662
+ this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid());
663
+ this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
664
+ this.container.attr("id", this.containerId);
665
+
666
+ // cache the body so future lookups are cheap
667
+ this.body = thunk(function() { return opts.element.closest("body"); });
668
+
669
+ syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
670
+
671
+ this.container.css(evaluate(opts.containerCss));
672
+ this.container.addClass(evaluate(opts.containerCssClass));
673
+
674
+ this.elementTabIndex = this.opts.element.attr("tabindex");
675
+
676
+ // swap container for the element
677
+ this.opts.element
678
+ .data("select2", this)
679
+ .attr("tabindex", "-1")
680
+ .before(this.container);
681
+ this.container.data("select2", this);
682
+
683
+ this.dropdown = this.container.find(".select2-drop");
684
+ this.dropdown.addClass(evaluate(opts.dropdownCssClass));
685
+ this.dropdown.data("select2", this);
686
+
687
+ this.results = results = this.container.find(resultsSelector);
688
+ this.search = search = this.container.find("input.select2-input");
689
+
690
+ this.resultsPage = 0;
691
+ this.context = null;
692
+
693
+ // initialize the container
694
+ this.initContainer();
695
+
696
+ installFilteredMouseMove(this.results);
697
+ this.dropdown.on("mousemove-filtered touchstart touchmove touchend", resultsSelector, this.bind(this.highlightUnderEvent));
698
+
699
+ installDebouncedScroll(80, this.results);
700
+ this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded));
701
+
702
+ // do not propagate change event from the search field out of the component
703
+ $(this.container).on("change", ".select2-input", function(e) {e.stopPropagation();});
704
+ $(this.dropdown).on("change", ".select2-input", function(e) {e.stopPropagation();});
705
+
706
+ // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel
707
+ if ($.fn.mousewheel) {
708
+ results.mousewheel(function (e, delta, deltaX, deltaY) {
709
+ var top = results.scrollTop(), height;
710
+ if (deltaY > 0 && top - deltaY <= 0) {
711
+ results.scrollTop(0);
712
+ killEvent(e);
713
+ } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) {
714
+ results.scrollTop(results.get(0).scrollHeight - results.height());
715
+ killEvent(e);
716
+ }
717
+ });
718
+ }
719
+
720
+ installKeyUpChangeEvent(search);
721
+ search.on("keyup-change input paste", this.bind(this.updateResults));
722
+ search.on("focus", function () { search.addClass("select2-focused"); });
723
+ search.on("blur", function () { search.removeClass("select2-focused");});
724
+
725
+ this.dropdown.on("mouseup", resultsSelector, this.bind(function (e) {
726
+ if ($(e.target).closest(".select2-result-selectable").length > 0) {
727
+ this.highlightUnderEvent(e);
728
+ this.selectHighlighted(e);
729
+ }
730
+ }));
731
+
732
+ // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening
733
+ // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's
734
+ // dom it will trigger the popup close, which is not what we want
735
+ this.dropdown.on("click mouseup mousedown", function (e) { e.stopPropagation(); });
736
+
737
+ if ($.isFunction(this.opts.initSelection)) {
738
+ // initialize selection based on the current value of the source element
739
+ this.initSelection();
740
+
741
+ // if the user has provided a function that can set selection based on the value of the source element
742
+ // we monitor the change event on the element and trigger it, allowing for two way synchronization
743
+ this.monitorSource();
744
+ }
745
+
746
+ if (opts.maximumInputLength !== null) {
747
+ this.search.attr("maxlength", opts.maximumInputLength);
748
+ }
749
+
750
+ var disabled = opts.element.prop("disabled");
751
+ if (disabled === undefined) disabled = false;
752
+ this.enable(!disabled);
753
+
754
+ var readonly = opts.element.prop("readonly");
755
+ if (readonly === undefined) readonly = false;
756
+ this.readonly(readonly);
757
+
758
+ // Calculate size of scrollbar
759
+ scrollBarDimensions = scrollBarDimensions || measureScrollbar();
760
+
761
+ this.autofocus = opts.element.prop("autofocus")
762
+ opts.element.prop("autofocus", false);
763
+ if (this.autofocus) this.focus();
764
+ },
765
+
766
+ // abstract
767
+ destroy: function () {
768
+ var element=this.opts.element, select2 = element.data("select2");
769
+
770
+ if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; }
771
+
772
+ if (select2 !== undefined) {
773
+ select2.container.remove();
774
+ select2.dropdown.remove();
775
+ element
776
+ .removeClass("select2-offscreen")
777
+ .removeData("select2")
778
+ .off(".select2")
779
+ .prop("autofocus", this.autofocus || false);
780
+ if (this.elementTabIndex) {
781
+ element.attr({tabindex: this.elementTabIndex});
782
+ } else {
783
+ element.removeAttr("tabindex");
784
+ }
785
+ element.show();
786
+ }
787
+ },
788
+
789
+ // abstract
790
+ optionToData: function(element) {
791
+ if (element.is("option")) {
792
+ return {
793
+ id:element.prop("value"),
794
+ text:element.text(),
795
+ element: element.get(),
796
+ css: element.attr("class"),
797
+ disabled: element.prop("disabled"),
798
+ locked: equal(element.attr("locked"), "locked") || equal(element.data("locked"), true)
799
+ };
800
+ } else if (element.is("optgroup")) {
801
+ return {
802
+ text:element.attr("label"),
803
+ children:[],
804
+ element: element.get(),
805
+ css: element.attr("class")
806
+ };
807
+ }
808
+ },
809
+
810
+ // abstract
811
+ prepareOpts: function (opts) {
812
+ var element, select, idKey, ajaxUrl, self = this;
813
+
814
+ element = opts.element;
815
+
816
+ if (element.get(0).tagName.toLowerCase() === "select") {
817
+ this.select = select = opts.element;
818
+ }
819
+
820
+ if (select) {
821
+ // these options are not allowed when attached to a select because they are picked up off the element itself
822
+ $.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () {
823
+ if (this in opts) {
824
+ throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a <select> element.");
825
+ }
826
+ });
827
+ }
828
+
829
+ opts = $.extend({}, {
830
+ populateResults: function(container, results, query) {
831
+ var populate, data, result, children, id=this.opts.id;
832
+
833
+ populate=function(results, container, depth) {
834
+
835
+ var i, l, result, selectable, disabled, compound, node, label, innerContainer, formatted;
836
+
837
+ results = opts.sortResults(results, container, query);
838
+
839
+ for (i = 0, l = results.length; i < l; i = i + 1) {
840
+
841
+ result=results[i];
842
+
843
+ disabled = (result.disabled === true);
844
+ selectable = (!disabled) && (id(result) !== undefined);
845
+
846
+ compound=result.children && result.children.length > 0;
847
+
848
+ node=$("<li></li>");
849
+ node.addClass("select2-results-dept-"+depth);
850
+ node.addClass("select2-result");
851
+ node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable");
852
+ if (disabled) { node.addClass("select2-disabled"); }
853
+ if (compound) { node.addClass("select2-result-with-children"); }
854
+ node.addClass(self.opts.formatResultCssClass(result));
855
+
856
+ label=$(document.createElement("div"));
857
+ label.addClass("select2-result-label");
858
+
859
+ formatted=opts.formatResult(result, label, query, self.opts.escapeMarkup);
860
+ if (formatted!==undefined) {
861
+ label.html(formatted);
862
+ }
863
+
864
+ node.append(label);
865
+
866
+ if (compound) {
867
+
868
+ innerContainer=$("<ul></ul>");
869
+ innerContainer.addClass("select2-result-sub");
870
+ populate(result.children, innerContainer, depth+1);
871
+ node.append(innerContainer);
872
+ }
873
+
874
+ node.data("select2-data", result);
875
+ container.append(node);
876
+ }
877
+ };
878
+
879
+ populate(results, container, 0);
880
+ }
881
+ }, $.fn.select2.defaults, opts);
882
+
883
+ if (typeof(opts.id) !== "function") {
884
+ idKey = opts.id;
885
+ opts.id = function (e) { return e[idKey]; };
886
+ }
887
+
888
+ if ($.isArray(opts.element.data("select2Tags"))) {
889
+ if ("tags" in opts) {
890
+ throw "tags specified as both an attribute 'data-select2-tags' and in options of Select2 " + opts.element.attr("id");
891
+ }
892
+ opts.tags=opts.element.data("select2Tags");
893
+ }
894
+
895
+ if (select) {
896
+ opts.query = this.bind(function (query) {
897
+ var data = { results: [], more: false },
898
+ term = query.term,
899
+ children, placeholderOption, process;
900
+
901
+ process=function(element, collection) {
902
+ var group;
903
+ if (element.is("option")) {
904
+ if (query.matcher(term, element.text(), element)) {
905
+ collection.push(self.optionToData(element));
906
+ }
907
+ } else if (element.is("optgroup")) {
908
+ group=self.optionToData(element);
909
+ element.children().each2(function(i, elm) { process(elm, group.children); });
910
+ if (group.children.length>0) {
911
+ collection.push(group);
912
+ }
913
+ }
914
+ };
915
+
916
+ children=element.children();
917
+
918
+ // ignore the placeholder option if there is one
919
+ if (this.getPlaceholder() !== undefined && children.length > 0) {
920
+ placeholderOption = this.getPlaceholderOption();
921
+ if (placeholderOption) {
922
+ children=children.not(placeholderOption);
923
+ }
924
+ }
925
+
926
+ children.each2(function(i, elm) { process(elm, data.results); });
927
+
928
+ query.callback(data);
929
+ });
930
+ // this is needed because inside val() we construct choices from options and there id is hardcoded
931
+ opts.id=function(e) { return e.id; };
932
+ opts.formatResultCssClass = function(data) { return data.css; };
933
+ } else {
934
+ if (!("query" in opts)) {
935
+
936
+ if ("ajax" in opts) {
937
+ ajaxUrl = opts.element.data("ajax-url");
938
+ if (ajaxUrl && ajaxUrl.length > 0) {
939
+ opts.ajax.url = ajaxUrl;
940
+ }
941
+ opts.query = ajax.call(opts.element, opts.ajax);
942
+ } else if ("data" in opts) {
943
+ opts.query = local(opts.data);
944
+ } else if ("tags" in opts) {
945
+ opts.query = tags(opts.tags);
946
+ if (opts.createSearchChoice === undefined) {
947
+ opts.createSearchChoice = function (term) { return {id: term, text: term}; };
948
+ }
949
+ if (opts.initSelection === undefined) {
950
+ opts.initSelection = function (element, callback) {
951
+ var data = [];
952
+ $(splitVal(element.val(), opts.separator)).each(function () {
953
+ var id = this, text = this, tags=opts.tags;
954
+ if ($.isFunction(tags)) tags=tags();
955
+ $(tags).each(function() { if (equal(this.id, id)) { text = this.text; return false; } });
956
+ data.push({id: id, text: text});
957
+ });
958
+
959
+ callback(data);
960
+ };
961
+ }
962
+ }
963
+ }
964
+ }
965
+ if (typeof(opts.query) !== "function") {
966
+ throw "query function not defined for Select2 " + opts.element.attr("id");
967
+ }
968
+
969
+ return opts;
970
+ },
971
+
972
+ /**
973
+ * Monitor the original element for changes and update select2 accordingly
974
+ */
975
+ // abstract
976
+ monitorSource: function () {
977
+ var el = this.opts.element, sync;
978
+
979
+ el.on("change.select2", this.bind(function (e) {
980
+ if (this.opts.element.data("select2-change-triggered") !== true) {
981
+ this.initSelection();
982
+ }
983
+ }));
984
+
985
+ sync = this.bind(function () {
986
+
987
+ var enabled, readonly, self = this;
988
+
989
+ // sync enabled state
990
+ var disabled = el.prop("disabled");
991
+ if (disabled === undefined) disabled = false;
992
+ this.enable(!disabled);
993
+
994
+ var readonly = el.prop("readonly");
995
+ if (readonly === undefined) readonly = false;
996
+ this.readonly(readonly);
997
+
998
+ syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
999
+ this.container.addClass(evaluate(this.opts.containerCssClass));
1000
+
1001
+ syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
1002
+ this.dropdown.addClass(evaluate(this.opts.dropdownCssClass));
1003
+
1004
+ });
1005
+
1006
+ // mozilla and IE
1007
+ el.on("propertychange.select2 DOMAttrModified.select2", sync);
1008
+
1009
+
1010
+ // hold onto a reference of the callback to work around a chromium bug
1011
+ if (this.mutationCallback === undefined) {
1012
+ this.mutationCallback = function (mutations) {
1013
+ mutations.forEach(sync);
1014
+ }
1015
+ }
1016
+
1017
+ // safari and chrome
1018
+ if (typeof WebKitMutationObserver !== "undefined") {
1019
+ if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; }
1020
+ this.propertyObserver = new WebKitMutationObserver(this.mutationCallback);
1021
+ this.propertyObserver.observe(el.get(0), { attributes:true, subtree:false });
1022
+ }
1023
+ },
1024
+
1025
+ // abstract
1026
+ triggerSelect: function(data) {
1027
+ var evt = $.Event("select2-selecting", { val: this.id(data), object: data });
1028
+ this.opts.element.trigger(evt);
1029
+ return !evt.isDefaultPrevented();
1030
+ },
1031
+
1032
+ /**
1033
+ * Triggers the change event on the source element
1034
+ */
1035
+ // abstract
1036
+ triggerChange: function (details) {
1037
+
1038
+ details = details || {};
1039
+ details= $.extend({}, details, { type: "change", val: this.val() });
1040
+ // prevents recursive triggering
1041
+ this.opts.element.data("select2-change-triggered", true);
1042
+ this.opts.element.trigger(details);
1043
+ this.opts.element.data("select2-change-triggered", false);
1044
+
1045
+ // some validation frameworks ignore the change event and listen instead to keyup, click for selects
1046
+ // so here we trigger the click event manually
1047
+ this.opts.element.click();
1048
+
1049
+ // ValidationEngine ignorea the change event and listens instead to blur
1050
+ // so here we trigger the blur event manually if so desired
1051
+ if (this.opts.blurOnChange)
1052
+ this.opts.element.blur();
1053
+ },
1054
+
1055
+ //abstract
1056
+ isInterfaceEnabled: function()
1057
+ {
1058
+ return this.enabledInterface === true;
1059
+ },
1060
+
1061
+ // abstract
1062
+ enableInterface: function() {
1063
+ var enabled = this._enabled && !this._readonly,
1064
+ disabled = !enabled;
1065
+
1066
+ if (enabled === this.enabledInterface) return false;
1067
+
1068
+ this.container.toggleClass("select2-container-disabled", disabled);
1069
+ this.close();
1070
+ this.enabledInterface = enabled;
1071
+
1072
+ return true;
1073
+ },
1074
+
1075
+ // abstract
1076
+ enable: function(enabled) {
1077
+ if (enabled === undefined) enabled = true;
1078
+ if (this._enabled === enabled) return false;
1079
+ this._enabled = enabled;
1080
+
1081
+ this.opts.element.prop("disabled", !enabled);
1082
+ this.enableInterface();
1083
+ return true;
1084
+ },
1085
+
1086
+ // abstract
1087
+ readonly: function(enabled) {
1088
+ if (enabled === undefined) enabled = false;
1089
+ if (this._readonly === enabled) return false;
1090
+ this._readonly = enabled;
1091
+
1092
+ this.opts.element.prop("readonly", enabled);
1093
+ this.enableInterface();
1094
+ return true;
1095
+ },
1096
+
1097
+ // abstract
1098
+ opened: function () {
1099
+ return this.container.hasClass("select2-dropdown-open");
1100
+ },
1101
+
1102
+ // abstract
1103
+ positionDropdown: function() {
1104
+ var $dropdown = this.dropdown,
1105
+ offset = this.container.offset(),
1106
+ height = this.container.outerHeight(false),
1107
+ width = this.container.outerWidth(false),
1108
+ dropHeight = $dropdown.outerHeight(false),
1109
+ viewPortRight = $(window).scrollLeft() + $(window).width(),
1110
+ viewportBottom = $(window).scrollTop() + $(window).height(),
1111
+ dropTop = offset.top + height,
1112
+ dropLeft = offset.left,
1113
+ enoughRoomBelow = dropTop + dropHeight <= viewportBottom,
1114
+ enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(),
1115
+ dropWidth = $dropdown.outerWidth(false),
1116
+ enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight,
1117
+ aboveNow = $dropdown.hasClass("select2-drop-above"),
1118
+ bodyOffset,
1119
+ above,
1120
+ css,
1121
+ resultsListNode;
1122
+
1123
+ if (this.opts.dropdownAutoWidth) {
1124
+ resultsListNode = $('.select2-results', $dropdown)[0];
1125
+ $dropdown.addClass('select2-drop-auto-width');
1126
+ $dropdown.css('width', '');
1127
+ // Add scrollbar width to dropdown if vertical scrollbar is present
1128
+ dropWidth = $dropdown.outerWidth(false) + (resultsListNode.scrollHeight === resultsListNode.clientHeight ? 0 : scrollBarDimensions.width);
1129
+ dropWidth > width ? width = dropWidth : dropWidth = width;
1130
+ enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight;
1131
+ }
1132
+ else {
1133
+ this.container.removeClass('select2-drop-auto-width');
1134
+ }
1135
+
1136
+ //console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow);
1137
+ //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove);
1138
+
1139
+ // fix positioning when body has an offset and is not position: static
1140
+ if (this.body().css('position') !== 'static') {
1141
+ bodyOffset = this.body().offset();
1142
+ dropTop -= bodyOffset.top;
1143
+ dropLeft -= bodyOffset.left;
1144
+ }
1145
+
1146
+ // always prefer the current above/below alignment, unless there is not enough room
1147
+ if (aboveNow) {
1148
+ above = true;
1149
+ if (!enoughRoomAbove && enoughRoomBelow) above = false;
1150
+ } else {
1151
+ above = false;
1152
+ if (!enoughRoomBelow && enoughRoomAbove) above = true;
1153
+ }
1154
+
1155
+ if (!enoughRoomOnRight) {
1156
+ dropLeft = offset.left + width - dropWidth;
1157
+ }
1158
+
1159
+ if (above) {
1160
+ dropTop = offset.top - dropHeight;
1161
+ this.container.addClass("select2-drop-above");
1162
+ $dropdown.addClass("select2-drop-above");
1163
+ }
1164
+ else {
1165
+ this.container.removeClass("select2-drop-above");
1166
+ $dropdown.removeClass("select2-drop-above");
1167
+ }
1168
+
1169
+ css = $.extend({
1170
+ top: dropTop,
1171
+ left: dropLeft,
1172
+ width: width
1173
+ }, evaluate(this.opts.dropdownCss));
1174
+
1175
+ $dropdown.css(css);
1176
+ },
1177
+
1178
+ // abstract
1179
+ shouldOpen: function() {
1180
+ var event;
1181
+
1182
+ if (this.opened()) return false;
1183
+
1184
+ if (this._enabled === false || this._readonly === true) return false;
1185
+
1186
+ event = $.Event("select2-opening");
1187
+ this.opts.element.trigger(event);
1188
+ return !event.isDefaultPrevented();
1189
+ },
1190
+
1191
+ // abstract
1192
+ clearDropdownAlignmentPreference: function() {
1193
+ // clear the classes used to figure out the preference of where the dropdown should be opened
1194
+ this.container.removeClass("select2-drop-above");
1195
+ this.dropdown.removeClass("select2-drop-above");
1196
+ },
1197
+
1198
+ /**
1199
+ * Opens the dropdown
1200
+ *
1201
+ * @return {Boolean} whether or not dropdown was opened. This method will return false if, for example,
1202
+ * the dropdown is already open, or if the 'open' event listener on the element called preventDefault().
1203
+ */
1204
+ // abstract
1205
+ open: function () {
1206
+
1207
+ if (!this.shouldOpen()) return false;
1208
+
1209
+ this.opening();
1210
+
1211
+ return true;
1212
+ },
1213
+
1214
+ /**
1215
+ * Performs the opening of the dropdown
1216
+ */
1217
+ // abstract
1218
+ opening: function() {
1219
+ var cid = this.containerId,
1220
+ scroll = "scroll." + cid,
1221
+ resize = "resize."+cid,
1222
+ orient = "orientationchange."+cid,
1223
+ mask, maskCss;
1224
+
1225
+ this.container.addClass("select2-dropdown-open").addClass("select2-container-active");
1226
+
1227
+ this.clearDropdownAlignmentPreference();
1228
+
1229
+ if(this.dropdown[0] !== this.body().children().last()[0]) {
1230
+ this.dropdown.detach().appendTo(this.body());
1231
+ }
1232
+
1233
+ // create the dropdown mask if doesnt already exist
1234
+ mask = $("#select2-drop-mask");
1235
+ if (mask.length == 0) {
1236
+ mask = $(document.createElement("div"));
1237
+ mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask");
1238
+ mask.hide();
1239
+ mask.appendTo(this.body());
1240
+ mask.on("mousedown touchstart click", function (e) {
1241
+ var dropdown = $("#select2-drop"), self;
1242
+ if (dropdown.length > 0) {
1243
+ self=dropdown.data("select2");
1244
+ if (self.opts.selectOnBlur) {
1245
+ self.selectHighlighted({noFocus: true});
1246
+ }
1247
+ self.close();
1248
+ e.preventDefault();
1249
+ e.stopPropagation();
1250
+ }
1251
+ });
1252
+ }
1253
+
1254
+ // ensure the mask is always right before the dropdown
1255
+ if (this.dropdown.prev()[0] !== mask[0]) {
1256
+ this.dropdown.before(mask);
1257
+ }
1258
+
1259
+ // move the global id to the correct dropdown
1260
+ $("#select2-drop").removeAttr("id");
1261
+ this.dropdown.attr("id", "select2-drop");
1262
+
1263
+ // show the elements
1264
+ maskCss=_makeMaskCss();
1265
+
1266
+ mask.css(maskCss).show();
1267
+
1268
+ this.dropdown.show();
1269
+ this.positionDropdown();
1270
+
1271
+ this.dropdown.addClass("select2-drop-active");
1272
+
1273
+ // attach listeners to events that can change the position of the container and thus require
1274
+ // the position of the dropdown to be updated as well so it does not come unglued from the container
1275
+ var that = this;
1276
+ this.container.parents().add(window).each(function () {
1277
+ $(this).on(resize+" "+scroll+" "+orient, function (e) {
1278
+ var maskCss=_makeMaskCss();
1279
+ $("#select2-drop-mask").css(maskCss);
1280
+ that.positionDropdown();
1281
+ });
1282
+ });
1283
+
1284
+ function _makeMaskCss() {
1285
+ return {
1286
+ width : Math.max(document.documentElement.scrollWidth, $(window).width()),
1287
+ height : Math.max(document.documentElement.scrollHeight, $(window).height())
1288
+ }
1289
+ }
1290
+ },
1291
+
1292
+ // abstract
1293
+ close: function () {
1294
+ if (!this.opened()) return;
1295
+
1296
+ var cid = this.containerId,
1297
+ scroll = "scroll." + cid,
1298
+ resize = "resize."+cid,
1299
+ orient = "orientationchange."+cid;
1300
+
1301
+ // unbind event listeners
1302
+ this.container.parents().add(window).each(function () { $(this).off(scroll).off(resize).off(orient); });
1303
+
1304
+ this.clearDropdownAlignmentPreference();
1305
+
1306
+ $("#select2-drop-mask").hide();
1307
+ this.dropdown.removeAttr("id"); // only the active dropdown has the select2-drop id
1308
+ this.dropdown.hide();
1309
+ this.container.removeClass("select2-dropdown-open");
1310
+ this.results.empty();
1311
+
1312
+
1313
+ this.clearSearch();
1314
+ this.search.removeClass("select2-active");
1315
+ this.opts.element.trigger($.Event("select2-close"));
1316
+ },
1317
+
1318
+ /**
1319
+ * Opens control, sets input value, and updates results.
1320
+ */
1321
+ // abstract
1322
+ externalSearch: function (term) {
1323
+ this.open();
1324
+ this.search.val(term);
1325
+ this.updateResults(false);
1326
+ },
1327
+
1328
+ // abstract
1329
+ clearSearch: function () {
1330
+
1331
+ },
1332
+
1333
+ //abstract
1334
+ getMaximumSelectionSize: function() {
1335
+ return evaluate(this.opts.maximumSelectionSize);
1336
+ },
1337
+
1338
+ // abstract
1339
+ ensureHighlightVisible: function () {
1340
+ var results = this.results, children, index, child, hb, rb, y, more;
1341
+
1342
+ index = this.highlight();
1343
+
1344
+ if (index < 0) return;
1345
+
1346
+ if (index == 0) {
1347
+
1348
+ // if the first element is highlighted scroll all the way to the top,
1349
+ // that way any unselectable headers above it will also be scrolled
1350
+ // into view
1351
+
1352
+ results.scrollTop(0);
1353
+ return;
1354
+ }
1355
+
1356
+ children = this.findHighlightableChoices().find('.select2-result-label');
1357
+
1358
+ child = $(children[index]);
1359
+
1360
+ hb = child.offset().top + child.outerHeight(true);
1361
+
1362
+ // if this is the last child lets also make sure select2-more-results is visible
1363
+ if (index === children.length - 1) {
1364
+ more = results.find("li.select2-more-results");
1365
+ if (more.length > 0) {
1366
+ hb = more.offset().top + more.outerHeight(true);
1367
+ }
1368
+ }
1369
+
1370
+ rb = results.offset().top + results.outerHeight(true);
1371
+ if (hb > rb) {
1372
+ results.scrollTop(results.scrollTop() + (hb - rb));
1373
+ }
1374
+ y = child.offset().top - results.offset().top;
1375
+
1376
+ // make sure the top of the element is visible
1377
+ if (y < 0 && child.css('display') != 'none' ) {
1378
+ results.scrollTop(results.scrollTop() + y); // y is negative
1379
+ }
1380
+ },
1381
+
1382
+ // abstract
1383
+ findHighlightableChoices: function() {
1384
+ return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)");
1385
+ },
1386
+
1387
+ // abstract
1388
+ moveHighlight: function (delta) {
1389
+ var choices = this.findHighlightableChoices(),
1390
+ index = this.highlight();
1391
+
1392
+ while (index > -1 && index < choices.length) {
1393
+ index += delta;
1394
+ var choice = $(choices[index]);
1395
+ if (choice.hasClass("select2-result-selectable") && !choice.hasClass("select2-disabled") && !choice.hasClass("select2-selected")) {
1396
+ this.highlight(index);
1397
+ break;
1398
+ }
1399
+ }
1400
+ },
1401
+
1402
+ // abstract
1403
+ highlight: function (index) {
1404
+ var choices = this.findHighlightableChoices(),
1405
+ choice,
1406
+ data;
1407
+
1408
+ if (arguments.length === 0) {
1409
+ return indexOf(choices.filter(".select2-highlighted")[0], choices.get());
1410
+ }
1411
+
1412
+ if (index >= choices.length) index = choices.length - 1;
1413
+ if (index < 0) index = 0;
1414
+
1415
+ this.results.find(".select2-highlighted").removeClass("select2-highlighted");
1416
+
1417
+ choice = $(choices[index]);
1418
+ choice.addClass("select2-highlighted");
1419
+
1420
+ this.ensureHighlightVisible();
1421
+
1422
+ data = choice.data("select2-data");
1423
+ if (data) {
1424
+ this.opts.element.trigger({ type: "select2-highlight", val: this.id(data), choice: data });
1425
+ }
1426
+ },
1427
+
1428
+ // abstract
1429
+ countSelectableResults: function() {
1430
+ return this.findHighlightableChoices().length;
1431
+ },
1432
+
1433
+ // abstract
1434
+ highlightUnderEvent: function (event) {
1435
+ var el = $(event.target).closest(".select2-result-selectable");
1436
+ if (el.length > 0 && !el.is(".select2-highlighted")) {
1437
+ var choices = this.findHighlightableChoices();
1438
+ this.highlight(choices.index(el));
1439
+ } else if (el.length == 0) {
1440
+ // if we are over an unselectable item remove al highlights
1441
+ this.results.find(".select2-highlighted").removeClass("select2-highlighted");
1442
+ }
1443
+ },
1444
+
1445
+ // abstract
1446
+ loadMoreIfNeeded: function () {
1447
+ var results = this.results,
1448
+ more = results.find("li.select2-more-results"),
1449
+ below, // pixels the element is below the scroll fold, below==0 is when the element is starting to be visible
1450
+ offset = -1, // index of first element without data
1451
+ page = this.resultsPage + 1,
1452
+ self=this,
1453
+ term=this.search.val(),
1454
+ context=this.context;
1455
+
1456
+ if (more.length === 0) return;
1457
+ below = more.offset().top - results.offset().top - results.height();
1458
+
1459
+ if (below <= this.opts.loadMorePadding) {
1460
+ more.addClass("select2-active");
1461
+ this.opts.query({
1462
+ element: this.opts.element,
1463
+ term: term,
1464
+ page: page,
1465
+ context: context,
1466
+ matcher: this.opts.matcher,
1467
+ callback: this.bind(function (data) {
1468
+
1469
+ // ignore a response if the select2 has been closed before it was received
1470
+ if (!self.opened()) return;
1471
+
1472
+
1473
+ self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context});
1474
+ self.postprocessResults(data, false, false);
1475
+
1476
+ if (data.more===true) {
1477
+ more.detach().appendTo(results).text(self.opts.formatLoadMore(page+1));
1478
+ window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1479
+ } else {
1480
+ more.remove();
1481
+ }
1482
+ self.positionDropdown();
1483
+ self.resultsPage = page;
1484
+ self.context = data.context;
1485
+ })});
1486
+ }
1487
+ },
1488
+
1489
+ /**
1490
+ * Default tokenizer function which does nothing
1491
+ */
1492
+ tokenize: function() {
1493
+
1494
+ },
1495
+
1496
+ /**
1497
+ * @param initial whether or not this is the call to this method right after the dropdown has been opened
1498
+ */
1499
+ // abstract
1500
+ updateResults: function (initial) {
1501
+ var search = this.search,
1502
+ results = this.results,
1503
+ opts = this.opts,
1504
+ data,
1505
+ self = this,
1506
+ input,
1507
+ term = search.val(),
1508
+ lastTerm=$.data(this.container, "select2-last-term");
1509
+
1510
+ // prevent duplicate queries against the same term
1511
+ if (initial !== true && lastTerm && equal(term, lastTerm)) return;
1512
+
1513
+ $.data(this.container, "select2-last-term", term);
1514
+
1515
+ // if the search is currently hidden we do not alter the results
1516
+ if (initial !== true && (this.showSearchInput === false || !this.opened())) {
1517
+ return;
1518
+ }
1519
+
1520
+ function postRender() {
1521
+ search.removeClass("select2-active");
1522
+ self.positionDropdown();
1523
+ }
1524
+
1525
+ function render(html) {
1526
+ results.html(html);
1527
+ postRender();
1528
+ }
1529
+
1530
+ var maxSelSize = this.getMaximumSelectionSize();
1531
+ if (maxSelSize >=1) {
1532
+ data = this.data();
1533
+ if ($.isArray(data) && data.length >= maxSelSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) {
1534
+ render("<li class='select2-selection-limit'>" + opts.formatSelectionTooBig(maxSelSize) + "</li>");
1535
+ return;
1536
+ }
1537
+ }
1538
+
1539
+ if (search.val().length < opts.minimumInputLength) {
1540
+ if (checkFormatter(opts.formatInputTooShort, "formatInputTooShort")) {
1541
+ render("<li class='select2-no-results'>" + opts.formatInputTooShort(search.val(), opts.minimumInputLength) + "</li>");
1542
+ } else {
1543
+ render("");
1544
+ }
1545
+ if (initial && this.showSearch) this.showSearch(true);
1546
+ return;
1547
+ }
1548
+
1549
+ if (opts.maximumInputLength && search.val().length > opts.maximumInputLength) {
1550
+ if (checkFormatter(opts.formatInputTooLong, "formatInputTooLong")) {
1551
+ render("<li class='select2-no-results'>" + opts.formatInputTooLong(search.val(), opts.maximumInputLength) + "</li>");
1552
+ } else {
1553
+ render("");
1554
+ }
1555
+ return;
1556
+ }
1557
+
1558
+ if (opts.formatSearching && this.findHighlightableChoices().length === 0) {
1559
+ render("<li class='select2-searching'>" + opts.formatSearching() + "</li>");
1560
+ }
1561
+
1562
+ search.addClass("select2-active");
1563
+
1564
+ // give the tokenizer a chance to pre-process the input
1565
+ input = this.tokenize();
1566
+ if (input != undefined && input != null) {
1567
+ search.val(input);
1568
+ }
1569
+
1570
+ this.resultsPage = 1;
1571
+
1572
+ opts.query({
1573
+ element: opts.element,
1574
+ term: search.val(),
1575
+ page: this.resultsPage,
1576
+ context: null,
1577
+ matcher: opts.matcher,
1578
+ callback: this.bind(function (data) {
1579
+ var def; // default choice
1580
+
1581
+ // ignore a response if the select2 has been closed before it was received
1582
+ if (!this.opened()) {
1583
+ this.search.removeClass("select2-active");
1584
+ return;
1585
+ }
1586
+
1587
+ // save context, if any
1588
+ this.context = (data.context===undefined) ? null : data.context;
1589
+ // create a default choice and prepend it to the list
1590
+ if (this.opts.createSearchChoice && search.val() !== "") {
1591
+ def = this.opts.createSearchChoice.call(self, search.val(), data.results);
1592
+ if (def !== undefined && def !== null && self.id(def) !== undefined && self.id(def) !== null) {
1593
+ if ($(data.results).filter(
1594
+ function () {
1595
+ return equal(self.id(this), self.id(def));
1596
+ }).length === 0) {
1597
+ data.results.unshift(def);
1598
+ }
1599
+ }
1600
+ }
1601
+
1602
+ if (data.results.length === 0 && checkFormatter(opts.formatNoMatches, "formatNoMatches")) {
1603
+ render("<li class='select2-no-results'>" + opts.formatNoMatches(search.val()) + "</li>");
1604
+ return;
1605
+ }
1606
+
1607
+ results.empty();
1608
+ self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null});
1609
+
1610
+ if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) {
1611
+ results.append("<li class='select2-more-results'>" + self.opts.escapeMarkup(opts.formatLoadMore(this.resultsPage)) + "</li>");
1612
+ window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1613
+ }
1614
+
1615
+ this.postprocessResults(data, initial);
1616
+
1617
+ postRender();
1618
+
1619
+ this.opts.element.trigger({ type: "select2-loaded", items: data });
1620
+ })});
1621
+ },
1622
+
1623
+ // abstract
1624
+ cancel: function () {
1625
+ this.close();
1626
+ },
1627
+
1628
+ // abstract
1629
+ blur: function () {
1630
+ // if selectOnBlur == true, select the currently highlighted option
1631
+ if (this.opts.selectOnBlur)
1632
+ this.selectHighlighted({noFocus: true});
1633
+
1634
+ this.close();
1635
+ this.container.removeClass("select2-container-active");
1636
+ // synonymous to .is(':focus'), which is available in jquery >= 1.6
1637
+ if (this.search[0] === document.activeElement) { this.search.blur(); }
1638
+ this.clearSearch();
1639
+ this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
1640
+ },
1641
+
1642
+ // abstract
1643
+ focusSearch: function () {
1644
+ focus(this.search);
1645
+ },
1646
+
1647
+ // abstract
1648
+ selectHighlighted: function (options) {
1649
+ var index=this.highlight(),
1650
+ highlighted=this.results.find(".select2-highlighted"),
1651
+ data = highlighted.closest('.select2-result').data("select2-data");
1652
+
1653
+ if (data) {
1654
+ this.highlight(index);
1655
+ this.onSelect(data, options);
1656
+ } else if (options && options.noFocus) {
1657
+ this.close();
1658
+ }
1659
+ },
1660
+
1661
+ // abstract
1662
+ getPlaceholder: function () {
1663
+ var placeholderOption;
1664
+ return this.opts.element.attr("placeholder") ||
1665
+ this.opts.element.attr("data-placeholder") || // jquery 1.4 compat
1666
+ this.opts.element.data("placeholder") ||
1667
+ this.opts.placeholder ||
1668
+ ((placeholderOption = this.getPlaceholderOption()) !== undefined ? placeholderOption.text() : undefined);
1669
+ },
1670
+
1671
+ // abstract
1672
+ getPlaceholderOption: function() {
1673
+ if (this.select) {
1674
+ var firstOption = this.select.children().first();
1675
+ if (this.opts.placeholderOption !== undefined ) {
1676
+ //Determine the placeholder option based on the specified placeholderOption setting
1677
+ return (this.opts.placeholderOption === "first" && firstOption) ||
1678
+ (typeof this.opts.placeholderOption === "function" && this.opts.placeholderOption(this.select));
1679
+ } else if (firstOption.text() === "" && firstOption.val() === "") {
1680
+ //No explicit placeholder option specified, use the first if it's blank
1681
+ return firstOption;
1682
+ }
1683
+ }
1684
+ },
1685
+
1686
+ /**
1687
+ * Get the desired width for the container element. This is
1688
+ * derived first from option `width` passed to select2, then
1689
+ * the inline 'style' on the original element, and finally
1690
+ * falls back to the jQuery calculated element width.
1691
+ */
1692
+ // abstract
1693
+ initContainerWidth: function () {
1694
+ function resolveContainerWidth() {
1695
+ var style, attrs, matches, i, l;
1696
+
1697
+ if (this.opts.width === "off") {
1698
+ return null;
1699
+ } else if (this.opts.width === "element"){
1700
+ return this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px';
1701
+ } else if (this.opts.width === "copy" || this.opts.width === "resolve") {
1702
+ // check if there is inline style on the element that contains width
1703
+ style = this.opts.element.attr('style');
1704
+ if (style !== undefined) {
1705
+ attrs = style.split(';');
1706
+ for (i = 0, l = attrs.length; i < l; i = i + 1) {
1707
+ matches = attrs[i].replace(/\s/g, '')
1708
+ .match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);
1709
+ if (matches !== null && matches.length >= 1)
1710
+ return matches[1];
1711
+ }
1712
+ }
1713
+
1714
+ if (this.opts.width === "resolve") {
1715
+ // next check if css('width') can resolve a width that is percent based, this is sometimes possible
1716
+ // when attached to input type=hidden or elements hidden via css
1717
+ style = this.opts.element.css('width');
1718
+ if (style.indexOf("%") > 0) return style;
1719
+
1720
+ // finally, fallback on the calculated width of the element
1721
+ return (this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px');
1722
+ }
1723
+
1724
+ return null;
1725
+ } else if ($.isFunction(this.opts.width)) {
1726
+ return this.opts.width();
1727
+ } else {
1728
+ return this.opts.width;
1729
+ }
1730
+ };
1731
+
1732
+ var width = resolveContainerWidth.call(this);
1733
+ if (width !== null) {
1734
+ this.container.css("width", width);
1735
+ }
1736
+ }
1737
+ });
1738
+
1739
+ SingleSelect2 = clazz(AbstractSelect2, {
1740
+
1741
+ // single
1742
+
1743
+ createContainer: function () {
1744
+ var container = $(document.createElement("div")).attr({
1745
+ "class": "select2-container"
1746
+ }).html([
1747
+ "<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>",
1748
+ " <span class='select2-chosen'>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>",
1749
+ " <span class='select2-arrow'><b></b></span>",
1750
+ "</a>",
1751
+ "<input class='select2-focusser select2-offscreen' type='text'/>",
1752
+ "<div class='select2-drop select2-display-none'>",
1753
+ " <div class='select2-search'>",
1754
+ " <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>",
1755
+ " </div>",
1756
+ " <ul class='select2-results'>",
1757
+ " </ul>",
1758
+ "</div>"].join(""));
1759
+ return container;
1760
+ },
1761
+
1762
+ // single
1763
+ enableInterface: function() {
1764
+ if (this.parent.enableInterface.apply(this, arguments)) {
1765
+ this.focusser.prop("disabled", !this.isInterfaceEnabled());
1766
+ }
1767
+ },
1768
+
1769
+ // single
1770
+ opening: function () {
1771
+ var el, range, len;
1772
+
1773
+ if (this.opts.minimumResultsForSearch >= 0) {
1774
+ this.showSearch(true);
1775
+ }
1776
+
1777
+ this.parent.opening.apply(this, arguments);
1778
+
1779
+ if (this.showSearchInput !== false) {
1780
+ // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range
1781
+ // all other browsers handle this just fine
1782
+
1783
+ this.search.val(this.focusser.val());
1784
+ }
1785
+ this.search.focus();
1786
+ // move the cursor to the end after focussing, otherwise it will be at the beginning and
1787
+ // new text will appear *before* focusser.val()
1788
+ el = this.search.get(0);
1789
+ if (el.createTextRange) {
1790
+ range = el.createTextRange();
1791
+ range.collapse(false);
1792
+ range.select();
1793
+ } else if (el.setSelectionRange) {
1794
+ len = this.search.val().length;
1795
+ el.setSelectionRange(len, len);
1796
+ }
1797
+
1798
+ this.focusser.prop("disabled", true).val("");
1799
+ this.updateResults(true);
1800
+ this.opts.element.trigger($.Event("select2-open"));
1801
+ },
1802
+
1803
+ // single
1804
+ close: function () {
1805
+ if (!this.opened()) return;
1806
+ this.parent.close.apply(this, arguments);
1807
+ this.focusser.removeAttr("disabled");
1808
+ this.focusser.focus();
1809
+ },
1810
+
1811
+ // single
1812
+ focus: function () {
1813
+ if (this.opened()) {
1814
+ this.close();
1815
+ } else {
1816
+ this.focusser.removeAttr("disabled");
1817
+ this.focusser.focus();
1818
+ }
1819
+ },
1820
+
1821
+ // single
1822
+ isFocused: function () {
1823
+ return this.container.hasClass("select2-container-active");
1824
+ },
1825
+
1826
+ // single
1827
+ cancel: function () {
1828
+ this.parent.cancel.apply(this, arguments);
1829
+ this.focusser.removeAttr("disabled");
1830
+ this.focusser.focus();
1831
+ },
1832
+
1833
+ // single
1834
+ initContainer: function () {
1835
+
1836
+ var selection,
1837
+ container = this.container,
1838
+ dropdown = this.dropdown;
1839
+
1840
+ if (this.opts.minimumResultsForSearch < 0) {
1841
+ this.showSearch(false);
1842
+ } else {
1843
+ this.showSearch(true);
1844
+ }
1845
+
1846
+ this.selection = selection = container.find(".select2-choice");
1847
+
1848
+ this.focusser = container.find(".select2-focusser");
1849
+
1850
+ // rewrite labels from original element to focusser
1851
+ this.focusser.attr("id", "s2id_autogen"+nextUid());
1852
+
1853
+ $("label[for='" + this.opts.element.attr("id") + "']")
1854
+ .attr('for', this.focusser.attr('id'));
1855
+
1856
+ this.focusser.attr("tabindex", this.elementTabIndex);
1857
+
1858
+ this.search.on("keydown", this.bind(function (e) {
1859
+ if (!this.isInterfaceEnabled()) return;
1860
+
1861
+ if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
1862
+ // prevent the page from scrolling
1863
+ killEvent(e);
1864
+ return;
1865
+ }
1866
+
1867
+ switch (e.which) {
1868
+ case KEY.UP:
1869
+ case KEY.DOWN:
1870
+ this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
1871
+ killEvent(e);
1872
+ return;
1873
+ case KEY.ENTER:
1874
+ this.selectHighlighted();
1875
+ killEvent(e);
1876
+ return;
1877
+ case KEY.TAB:
1878
+ this.selectHighlighted({noFocus: true});
1879
+ return;
1880
+ case KEY.ESC:
1881
+ this.cancel(e);
1882
+ killEvent(e);
1883
+ return;
1884
+ }
1885
+ }));
1886
+
1887
+ this.search.on("blur", this.bind(function(e) {
1888
+ // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown.
1889
+ // without this the search field loses focus which is annoying
1890
+ if (document.activeElement === this.body().get(0)) {
1891
+ window.setTimeout(this.bind(function() {
1892
+ this.search.focus();
1893
+ }), 0);
1894
+ }
1895
+ }));
1896
+
1897
+ this.focusser.on("keydown", this.bind(function (e) {
1898
+ if (!this.isInterfaceEnabled()) return;
1899
+
1900
+ if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {
1901
+ return;
1902
+ }
1903
+
1904
+ if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {
1905
+ killEvent(e);
1906
+ return;
1907
+ }
1908
+
1909
+ if (e.which == KEY.DOWN || e.which == KEY.UP
1910
+ || (e.which == KEY.ENTER && this.opts.openOnEnter)) {
1911
+
1912
+ if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return;
1913
+
1914
+ this.open();
1915
+ killEvent(e);
1916
+ return;
1917
+ }
1918
+
1919
+ if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) {
1920
+ if (this.opts.allowClear) {
1921
+ this.clear();
1922
+ }
1923
+ killEvent(e);
1924
+ return;
1925
+ }
1926
+ }));
1927
+
1928
+
1929
+ installKeyUpChangeEvent(this.focusser);
1930
+ this.focusser.on("keyup-change input", this.bind(function(e) {
1931
+ if (this.opts.minimumResultsForSearch >= 0) {
1932
+ e.stopPropagation();
1933
+ if (this.opened()) return;
1934
+ this.open();
1935
+ }
1936
+ }));
1937
+
1938
+ selection.on("mousedown", "abbr", this.bind(function (e) {
1939
+ if (!this.isInterfaceEnabled()) return;
1940
+ this.clear();
1941
+ killEventImmediately(e);
1942
+ this.close();
1943
+ this.selection.focus();
1944
+ }));
1945
+
1946
+ selection.on("mousedown", this.bind(function (e) {
1947
+
1948
+ if (!this.container.hasClass("select2-container-active")) {
1949
+ this.opts.element.trigger($.Event("select2-focus"));
1950
+ }
1951
+
1952
+ if (this.opened()) {
1953
+ this.close();
1954
+ } else if (this.isInterfaceEnabled()) {
1955
+ this.open();
1956
+ }
1957
+
1958
+ killEvent(e);
1959
+ }));
1960
+
1961
+ dropdown.on("mousedown", this.bind(function() { this.search.focus(); }));
1962
+
1963
+ selection.on("focus", this.bind(function(e) {
1964
+ killEvent(e);
1965
+ }));
1966
+
1967
+ this.focusser.on("focus", this.bind(function(){
1968
+ if (!this.container.hasClass("select2-container-active")) {
1969
+ this.opts.element.trigger($.Event("select2-focus"));
1970
+ }
1971
+ this.container.addClass("select2-container-active");
1972
+ })).on("blur", this.bind(function() {
1973
+ if (!this.opened()) {
1974
+ this.container.removeClass("select2-container-active");
1975
+ this.opts.element.trigger($.Event("select2-blur"));
1976
+ }
1977
+ }));
1978
+ this.search.on("focus", this.bind(function(){
1979
+ if (!this.container.hasClass("select2-container-active")) {
1980
+ this.opts.element.trigger($.Event("select2-focus"));
1981
+ }
1982
+ this.container.addClass("select2-container-active");
1983
+ }));
1984
+
1985
+ this.initContainerWidth();
1986
+ this.opts.element.addClass("select2-offscreen");
1987
+ this.setPlaceholder();
1988
+
1989
+ },
1990
+
1991
+ // single
1992
+ clear: function(triggerChange) {
1993
+ var data=this.selection.data("select2-data");
1994
+ if (data) { // guard against queued quick consecutive clicks
1995
+ var placeholderOption = this.getPlaceholderOption();
1996
+ this.opts.element.val(placeholderOption ? placeholderOption.val() : "");
1997
+ this.selection.find(".select2-chosen").empty();
1998
+ this.selection.removeData("select2-data");
1999
+ this.setPlaceholder();
2000
+
2001
+ if (triggerChange !== false){
2002
+ this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data });
2003
+ this.triggerChange({removed:data});
2004
+ }
2005
+ }
2006
+ },
2007
+
2008
+ /**
2009
+ * Sets selection based on source element's value
2010
+ */
2011
+ // single
2012
+ initSelection: function () {
2013
+ var selected;
2014
+ if (this.isPlaceholderOptionSelected()) {
2015
+ this.updateSelection([]);
2016
+ this.close();
2017
+ this.setPlaceholder();
2018
+ } else {
2019
+ var self = this;
2020
+ this.opts.initSelection.call(null, this.opts.element, function(selected){
2021
+ if (selected !== undefined && selected !== null) {
2022
+ self.updateSelection(selected);
2023
+ self.close();
2024
+ self.setPlaceholder();
2025
+ }
2026
+ });
2027
+ }
2028
+ },
2029
+
2030
+ isPlaceholderOptionSelected: function() {
2031
+ var placeholderOption;
2032
+ return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.is(':selected')) ||
2033
+ (this.opts.element.val() === "") ||
2034
+ (this.opts.element.val() === undefined) ||
2035
+ (this.opts.element.val() === null);
2036
+ },
2037
+
2038
+ // single
2039
+ prepareOpts: function () {
2040
+ var opts = this.parent.prepareOpts.apply(this, arguments),
2041
+ self=this;
2042
+
2043
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
2044
+ // install the selection initializer
2045
+ opts.initSelection = function (element, callback) {
2046
+ var selected = element.find(":selected");
2047
+ // a single select box always has a value, no need to null check 'selected'
2048
+ callback(self.optionToData(selected));
2049
+ };
2050
+ } else if ("data" in opts) {
2051
+ // install default initSelection when applied to hidden input and data is local
2052
+ opts.initSelection = opts.initSelection || function (element, callback) {
2053
+ var id = element.val();
2054
+ //search in data by id, storing the actual matching item
2055
+ var match = null;
2056
+ opts.query({
2057
+ matcher: function(term, text, el){
2058
+ var is_match = equal(id, opts.id(el));
2059
+ if (is_match) {
2060
+ match = el;
2061
+ }
2062
+ return is_match;
2063
+ },
2064
+ callback: !$.isFunction(callback) ? $.noop : function() {
2065
+ callback(match);
2066
+ }
2067
+ });
2068
+ };
2069
+ }
2070
+
2071
+ return opts;
2072
+ },
2073
+
2074
+ // single
2075
+ getPlaceholder: function() {
2076
+ // if a placeholder is specified on a single select without a valid placeholder option ignore it
2077
+ if (this.select) {
2078
+ if (this.getPlaceholderOption() === undefined) {
2079
+ return undefined;
2080
+ }
2081
+ }
2082
+
2083
+ return this.parent.getPlaceholder.apply(this, arguments);
2084
+ },
2085
+
2086
+ // single
2087
+ setPlaceholder: function () {
2088
+ var placeholder = this.getPlaceholder();
2089
+
2090
+ if (this.isPlaceholderOptionSelected() && placeholder !== undefined) {
2091
+
2092
+ // check for a placeholder option if attached to a select
2093
+ if (this.select && this.getPlaceholderOption() === undefined) return;
2094
+
2095
+ this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder));
2096
+
2097
+ this.selection.addClass("select2-default");
2098
+
2099
+ this.container.removeClass("select2-allowclear");
2100
+ }
2101
+ },
2102
+
2103
+ // single
2104
+ postprocessResults: function (data, initial, noHighlightUpdate) {
2105
+ var selected = 0, self = this, showSearchInput = true;
2106
+
2107
+ // find the selected element in the result list
2108
+
2109
+ this.findHighlightableChoices().each2(function (i, elm) {
2110
+ if (equal(self.id(elm.data("select2-data")), self.opts.element.val())) {
2111
+ selected = i;
2112
+ return false;
2113
+ }
2114
+ });
2115
+
2116
+ // and highlight it
2117
+ if (noHighlightUpdate !== false) {
2118
+ if (initial === true && selected >= 0) {
2119
+ this.highlight(selected);
2120
+ } else {
2121
+ this.highlight(0);
2122
+ }
2123
+ }
2124
+
2125
+ // hide the search box if this is the first we got the results and there are enough of them for search
2126
+
2127
+ if (initial === true) {
2128
+ var min = this.opts.minimumResultsForSearch;
2129
+ if (min >= 0) {
2130
+ this.showSearch(countResults(data.results) >= min);
2131
+ }
2132
+ }
2133
+ },
2134
+
2135
+ // single
2136
+ showSearch: function(showSearchInput) {
2137
+ if (this.showSearchInput === showSearchInput) return;
2138
+
2139
+ this.showSearchInput = showSearchInput;
2140
+
2141
+ this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !showSearchInput);
2142
+ this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !showSearchInput);
2143
+ //add "select2-with-searchbox" to the container if search box is shown
2144
+ $(this.dropdown, this.container).toggleClass("select2-with-searchbox", showSearchInput);
2145
+ },
2146
+
2147
+ // single
2148
+ onSelect: function (data, options) {
2149
+
2150
+ if (!this.triggerSelect(data)) { return; }
2151
+
2152
+ var old = this.opts.element.val(),
2153
+ oldData = this.data();
2154
+
2155
+ this.opts.element.val(this.id(data));
2156
+ this.updateSelection(data);
2157
+
2158
+ this.opts.element.trigger({ type: "select2-selected", val: this.id(data), choice: data });
2159
+
2160
+ this.close();
2161
+
2162
+ if (!options || !options.noFocus)
2163
+ this.selection.focus();
2164
+
2165
+ if (!equal(old, this.id(data))) { this.triggerChange({added:data,removed:oldData}); }
2166
+ },
2167
+
2168
+ // single
2169
+ updateSelection: function (data) {
2170
+
2171
+ var container=this.selection.find(".select2-chosen"), formatted, cssClass;
2172
+
2173
+ this.selection.data("select2-data", data);
2174
+
2175
+ container.empty();
2176
+ formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup);
2177
+ if (formatted !== undefined) {
2178
+ container.append(formatted);
2179
+ }
2180
+ cssClass=this.opts.formatSelectionCssClass(data, container);
2181
+ if (cssClass !== undefined) {
2182
+ container.addClass(cssClass);
2183
+ }
2184
+
2185
+ this.selection.removeClass("select2-default");
2186
+
2187
+ if (this.opts.allowClear && this.getPlaceholder() !== undefined) {
2188
+ this.container.addClass("select2-allowclear");
2189
+ }
2190
+ },
2191
+
2192
+ // single
2193
+ val: function () {
2194
+ var val,
2195
+ triggerChange = false,
2196
+ data = null,
2197
+ self = this,
2198
+ oldData = this.data();
2199
+
2200
+ if (arguments.length === 0) {
2201
+ return this.opts.element.val();
2202
+ }
2203
+
2204
+ val = arguments[0];
2205
+
2206
+ if (arguments.length > 1) {
2207
+ triggerChange = arguments[1];
2208
+ }
2209
+
2210
+ if (this.select) {
2211
+ this.select
2212
+ .val(val)
2213
+ .find(":selected").each2(function (i, elm) {
2214
+ data = self.optionToData(elm);
2215
+ return false;
2216
+ });
2217
+ this.updateSelection(data);
2218
+ this.setPlaceholder();
2219
+ if (triggerChange) {
2220
+ this.triggerChange({added: data, removed:oldData});
2221
+ }
2222
+ } else {
2223
+ // val is an id. !val is true for [undefined,null,'',0] - 0 is legal
2224
+ if (!val && val !== 0) {
2225
+ this.clear(triggerChange);
2226
+ return;
2227
+ }
2228
+ if (this.opts.initSelection === undefined) {
2229
+ throw new Error("cannot call val() if initSelection() is not defined");
2230
+ }
2231
+ this.opts.element.val(val);
2232
+ this.opts.initSelection(this.opts.element, function(data){
2233
+ self.opts.element.val(!data ? "" : self.id(data));
2234
+ self.updateSelection(data);
2235
+ self.setPlaceholder();
2236
+ if (triggerChange) {
2237
+ self.triggerChange({added: data, removed:oldData});
2238
+ }
2239
+ });
2240
+ }
2241
+ },
2242
+
2243
+ // single
2244
+ clearSearch: function () {
2245
+ this.search.val("");
2246
+ this.focusser.val("");
2247
+ },
2248
+
2249
+ // single
2250
+ data: function(value, triggerChange) {
2251
+ var data;
2252
+
2253
+ if (arguments.length === 0) {
2254
+ data = this.selection.data("select2-data");
2255
+ if (data == undefined) data = null;
2256
+ return data;
2257
+ } else {
2258
+ if (!value || value === "") {
2259
+ this.clear(triggerChange);
2260
+ } else {
2261
+ data = this.data();
2262
+ this.opts.element.val(!value ? "" : this.id(value));
2263
+ this.updateSelection(value);
2264
+ if (triggerChange) {
2265
+ this.triggerChange({added: value, removed:data});
2266
+ }
2267
+ }
2268
+ }
2269
+ }
2270
+ });
2271
+
2272
+ MultiSelect2 = clazz(AbstractSelect2, {
2273
+
2274
+ // multi
2275
+ createContainer: function () {
2276
+ var container = $(document.createElement("div")).attr({
2277
+ "class": "select2-container select2-container-multi"
2278
+ }).html([
2279
+ "<ul class='select2-choices'>",
2280
+ " <li class='select2-search-field'>",
2281
+ " <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'>",
2282
+ " </li>",
2283
+ "</ul>",
2284
+ "<div class='select2-drop select2-drop-multi select2-display-none'>",
2285
+ " <ul class='select2-results'>",
2286
+ " </ul>",
2287
+ "</div>"].join(""));
2288
+ return container;
2289
+ },
2290
+
2291
+ // multi
2292
+ prepareOpts: function () {
2293
+ var opts = this.parent.prepareOpts.apply(this, arguments),
2294
+ self=this;
2295
+
2296
+ // TODO validate placeholder is a string if specified
2297
+
2298
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
2299
+ // install sthe selection initializer
2300
+ opts.initSelection = function (element, callback) {
2301
+
2302
+ var data = [];
2303
+
2304
+ element.find(":selected").each2(function (i, elm) {
2305
+ data.push(self.optionToData(elm));
2306
+ });
2307
+ callback(data);
2308
+ };
2309
+ } else if ("data" in opts) {
2310
+ // install default initSelection when applied to hidden input and data is local
2311
+ opts.initSelection = opts.initSelection || function (element, callback) {
2312
+ var ids = splitVal(element.val(), opts.separator);
2313
+ //search in data by array of ids, storing matching items in a list
2314
+ var matches = [];
2315
+ opts.query({
2316
+ matcher: function(term, text, el){
2317
+ var is_match = $.grep(ids, function(id) {
2318
+ return equal(id, opts.id(el));
2319
+ }).length;
2320
+ if (is_match) {
2321
+ matches.push(el);
2322
+ }
2323
+ return is_match;
2324
+ },
2325
+ callback: !$.isFunction(callback) ? $.noop : function() {
2326
+ // reorder matches based on the order they appear in the ids array because right now
2327
+ // they are in the order in which they appear in data array
2328
+ var ordered = [];
2329
+ for (var i = 0; i < ids.length; i++) {
2330
+ var id = ids[i];
2331
+ for (var j = 0; j < matches.length; j++) {
2332
+ var match = matches[j];
2333
+ if (equal(id, opts.id(match))) {
2334
+ ordered.push(match);
2335
+ matches.splice(j, 1);
2336
+ break;
2337
+ }
2338
+ }
2339
+ }
2340
+ callback(ordered);
2341
+ }
2342
+ });
2343
+ };
2344
+ }
2345
+
2346
+ return opts;
2347
+ },
2348
+
2349
+ selectChoice: function (choice) {
2350
+
2351
+ var selected = this.container.find(".select2-search-choice-focus");
2352
+ if (selected.length && choice && choice[0] == selected[0]) {
2353
+
2354
+ } else {
2355
+ if (selected.length) {
2356
+ this.opts.element.trigger("choice-deselected", selected);
2357
+ }
2358
+ selected.removeClass("select2-search-choice-focus");
2359
+ if (choice && choice.length) {
2360
+ this.close();
2361
+ choice.addClass("select2-search-choice-focus");
2362
+ this.opts.element.trigger("choice-selected", choice);
2363
+ }
2364
+ }
2365
+ },
2366
+
2367
+ // multi
2368
+ initContainer: function () {
2369
+
2370
+ var selector = ".select2-choices", selection;
2371
+
2372
+ this.searchContainer = this.container.find(".select2-search-field");
2373
+ this.selection = selection = this.container.find(selector);
2374
+
2375
+ var _this = this;
2376
+ this.selection.on("mousedown", ".select2-search-choice", function (e) {
2377
+ //killEvent(e);
2378
+ _this.search[0].focus();
2379
+ _this.selectChoice($(this));
2380
+ })
2381
+
2382
+ // rewrite labels from original element to focusser
2383
+ this.search.attr("id", "s2id_autogen"+nextUid());
2384
+ $("label[for='" + this.opts.element.attr("id") + "']")
2385
+ .attr('for', this.search.attr('id'));
2386
+
2387
+ this.search.on("input paste", this.bind(function() {
2388
+ if (!this.isInterfaceEnabled()) return;
2389
+ if (!this.opened()) {
2390
+ this.open();
2391
+ }
2392
+ }));
2393
+
2394
+ this.search.attr("tabindex", this.elementTabIndex);
2395
+
2396
+ this.keydowns = 0;
2397
+ this.search.on("keydown", this.bind(function (e) {
2398
+ if (!this.isInterfaceEnabled()) return;
2399
+
2400
+ ++this.keydowns;
2401
+ var selected = selection.find(".select2-search-choice-focus");
2402
+ var prev = selected.prev(".select2-search-choice:not(.select2-locked)");
2403
+ var next = selected.next(".select2-search-choice:not(.select2-locked)");
2404
+ var pos = getCursorInfo(this.search);
2405
+
2406
+ if (selected.length &&
2407
+ (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) {
2408
+ var selectedChoice = selected;
2409
+ if (e.which == KEY.LEFT && prev.length) {
2410
+ selectedChoice = prev;
2411
+ }
2412
+ else if (e.which == KEY.RIGHT) {
2413
+ selectedChoice = next.length ? next : null;
2414
+ }
2415
+ else if (e.which === KEY.BACKSPACE) {
2416
+ this.unselect(selected.first());
2417
+ this.search.width(10);
2418
+ selectedChoice = prev.length ? prev : next;
2419
+ } else if (e.which == KEY.DELETE) {
2420
+ this.unselect(selected.first());
2421
+ this.search.width(10);
2422
+ selectedChoice = next.length ? next : null;
2423
+ } else if (e.which == KEY.ENTER) {
2424
+ selectedChoice = null;
2425
+ }
2426
+
2427
+ this.selectChoice(selectedChoice);
2428
+ killEvent(e);
2429
+ if (!selectedChoice || !selectedChoice.length) {
2430
+ this.open();
2431
+ }
2432
+ return;
2433
+ } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1)
2434
+ || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) {
2435
+
2436
+ this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last());
2437
+ killEvent(e);
2438
+ return;
2439
+ } else {
2440
+ this.selectChoice(null);
2441
+ }
2442
+
2443
+ if (this.opened()) {
2444
+ switch (e.which) {
2445
+ case KEY.UP:
2446
+ case KEY.DOWN:
2447
+ this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
2448
+ killEvent(e);
2449
+ return;
2450
+ case KEY.ENTER:
2451
+ this.selectHighlighted();
2452
+ killEvent(e);
2453
+ return;
2454
+ case KEY.TAB:
2455
+ this.selectHighlighted({noFocus:true});
2456
+ this.close();
2457
+ return;
2458
+ case KEY.ESC:
2459
+ this.cancel(e);
2460
+ killEvent(e);
2461
+ return;
2462
+ }
2463
+ }
2464
+
2465
+ if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)
2466
+ || e.which === KEY.BACKSPACE || e.which === KEY.ESC) {
2467
+ return;
2468
+ }
2469
+
2470
+ if (e.which === KEY.ENTER) {
2471
+ if (this.opts.openOnEnter === false) {
2472
+ return;
2473
+ } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
2474
+ return;
2475
+ }
2476
+ }
2477
+
2478
+ this.open();
2479
+
2480
+ if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
2481
+ // prevent the page from scrolling
2482
+ killEvent(e);
2483
+ }
2484
+
2485
+ if (e.which === KEY.ENTER) {
2486
+ // prevent form from being submitted
2487
+ killEvent(e);
2488
+ }
2489
+
2490
+ }));
2491
+
2492
+ this.search.on("keyup", this.bind(function (e) {
2493
+ this.keydowns = 0;
2494
+ this.resizeSearch();
2495
+ })
2496
+ );
2497
+
2498
+ this.search.on("blur", this.bind(function(e) {
2499
+ this.container.removeClass("select2-container-active");
2500
+ this.search.removeClass("select2-focused");
2501
+ this.selectChoice(null);
2502
+ if (!this.opened()) this.clearSearch();
2503
+ e.stopImmediatePropagation();
2504
+ this.opts.element.trigger($.Event("select2-blur"));
2505
+ }));
2506
+
2507
+ this.container.on("click", selector, this.bind(function (e) {
2508
+ if (!this.isInterfaceEnabled()) return;
2509
+ if ($(e.target).closest(".select2-search-choice").length > 0) {
2510
+ // clicked inside a select2 search choice, do not open
2511
+ return;
2512
+ }
2513
+ this.selectChoice(null);
2514
+ this.clearPlaceholder();
2515
+ if (!this.container.hasClass("select2-container-active")) {
2516
+ this.opts.element.trigger($.Event("select2-focus"));
2517
+ }
2518
+ this.open();
2519
+ this.focusSearch();
2520
+ e.preventDefault();
2521
+ }));
2522
+
2523
+ this.container.on("focus", selector, this.bind(function () {
2524
+ if (!this.isInterfaceEnabled()) return;
2525
+ if (!this.container.hasClass("select2-container-active")) {
2526
+ this.opts.element.trigger($.Event("select2-focus"));
2527
+ }
2528
+ this.container.addClass("select2-container-active");
2529
+ this.dropdown.addClass("select2-drop-active");
2530
+ this.clearPlaceholder();
2531
+ }));
2532
+
2533
+ this.initContainerWidth();
2534
+ this.opts.element.addClass("select2-offscreen");
2535
+
2536
+ // set the placeholder if necessary
2537
+ this.clearSearch();
2538
+ },
2539
+
2540
+ // multi
2541
+ enableInterface: function() {
2542
+ if (this.parent.enableInterface.apply(this, arguments)) {
2543
+ this.search.prop("disabled", !this.isInterfaceEnabled());
2544
+ }
2545
+ },
2546
+
2547
+ // multi
2548
+ initSelection: function () {
2549
+ var data;
2550
+ if (this.opts.element.val() === "" && this.opts.element.text() === "") {
2551
+ this.updateSelection([]);
2552
+ this.close();
2553
+ // set the placeholder if necessary
2554
+ this.clearSearch();
2555
+ }
2556
+ if (this.select || this.opts.element.val() !== "") {
2557
+ var self = this;
2558
+ this.opts.initSelection.call(null, this.opts.element, function(data){
2559
+ if (data !== undefined && data !== null) {
2560
+ self.updateSelection(data);
2561
+ self.close();
2562
+ // set the placeholder if necessary
2563
+ self.clearSearch();
2564
+ }
2565
+ });
2566
+ }
2567
+ },
2568
+
2569
+ // multi
2570
+ clearSearch: function () {
2571
+ var placeholder = this.getPlaceholder(),
2572
+ maxWidth = this.getMaxSearchWidth();
2573
+
2574
+ if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) {
2575
+ this.search.val(placeholder).addClass("select2-default");
2576
+ // stretch the search box to full width of the container so as much of the placeholder is visible as possible
2577
+ // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944
2578
+ this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width"));
2579
+ } else {
2580
+ this.search.val("").width(10);
2581
+ }
2582
+ },
2583
+
2584
+ // multi
2585
+ clearPlaceholder: function () {
2586
+ if (this.search.hasClass("select2-default")) {
2587
+ this.search.val("").removeClass("select2-default");
2588
+ }
2589
+ },
2590
+
2591
+ // multi
2592
+ opening: function () {
2593
+ this.clearPlaceholder(); // should be done before super so placeholder is not used to search
2594
+ this.resizeSearch();
2595
+
2596
+ this.parent.opening.apply(this, arguments);
2597
+
2598
+ this.focusSearch();
2599
+
2600
+ this.updateResults(true);
2601
+ this.search.focus();
2602
+ this.opts.element.trigger($.Event("select2-open"));
2603
+ },
2604
+
2605
+ // multi
2606
+ close: function () {
2607
+ if (!this.opened()) return;
2608
+ this.parent.close.apply(this, arguments);
2609
+ },
2610
+
2611
+ // multi
2612
+ focus: function () {
2613
+ this.close();
2614
+ this.search.focus();
2615
+ },
2616
+
2617
+ // multi
2618
+ isFocused: function () {
2619
+ return this.search.hasClass("select2-focused");
2620
+ },
2621
+
2622
+ // multi
2623
+ updateSelection: function (data) {
2624
+ var ids = [], filtered = [], self = this;
2625
+
2626
+ // filter out duplicates
2627
+ $(data).each(function () {
2628
+ if (indexOf(self.id(this), ids) < 0) {
2629
+ ids.push(self.id(this));
2630
+ filtered.push(this);
2631
+ }
2632
+ });
2633
+ data = filtered;
2634
+
2635
+ this.selection.find(".select2-search-choice").remove();
2636
+ $(data).each(function () {
2637
+ self.addSelectedChoice(this);
2638
+ });
2639
+ self.postprocessResults();
2640
+ },
2641
+
2642
+ // multi
2643
+ tokenize: function() {
2644
+ var input = this.search.val();
2645
+ input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts);
2646
+ if (input != null && input != undefined) {
2647
+ this.search.val(input);
2648
+ if (input.length > 0) {
2649
+ this.open();
2650
+ }
2651
+ }
2652
+
2653
+ },
2654
+
2655
+ // multi
2656
+ onSelect: function (data, options) {
2657
+
2658
+ if (!this.triggerSelect(data)) { return; }
2659
+
2660
+ this.addSelectedChoice(data);
2661
+
2662
+ this.opts.element.trigger({ type: "selected", val: this.id(data), choice: data });
2663
+
2664
+ if (this.select || !this.opts.closeOnSelect) this.postprocessResults();
2665
+
2666
+ if (this.opts.closeOnSelect) {
2667
+ this.close();
2668
+ this.search.width(10);
2669
+ } else {
2670
+ if (this.countSelectableResults()>0) {
2671
+ this.search.width(10);
2672
+ this.resizeSearch();
2673
+ if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) {
2674
+ // if we reached max selection size repaint the results so choices
2675
+ // are replaced with the max selection reached message
2676
+ this.updateResults(true);
2677
+ }
2678
+ this.positionDropdown();
2679
+ } else {
2680
+ // if nothing left to select close
2681
+ this.close();
2682
+ this.search.width(10);
2683
+ }
2684
+ }
2685
+
2686
+ // since its not possible to select an element that has already been
2687
+ // added we do not need to check if this is a new element before firing change
2688
+ this.triggerChange({ added: data });
2689
+
2690
+ if (!options || !options.noFocus)
2691
+ this.focusSearch();
2692
+ },
2693
+
2694
+ // multi
2695
+ cancel: function () {
2696
+ this.close();
2697
+ this.focusSearch();
2698
+ },
2699
+
2700
+ addSelectedChoice: function (data) {
2701
+ var enableChoice = !data.locked,
2702
+ enabledItem = $(
2703
+ "<li class='select2-search-choice'>" +
2704
+ " <div></div>" +
2705
+ " <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a>" +
2706
+ "</li>"),
2707
+ disabledItem = $(
2708
+ "<li class='select2-search-choice select2-locked'>" +
2709
+ "<div></div>" +
2710
+ "</li>");
2711
+ var choice = enableChoice ? enabledItem : disabledItem,
2712
+ id = this.id(data),
2713
+ val = this.getVal(),
2714
+ formatted,
2715
+ cssClass;
2716
+
2717
+ formatted=this.opts.formatSelection(data, choice.find("div"), this.opts.escapeMarkup);
2718
+ if (formatted != undefined) {
2719
+ choice.find("div").replaceWith("<div>"+formatted+"</div>");
2720
+ }
2721
+ cssClass=this.opts.formatSelectionCssClass(data, choice.find("div"));
2722
+ if (cssClass != undefined) {
2723
+ choice.addClass(cssClass);
2724
+ }
2725
+
2726
+ if(enableChoice){
2727
+ choice.find(".select2-search-choice-close")
2728
+ .on("mousedown", killEvent)
2729
+ .on("click dblclick", this.bind(function (e) {
2730
+ if (!this.isInterfaceEnabled()) return;
2731
+
2732
+ $(e.target).closest(".select2-search-choice").fadeOut('fast', this.bind(function(){
2733
+ this.unselect($(e.target));
2734
+ this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
2735
+ this.close();
2736
+ this.focusSearch();
2737
+ })).dequeue();
2738
+ killEvent(e);
2739
+ })).on("focus", this.bind(function () {
2740
+ if (!this.isInterfaceEnabled()) return;
2741
+ this.container.addClass("select2-container-active");
2742
+ this.dropdown.addClass("select2-drop-active");
2743
+ }));
2744
+ }
2745
+
2746
+ choice.data("select2-data", data);
2747
+ choice.insertBefore(this.searchContainer);
2748
+
2749
+ val.push(id);
2750
+ this.setVal(val);
2751
+ },
2752
+
2753
+ // multi
2754
+ unselect: function (selected) {
2755
+ var val = this.getVal(),
2756
+ data,
2757
+ index;
2758
+
2759
+ selected = selected.closest(".select2-search-choice");
2760
+
2761
+ if (selected.length === 0) {
2762
+ throw "Invalid argument: " + selected + ". Must be .select2-search-choice";
2763
+ }
2764
+
2765
+ data = selected.data("select2-data");
2766
+
2767
+ if (!data) {
2768
+ // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued
2769
+ // and invoked on an element already removed
2770
+ return;
2771
+ }
2772
+
2773
+ index = indexOf(this.id(data), val);
2774
+
2775
+ if (index >= 0) {
2776
+ val.splice(index, 1);
2777
+ this.setVal(val);
2778
+ if (this.select) this.postprocessResults();
2779
+ }
2780
+ selected.remove();
2781
+
2782
+ this.opts.element.trigger({ type: "removed", val: this.id(data), choice: data });
2783
+ this.triggerChange({ removed: data });
2784
+ },
2785
+
2786
+ // multi
2787
+ postprocessResults: function (data, initial, noHighlightUpdate) {
2788
+ var val = this.getVal(),
2789
+ choices = this.results.find(".select2-result"),
2790
+ compound = this.results.find(".select2-result-with-children"),
2791
+ self = this;
2792
+
2793
+ choices.each2(function (i, choice) {
2794
+ var id = self.id(choice.data("select2-data"));
2795
+ if (indexOf(id, val) >= 0) {
2796
+ choice.addClass("select2-selected");
2797
+ // mark all children of the selected parent as selected
2798
+ choice.find(".select2-result-selectable").addClass("select2-selected");
2799
+ }
2800
+ });
2801
+
2802
+ compound.each2(function(i, choice) {
2803
+ // hide an optgroup if it doesnt have any selectable children
2804
+ if (!choice.is('.select2-result-selectable')
2805
+ && choice.find(".select2-result-selectable:not(.select2-selected)").length === 0) {
2806
+ choice.addClass("select2-selected");
2807
+ }
2808
+ });
2809
+
2810
+ if (this.highlight() == -1 && noHighlightUpdate !== false){
2811
+ self.highlight(0);
2812
+ }
2813
+
2814
+ //If all results are chosen render formatNoMAtches
2815
+ if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){
2816
+ if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) {
2817
+ if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) {
2818
+ this.results.append("<li class='select2-no-results'>" + self.opts.formatNoMatches(self.search.val()) + "</li>");
2819
+ }
2820
+ }
2821
+ }
2822
+
2823
+ },
2824
+
2825
+ // multi
2826
+ getMaxSearchWidth: function() {
2827
+ return this.selection.width() - getSideBorderPadding(this.search);
2828
+ },
2829
+
2830
+ // multi
2831
+ resizeSearch: function () {
2832
+ var minimumWidth, left, maxWidth, containerLeft, searchWidth,
2833
+ sideBorderPadding = getSideBorderPadding(this.search);
2834
+
2835
+ minimumWidth = measureTextWidth(this.search) + 10;
2836
+
2837
+ left = this.search.offset().left;
2838
+
2839
+ maxWidth = this.selection.width();
2840
+ containerLeft = this.selection.offset().left;
2841
+
2842
+ searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding;
2843
+
2844
+ if (searchWidth < minimumWidth) {
2845
+ searchWidth = maxWidth - sideBorderPadding;
2846
+ }
2847
+
2848
+ if (searchWidth < 40) {
2849
+ searchWidth = maxWidth - sideBorderPadding;
2850
+ }
2851
+
2852
+ if (searchWidth <= 0) {
2853
+ searchWidth = minimumWidth;
2854
+ }
2855
+
2856
+ this.search.width(searchWidth);
2857
+ },
2858
+
2859
+ // multi
2860
+ getVal: function () {
2861
+ var val;
2862
+ if (this.select) {
2863
+ val = this.select.val();
2864
+ return val === null ? [] : val;
2865
+ } else {
2866
+ val = this.opts.element.val();
2867
+ return splitVal(val, this.opts.separator);
2868
+ }
2869
+ },
2870
+
2871
+ // multi
2872
+ setVal: function (val) {
2873
+ var unique;
2874
+ if (this.select) {
2875
+ this.select.val(val);
2876
+ } else {
2877
+ unique = [];
2878
+ // filter out duplicates
2879
+ $(val).each(function () {
2880
+ if (indexOf(this, unique) < 0) unique.push(this);
2881
+ });
2882
+ this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator));
2883
+ }
2884
+ },
2885
+
2886
+ // multi
2887
+ buildChangeDetails: function (old, current) {
2888
+ var current = current.slice(0),
2889
+ old = old.slice(0);
2890
+
2891
+ // remove intersection from each array
2892
+ for (var i = 0; i < current.length; i++) {
2893
+ for (var j = 0; j < old.length; j++) {
2894
+ if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) {
2895
+ current.splice(i, 1);
2896
+ i--;
2897
+ old.splice(j, 1);
2898
+ j--;
2899
+ }
2900
+ }
2901
+ }
2902
+
2903
+ return {added: current, removed: old};
2904
+ },
2905
+
2906
+
2907
+ // multi
2908
+ val: function (val, triggerChange) {
2909
+ var oldData, self=this, changeDetails;
2910
+
2911
+ if (arguments.length === 0) {
2912
+ return this.getVal();
2913
+ }
2914
+
2915
+ oldData=this.data();
2916
+ if (!oldData.length) oldData=[];
2917
+
2918
+ // val is an id. !val is true for [undefined,null,'',0] - 0 is legal
2919
+ if (!val && val !== 0) {
2920
+ this.opts.element.val("");
2921
+ this.updateSelection([]);
2922
+ this.clearSearch();
2923
+ if (triggerChange) {
2924
+ this.triggerChange({added: this.data(), removed: oldData});
2925
+ }
2926
+ return;
2927
+ }
2928
+
2929
+ // val is a list of ids
2930
+ this.setVal(val);
2931
+
2932
+ if (this.select) {
2933
+ this.opts.initSelection(this.select, this.bind(this.updateSelection));
2934
+ if (triggerChange) {
2935
+ this.triggerChange(this.buildChangeDetails(oldData, this.data()));
2936
+ }
2937
+ } else {
2938
+ if (this.opts.initSelection === undefined) {
2939
+ throw new Error("val() cannot be called if initSelection() is not defined");
2940
+ }
2941
+
2942
+ this.opts.initSelection(this.opts.element, function(data){
2943
+ var ids=$.map(data, self.id);
2944
+ self.setVal(ids);
2945
+ self.updateSelection(data);
2946
+ self.clearSearch();
2947
+ if (triggerChange) {
2948
+ self.triggerChange(this.buildChangeDetails(oldData, this.data()));
2949
+ }
2950
+ });
2951
+ }
2952
+ this.clearSearch();
2953
+ },
2954
+
2955
+ // multi
2956
+ onSortStart: function() {
2957
+ if (this.select) {
2958
+ throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");
2959
+ }
2960
+
2961
+ // collapse search field into 0 width so its container can be collapsed as well
2962
+ this.search.width(0);
2963
+ // hide the container
2964
+ this.searchContainer.hide();
2965
+ },
2966
+
2967
+ // multi
2968
+ onSortEnd:function() {
2969
+
2970
+ var val=[], self=this;
2971
+
2972
+ // show search and move it to the end of the list
2973
+ this.searchContainer.show();
2974
+ // make sure the search container is the last item in the list
2975
+ this.searchContainer.appendTo(this.searchContainer.parent());
2976
+ // since we collapsed the width in dragStarted, we resize it here
2977
+ this.resizeSearch();
2978
+
2979
+ // update selection
2980
+ this.selection.find(".select2-search-choice").each(function() {
2981
+ val.push(self.opts.id($(this).data("select2-data")));
2982
+ });
2983
+ this.setVal(val);
2984
+ this.triggerChange();
2985
+ },
2986
+
2987
+ // multi
2988
+ data: function(values, triggerChange) {
2989
+ var self=this, ids, old;
2990
+ if (arguments.length === 0) {
2991
+ return this.selection
2992
+ .find(".select2-search-choice")
2993
+ .map(function() { return $(this).data("select2-data"); })
2994
+ .get();
2995
+ } else {
2996
+ old = this.data();
2997
+ if (!values) { values = []; }
2998
+ ids = $.map(values, function(e) { return self.opts.id(e); });
2999
+ this.setVal(ids);
3000
+ this.updateSelection(values);
3001
+ this.clearSearch();
3002
+ if (triggerChange) {
3003
+ this.triggerChange(this.buildChangeDetails(old, this.data()));
3004
+ }
3005
+ }
3006
+ }
3007
+ });
3008
+
3009
+ $.fn.select2 = function () {
3010
+
3011
+ var args = Array.prototype.slice.call(arguments, 0),
3012
+ opts,
3013
+ select2,
3014
+ method, value, multiple,
3015
+ allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "readonly", "positionDropdown", "data", "search"],
3016
+ valueMethods = ["val", "opened", "isFocused", "container", "data"],
3017
+ methodsMap = { search: "externalSearch" };
3018
+
3019
+ this.each(function () {
3020
+ if (args.length === 0 || typeof(args[0]) === "object") {
3021
+ opts = args.length === 0 ? {} : $.extend({}, args[0]);
3022
+ opts.element = $(this);
3023
+
3024
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
3025
+ multiple = opts.element.prop("multiple");
3026
+ } else {
3027
+ multiple = opts.multiple || false;
3028
+ if ("tags" in opts) {opts.multiple = multiple = true;}
3029
+ }
3030
+
3031
+ select2 = multiple ? new MultiSelect2() : new SingleSelect2();
3032
+ select2.init(opts);
3033
+ } else if (typeof(args[0]) === "string") {
3034
+
3035
+ if (indexOf(args[0], allowedMethods) < 0) {
3036
+ throw "Unknown method: " + args[0];
3037
+ }
3038
+
3039
+ value = undefined;
3040
+ select2 = $(this).data("select2");
3041
+ if (select2 === undefined) return;
3042
+
3043
+ method=args[0];
3044
+
3045
+ if (method === "container") {
3046
+ value = select2.container;
3047
+ } else if (method === "dropdown") {
3048
+ value = select2.dropdown;
3049
+ } else {
3050
+ if (methodsMap[method]) method = methodsMap[method];
3051
+
3052
+ value = select2[method].apply(select2, args.slice(1));
3053
+ }
3054
+ if (indexOf(args[0], valueMethods) >= 0) {
3055
+ return false;
3056
+ }
3057
+ } else {
3058
+ throw "Invalid arguments to select2 plugin: " + args;
3059
+ }
3060
+ });
3061
+ return (value === undefined) ? this : value;
3062
+ };
3063
+
3064
+ // plugin defaults, accessible to users
3065
+ $.fn.select2.defaults = {
3066
+ width: "copy",
3067
+ loadMorePadding: 0,
3068
+ closeOnSelect: true,
3069
+ openOnEnter: true,
3070
+ containerCss: {},
3071
+ dropdownCss: {},
3072
+ containerCssClass: "",
3073
+ dropdownCssClass: "",
3074
+ formatResult: function(result, container, query, escapeMarkup) {
3075
+ var markup=[];
3076
+ markMatch(result.text, query.term, markup, escapeMarkup);
3077
+ return markup.join("");
3078
+ },
3079
+ formatSelection: function (data, container, escapeMarkup) {
3080
+ return data ? escapeMarkup(data.text) : undefined;
3081
+ },
3082
+ sortResults: function (results, container, query) {
3083
+ return results;
3084
+ },
3085
+ formatResultCssClass: function(data) {return undefined;},
3086
+ formatSelectionCssClass: function(data, container) {return undefined;},
3087
+ formatNoMatches: function () { return "No matches found"; },
3088
+ formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1? "" : "s"); },
3089
+ formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1? "" : "s"); },
3090
+ formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
3091
+ formatLoadMore: function (pageNumber) { return "Loading more results..."; },
3092
+ formatSearching: function () { return "Searching..."; },
3093
+ minimumResultsForSearch: 0,
3094
+ minimumInputLength: 0,
3095
+ maximumInputLength: null,
3096
+ maximumSelectionSize: 0,
3097
+ id: function (e) { return e.id; },
3098
+ matcher: function(term, text) {
3099
+ return (''+text).toUpperCase().indexOf((''+term).toUpperCase()) >= 0;
3100
+ },
3101
+ separator: ",",
3102
+ tokenSeparators: [],
3103
+ tokenizer: defaultTokenizer,
3104
+ escapeMarkup: defaultEscapeMarkup,
3105
+ blurOnChange: false,
3106
+ selectOnBlur: false,
3107
+ adaptContainerCssClass: function(c) { return c; },
3108
+ adaptDropdownCssClass: function(c) { return null; }
3109
+ };
3110
+
3111
+ $.fn.select2.ajaxDefaults = {
3112
+ transport: $.ajax,
3113
+ params: {
3114
+ type: "GET",
3115
+ cache: false,
3116
+ dataType: "json"
3117
+ }
3118
+ };
3119
+
3120
+ // exports
3121
+ window.Select2 = {
3122
+ query: {
3123
+ ajax: ajax,
3124
+ local: local,
3125
+ tags: tags
3126
+ }, util: {
3127
+ debounce: debounce,
3128
+ markMatch: markMatch,
3129
+ escapeMarkup: defaultEscapeMarkup
3130
+ }, "class": {
3131
+ "abstract": AbstractSelect2,
3132
+ "single": SingleSelect2,
3133
+ "multi": MultiSelect2
3134
+ }
3135
+ };
3136
+
3137
+ }(jQuery));
shared/assets/js/admin/select2.min.js CHANGED
@@ -1,22 +1,22 @@
1
- /*
2
- Copyright 2012 Igor Vaynberg
3
-
4
- Version: 3.4.1 Timestamp: Thu Jun 27 18:02:10 PDT 2013
5
-
6
- This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
7
- General Public License version 2 (the "GPL License"). You may choose either license to govern your
8
- use of this software only upon the condition that you accept all of the terms of either the Apache
9
- License or the GPL License.
10
-
11
- You may obtain a copy of the Apache License and the GPL License at:
12
-
13
- http://www.apache.org/licenses/LICENSE-2.0
14
- http://www.gnu.org/licenses/gpl-2.0.html
15
-
16
- Unless required by applicable law or agreed to in writing, software distributed under the Apache License
17
- or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
18
- either express or implied. See the Apache License and the GPL License for the specific language governing
19
- permissions and limitations under the Apache License and the GPL License.
20
- */
21
- (function(a){a.fn.each2===void 0&&a.fn.extend({each2:function(b){for(var c=a([0]),d=-1,e=this.length;e>++d&&(c.context=c[0]=this[d])&&b.call(c[0],d,c)!==!1;);return this}})})(jQuery),function(a,b){"use strict";function m(a,b){for(var c=0,d=b.length;d>c;c+=1)if(o(a,b[c]))return c;return-1}function n(){var b=a(l);b.appendTo("body");var c={width:b.width()-b[0].clientWidth,height:b.height()-b[0].clientHeight};return b.remove(),c}function o(a,c){return a===c?!0:a===b||c===b?!1:null===a||null===c?!1:a.constructor===String?a+""==c+"":c.constructor===String?c+""==a+"":!1}function p(b,c){var d,e,f;if(null===b||1>b.length)return[];for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d}function q(a){return a.outerWidth(!1)-a.width()}function r(c){var d="keyup-change-value";c.on("keydown",function(){a.data(c,d)===b&&a.data(c,d,c.val())}),c.on("keyup",function(){var e=a.data(c,d);e!==b&&c.val()!==e&&(a.removeData(c,d),c.trigger("keyup-change"))})}function s(c){c.on("mousemove",function(c){var d=i;(d===b||d.x!==c.pageX||d.y!==c.pageY)&&a(c.target).trigger("mousemove-filtered",c)})}function t(a,c,d){d=d||b;var e;return function(){var b=arguments;window.clearTimeout(e),e=window.setTimeout(function(){c.apply(d,b)},a)}}function u(a){var c,b=!1;return function(){return b===!1&&(c=a(),b=!0),c}}function v(a,b){var c=t(a,function(a){b.trigger("scroll-debounced",a)});b.on("scroll",function(a){m(a.target,b.get())>=0&&c(a)})}function w(a){a[0]!==document.activeElement&&window.setTimeout(function(){var d,b=a[0],c=a.val().length;a.focus(),a.is(":visible")&&b===document.activeElement&&(b.setSelectionRange?b.setSelectionRange(c,c):b.createTextRange&&(d=b.createTextRange(),d.collapse(!1),d.select()))},0)}function x(b){b=a(b)[0];var c=0,d=0;if("selectionStart"in b)c=b.selectionStart,d=b.selectionEnd-c;else if("selection"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart("character",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function y(a){a.preventDefault(),a.stopPropagation()}function z(a){a.preventDefault(),a.stopImmediatePropagation()}function A(b){if(!h){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);h=a(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),h.attr("class","select2-sizer"),a("body").append(h)}return h.text(b.val()),h.width()}function B(b,c,d){var e,g,f=[];e=b.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0===this.indexOf("select2-")&&f.push(this)})),e=c.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0!==this.indexOf("select2-")&&(g=d(this),g&&f.push(this))})),b.attr("class",f.join(" "))}function C(a,c,d,e){var f=a.toUpperCase().indexOf(c.toUpperCase()),g=c.length;return 0>f?(d.push(e(a)),b):(d.push(e(a.substring(0,f))),d.push("<span class='select2-match'>"),d.push(e(a.substring(f,f+g))),d.push("</span>"),d.push(e(a.substring(f+g,a.length))),b)}function D(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return(a+"").replace(/[&<>"'\/\\]/g,function(a){return b[a]})}function E(c){var d,e=0,f=null,g=c.quietMillis||100,h=c.url,i=this;return function(j){window.clearTimeout(d),d=window.setTimeout(function(){e+=1;var d=e,g=c.data,k=h,l=c.transport||a.fn.select2.ajaxDefaults.transport,m={type:c.type||"GET",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||"json"},n=a.extend({},a.fn.select2.ajaxDefaults.params,m);g=g?g.call(i,j.term,j.page,j.context):null,k="function"==typeof k?k.call(i,j.term,j.page,j.context):k,f&&f.abort(),c.params&&(a.isFunction(c.params)?a.extend(n,c.params.call(i)):a.extend(n,c.params)),a.extend(n,{url:k,dataType:c.dataType,data:g,success:function(a){if(!(e>d)){var b=c.results(a,j.page);j.callback(b)}}}),f=l.call(i,n)},g)}}function F(c){var e,f,d=c,g=function(a){return""+a.text};a.isArray(d)&&(f=d,d={results:f}),a.isFunction(d)===!1&&(f=d,d=function(){return f});var h=d();return h.text&&(g=h.text,a.isFunction(g)||(e=h.text,g=function(a){return a[e]})),function(c){var h,e=c.term,f={results:[]};return""===e?(c.callback(d()),b):(h=function(b,d){var f,i;if(b=b[0],b.children){f={};for(i in b)b.hasOwnProperty(i)&&(f[i]=b[i]);f.children=[],a(b.children).each2(function(a,b){h(b,f.children)}),(f.children.length||c.matcher(e,g(f),b))&&d.push(f)}else c.matcher(e,g(b),b)&&d.push(b)},a(d().results).each2(function(a,b){h(b,f.results)}),c.callback(f),b)}}function G(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]};a(d?c():c).each(function(){var a=this.text!==b,c=a?this.text:this;(""===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g)}}function H(b,c){if(a.isFunction(b))return!0;if(!b)return!1;throw Error(c+" must be a function or a falsy value")}function I(b){return a.isFunction(b)?b():b}function J(b){var c=0;return a.each(b,function(a,b){b.children?c+=J(b.children):c++}),c}function K(a,c,d,e){var h,i,j,k,l,f=a,g=!1;if(!e.createSearchChoice||!e.tokenSeparators||1>e.tokenSeparators.length)return b;for(;;){for(i=-1,j=0,k=e.tokenSeparators.length;k>j&&(l=e.tokenSeparators[j],i=a.indexOf(l),!(i>=0));j++);if(0>i)break;if(h=a.substring(0,i),a=a.substring(i+l.length),h.length>0&&(h=e.createSearchChoice.call(this,h,c),h!==b&&null!==h&&e.id(h)!==b&&null!==e.id(h))){for(g=!1,j=0,k=c.length;k>j;j++)if(o(e.id(h),e.id(c[j]))){g=!0;break}g||d(h)}}return f!==a?a:b}function L(b,c){var d=function(){};return d.prototype=new b,d.prototype.constructor=d,d.prototype.parent=b.prototype,d.prototype=a.extend(d.prototype,c),d}if(window.Select2===b){var c,d,e,f,g,h,j,k,i={x:0,y:0},c={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){switch(a=a.which?a.which:a){case c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case c.SHIFT:case c.CTRL:case c.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},l="<div class='select2-measure-scrollbar'></div>";j=a(document),g=function(){var a=1;return function(){return a++}}(),j.on("mousemove",function(a){i.x=a.pageX,i.y=a.pageY}),d=L(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,h,i,f=".select2-results";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data("select2")!==b&&null!==c.element.data("select2")&&c.element.data("select2").destroy(),this.container=this.createContainer(),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+g()),this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"),this.container.attr("id",this.containerId),this.body=u(function(){return c.element.closest("body")}),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.css(I(c.containerCss)),this.container.addClass(I(c.containerCssClass)),this.elementTabIndex=this.opts.element.attr("tabindex"),this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container),this.container.data("select2",this),this.dropdown=this.container.find(".select2-drop"),this.dropdown.addClass(I(c.dropdownCssClass)),this.dropdown.data("select2",this),this.results=d=this.container.find(f),this.search=e=this.container.find("input.select2-input"),this.resultsPage=0,this.context=null,this.initContainer(),s(this.results),this.dropdown.on("mousemove-filtered touchstart touchmove touchend",f,this.bind(this.highlightUnderEvent)),v(80,this.results),this.dropdown.on("scroll-debounced",f,this.bind(this.loadMoreIfNeeded)),a(this.container).on("change",".select2-input",function(a){a.stopPropagation()}),a(this.dropdown).on("change",".select2-input",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&0>=f-e?(d.scrollTop(0),y(a)):0>e&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),y(a))}),r(e),e.on("keyup-change input paste",this.bind(this.updateResults)),e.on("focus",function(){e.addClass("select2-focused")}),e.on("blur",function(){e.removeClass("select2-focused")}),this.dropdown.on("mouseup",f,this.bind(function(b){a(b.target).closest(".select2-result-selectable").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on("click mouseup mousedown",function(a){a.stopPropagation()}),a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr("maxlength",c.maximumInputLength);var h=c.element.prop("disabled");h===b&&(h=!1),this.enable(!h);var i=c.element.prop("readonly");i===b&&(i=!1),this.readonly(i),k=k||n(),this.autofocus=c.element.prop("autofocus"),c.element.prop("autofocus",!1),this.autofocus&&this.focus()},destroy:function(){var a=this.opts.element,c=a.data("select2");this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),c!==b&&(c.container.remove(),c.dropdown.remove(),a.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus",this.autofocus||!1),this.elementTabIndex?a.attr({tabindex:this.elementTabIndex}):a.removeAttr("tabindex"),a.show())},optionToData:function(a){return a.is("option")?{id:a.prop("value"),text:a.text(),element:a.get(),css:a.attr("class"),disabled:a.prop("disabled"),locked:o(a.attr("locked"),"locked")||o(a.data("locked"),!0)}:a.is("optgroup")?{text:a.attr("label"),children:[],element:a.get(),css:a.attr("class")}:b},prepareOpts:function(c){var d,e,f,g,h=this;if(d=c.element,"select"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in c)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.")}),c=a.extend({},{populateResults:function(d,e,f){var g,l=this.opts.id;g=function(d,e,i){var j,k,m,n,o,p,q,r,s,t;for(d=c.sortResults(d,e,f),j=0,k=d.length;k>j;j+=1)m=d[j],o=m.disabled===!0,n=!o&&l(m)!==b,p=m.children&&m.children.length>0,q=a("<li></li>"),q.addClass("select2-results-dept-"+i),q.addClass("select2-result"),q.addClass(n?"select2-result-selectable":"select2-result-unselectable"),o&&q.addClass("select2-disabled"),p&&q.addClass("select2-result-with-children"),q.addClass(h.opts.formatResultCssClass(m)),r=a(document.createElement("div")),r.addClass("select2-result-label"),t=c.formatResult(m,r,f,h.opts.escapeMarkup),t!==b&&r.html(t),q.append(r),p&&(s=a("<ul></ul>"),s.addClass("select2-result-sub"),g(m.children,s,i+1),q.append(s)),q.data("select2-data",m),e.append(q)},g(e,d,0)}},a.fn.select2.defaults,c),"function"!=typeof c.id&&(f=c.id,c.id=function(a){return a[f]}),a.isArray(c.element.data("select2Tags"))){if("tags"in c)throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+c.element.attr("id");c.tags=c.element.data("select2Tags")}if(e?(c.query=this.bind(function(a){var f,g,i,c={results:[],more:!1},e=a.term;i=function(b,c){var d;b.is("option")?a.matcher(e,b.text(),b)&&c.push(h.optionToData(b)):b.is("optgroup")&&(d=h.optionToData(b),b.children().each2(function(a,b){i(b,d.children)}),d.children.length>0&&c.push(d))},f=d.children(),this.getPlaceholder()!==b&&f.length>0&&(g=this.getPlaceholderOption(),g&&(f=f.not(g))),f.each2(function(a,b){i(b,c.results)}),a.callback(c)}),c.id=function(a){return a.id},c.formatResultCssClass=function(a){return a.css}):"query"in c||("ajax"in c?(g=c.element.data("ajax-url"),g&&g.length>0&&(c.ajax.url=g),c.query=E.call(c.element,c.ajax)):"data"in c?c.query=F(c.data):"tags"in c&&(c.query=G(c.tags),c.createSearchChoice===b&&(c.createSearchChoice=function(a){return{id:a,text:a}}),c.initSelection===b&&(c.initSelection=function(d,e){var f=[];a(p(d.val(),c.separator)).each(function(){var d=this,e=this,g=c.tags;a.isFunction(g)&&(g=g()),a(g).each(function(){return o(this.id,d)?(e=this.text,!1):b}),f.push({id:d,text:e})}),e(f)}))),"function"!=typeof c.query)throw"query function not defined for Select2 "+c.element.attr("id");return c},monitorSource:function(){var c,a=this.opts.element;a.on("change.select2",this.bind(function(){this.opts.element.data("select2-change-triggered")!==!0&&this.initSelection()})),c=this.bind(function(){var d,f=a.prop("disabled");f===b&&(f=!1),this.enable(!f);var d=a.prop("readonly");d===b&&(d=!1),this.readonly(d),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.addClass(I(this.opts.containerCssClass)),B(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(I(this.opts.dropdownCssClass))}),a.on("propertychange.select2 DOMAttrModified.select2",c),this.mutationCallback===b&&(this.mutationCallback=function(a){a.forEach(c)}),"undefined"!=typeof WebKitMutationObserver&&(this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),this.propertyObserver=new WebKitMutationObserver(this.mutationCallback),this.propertyObserver.observe(a.get(0),{attributes:!0,subtree:!1}))},triggerSelect:function(b){var c=a.Event("select2-selecting",{val:this.id(b),object:b});return this.opts.element.trigger(c),!c.isDefaultPrevented()},triggerChange:function(b){b=b||{},b=a.extend({},b,{type:"change",val:this.val()}),this.opts.element.data("select2-change-triggered",!0),this.opts.element.trigger(b),this.opts.element.data("select2-change-triggered",!1),this.opts.element.click(),this.opts.blurOnChange&&this.opts.element.blur()},isInterfaceEnabled:function(){return this.enabledInterface===!0},enableInterface:function(){var a=this._enabled&&!this._readonly,b=!a;return a===this.enabledInterface?!1:(this.container.toggleClass("select2-container-disabled",b),this.close(),this.enabledInterface=a,!0)},enable:function(a){return a===b&&(a=!0),this._enabled===a?!1:(this._enabled=a,this.opts.element.prop("disabled",!a),this.enableInterface(),!0)},readonly:function(a){return a===b&&(a=!1),this._readonly===a?!1:(this._readonly=a,this.opts.element.prop("readonly",a),this.enableInterface(),!0)},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var q,r,s,t,b=this.dropdown,c=this.container.offset(),d=this.container.outerHeight(!1),e=this.container.outerWidth(!1),f=b.outerHeight(!1),g=a(window).scrollLeft()+a(window).width(),h=a(window).scrollTop()+a(window).height(),i=c.top+d,j=c.left,l=h>=i+f,m=c.top-f>=this.body().scrollTop(),n=b.outerWidth(!1),o=g>=j+n,p=b.hasClass("select2-drop-above");this.opts.dropdownAutoWidth?(t=a(".select2-results",b)[0],b.addClass("select2-drop-auto-width"),b.css("width",""),n=b.outerWidth(!1)+(t.scrollHeight===t.clientHeight?0:k.width),n>e?e=n:n=e,o=g>=j+n):this.container.removeClass("select2-drop-auto-width"),"static"!==this.body().css("position")&&(q=this.body().offset(),i-=q.top,j-=q.left),p?(r=!0,!m&&l&&(r=!1)):(r=!1,!l&&m&&(r=!0)),o||(j=c.left+e-n),r?(i=c.top-f,this.container.addClass("select2-drop-above"),b.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),b.removeClass("select2-drop-above")),s=a.extend({top:i,left:j,width:e},I(this.opts.dropdownCss)),b.css(s)},shouldOpen:function(){var b;return this.opened()?!1:this._enabled===!1||this._readonly===!0?!1:(b=a.Event("select2-opening"),this.opts.element.trigger(b),!b.isDefaultPrevented())},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above")},open:function(){return this.shouldOpen()?(this.opening(),!0):!1},opening:function(){function i(){return{width:Math.max(document.documentElement.scrollWidth,a(window).width()),height:Math.max(document.documentElement.scrollHeight,a(window).height())}}var f,g,b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.addClass("select2-dropdown-open").addClass("select2-container-active"),this.clearDropdownAlignmentPreference(),this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body()),f=a("#select2-drop-mask"),0==f.length&&(f=a(document.createElement("div")),f.attr("id","select2-drop-mask").attr("class","select2-drop-mask"),f.hide(),f.appendTo(this.body()),f.on("mousedown touchstart click",function(b){var d,c=a("#select2-drop");c.length>0&&(d=c.data("select2"),d.opts.selectOnBlur&&d.selectHighlighted({noFocus:!0}),d.close(),b.preventDefault(),b.stopPropagation())})),this.dropdown.prev()[0]!==f[0]&&this.dropdown.before(f),a("#select2-drop").removeAttr("id"),this.dropdown.attr("id","select2-drop"),g=i(),f.css(g).show(),this.dropdown.show(),this.positionDropdown(),this.dropdown.addClass("select2-drop-active");var h=this;this.container.parents().add(window).each(function(){a(this).on(d+" "+c+" "+e,function(){var c=i();a("#select2-drop-mask").css(c),h.positionDropdown()})})},close:function(){if(this.opened()){var b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.parents().add(window).each(function(){a(this).off(c).off(d).off(e)}),this.clearDropdownAlignmentPreference(),a("#select2-drop-mask").hide(),this.dropdown.removeAttr("id"),this.dropdown.hide(),this.container.removeClass("select2-dropdown-open"),this.results.empty(),this.clearSearch(),this.search.removeClass("select2-active"),this.opts.element.trigger(a.Event("select2-close"))}},externalSearch:function(a){this.open(),this.search.val(a),this.updateResults(!1)},clearSearch:function(){},getMaximumSelectionSize:function(){return I(this.opts.maximumSelectionSize)},ensureHighlightVisible:function(){var d,e,f,g,h,i,j,c=this.results;if(e=this.highlight(),!(0>e)){if(0==e)return c.scrollTop(0),b;d=this.findHighlightableChoices().find(".select2-result-label"),f=a(d[e]),g=f.offset().top+f.outerHeight(!0),e===d.length-1&&(j=c.find("li.select2-more-results"),j.length>0&&(g=j.offset().top+j.outerHeight(!0))),h=c.offset().top+c.outerHeight(!0),g>h&&c.scrollTop(c.scrollTop()+(g-h)),i=f.offset().top-c.offset().top,0>i&&"none"!=f.css("display")&&c.scrollTop(c.scrollTop()+i)}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)")},moveHighlight:function(b){for(var c=this.findHighlightableChoices(),d=this.highlight();d>-1&&c.length>d;){d+=b;var e=a(c[d]);if(e.hasClass("select2-result-selectable")&&!e.hasClass("select2-disabled")&&!e.hasClass("select2-selected")){this.highlight(d);break}}},highlight:function(c){var e,f,d=this.findHighlightableChoices();return 0===arguments.length?m(d.filter(".select2-highlighted")[0],d.get()):(c>=d.length&&(c=d.length-1),0>c&&(c=0),this.results.find(".select2-highlighted").removeClass("select2-highlighted"),e=a(d[c]),e.addClass("select2-highlighted"),this.ensureHighlightVisible(),f=e.data("select2-data"),f&&this.opts.element.trigger({type:"select2-highlight",val:this.id(f),choice:f}),b)},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(b){var c=a(b.target).closest(".select2-result-selectable");if(c.length>0&&!c.is(".select2-highlighted")){var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var c,a=this.results,b=a.find("li.select2-more-results"),e=this.resultsPage+1,f=this,g=this.search.val(),h=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-a.height(),this.opts.loadMorePadding>=c&&(b.addClass("select2-active"),this.opts.query({element:this.opts.element,term:g,page:e,context:h,matcher:this.opts.matcher,callback:this.bind(function(c){f.opened()&&(f.opts.populateResults.call(this,a,c.results,{term:g,page:e,context:h}),f.postprocessResults(c,!1,!1),c.more===!0?(b.detach().appendTo(a).text(f.opts.formatLoadMore(e+1)),window.setTimeout(function(){f.loadMoreIfNeeded()},10)):b.remove(),f.positionDropdown(),f.resultsPage=e,f.context=c.context)})})))},tokenize:function(){},updateResults:function(c){function l(){d.removeClass("select2-active"),h.positionDropdown()}function m(a){e.html(a),l()}var g,i,d=this.search,e=this.results,f=this.opts,h=this,j=d.val(),k=a.data(this.container,"select2-last-term");if((c===!0||!k||!o(j,k))&&(a.data(this.container,"select2-last-term",j),c===!0||this.showSearchInput!==!1&&this.opened())){var n=this.getMaximumSelectionSize();if(n>=1&&(g=this.data(),a.isArray(g)&&g.length>=n&&H(f.formatSelectionTooBig,"formatSelectionTooBig")))return m("<li class='select2-selection-limit'>"+f.formatSelectionTooBig(n)+"</li>"),b;if(d.val().length<f.minimumInputLength)return H(f.formatInputTooShort,"formatInputTooShort")?m("<li class='select2-no-results'>"+f.formatInputTooShort(d.val(),f.minimumInputLength)+"</li>"):m(""),c&&this.showSearch&&this.showSearch(!0),b;if(f.maximumInputLength&&d.val().length>f.maximumInputLength)return H(f.formatInputTooLong,"formatInputTooLong")?m("<li class='select2-no-results'>"+f.formatInputTooLong(d.val(),f.maximumInputLength)+"</li>"):m(""),b;f.formatSearching&&0===this.findHighlightableChoices().length&&m("<li class='select2-searching'>"+f.formatSearching()+"</li>"),d.addClass("select2-active"),i=this.tokenize(),i!=b&&null!=i&&d.val(i),this.resultsPage=1,f.query({element:f.element,term:d.val(),page:this.resultsPage,context:null,matcher:f.matcher,callback:this.bind(function(g){var i;return this.opened()?(this.context=g.context===b?null:g.context,this.opts.createSearchChoice&&""!==d.val()&&(i=this.opts.createSearchChoice.call(h,d.val(),g.results),i!==b&&null!==i&&h.id(i)!==b&&null!==h.id(i)&&0===a(g.results).filter(function(){return o(h.id(this),h.id(i))}).length&&g.results.unshift(i)),0===g.results.length&&H(f.formatNoMatches,"formatNoMatches")?(m("<li class='select2-no-results'>"+f.formatNoMatches(d.val())+"</li>"),b):(e.empty(),h.opts.populateResults.call(this,e,g.results,{term:d.val(),page:this.resultsPage,context:null}),g.more===!0&&H(f.formatLoadMore,"formatLoadMore")&&(e.append("<li class='select2-more-results'>"+h.opts.escapeMarkup(f.formatLoadMore(this.resultsPage))+"</li>"),window.setTimeout(function(){h.loadMoreIfNeeded()},10)),this.postprocessResults(g,c),l(),this.opts.element.trigger({type:"select2-loaded",items:g}),b)):(this.search.removeClass("select2-active"),b)})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass("select2-container-active"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){w(this.search)},selectHighlighted:function(a){var b=this.highlight(),c=this.results.find(".select2-highlighted"),d=c.closest(".select2-result").data("select2-data");d?(this.highlight(b),this.onSelect(d,a)):a&&a.noFocus&&this.close()},getPlaceholder:function(){var a;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((a=this.getPlaceholderOption())!==b?a.text():b)},getPlaceholderOption:function(){if(this.select){var a=this.select.children().first();if(this.opts.placeholderOption!==b)return"first"===this.opts.placeholderOption&&a||"function"==typeof this.opts.placeholderOption&&this.opts.placeholderOption(this.select);if(""===a.text()&&""===a.val())return a}},initContainerWidth:function(){function c(){var c,d,e,f,g;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){if(c=this.opts.element.attr("style"),c!==b)for(d=c.split(";"),f=0,g=d.length;g>f;f+=1)if(e=d[f].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==e&&e.length>=1)return e[1];return"resolve"===this.opts.width?(c=this.opts.element.css("width"),c.indexOf("%")>0?c:0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px"):null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var d=c.call(this);null!==d&&this.container.css("width",d)}}),e=L(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>"," <span class='select2-chosen'>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>"," <span class='select2-arrow'><b></b></span>","</a>","<input class='select2-focusser select2-offscreen' type='text'/>","<div class='select2-drop select2-display-none'>"," <div class='select2-search'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>"," </div>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c,d;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.search.focus(),b=this.search.get(0),b.createTextRange?(c=b.createTextRange(),c.collapse(!1),c.select()):b.setSelectionRange&&(d=this.search.val().length,b.setSelectionRange(d,d)),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.removeAttr("disabled"),this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus()},initContainer:function(){var d,e=this.container,f=this.dropdown;0>this.opts.minimumResultsForSearch?this.showSearch(!1):this.showSearch(!0),this.selection=d=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),this.focusser.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.focusser.attr("id")),this.focusser.attr("tabindex",this.elementTabIndex),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){if(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)return y(a),b;switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),b;case c.ESC:return this.cancel(a),y(a),b}}})),this.search.on("blur",this.bind(function(){document.activeElement===this.body().get(0)&&window.setTimeout(this.bind(function(){this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.ESC){if(this.opts.openOnEnter===!1&&a.which===c.ENTER)return y(a),b;if(a.which==c.DOWN||a.which==c.UP||a.which==c.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),y(a),b}return a.which==c.DELETE||a.which==c.BACKSPACE?(this.opts.allowClear&&this.clear(),y(a),b):b}})),r(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),d.on("mousedown","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),z(a),this.close(),this.selection.focus())})),d.on("mousedown",this.bind(function(b){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),y(b)})),f.on("mousedown",this.bind(function(){this.search.focus()})),d.on("focus",this.bind(function(a){y(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.setPlaceholder()},clear:function(a){var b=this.selection.data("select2-data");if(b){var c=this.getPlaceholderOption();this.opts.element.val(c?c.val():""),this.selection.find(".select2-chosen").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),a!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(b),choice:b}),this.triggerChange({removed:b}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection([]),this.close(),this.setPlaceholder();else{var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.setPlaceholder())})}},isPlaceholderOptionSelected:function(){var a;return(a=this.getPlaceholderOption())!==b&&a.is(":selected")||""===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find(":selected");b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var g=o(e,b.id(d));return g&&(f=d),g},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,c,d){var e=0,f=this;if(this.findHighlightableChoices().each2(function(a,c){return o(f.id(c.data("select2-data")),f.opts.element.val())?(e=a,!1):b}),d!==!1&&(c===!0&&e>=0?this.highlight(e):this.highlight(0)),c===!0){var h=this.opts.minimumResultsForSearch;h>=0&&this.showSearch(J(a.results)>=h)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.close(),b&&b.noFocus||this.selection.focus(),o(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var d,e,c=this.selection.find(".select2-chosen");this.selection.data("select2-data",a),c.empty(),d=this.opts.formatSelection(a,c,this.opts.escapeMarkup),d!==b&&c.append(d),e=this.opts.formatSelectionCssClass(a,c),e!==b&&c.addClass(e),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")
22
  },val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1]),this.select)this.select.val(a).find(":selected").each2(function(a,b){return d=e.optionToData(b),!1}),this.updateSelection(d),this.setPlaceholder(),c&&this.triggerChange({added:d,removed:f});else{if(!a&&0!==a)return this.clear(c),b;if(this.opts.initSelection===b)throw Error("cannot call val() if initSelection() is not defined");this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){e.opts.element.val(a?e.id(a):""),e.updateSelection(a),e.setPlaceholder(),c&&e.triggerChange({added:a,removed:f})})}},clearSearch:function(){this.search.val(""),this.focusser.val("")},data:function(a,c){var d;return 0===arguments.length?(d=this.selection.data("select2-data"),d==b&&(d=null),d):(a&&""!==a?(d=this.data(),this.opts.element.val(a?this.id(a):""),this.updateSelection(a),c&&this.triggerChange({added:a,removed:d})):this.clear(c),b)}}),f=L(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["<ul class='select2-choices'>"," <li class='select2-search-field'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'>"," </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find(":selected").each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=p(c.val(),b.separator),f=[];b.query({matcher:function(c,d,g){var h=a.grep(e,function(a){return o(a,b.id(g))}).length;return h&&f.push(g),h},callback:a.isFunction(d)?function(){for(var a=[],c=0;e.length>c;c++)for(var g=e[c],h=0;f.length>h;h++){var i=f[h];if(o(g,b.id(i))){a.push(i),f.splice(h,1);break}}d(a)}:a.noop})}),b},selectChoice:function(a){var b=this.container.find(".select2-search-choice-focus");b.length&&a&&a[0]==b[0]||(b.length&&this.opts.element.trigger("choice-deselected",b),b.removeClass("select2-search-choice-focus"),a&&a.length&&(this.close(),a.addClass("select2-search-choice-focus"),this.opts.element.trigger("choice-selected",a)))},initContainer:function(){var e,d=".select2-choices";this.searchContainer=this.container.find(".select2-search-field"),this.selection=e=this.container.find(d);var f=this;this.selection.on("mousedown",".select2-search-choice",function(){f.search[0].focus(),f.selectChoice(a(this))}),this.search.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.search.attr("id")),this.search.on("input paste",this.bind(function(){this.isInterfaceEnabled()&&(this.opened()||this.open())})),this.search.attr("tabindex",this.elementTabIndex),this.keydowns=0,this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){++this.keydowns;var d=e.find(".select2-search-choice-focus"),f=d.prev(".select2-search-choice:not(.select2-locked)"),g=d.next(".select2-search-choice:not(.select2-locked)"),h=x(this.search);if(d.length&&(a.which==c.LEFT||a.which==c.RIGHT||a.which==c.BACKSPACE||a.which==c.DELETE||a.which==c.ENTER)){var i=d;return a.which==c.LEFT&&f.length?i=f:a.which==c.RIGHT?i=g.length?g:null:a.which===c.BACKSPACE?(this.unselect(d.first()),this.search.width(10),i=f.length?f:g):a.which==c.DELETE?(this.unselect(d.first()),this.search.width(10),i=g.length?g:null):a.which==c.ENTER&&(i=null),this.selectChoice(i),y(a),i&&i.length||this.open(),b}if((a.which===c.BACKSPACE&&1==this.keydowns||a.which==c.LEFT)&&0==h.offset&&!h.length)return this.selectChoice(e.find(".select2-search-choice:not(.select2-locked)").last()),y(a),b;if(this.selectChoice(null),this.opened())switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),this.close(),b;case c.ESC:return this.cancel(a),y(a),b}if(a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.BACKSPACE&&a.which!==c.ESC){if(a.which===c.ENTER){if(this.opts.openOnEnter===!1)return;if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return}this.open(),(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)&&y(a),a.which===c.ENTER&&y(a)}}})),this.search.on("keyup",this.bind(function(){this.keydowns=0,this.resizeSearch()})),this.search.on("blur",this.bind(function(b){this.container.removeClass("select2-container-active"),this.search.removeClass("select2-focused"),this.selectChoice(null),this.opened()||this.clearSearch(),b.stopImmediatePropagation(),this.opts.element.trigger(a.Event("select2-blur"))})),this.container.on("click",d,this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").length>0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",d,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.updateResults(!0),this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c=[],d=[],e=this;a(b).each(function(){0>m(e.id(this),c)&&(c.push(e.id(this)),d.push(this))}),b=d,this.selection.find(".select2-search-choice").remove(),a(b).each(function(){e.addSelectedChoice(this)}),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()&&this.updateResults(!0),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(c){var j,k,d=!c.locked,e=a("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),f=a("<li class='select2-search-choice select2-locked'><div></div></li>"),g=d?e:f,h=this.id(c),i=this.getVal();j=this.opts.formatSelection(c,g.find("div"),this.opts.escapeMarkup),j!=b&&g.find("div").replaceWith("<div>"+j+"</div>"),k=this.opts.formatSelectionCssClass(c,g.find("div")),k!=b&&g.addClass(k),d&&g.find(".select2-search-choice-close").on("mousedown",y).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),this.close(),this.focusSearch()})).dequeue(),y(b))})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),g.data("select2-data",c),g.insertBefore(this.searchContainer),i.push(h),this.setVal(i)},unselect:function(a){var c,d,b=this.getVal();if(a=a.closest(".select2-search-choice"),0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data"),c&&(d=m(this.id(c),b),d>=0&&(b.splice(d,1),this.setVal(b),this.select&&this.postprocessResults()),a.remove(),this.opts.element.trigger({type:"removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))},postprocessResults:function(a,b,c){var d=this.getVal(),e=this.results.find(".select2-result"),f=this.results.find(".select2-result-with-children"),g=this;e.each2(function(a,b){var c=g.id(b.data("select2-data"));m(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),f.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),-1==this.highlight()&&c!==!1&&g.highlight(0),!this.opts.createSearchChoice&&!e.filter(".select2-result:not(.select2-selected)").length>0&&(!a||a&&!a.more&&0===this.results.find(".select2-no-results").length)&&H(g.opts.formatNoMatches,"formatNoMatches")&&this.results.append("<li class='select2-no-results'>"+g.opts.formatNoMatches(g.search.val())+"</li>")},getMaxSearchWidth:function(){return this.selection.width()-q(this.search)},resizeSearch:function(){var a,b,c,d,e,f=q(this.search);a=A(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(e)},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),p(a,this.opts.separator))},setVal:function(b){var c;this.select?this.select.val(b):(c=[],a(b).each(function(){0>m(this,c)&&c.push(this)}),this.opts.element.val(0===c.length?"":c.join(this.opts.separator)))},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;b.length>c;c++)for(var d=0;a.length>d;d++)o(this.opts.id(b[c]),this.opts.id(a[d]))&&(b.splice(c,1),c--,a.splice(d,1),d--);return{added:b,removed:a}},val:function(c,d){var e,f=this;if(0===arguments.length)return this.getVal();if(e=this.data(),e.length||(e=[]),!c&&0!==c)return this.opts.element.val(""),this.updateSelection([]),this.clearSearch(),d&&this.triggerChange({added:this.data(),removed:e}),b;if(this.setVal(c),this.select)this.opts.initSelection(this.select,this.bind(this.updateSelection)),d&&this.triggerChange(this.buildChangeDetails(e,this.data()));else{if(this.opts.initSelection===b)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,function(b){var c=a.map(b,f.id);f.setVal(c),f.updateSelection(b),f.clearSearch(),d&&f.triggerChange(this.buildChangeDetails(e,this.data()))})}this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(c,d){var f,g,e=this;return 0===arguments.length?this.selection.find(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(g=this.data(),c||(c=[]),f=a.map(c,function(a){return e.opts.id(a)}),this.setVal(f),this.updateSelection(c),this.clearSearch(),d&&this.triggerChange(this.buildChangeDetails(g,this.data())),b)}}),a.fn.select2=function(){var d,g,h,i,j,c=Array.prototype.slice.call(arguments,0),k=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","readonly","positionDropdown","data","search"],l=["val","opened","isFocused","container","data"],n={search:"externalSearch"};return this.each(function(){if(0===c.length||"object"==typeof c[0])d=0===c.length?{}:a.extend({},c[0]),d.element=a(this),"select"===d.element.get(0).tagName.toLowerCase()?j=d.element.prop("multiple"):(j=d.multiple||!1,"tags"in d&&(d.multiple=j=!0)),g=j?new f:new e,g.init(d);else{if("string"!=typeof c[0])throw"Invalid arguments to select2 plugin: "+c;if(0>m(c[0],k))throw"Unknown method: "+c[0];if(i=b,g=a(this).data("select2"),g===b)return;if(h=c[0],"container"===h?i=g.container:"dropdown"===h?i=g.dropdown:(n[h]&&(h=n[h]),i=g[h].apply(g,c.slice(1))),m(c[0],l)>=0)return!1}}),i===b?this:i},a.fn.select2.defaults={width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return C(a.text,c.term,e,d),e.join("")},formatSelection:function(a,c,d){return a?d(a.text):b},sortResults:function(a){return a},formatResultCssClass:function(){return b},formatSelectionCssClass:function(){return b},formatNoMatches:function(){return"No matches found"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return(""+b).toUpperCase().indexOf((""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:K,escapeMarkup:D,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},
1
+ /*
2
+ Copyright 2012 Igor Vaynberg
3
+
4
+ Version: 3.4.1 Timestamp: Thu Jun 27 18:02:10 PDT 2013
5
+
6
+ This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
7
+ General Public License version 2 (the "GPL License"). You may choose either license to govern your
8
+ use of this software only upon the condition that you accept all of the terms of either the Apache
9
+ License or the GPL License.
10
+
11
+ You may obtain a copy of the Apache License and the GPL License at:
12
+
13
+ http://www.apache.org/licenses/LICENSE-2.0
14
+ http://www.gnu.org/licenses/gpl-2.0.html
15
+
16
+ Unless required by applicable law or agreed to in writing, software distributed under the Apache License
17
+ or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
18
+ either express or implied. See the Apache License and the GPL License for the specific language governing
19
+ permissions and limitations under the Apache License and the GPL License.
20
+ */
21
+ (function(a){a.fn.each2===void 0&&a.fn.extend({each2:function(b){for(var c=a([0]),d=-1,e=this.length;e>++d&&(c.context=c[0]=this[d])&&b.call(c[0],d,c)!==!1;);return this}})})(jQuery),function(a,b){"use strict";function m(a,b){for(var c=0,d=b.length;d>c;c+=1)if(o(a,b[c]))return c;return-1}function n(){var b=a(l);b.appendTo("body");var c={width:b.width()-b[0].clientWidth,height:b.height()-b[0].clientHeight};return b.remove(),c}function o(a,c){return a===c?!0:a===b||c===b?!1:null===a||null===c?!1:a.constructor===String?a+""==c+"":c.constructor===String?c+""==a+"":!1}function p(b,c){var d,e,f;if(null===b||1>b.length)return[];for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d}function q(a){return a.outerWidth(!1)-a.width()}function r(c){var d="keyup-change-value";c.on("keydown",function(){a.data(c,d)===b&&a.data(c,d,c.val())}),c.on("keyup",function(){var e=a.data(c,d);e!==b&&c.val()!==e&&(a.removeData(c,d),c.trigger("keyup-change"))})}function s(c){c.on("mousemove",function(c){var d=i;(d===b||d.x!==c.pageX||d.y!==c.pageY)&&a(c.target).trigger("mousemove-filtered",c)})}function t(a,c,d){d=d||b;var e;return function(){var b=arguments;window.clearTimeout(e),e=window.setTimeout(function(){c.apply(d,b)},a)}}function u(a){var c,b=!1;return function(){return b===!1&&(c=a(),b=!0),c}}function v(a,b){var c=t(a,function(a){b.trigger("scroll-debounced",a)});b.on("scroll",function(a){m(a.target,b.get())>=0&&c(a)})}function w(a){a[0]!==document.activeElement&&window.setTimeout(function(){var d,b=a[0],c=a.val().length;a.focus(),a.is(":visible")&&b===document.activeElement&&(b.setSelectionRange?b.setSelectionRange(c,c):b.createTextRange&&(d=b.createTextRange(),d.collapse(!1),d.select()))},0)}function x(b){b=a(b)[0];var c=0,d=0;if("selectionStart"in b)c=b.selectionStart,d=b.selectionEnd-c;else if("selection"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart("character",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function y(a){a.preventDefault(),a.stopPropagation()}function z(a){a.preventDefault(),a.stopImmediatePropagation()}function A(b){if(!h){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);h=a(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),h.attr("class","select2-sizer"),a("body").append(h)}return h.text(b.val()),h.width()}function B(b,c,d){var e,g,f=[];e=b.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0===this.indexOf("select2-")&&f.push(this)})),e=c.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0!==this.indexOf("select2-")&&(g=d(this),g&&f.push(this))})),b.attr("class",f.join(" "))}function C(a,c,d,e){var f=a.toUpperCase().indexOf(c.toUpperCase()),g=c.length;return 0>f?(d.push(e(a)),b):(d.push(e(a.substring(0,f))),d.push("<span class='select2-match'>"),d.push(e(a.substring(f,f+g))),d.push("</span>"),d.push(e(a.substring(f+g,a.length))),b)}function D(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return(a+"").replace(/[&<>"'\/\\]/g,function(a){return b[a]})}function E(c){var d,e=0,f=null,g=c.quietMillis||100,h=c.url,i=this;return function(j){window.clearTimeout(d),d=window.setTimeout(function(){e+=1;var d=e,g=c.data,k=h,l=c.transport||a.fn.select2.ajaxDefaults.transport,m={type:c.type||"GET",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||"json"},n=a.extend({},a.fn.select2.ajaxDefaults.params,m);g=g?g.call(i,j.term,j.page,j.context):null,k="function"==typeof k?k.call(i,j.term,j.page,j.context):k,f&&f.abort(),c.params&&(a.isFunction(c.params)?a.extend(n,c.params.call(i)):a.extend(n,c.params)),a.extend(n,{url:k,dataType:c.dataType,data:g,success:function(a){if(!(e>d)){var b=c.results(a,j.page);j.callback(b)}}}),f=l.call(i,n)},g)}}function F(c){var e,f,d=c,g=function(a){return""+a.text};a.isArray(d)&&(f=d,d={results:f}),a.isFunction(d)===!1&&(f=d,d=function(){return f});var h=d();return h.text&&(g=h.text,a.isFunction(g)||(e=h.text,g=function(a){return a[e]})),function(c){var h,e=c.term,f={results:[]};return""===e?(c.callback(d()),b):(h=function(b,d){var f,i;if(b=b[0],b.children){f={};for(i in b)b.hasOwnProperty(i)&&(f[i]=b[i]);f.children=[],a(b.children).each2(function(a,b){h(b,f.children)}),(f.children.length||c.matcher(e,g(f),b))&&d.push(f)}else c.matcher(e,g(b),b)&&d.push(b)},a(d().results).each2(function(a,b){h(b,f.results)}),c.callback(f),b)}}function G(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]};a(d?c():c).each(function(){var a=this.text!==b,c=a?this.text:this;(""===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g)}}function H(b,c){if(a.isFunction(b))return!0;if(!b)return!1;throw Error(c+" must be a function or a falsy value")}function I(b){return a.isFunction(b)?b():b}function J(b){var c=0;return a.each(b,function(a,b){b.children?c+=J(b.children):c++}),c}function K(a,c,d,e){var h,i,j,k,l,f=a,g=!1;if(!e.createSearchChoice||!e.tokenSeparators||1>e.tokenSeparators.length)return b;for(;;){for(i=-1,j=0,k=e.tokenSeparators.length;k>j&&(l=e.tokenSeparators[j],i=a.indexOf(l),!(i>=0));j++);if(0>i)break;if(h=a.substring(0,i),a=a.substring(i+l.length),h.length>0&&(h=e.createSearchChoice.call(this,h,c),h!==b&&null!==h&&e.id(h)!==b&&null!==e.id(h))){for(g=!1,j=0,k=c.length;k>j;j++)if(o(e.id(h),e.id(c[j]))){g=!0;break}g||d(h)}}return f!==a?a:b}function L(b,c){var d=function(){};return d.prototype=new b,d.prototype.constructor=d,d.prototype.parent=b.prototype,d.prototype=a.extend(d.prototype,c),d}if(window.Select2===b){var c,d,e,f,g,h,j,k,i={x:0,y:0},c={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){switch(a=a.which?a.which:a){case c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case c.SHIFT:case c.CTRL:case c.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},l="<div class='select2-measure-scrollbar'></div>";j=a(document),g=function(){var a=1;return function(){return a++}}(),j.on("mousemove",function(a){i.x=a.pageX,i.y=a.pageY}),d=L(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,h,i,f=".select2-results";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data("select2")!==b&&null!==c.element.data("select2")&&c.element.data("select2").destroy(),this.container=this.createContainer(),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+g()),this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"),this.container.attr("id",this.containerId),this.body=u(function(){return c.element.closest("body")}),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.css(I(c.containerCss)),this.container.addClass(I(c.containerCssClass)),this.elementTabIndex=this.opts.element.attr("tabindex"),this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container),this.container.data("select2",this),this.dropdown=this.container.find(".select2-drop"),this.dropdown.addClass(I(c.dropdownCssClass)),this.dropdown.data("select2",this),this.results=d=this.container.find(f),this.search=e=this.container.find("input.select2-input"),this.resultsPage=0,this.context=null,this.initContainer(),s(this.results),this.dropdown.on("mousemove-filtered touchstart touchmove touchend",f,this.bind(this.highlightUnderEvent)),v(80,this.results),this.dropdown.on("scroll-debounced",f,this.bind(this.loadMoreIfNeeded)),a(this.container).on("change",".select2-input",function(a){a.stopPropagation()}),a(this.dropdown).on("change",".select2-input",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&0>=f-e?(d.scrollTop(0),y(a)):0>e&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),y(a))}),r(e),e.on("keyup-change input paste",this.bind(this.updateResults)),e.on("focus",function(){e.addClass("select2-focused")}),e.on("blur",function(){e.removeClass("select2-focused")}),this.dropdown.on("mouseup",f,this.bind(function(b){a(b.target).closest(".select2-result-selectable").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on("click mouseup mousedown",function(a){a.stopPropagation()}),a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr("maxlength",c.maximumInputLength);var h=c.element.prop("disabled");h===b&&(h=!1),this.enable(!h);var i=c.element.prop("readonly");i===b&&(i=!1),this.readonly(i),k=k||n(),this.autofocus=c.element.prop("autofocus"),c.element.prop("autofocus",!1),this.autofocus&&this.focus()},destroy:function(){var a=this.opts.element,c=a.data("select2");this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),c!==b&&(c.container.remove(),c.dropdown.remove(),a.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus",this.autofocus||!1),this.elementTabIndex?a.attr({tabindex:this.elementTabIndex}):a.removeAttr("tabindex"),a.show())},optionToData:function(a){return a.is("option")?{id:a.prop("value"),text:a.text(),element:a.get(),css:a.attr("class"),disabled:a.prop("disabled"),locked:o(a.attr("locked"),"locked")||o(a.data("locked"),!0)}:a.is("optgroup")?{text:a.attr("label"),children:[],element:a.get(),css:a.attr("class")}:b},prepareOpts:function(c){var d,e,f,g,h=this;if(d=c.element,"select"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in c)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.")}),c=a.extend({},{populateResults:function(d,e,f){var g,l=this.opts.id;g=function(d,e,i){var j,k,m,n,o,p,q,r,s,t;for(d=c.sortResults(d,e,f),j=0,k=d.length;k>j;j+=1)m=d[j],o=m.disabled===!0,n=!o&&l(m)!==b,p=m.children&&m.children.length>0,q=a("<li></li>"),q.addClass("select2-results-dept-"+i),q.addClass("select2-result"),q.addClass(n?"select2-result-selectable":"select2-result-unselectable"),o&&q.addClass("select2-disabled"),p&&q.addClass("select2-result-with-children"),q.addClass(h.opts.formatResultCssClass(m)),r=a(document.createElement("div")),r.addClass("select2-result-label"),t=c.formatResult(m,r,f,h.opts.escapeMarkup),t!==b&&r.html(t),q.append(r),p&&(s=a("<ul></ul>"),s.addClass("select2-result-sub"),g(m.children,s,i+1),q.append(s)),q.data("select2-data",m),e.append(q)},g(e,d,0)}},a.fn.select2.defaults,c),"function"!=typeof c.id&&(f=c.id,c.id=function(a){return a[f]}),a.isArray(c.element.data("select2Tags"))){if("tags"in c)throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+c.element.attr("id");c.tags=c.element.data("select2Tags")}if(e?(c.query=this.bind(function(a){var f,g,i,c={results:[],more:!1},e=a.term;i=function(b,c){var d;b.is("option")?a.matcher(e,b.text(),b)&&c.push(h.optionToData(b)):b.is("optgroup")&&(d=h.optionToData(b),b.children().each2(function(a,b){i(b,d.children)}),d.children.length>0&&c.push(d))},f=d.children(),this.getPlaceholder()!==b&&f.length>0&&(g=this.getPlaceholderOption(),g&&(f=f.not(g))),f.each2(function(a,b){i(b,c.results)}),a.callback(c)}),c.id=function(a){return a.id},c.formatResultCssClass=function(a){return a.css}):"query"in c||("ajax"in c?(g=c.element.data("ajax-url"),g&&g.length>0&&(c.ajax.url=g),c.query=E.call(c.element,c.ajax)):"data"in c?c.query=F(c.data):"tags"in c&&(c.query=G(c.tags),c.createSearchChoice===b&&(c.createSearchChoice=function(a){return{id:a,text:a}}),c.initSelection===b&&(c.initSelection=function(d,e){var f=[];a(p(d.val(),c.separator)).each(function(){var d=this,e=this,g=c.tags;a.isFunction(g)&&(g=g()),a(g).each(function(){return o(this.id,d)?(e=this.text,!1):b}),f.push({id:d,text:e})}),e(f)}))),"function"!=typeof c.query)throw"query function not defined for Select2 "+c.element.attr("id");return c},monitorSource:function(){var c,a=this.opts.element;a.on("change.select2",this.bind(function(){this.opts.element.data("select2-change-triggered")!==!0&&this.initSelection()})),c=this.bind(function(){var d,f=a.prop("disabled");f===b&&(f=!1),this.enable(!f);var d=a.prop("readonly");d===b&&(d=!1),this.readonly(d),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.addClass(I(this.opts.containerCssClass)),B(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(I(this.opts.dropdownCssClass))}),a.on("propertychange.select2 DOMAttrModified.select2",c),this.mutationCallback===b&&(this.mutationCallback=function(a){a.forEach(c)}),"undefined"!=typeof WebKitMutationObserver&&(this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),this.propertyObserver=new WebKitMutationObserver(this.mutationCallback),this.propertyObserver.observe(a.get(0),{attributes:!0,subtree:!1}))},triggerSelect:function(b){var c=a.Event("select2-selecting",{val:this.id(b),object:b});return this.opts.element.trigger(c),!c.isDefaultPrevented()},triggerChange:function(b){b=b||{},b=a.extend({},b,{type:"change",val:this.val()}),this.opts.element.data("select2-change-triggered",!0),this.opts.element.trigger(b),this.opts.element.data("select2-change-triggered",!1),this.opts.element.click(),this.opts.blurOnChange&&this.opts.element.blur()},isInterfaceEnabled:function(){return this.enabledInterface===!0},enableInterface:function(){var a=this._enabled&&!this._readonly,b=!a;return a===this.enabledInterface?!1:(this.container.toggleClass("select2-container-disabled",b),this.close(),this.enabledInterface=a,!0)},enable:function(a){return a===b&&(a=!0),this._enabled===a?!1:(this._enabled=a,this.opts.element.prop("disabled",!a),this.enableInterface(),!0)},readonly:function(a){return a===b&&(a=!1),this._readonly===a?!1:(this._readonly=a,this.opts.element.prop("readonly",a),this.enableInterface(),!0)},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var q,r,s,t,b=this.dropdown,c=this.container.offset(),d=this.container.outerHeight(!1),e=this.container.outerWidth(!1),f=b.outerHeight(!1),g=a(window).scrollLeft()+a(window).width(),h=a(window).scrollTop()+a(window).height(),i=c.top+d,j=c.left,l=h>=i+f,m=c.top-f>=this.body().scrollTop(),n=b.outerWidth(!1),o=g>=j+n,p=b.hasClass("select2-drop-above");this.opts.dropdownAutoWidth?(t=a(".select2-results",b)[0],b.addClass("select2-drop-auto-width"),b.css("width",""),n=b.outerWidth(!1)+(t.scrollHeight===t.clientHeight?0:k.width),n>e?e=n:n=e,o=g>=j+n):this.container.removeClass("select2-drop-auto-width"),"static"!==this.body().css("position")&&(q=this.body().offset(),i-=q.top,j-=q.left),p?(r=!0,!m&&l&&(r=!1)):(r=!1,!l&&m&&(r=!0)),o||(j=c.left+e-n),r?(i=c.top-f,this.container.addClass("select2-drop-above"),b.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),b.removeClass("select2-drop-above")),s=a.extend({top:i,left:j,width:e},I(this.opts.dropdownCss)),b.css(s)},shouldOpen:function(){var b;return this.opened()?!1:this._enabled===!1||this._readonly===!0?!1:(b=a.Event("select2-opening"),this.opts.element.trigger(b),!b.isDefaultPrevented())},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above")},open:function(){return this.shouldOpen()?(this.opening(),!0):!1},opening:function(){function i(){return{width:Math.max(document.documentElement.scrollWidth,a(window).width()),height:Math.max(document.documentElement.scrollHeight,a(window).height())}}var f,g,b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.addClass("select2-dropdown-open").addClass("select2-container-active"),this.clearDropdownAlignmentPreference(),this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body()),f=a("#select2-drop-mask"),0==f.length&&(f=a(document.createElement("div")),f.attr("id","select2-drop-mask").attr("class","select2-drop-mask"),f.hide(),f.appendTo(this.body()),f.on("mousedown touchstart click",function(b){var d,c=a("#select2-drop");c.length>0&&(d=c.data("select2"),d.opts.selectOnBlur&&d.selectHighlighted({noFocus:!0}),d.close(),b.preventDefault(),b.stopPropagation())})),this.dropdown.prev()[0]!==f[0]&&this.dropdown.before(f),a("#select2-drop").removeAttr("id"),this.dropdown.attr("id","select2-drop"),g=i(),f.css(g).show(),this.dropdown.show(),this.positionDropdown(),this.dropdown.addClass("select2-drop-active");var h=this;this.container.parents().add(window).each(function(){a(this).on(d+" "+c+" "+e,function(){var c=i();a("#select2-drop-mask").css(c),h.positionDropdown()})})},close:function(){if(this.opened()){var b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.parents().add(window).each(function(){a(this).off(c).off(d).off(e)}),this.clearDropdownAlignmentPreference(),a("#select2-drop-mask").hide(),this.dropdown.removeAttr("id"),this.dropdown.hide(),this.container.removeClass("select2-dropdown-open"),this.results.empty(),this.clearSearch(),this.search.removeClass("select2-active"),this.opts.element.trigger(a.Event("select2-close"))}},externalSearch:function(a){this.open(),this.search.val(a),this.updateResults(!1)},clearSearch:function(){},getMaximumSelectionSize:function(){return I(this.opts.maximumSelectionSize)},ensureHighlightVisible:function(){var d,e,f,g,h,i,j,c=this.results;if(e=this.highlight(),!(0>e)){if(0==e)return c.scrollTop(0),b;d=this.findHighlightableChoices().find(".select2-result-label"),f=a(d[e]),g=f.offset().top+f.outerHeight(!0),e===d.length-1&&(j=c.find("li.select2-more-results"),j.length>0&&(g=j.offset().top+j.outerHeight(!0))),h=c.offset().top+c.outerHeight(!0),g>h&&c.scrollTop(c.scrollTop()+(g-h)),i=f.offset().top-c.offset().top,0>i&&"none"!=f.css("display")&&c.scrollTop(c.scrollTop()+i)}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)")},moveHighlight:function(b){for(var c=this.findHighlightableChoices(),d=this.highlight();d>-1&&c.length>d;){d+=b;var e=a(c[d]);if(e.hasClass("select2-result-selectable")&&!e.hasClass("select2-disabled")&&!e.hasClass("select2-selected")){this.highlight(d);break}}},highlight:function(c){var e,f,d=this.findHighlightableChoices();return 0===arguments.length?m(d.filter(".select2-highlighted")[0],d.get()):(c>=d.length&&(c=d.length-1),0>c&&(c=0),this.results.find(".select2-highlighted").removeClass("select2-highlighted"),e=a(d[c]),e.addClass("select2-highlighted"),this.ensureHighlightVisible(),f=e.data("select2-data"),f&&this.opts.element.trigger({type:"select2-highlight",val:this.id(f),choice:f}),b)},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(b){var c=a(b.target).closest(".select2-result-selectable");if(c.length>0&&!c.is(".select2-highlighted")){var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var c,a=this.results,b=a.find("li.select2-more-results"),e=this.resultsPage+1,f=this,g=this.search.val(),h=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-a.height(),this.opts.loadMorePadding>=c&&(b.addClass("select2-active"),this.opts.query({element:this.opts.element,term:g,page:e,context:h,matcher:this.opts.matcher,callback:this.bind(function(c){f.opened()&&(f.opts.populateResults.call(this,a,c.results,{term:g,page:e,context:h}),f.postprocessResults(c,!1,!1),c.more===!0?(b.detach().appendTo(a).text(f.opts.formatLoadMore(e+1)),window.setTimeout(function(){f.loadMoreIfNeeded()},10)):b.remove(),f.positionDropdown(),f.resultsPage=e,f.context=c.context)})})))},tokenize:function(){},updateResults:function(c){function l(){d.removeClass("select2-active"),h.positionDropdown()}function m(a){e.html(a),l()}var g,i,d=this.search,e=this.results,f=this.opts,h=this,j=d.val(),k=a.data(this.container,"select2-last-term");if((c===!0||!k||!o(j,k))&&(a.data(this.container,"select2-last-term",j),c===!0||this.showSearchInput!==!1&&this.opened())){var n=this.getMaximumSelectionSize();if(n>=1&&(g=this.data(),a.isArray(g)&&g.length>=n&&H(f.formatSelectionTooBig,"formatSelectionTooBig")))return m("<li class='select2-selection-limit'>"+f.formatSelectionTooBig(n)+"</li>"),b;if(d.val().length<f.minimumInputLength)return H(f.formatInputTooShort,"formatInputTooShort")?m("<li class='select2-no-results'>"+f.formatInputTooShort(d.val(),f.minimumInputLength)+"</li>"):m(""),c&&this.showSearch&&this.showSearch(!0),b;if(f.maximumInputLength&&d.val().length>f.maximumInputLength)return H(f.formatInputTooLong,"formatInputTooLong")?m("<li class='select2-no-results'>"+f.formatInputTooLong(d.val(),f.maximumInputLength)+"</li>"):m(""),b;f.formatSearching&&0===this.findHighlightableChoices().length&&m("<li class='select2-searching'>"+f.formatSearching()+"</li>"),d.addClass("select2-active"),i=this.tokenize(),i!=b&&null!=i&&d.val(i),this.resultsPage=1,f.query({element:f.element,term:d.val(),page:this.resultsPage,context:null,matcher:f.matcher,callback:this.bind(function(g){var i;return this.opened()?(this.context=g.context===b?null:g.context,this.opts.createSearchChoice&&""!==d.val()&&(i=this.opts.createSearchChoice.call(h,d.val(),g.results),i!==b&&null!==i&&h.id(i)!==b&&null!==h.id(i)&&0===a(g.results).filter(function(){return o(h.id(this),h.id(i))}).length&&g.results.unshift(i)),0===g.results.length&&H(f.formatNoMatches,"formatNoMatches")?(m("<li class='select2-no-results'>"+f.formatNoMatches(d.val())+"</li>"),b):(e.empty(),h.opts.populateResults.call(this,e,g.results,{term:d.val(),page:this.resultsPage,context:null}),g.more===!0&&H(f.formatLoadMore,"formatLoadMore")&&(e.append("<li class='select2-more-results'>"+h.opts.escapeMarkup(f.formatLoadMore(this.resultsPage))+"</li>"),window.setTimeout(function(){h.loadMoreIfNeeded()},10)),this.postprocessResults(g,c),l(),this.opts.element.trigger({type:"select2-loaded",items:g}),b)):(this.search.removeClass("select2-active"),b)})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass("select2-container-active"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){w(this.search)},selectHighlighted:function(a){var b=this.highlight(),c=this.results.find(".select2-highlighted"),d=c.closest(".select2-result").data("select2-data");d?(this.highlight(b),this.onSelect(d,a)):a&&a.noFocus&&this.close()},getPlaceholder:function(){var a;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((a=this.getPlaceholderOption())!==b?a.text():b)},getPlaceholderOption:function(){if(this.select){var a=this.select.children().first();if(this.opts.placeholderOption!==b)return"first"===this.opts.placeholderOption&&a||"function"==typeof this.opts.placeholderOption&&this.opts.placeholderOption(this.select);if(""===a.text()&&""===a.val())return a}},initContainerWidth:function(){function c(){var c,d,e,f,g;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){if(c=this.opts.element.attr("style"),c!==b)for(d=c.split(";"),f=0,g=d.length;g>f;f+=1)if(e=d[f].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==e&&e.length>=1)return e[1];return"resolve"===this.opts.width?(c=this.opts.element.css("width"),c.indexOf("%")>0?c:0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px"):null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var d=c.call(this);null!==d&&this.container.css("width",d)}}),e=L(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>"," <span class='select2-chosen'>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>"," <span class='select2-arrow'><b></b></span>","</a>","<input class='select2-focusser select2-offscreen' type='text'/>","<div class='select2-drop select2-display-none'>"," <div class='select2-search'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>"," </div>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c,d;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.search.focus(),b=this.search.get(0),b.createTextRange?(c=b.createTextRange(),c.collapse(!1),c.select()):b.setSelectionRange&&(d=this.search.val().length,b.setSelectionRange(d,d)),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.removeAttr("disabled"),this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus()},initContainer:function(){var d,e=this.container,f=this.dropdown;0>this.opts.minimumResultsForSearch?this.showSearch(!1):this.showSearch(!0),this.selection=d=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),this.focusser.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.focusser.attr("id")),this.focusser.attr("tabindex",this.elementTabIndex),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){if(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)return y(a),b;switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),b;case c.ESC:return this.cancel(a),y(a),b}}})),this.search.on("blur",this.bind(function(){document.activeElement===this.body().get(0)&&window.setTimeout(this.bind(function(){this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.ESC){if(this.opts.openOnEnter===!1&&a.which===c.ENTER)return y(a),b;if(a.which==c.DOWN||a.which==c.UP||a.which==c.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),y(a),b}return a.which==c.DELETE||a.which==c.BACKSPACE?(this.opts.allowClear&&this.clear(),y(a),b):b}})),r(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),d.on("mousedown","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),z(a),this.close(),this.selection.focus())})),d.on("mousedown",this.bind(function(b){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),y(b)})),f.on("mousedown",this.bind(function(){this.search.focus()})),d.on("focus",this.bind(function(a){y(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.setPlaceholder()},clear:function(a){var b=this.selection.data("select2-data");if(b){var c=this.getPlaceholderOption();this.opts.element.val(c?c.val():""),this.selection.find(".select2-chosen").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),a!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(b),choice:b}),this.triggerChange({removed:b}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection([]),this.close(),this.setPlaceholder();else{var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.setPlaceholder())})}},isPlaceholderOptionSelected:function(){var a;return(a=this.getPlaceholderOption())!==b&&a.is(":selected")||""===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find(":selected");b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var g=o(e,b.id(d));return g&&(f=d),g},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,c,d){var e=0,f=this;if(this.findHighlightableChoices().each2(function(a,c){return o(f.id(c.data("select2-data")),f.opts.element.val())?(e=a,!1):b}),d!==!1&&(c===!0&&e>=0?this.highlight(e):this.highlight(0)),c===!0){var h=this.opts.minimumResultsForSearch;h>=0&&this.showSearch(J(a.results)>=h)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.close(),b&&b.noFocus||this.selection.focus(),o(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var d,e,c=this.selection.find(".select2-chosen");this.selection.data("select2-data",a),c.empty(),d=this.opts.formatSelection(a,c,this.opts.escapeMarkup),d!==b&&c.append(d),e=this.opts.formatSelectionCssClass(a,c),e!==b&&c.addClass(e),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")
22
  },val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1]),this.select)this.select.val(a).find(":selected").each2(function(a,b){return d=e.optionToData(b),!1}),this.updateSelection(d),this.setPlaceholder(),c&&this.triggerChange({added:d,removed:f});else{if(!a&&0!==a)return this.clear(c),b;if(this.opts.initSelection===b)throw Error("cannot call val() if initSelection() is not defined");this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){e.opts.element.val(a?e.id(a):""),e.updateSelection(a),e.setPlaceholder(),c&&e.triggerChange({added:a,removed:f})})}},clearSearch:function(){this.search.val(""),this.focusser.val("")},data:function(a,c){var d;return 0===arguments.length?(d=this.selection.data("select2-data"),d==b&&(d=null),d):(a&&""!==a?(d=this.data(),this.opts.element.val(a?this.id(a):""),this.updateSelection(a),c&&this.triggerChange({added:a,removed:d})):this.clear(c),b)}}),f=L(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["<ul class='select2-choices'>"," <li class='select2-search-field'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'>"," </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find(":selected").each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=p(c.val(),b.separator),f=[];b.query({matcher:function(c,d,g){var h=a.grep(e,function(a){return o(a,b.id(g))}).length;return h&&f.push(g),h},callback:a.isFunction(d)?function(){for(var a=[],c=0;e.length>c;c++)for(var g=e[c],h=0;f.length>h;h++){var i=f[h];if(o(g,b.id(i))){a.push(i),f.splice(h,1);break}}d(a)}:a.noop})}),b},selectChoice:function(a){var b=this.container.find(".select2-search-choice-focus");b.length&&a&&a[0]==b[0]||(b.length&&this.opts.element.trigger("choice-deselected",b),b.removeClass("select2-search-choice-focus"),a&&a.length&&(this.close(),a.addClass("select2-search-choice-focus"),this.opts.element.trigger("choice-selected",a)))},initContainer:function(){var e,d=".select2-choices";this.searchContainer=this.container.find(".select2-search-field"),this.selection=e=this.container.find(d);var f=this;this.selection.on("mousedown",".select2-search-choice",function(){f.search[0].focus(),f.selectChoice(a(this))}),this.search.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.search.attr("id")),this.search.on("input paste",this.bind(function(){this.isInterfaceEnabled()&&(this.opened()||this.open())})),this.search.attr("tabindex",this.elementTabIndex),this.keydowns=0,this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){++this.keydowns;var d=e.find(".select2-search-choice-focus"),f=d.prev(".select2-search-choice:not(.select2-locked)"),g=d.next(".select2-search-choice:not(.select2-locked)"),h=x(this.search);if(d.length&&(a.which==c.LEFT||a.which==c.RIGHT||a.which==c.BACKSPACE||a.which==c.DELETE||a.which==c.ENTER)){var i=d;return a.which==c.LEFT&&f.length?i=f:a.which==c.RIGHT?i=g.length?g:null:a.which===c.BACKSPACE?(this.unselect(d.first()),this.search.width(10),i=f.length?f:g):a.which==c.DELETE?(this.unselect(d.first()),this.search.width(10),i=g.length?g:null):a.which==c.ENTER&&(i=null),this.selectChoice(i),y(a),i&&i.length||this.open(),b}if((a.which===c.BACKSPACE&&1==this.keydowns||a.which==c.LEFT)&&0==h.offset&&!h.length)return this.selectChoice(e.find(".select2-search-choice:not(.select2-locked)").last()),y(a),b;if(this.selectChoice(null),this.opened())switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),this.close(),b;case c.ESC:return this.cancel(a),y(a),b}if(a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.BACKSPACE&&a.which!==c.ESC){if(a.which===c.ENTER){if(this.opts.openOnEnter===!1)return;if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return}this.open(),(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)&&y(a),a.which===c.ENTER&&y(a)}}})),this.search.on("keyup",this.bind(function(){this.keydowns=0,this.resizeSearch()})),this.search.on("blur",this.bind(function(b){this.container.removeClass("select2-container-active"),this.search.removeClass("select2-focused"),this.selectChoice(null),this.opened()||this.clearSearch(),b.stopImmediatePropagation(),this.opts.element.trigger(a.Event("select2-blur"))})),this.container.on("click",d,this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").length>0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",d,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.updateResults(!0),this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c=[],d=[],e=this;a(b).each(function(){0>m(e.id(this),c)&&(c.push(e.id(this)),d.push(this))}),b=d,this.selection.find(".select2-search-choice").remove(),a(b).each(function(){e.addSelectedChoice(this)}),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()&&this.updateResults(!0),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(c){var j,k,d=!c.locked,e=a("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),f=a("<li class='select2-search-choice select2-locked'><div></div></li>"),g=d?e:f,h=this.id(c),i=this.getVal();j=this.opts.formatSelection(c,g.find("div"),this.opts.escapeMarkup),j!=b&&g.find("div").replaceWith("<div>"+j+"</div>"),k=this.opts.formatSelectionCssClass(c,g.find("div")),k!=b&&g.addClass(k),d&&g.find(".select2-search-choice-close").on("mousedown",y).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),this.close(),this.focusSearch()})).dequeue(),y(b))})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),g.data("select2-data",c),g.insertBefore(this.searchContainer),i.push(h),this.setVal(i)},unselect:function(a){var c,d,b=this.getVal();if(a=a.closest(".select2-search-choice"),0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data"),c&&(d=m(this.id(c),b),d>=0&&(b.splice(d,1),this.setVal(b),this.select&&this.postprocessResults()),a.remove(),this.opts.element.trigger({type:"removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))},postprocessResults:function(a,b,c){var d=this.getVal(),e=this.results.find(".select2-result"),f=this.results.find(".select2-result-with-children"),g=this;e.each2(function(a,b){var c=g.id(b.data("select2-data"));m(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),f.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),-1==this.highlight()&&c!==!1&&g.highlight(0),!this.opts.createSearchChoice&&!e.filter(".select2-result:not(.select2-selected)").length>0&&(!a||a&&!a.more&&0===this.results.find(".select2-no-results").length)&&H(g.opts.formatNoMatches,"formatNoMatches")&&this.results.append("<li class='select2-no-results'>"+g.opts.formatNoMatches(g.search.val())+"</li>")},getMaxSearchWidth:function(){return this.selection.width()-q(this.search)},resizeSearch:function(){var a,b,c,d,e,f=q(this.search);a=A(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(e)},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),p(a,this.opts.separator))},setVal:function(b){var c;this.select?this.select.val(b):(c=[],a(b).each(function(){0>m(this,c)&&c.push(this)}),this.opts.element.val(0===c.length?"":c.join(this.opts.separator)))},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;b.length>c;c++)for(var d=0;a.length>d;d++)o(this.opts.id(b[c]),this.opts.id(a[d]))&&(b.splice(c,1),c--,a.splice(d,1),d--);return{added:b,removed:a}},val:function(c,d){var e,f=this;if(0===arguments.length)return this.getVal();if(e=this.data(),e.length||(e=[]),!c&&0!==c)return this.opts.element.val(""),this.updateSelection([]),this.clearSearch(),d&&this.triggerChange({added:this.data(),removed:e}),b;if(this.setVal(c),this.select)this.opts.initSelection(this.select,this.bind(this.updateSelection)),d&&this.triggerChange(this.buildChangeDetails(e,this.data()));else{if(this.opts.initSelection===b)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,function(b){var c=a.map(b,f.id);f.setVal(c),f.updateSelection(b),f.clearSearch(),d&&f.triggerChange(this.buildChangeDetails(e,this.data()))})}this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(c,d){var f,g,e=this;return 0===arguments.length?this.selection.find(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(g=this.data(),c||(c=[]),f=a.map(c,function(a){return e.opts.id(a)}),this.setVal(f),this.updateSelection(c),this.clearSearch(),d&&this.triggerChange(this.buildChangeDetails(g,this.data())),b)}}),a.fn.select2=function(){var d,g,h,i,j,c=Array.prototype.slice.call(arguments,0),k=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","readonly","positionDropdown","data","search"],l=["val","opened","isFocused","container","data"],n={search:"externalSearch"};return this.each(function(){if(0===c.length||"object"==typeof c[0])d=0===c.length?{}:a.extend({},c[0]),d.element=a(this),"select"===d.element.get(0).tagName.toLowerCase()?j=d.element.prop("multiple"):(j=d.multiple||!1,"tags"in d&&(d.multiple=j=!0)),g=j?new f:new e,g.init(d);else{if("string"!=typeof c[0])throw"Invalid arguments to select2 plugin: "+c;if(0>m(c[0],k))throw"Unknown method: "+c[0];if(i=b,g=a(this).data("select2"),g===b)return;if(h=c[0],"container"===h?i=g.container:"dropdown"===h?i=g.dropdown:(n[h]&&(h=n[h]),i=g[h].apply(g,c.slice(1))),m(c[0],l)>=0)return!1}}),i===b?this:i},a.fn.select2.defaults={width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return C(a.text,c.term,e,d),e.join("")},formatSelection:function(a,c,d){return a?d(a.text):b},sortResults:function(a){return a},formatResultCssClass:function(){return b},formatSelectionCssClass:function(){return b},formatNoMatches:function(){return"No matches found"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return(""+b).toUpperCase().indexOf((""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:K,escapeMarkup:D,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},