BuddyPress - Version 1.1.2

Version Description

Download this release

Release Info

Developer apeatling
Plugin Icon 128x128 BuddyPress
Version 1.1.2
Comparing to
See all releases

Code changes from version 1.1.1 to 1.1.2

Files changed (52) hide show
  1. bp-activity/bp-activity-filters.php +2 -0
  2. bp-activity/bp-activity-templatetags.php +4 -2
  3. bp-blogs.php +69 -61
  4. bp-blogs/bp-blogs-classes.php +2 -2
  5. bp-core.php +35 -4
  6. bp-core/bp-core-classes.php +2 -2
  7. bp-core/bp-core-settings.php +3 -35
  8. bp-core/bp-core-signup.php +0 -2
  9. bp-forums/bbpress/bb-admin/admin-base.php +5 -1
  10. bp-forums/bbpress/bb-admin/admin.php +9 -1
  11. bp-forums/bbpress/bb-admin/includes/class.bb-install.php +3 -0
  12. bp-forums/bbpress/bb-admin/includes/defaults.bb-schema.php +43 -27
  13. bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php +21 -2
  14. bp-forums/bbpress/bb-admin/includes/functions.bb-recount.php +262 -0
  15. bp-forums/bbpress/bb-admin/includes/functions.bb-upgrade.php +20 -7
  16. bp-forums/bbpress/bb-admin/index.php +22 -18
  17. bp-forums/bbpress/bb-admin/tools-recount.php +27 -132
  18. bp-forums/bbpress/bb-cron.php +11 -14
  19. bp-forums/bbpress/bb-includes/backpress/functions.formatting.php +6 -4
  20. bp-forums/bbpress/bb-includes/backpress/functions.kses.php +705 -64
  21. bp-forums/bbpress/bb-includes/class.bp-options.php +0 -3
  22. bp-forums/bbpress/bb-includes/functions.bb-core.php +66 -31
  23. bp-forums/bbpress/bb-includes/functions.bb-deprecated.php +5 -2
  24. bp-forums/bbpress/bb-includes/functions.bb-meta.php +1 -1
  25. bp-forums/bbpress/bb-includes/functions.bb-pluggable.php +15 -14
  26. bp-forums/bbpress/bb-includes/functions.bb-posts.php +1 -0
  27. bp-forums/bbpress/bb-includes/functions.bb-template.php +8 -9
  28. bp-forums/bbpress/bb-includes/functions.bb-users.php +78 -40
  29. bp-forums/bbpress/bb-includes/js/jquery/interface.js +2 -1
  30. bp-forums/bbpress/bb-login.php +104 -60
  31. bp-forums/bbpress/bb-templates/kakumei-blue/style.css +2 -0
  32. bp-forums/bbpress/bb-templates/kakumei/favorites.php +1 -1
  33. bp-forums/bbpress/bb-templates/kakumei/forum.php +2 -2
  34. bp-forums/bbpress/bb-templates/kakumei/front-page.php +2 -2
  35. bp-forums/bbpress/bb-templates/kakumei/post-form.php +2 -2
  36. bp-forums/bbpress/bb-templates/kakumei/style.css +16 -1
  37. bp-forums/bbpress/bb-templates/kakumei/tag-single.php +1 -1
  38. bp-forums/bbpress/bb-templates/kakumei/view.php +2 -2
  39. bp-forums/bbpress/rss.php +1 -1
  40. bp-friends/bp-friends-classes.php +3 -3
  41. bp-groups/bp-groups-classes.php +10 -10
  42. bp-groups/bp-groups-templatetags.php +2 -2
  43. bp-loader.php +2 -2
  44. bp-themes/bp-default/style.css +1 -1
  45. bp-themes/bp-sn-parent/_inc/js/ajax.js +6 -36
  46. bp-themes/bp-sn-parent/style.css +1 -1
  47. bp-themes/bp-sn-parent/wire/post-form.php +0 -1
  48. bp-themes/bp-sn-parent/wire/post-list.php +2 -1
  49. bp-xprofile.php +7 -7
  50. bp-xprofile/bp-xprofile-templatetags.php +2 -2
  51. bp-xprofile/deprecated/bp-xprofile-deprecated.php +0 -2
  52. readme.txt +1 -1
bp-activity/bp-activity-filters.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  /* Apply WordPress defined filters */
4
  add_filter( 'bp_get_activity_content', 'bp_activity_filter_kses', 1 );
 
 
5
  add_filter( 'bp_get_activity_content', 'force_balance_tags' );
6
  add_filter( 'bp_get_activity_content', 'wptexturize' );
7
  add_filter( 'bp_get_activity_content', 'convert_smilies' );
2
 
3
  /* Apply WordPress defined filters */
4
  add_filter( 'bp_get_activity_content', 'bp_activity_filter_kses', 1 );
5
+ add_filter( 'bp_get_activity_content', 'bp_activity_filter_kses', 1 );
6
+
7
  add_filter( 'bp_get_activity_content', 'force_balance_tags' );
8
  add_filter( 'bp_get_activity_content', 'wptexturize' );
9
  add_filter( 'bp_get_activity_content', 'convert_smilies' );
bp-activity/bp-activity-templatetags.php CHANGED
@@ -351,6 +351,8 @@ function bp_activity_filter_links( $args = false ) {
351
  $selected = ' class="selected"';
352
  else
353
  unset($selected);
 
 
354
 
355
  switch ( $style ) {
356
  case 'list':
@@ -378,13 +380,13 @@ function bp_activity_filter_links( $args = false ) {
378
  /* Make sure all core internal component names are translatable */
379
  $translatable_component_names = array( __( 'profile', 'buddypress'), __( 'friends', 'buddypress' ), __( 'groups', 'buddypress' ), __( 'status', 'buddypress' ), __( 'blogs', 'buddypress' ) );
380
 
381
- $component_links[] = $before . '<a href="' . $link . '">' . ucwords( __( $component_name, 'buddypress' ) ) . '</a>' . $after;
382
  }
383
 
384
  $link = remove_query_arg( 'afilter' , $link );
385
 
386
  if ( isset( $_GET['afilter'] ) )
387
- $component_links[] = '<' . $tag . ' id="afilter-clear"><a href="' . $link . '"">' . __( 'Clear Filter', 'buddypress' ) . '</a></' . $tag . '>';
388
 
389
  return apply_filters( 'bp_get_activity_filter_links', implode( "\n", $component_links ) );
390
  }
351
  $selected = ' class="selected"';
352
  else
353
  unset($selected);
354
+
355
+ $component_name = attribute_escape( $component_name );
356
 
357
  switch ( $style ) {
358
  case 'list':
380
  /* Make sure all core internal component names are translatable */
381
  $translatable_component_names = array( __( 'profile', 'buddypress'), __( 'friends', 'buddypress' ), __( 'groups', 'buddypress' ), __( 'status', 'buddypress' ), __( 'blogs', 'buddypress' ) );
382
 
383
+ $component_links[] = $before . '<a href="' . attribute_escape( $link ) . '">' . ucwords( __( $component_name, 'buddypress' ) ) . '</a>' . $after;
384
  }
385
 
386
  $link = remove_query_arg( 'afilter' , $link );
387
 
388
  if ( isset( $_GET['afilter'] ) )
389
+ $component_links[] = '<' . $tag . ' id="afilter-clear"><a href="' . attribute_escape( $link ) . '"">' . __( 'Clear Filter', 'buddypress' ) . '</a></' . $tag . '>';
390
 
391
  return apply_filters( 'bp_get_activity_filter_links', implode( "\n", $component_links ) );
392
  }
bp-blogs.php CHANGED
@@ -308,7 +308,7 @@ function bp_blogs_record_existing_blogs() {
308
  }
309
  }
310
 
311
- function bp_blogs_record_blog( $blog_id, $user_id, $no_activity = false ) {
312
  global $bp;
313
 
314
  if ( !$user_id )
@@ -328,7 +328,7 @@ function bp_blogs_record_blog( $blog_id, $user_id, $no_activity = false ) {
328
  bp_blogs_update_blogmeta( $recorded_blog->blog_id, 'last_activity', time() );
329
 
330
  /* Only record this activity if the blog is public */
331
- if ( (int)$_POST['blog_public'] && !$no_activity ) {
332
  /* Record this in activity streams */
333
  bp_blogs_record_activity( array(
334
  'user_id' => $recorded_blog->user_id,
@@ -351,10 +351,9 @@ function bp_blogs_record_post( $post_id, $post, $user_id = false ) {
351
 
352
  if ( !$user_id )
353
  $user_id = (int)$post->post_author;
354
-
355
 
356
  /* This is to stop infinate loops with Donncha's sitewide tags plugin */
357
- if ( (int)get_site_option('tags_blog_id') == (int)$blog_id )
358
  return false;
359
 
360
  /* Don't record this if it's not a post */
@@ -374,20 +373,22 @@ function bp_blogs_record_post( $post_id, $post, $user_id = false ) {
374
 
375
  bp_blogs_update_blogmeta( $recorded_post->blog_id, 'last_activity', time() );
376
 
377
- $post_permalink = bp_post_get_permalink( $post, $blog_id );
 
 
378
 
379
- $activity_content = sprintf( __( '%s wrote a new blog post: %s', 'buddypress' ), bp_core_get_userlink( (int)$post->post_author ), '<a href="' . $post_permalink . '">' . $post->post_title . '</a>' );
380
- $activity_content .= "<blockquote>" . bp_create_excerpt( $post->post_content ) . "</blockquote>";
381
 
382
- /* Record this in activity streams */
383
- bp_blogs_record_activity( array(
384
- 'user_id' => (int)$post->post_author,
385
- 'content' => apply_filters( 'bp_blogs_activity_new_post', $activity_content, &$post, $post_permalink ),
386
- 'primary_link' => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink, $post_id ),
387
- 'component_action' => 'new_blog_post',
388
- 'item_id' => $recorded_post_id,
389
- 'recorded_time' => strtotime( $post->post_date )
390
- ) );
391
  }
392
  } else {
393
  $existing_post = new BP_Blogs_Post( null, $blog_id, $post_id );
@@ -407,23 +408,24 @@ function bp_blogs_record_post( $post_id, $post, $user_id = false ) {
407
  // Re-record the post with the new author.
408
  bp_blogs_record_post( $post_id );
409
  }
410
-
411
- /* Now re-record the post in the activity streams */
412
- $post_permalink = bp_post_get_permalink( $post, $blog_id );
413
-
414
 
415
- $activity_content = sprintf( __( '%s wrote a new blog post: %s', 'buddypress' ), bp_core_get_userlink( (int)$post->post_author ), '<a href="' . $post_permalink . '">' . $post->post_title . '</a>' );
416
- $activity_content .= "<blockquote>" . bp_create_excerpt( $post->post_content ) . "</blockquote>";
 
 
 
 
417
 
418
- /* Record this in activity streams */
419
- bp_blogs_record_activity( array(
420
- 'user_id' => (int)$post->post_author,
421
- 'content' => apply_filters( 'bp_blogs_activity_new_post', $activity_content, &$post, $post_permalink ),
422
- 'primary_link' => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink, $post_id ),
423
- 'component_action' => 'new_blog_post',
424
- 'item_id' => $existing_post->id,
425
- 'recorded_time' => strtotime( $post->post_date )
426
- ) );
 
427
  }
428
 
429
  do_action( 'bp_blogs_new_blog_post', $existing_post, $is_private, $is_recorded );
@@ -457,21 +459,24 @@ function bp_blogs_record_comment( $comment_id, $is_approved ) {
457
 
458
  bp_blogs_update_blogmeta( $recorded_comment->blog_id, 'last_activity', time() );
459
 
460
- $comment_link = bp_post_get_permalink( $comment->post, $recorded_comment->blog_id );
461
- $activity_content = sprintf( __( '%s commented on the blog post %s', 'buddypress' ), bp_core_get_userlink( $user_id ), '<a href="' . $comment_link . '#comment-' . $comment->comment_ID . '">' . $comment->post->post_title . '</a>' );
462
- $activity_content .= '<blockquote>' . bp_create_excerpt( $comment->comment_content ) . '</blockquote>';
463
-
464
- /* Record this in activity streams */
465
- bp_blogs_record_activity( array(
466
- 'user_id' => $recorded_comment->user_id,
467
- 'content' => apply_filters( 'bp_blogs_activity_new_comment', $activity_content, &$comment, &$recorded_comment, $comment_link ),
468
- 'primary_link' => apply_filters( 'bp_blogs_activity_new_comment_primary_link', $comment_link, &$comment, &$recorded_comment ),
469
- 'component_action' => 'new_blog_comment',
470
- 'item_id' => $comment_id,
471
- 'secondary_item_id' => $recorded_comment->blog_id,
472
- 'recorded_time' => $recorded_comment->date_created
473
- ) );
474
-
 
 
 
475
  return $recorded_comment;
476
  }
477
  add_action( 'comment_post', 'bp_blogs_record_comment', 10, 2 );
@@ -488,20 +493,23 @@ function bp_blogs_approve_comment( $comment_id, $comment_status ) {
488
 
489
  bp_blogs_delete_activity( array( 'item_id' => $comment_id, 'secondary_item_id' => $recorded_comment->blog_id, 'component_name' => $bp->blogs->slug, 'component_action' => 'new_blog_comment' ) );
490
 
491
- $comment_link = bp_post_get_permalink( $comment->post, $recorded_comment->blog_id );
492
- $activity_content = sprintf( __( '%s commented on the blog post %s', 'buddypress' ), bp_core_get_userlink( $recorded_comment->user_id ), '<a href="' . $comment_link . '#comment-' . $comment->comment_ID . '">' . $comment->post->post_title . '</a>' );
493
- $activity_content .= '<blockquote>' . bp_create_excerpt( $comment->comment_content ) . '</blockquote>';
494
-
495
- /* Record this in activity streams */
496
- bp_blogs_record_activity( array(
497
- 'user_id' => $recorded_comment->user_id,
498
- 'content' => apply_filters( 'bp_blogs_activity_new_comment', $activity_content, &$comment, &$recorded_comment, $comment_link ),
499
- 'primary_link' => apply_filters( 'bp_blogs_activity_new_comment_primary_link', $comment_link, &$comment, &$recorded_comment ),
500
- 'component_action' => 'new_blog_comment',
501
- 'item_id' => $comment_id,
502
- 'secondary_item_id' => $recorded_comment->blog_id,
503
- 'recorded_time' => $recorded_comment->date_created
504
- ) );
 
 
 
505
  }
506
  add_action( 'wp_set_comment_status', 'bp_blogs_approve_comment', 10, 2 );
507
 
@@ -513,7 +521,7 @@ add_action( 'wp_set_comment_status', 'bp_blogs_unapprove_comment', 10, 2 );
513
 
514
  function bp_blogs_add_user_to_blog( $user_id, $role, $blog_id ) {
515
  if ( $role != 'subscriber' ) {
516
- bp_blogs_record_blog( $blog_id, $user_id, $no_activity = true );
517
  }
518
  }
519
  add_action( 'add_user_to_blog', 'bp_blogs_add_user_to_blog', 10, 3 );
308
  }
309
  }
310
 
311
+ function bp_blogs_record_blog( $blog_id, $user_id, $no_activity = true ) {
312
  global $bp;
313
 
314
  if ( !$user_id )
328
  bp_blogs_update_blogmeta( $recorded_blog->blog_id, 'last_activity', time() );
329
 
330
  /* Only record this activity if the blog is public */
331
+ if ( (int)$_POST['blog_public'] || !$no_activity ) {
332
  /* Record this in activity streams */
333
  bp_blogs_record_activity( array(
334
  'user_id' => $recorded_blog->user_id,
351
 
352
  if ( !$user_id )
353
  $user_id = (int)$post->post_author;
 
354
 
355
  /* This is to stop infinate loops with Donncha's sitewide tags plugin */
356
+ if ( (int)get_site_option( 'tags_blog_id' ) == (int)$blog_id )
357
  return false;
358
 
359
  /* Don't record this if it's not a post */
373
 
374
  bp_blogs_update_blogmeta( $recorded_post->blog_id, 'last_activity', time() );
375
 
376
+ if ( (int)get_blog_option( $blog_id, 'blog_public' ) ) {
377
+ /* Record this in activity streams */
378
+ $post_permalink = bp_post_get_permalink( $post, $blog_id );
379
 
380
+ $activity_content = sprintf( __( '%s wrote a new blog post: %s', 'buddypress' ), bp_core_get_userlink( (int)$post->post_author ), '<a href="' . $post_permalink . '">' . $post->post_title . '</a>' );
381
+ $activity_content .= "<blockquote>" . bp_create_excerpt( $post->post_content ) . "</blockquote>";
382
 
383
+ bp_blogs_record_activity( array(
384
+ 'user_id' => (int)$post->post_author,
385
+ 'content' => apply_filters( 'bp_blogs_activity_new_post', $activity_content, &$post, $post_permalink ),
386
+ 'primary_link' => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink, $post_id ),
387
+ 'component_action' => 'new_blog_post',
388
+ 'item_id' => $recorded_post_id,
389
+ 'recorded_time' => strtotime( $post->post_date )
390
+ ));
391
+ }
392
  }
393
  } else {
394
  $existing_post = new BP_Blogs_Post( null, $blog_id, $post_id );
408
  // Re-record the post with the new author.
409
  bp_blogs_record_post( $post_id );
410
  }
 
 
 
 
411
 
412
+ if ( (int)get_blog_option( $blog_id, 'blog_public' ) ) {
413
+ /* Now re-record the post in the activity streams */
414
+ $post_permalink = bp_post_get_permalink( $post, $blog_id );
415
+
416
+ $activity_content = sprintf( __( '%s wrote a new blog post: %s', 'buddypress' ), bp_core_get_userlink( (int)$post->post_author ), '<a href="' . $post_permalink . '">' . $post->post_title . '</a>' );
417
+ $activity_content .= "<blockquote>" . bp_create_excerpt( $post->post_content ) . "</blockquote>";
418
 
419
+ /* Record this in activity streams */
420
+ bp_blogs_record_activity( array(
421
+ 'user_id' => (int)$post->post_author,
422
+ 'content' => apply_filters( 'bp_blogs_activity_new_post', $activity_content, &$post, $post_permalink ),
423
+ 'primary_link' => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink, $post_id ),
424
+ 'component_action' => 'new_blog_post',
425
+ 'item_id' => $existing_post->id,
426
+ 'recorded_time' => strtotime( $post->post_date )
427
+ ) );
428
+ }
429
  }
430
 
431
  do_action( 'bp_blogs_new_blog_post', $existing_post, $is_private, $is_recorded );
459
 
460
  bp_blogs_update_blogmeta( $recorded_comment->blog_id, 'last_activity', time() );
461
 
462
+ if ( (int)get_blog_option( $recorded_comment->blog_id, 'blog_public' ) ) {
463
+ /* Record in activity streams */
464
+ $comment_link = bp_post_get_permalink( $comment->post, $recorded_comment->blog_id );
465
+ $activity_content = sprintf( __( '%s commented on the blog post %s', 'buddypress' ), bp_core_get_userlink( $user_id ), '<a href="' . $comment_link . '#comment-' . $comment->comment_ID . '">' . $comment->post->post_title . '</a>' );
466
+ $activity_content .= '<blockquote>' . bp_create_excerpt( $comment->comment_content ) . '</blockquote>';
467
+
468
+ /* Record this in activity streams */
469
+ bp_blogs_record_activity( array(
470
+ 'user_id' => $recorded_comment->user_id,
471
+ 'content' => apply_filters( 'bp_blogs_activity_new_comment', $activity_content, &$comment, &$recorded_comment, $comment_link ),
472
+ 'primary_link' => apply_filters( 'bp_blogs_activity_new_comment_primary_link', $comment_link, &$comment, &$recorded_comment ),
473
+ 'component_action' => 'new_blog_comment',
474
+ 'item_id' => $comment_id,
475
+ 'secondary_item_id' => $recorded_comment->blog_id,
476
+ 'recorded_time' => $recorded_comment->date_created
477
+ ) );
478
+ }
479
+
480
  return $recorded_comment;
481
  }
482
  add_action( 'comment_post', 'bp_blogs_record_comment', 10, 2 );
493
 
494
  bp_blogs_delete_activity( array( 'item_id' => $comment_id, 'secondary_item_id' => $recorded_comment->blog_id, 'component_name' => $bp->blogs->slug, 'component_action' => 'new_blog_comment' ) );
495
 
496
+ if ( (int)get_blog_option( $recorded_comment->blog_id, 'blog_public' ) ) {
497
+ /* Record in activity streams */
498
+ $comment_link = bp_post_get_permalink( $comment->post, $recorded_comment->blog_id );
499
+ $activity_content = sprintf( __( '%s commented on the blog post %s', 'buddypress' ), bp_core_get_userlink( $recorded_comment->user_id ), '<a href="' . $comment_link . '#comment-' . $comment->comment_ID . '">' . $comment->post->post_title . '</a>' );
500
+ $activity_content .= '<blockquote>' . bp_create_excerpt( $comment->comment_content ) . '</blockquote>';
501
+
502
+ /* Record this in activity streams */
503
+ bp_blogs_record_activity( array(
504
+ 'user_id' => $recorded_comment->user_id,
505
+ 'content' => apply_filters( 'bp_blogs_activity_new_comment', $activity_content, &$comment, &$recorded_comment, $comment_link ),
506
+ 'primary_link' => apply_filters( 'bp_blogs_activity_new_comment_primary_link', $comment_link, &$comment, &$recorded_comment ),
507
+ 'component_action' => 'new_blog_comment',
508
+ 'item_id' => $comment_id,
509
+ 'secondary_item_id' => $recorded_comment->blog_id,
510
+ 'recorded_time' => $recorded_comment->date_created
511
+ ) );
512
+ }
513
  }
514
  add_action( 'wp_set_comment_status', 'bp_blogs_approve_comment', 10, 2 );
515
 
521
 
522
  function bp_blogs_add_user_to_blog( $user_id, $role, $blog_id ) {
523
  if ( $role != 'subscriber' ) {
524
+ bp_blogs_record_blog( $blog_id, $user_id );
525
  }
526
  }
527
  add_action( 'add_user_to_blog', 'bp_blogs_add_user_to_blog', 10, 3 );
bp-blogs/bp-blogs-classes.php CHANGED
@@ -180,7 +180,7 @@ Class BP_Blogs_Blog {
180
  if ( !$bp->blogs )
181
  bp_blogs_setup_globals();
182
 
183
- like_escape($letter);
184
 
185
  if ( $limit && $page ) {
186
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
@@ -198,7 +198,7 @@ Class BP_Blogs_Blog {
198
  if ( !$bp->blogs )
199
  bp_blogs_setup_globals();
200
 
201
- like_escape($filter);
202
 
203
  if ( $limit && $page ) {
204
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
180
  if ( !$bp->blogs )
181
  bp_blogs_setup_globals();
182
 
183
+ $letter = like_escape( $wpdb->escape( $letter ) );
184
 
185
  if ( $limit && $page ) {
186
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
198
  if ( !$bp->blogs )
199
  bp_blogs_setup_globals();
200
 
201
+ $filter = like_escape( $wpdb->escape( $filter ) );
202
 
203
  if ( $limit && $page ) {
204
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
bp-core.php CHANGED
@@ -65,6 +65,10 @@ if ( !defined( 'BP_SEARCH_SLUG' ) )
65
  /* Define the slug for the search page */
66
  if ( !defined( 'BP_HOME_BLOG_SLUG' ) )
67
  define( 'BP_HOME_BLOG_SLUG', 'blog' );
 
 
 
 
68
 
69
 
70
  /* "And now for something completely different" .... */
@@ -625,10 +629,18 @@ function bp_core_new_nav_item( $args = '' ) {
625
  'position' => $position
626
  );
627
 
628
- /***
629
- * If we are not viewing a user, and this is a root component, don't attach the
630
- * default subnav function so we can display a directory or something else.
 
631
  */
 
 
 
 
 
 
 
632
  if ( bp_core_is_root_component( $slug ) && !$bp->displayed_user->id )
633
  return;
634
 
@@ -1533,7 +1545,7 @@ function bp_core_delete_account( $user_id = false ) {
1533
  $user_id = $bp->loggedin_user->id;
1534
 
1535
  /* Make sure account deletion is not disabled */
1536
- if ( ( !(int) get_site_option( 'bp-disable-account-deletion' ) && !is_site_admin() ) )
1537
  return false;
1538
 
1539
  /* Site admins should not be allowed to be deleted */
@@ -1703,6 +1715,25 @@ function bp_core_add_admin_menu_page( $args = '' ) {
1703
  return $hookname;
1704
  }
1705
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1706
 
1707
  /**
1708
  * bp_core_remove_data()
65
  /* Define the slug for the search page */
66
  if ( !defined( 'BP_HOME_BLOG_SLUG' ) )
67
  define( 'BP_HOME_BLOG_SLUG', 'blog' );
68
+
69
+ /* Register BuddyPress themes contained within the theme folder */
70
+ if ( function_exists( 'register_theme_folder' ) )
71
+ register_theme_folder( 'buddypress/bp-themes' );
72
 
73
 
74
  /* "And now for something completely different" .... */
629
  'position' => $position
630
  );
631
 
632
+ /***
633
+ * If this nav item is hidden for the displayed user, and
634
+ * the logged in user is not the displayed user
635
+ * looking at their own profile, don't create the nav item.
636
  */
637
+ if ( !$show_for_displayed_user && !bp_is_home() )
638
+ return false;
639
+
640
+ /***
641
+ * If we are not viewing a user, and this is a root component, don't attach the
642
+ * default subnav function so we can display a directory or something else.
643
+ */
644
  if ( bp_core_is_root_component( $slug ) && !$bp->displayed_user->id )
645
  return;
646
 
1545
  $user_id = $bp->loggedin_user->id;
1546
 
1547
  /* Make sure account deletion is not disabled */
1548
+ if ( ( '' != get_site_option( 'bp-disable-account-deletion' ) || (int) get_site_option( 'bp-disable-account-deletion' ) ) && !is_site_admin() )
1549
  return false;
1550
 
1551
  /* Site admins should not be allowed to be deleted */
1715
  return $hookname;
1716
  }
1717
 
1718
+ /**
1719
+ * bp_core_boot_spammer()
1720
+ *
1721
+ * When a user logs in, check if they have been marked as a spammer. If then simply
1722
+ * redirect them to the home page and stop them from logging in.
1723
+ *
1724
+ * @package BuddyPress Core
1725
+ * @param $username The username of the user
1726
+ * @uses delete_usermeta() deletes a row from the wp_usermeta table based on meta_key
1727
+ */
1728
+ function bp_core_boot_spammer( $auth_obj, $username ) {
1729
+ global $bp;
1730
+
1731
+ $user = get_userdatabylogin( $username );
1732
+
1733
+ if ( (int)$user->spam )
1734
+ bp_core_redirect( $bp->root_domain );
1735
+ }
1736
+ add_filter( 'authenticate', 'bp_core_boot_spammer', 11, 2 );
1737
 
1738
  /**
1739
  * bp_core_remove_data()
bp-core/bp-core-classes.php CHANGED
@@ -219,7 +219,7 @@ class BP_Core_User {
219
  if ( strlen($letter) > 1 || is_numeric($letter) || !$letter )
220
  return false;
221
 
222
- like_escape($letter);
223
 
224
  $total_users_sql = apply_filters( 'bp_core_users_by_letter_count_sql', $wpdb->prepare( "SELECT DISTINCT count(u.ID) FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter );
225
  $paged_users_sql = apply_filters( 'bp_core_users_by_letter_sql', $wpdb->prepare( "SELECT DISTINCT u.ID as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC{$pag_sql}", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter, $pag_sql );
@@ -239,7 +239,7 @@ class BP_Core_User {
239
  if ( $limit && $page )
240
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
241
 
242
- like_escape($search_terms);
243
 
244
  $total_users_sql = apply_filters( 'bp_core_search_users_count_sql', "SELECT DISTINCT count(u.ID) as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pd.value LIKE '%%$search_terms%%' ORDER BY pd.value ASC", $search_terms );
245
  $paged_users_sql = apply_filters( 'bp_core_search_users_sql', "SELECT DISTINCT u.ID as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pd.value LIKE '%%$search_terms%%' ORDER BY pd.value ASC{$pag_sql}", $search_terms, $pag_sql );
219
  if ( strlen($letter) > 1 || is_numeric($letter) || !$letter )
220
  return false;
221
 
222
+ $letter = like_escape( $wpdb->escape( $letter ) );
223
 
224
  $total_users_sql = apply_filters( 'bp_core_users_by_letter_count_sql', $wpdb->prepare( "SELECT DISTINCT count(u.ID) FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter );
225
  $paged_users_sql = apply_filters( 'bp_core_users_by_letter_sql', $wpdb->prepare( "SELECT DISTINCT u.ID as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC{$pag_sql}", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter, $pag_sql );
239
  if ( $limit && $page )
240
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
241
 
242
+ $search_terms = like_escape( $wpdb->escape( $search_terms ) );
243
 
244
  $total_users_sql = apply_filters( 'bp_core_search_users_count_sql', "SELECT DISTINCT count(u.ID) as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pd.value LIKE '%%$search_terms%%' ORDER BY pd.value ASC", $search_terms );
245
  $paged_users_sql = apply_filters( 'bp_core_search_users_sql', "SELECT DISTINCT u.ID as user_id FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE u.spam = 0 AND u.deleted = 0 AND u.user_status = 0 AND pd.value LIKE '%%$search_terms%%' ORDER BY pd.value ASC{$pag_sql}", $search_terms, $pag_sql );
bp-core/bp-core-settings.php CHANGED
@@ -153,47 +153,15 @@ function bp_core_screen_notification_settings_content() {
153
 
154
  /**** DELETE ACCOUNT ****/
155
 
156
- function bp_core_screen_delete_account() {
157
- global $current_user, $bp_settings_updated, $pass_error;
158
-
159
- if ( isset( $_POST['delete-account-button'] ) ) {
160
  check_admin_referer( 'delete-account' );
161
-
162
  // delete the users account
163
  if ( bp_core_delete_account() )
164
  bp_core_redirect( site_url() );
165
  }
166
 
167
- $bp_settings_updated = false;
168
- $pass_error = false;
169
-
170
- if ( isset($_POST['submit']) ) {
171
- check_admin_referer('bp_settings_general');
172
-
173
- require_once( WPINC . '/registration.php' );
174
-
175
- // Form has been submitted and nonce checks out, lets do it.
176
-
177
- if ( $_POST['email'] != '' ) {
178
- $current_user->user_email = wp_specialchars( trim( $_POST['email'] ));
179
- }
180
-
181
- if ( $_POST['pass1'] != '' && $_POST['pass2'] != '' ) {
182
- if ( $_POST['pass1'] == $_POST['pass2'] && !strpos( " " . $_POST['pass1'], "\\" ) ) {
183
- $current_user->user_pass = $_POST['pass1'];
184
- } else {
185
- $pass_error = true;
186
- }
187
- } else if ( empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) || !empty( $_POST['pass1'] ) && empty( $_POST['pass2'] ) ) {
188
- $pass_error = true;
189
- } else {
190
- unset( $current_user->user_pass );
191
- }
192
-
193
- if ( !$pass_error && wp_update_user( get_object_vars( $current_user ) ) )
194
- $bp_settings_updated = true;
195
- }
196
-
197
  add_action( 'bp_template_title', 'bp_core_screen_delete_account_title' );
198
  add_action( 'bp_template_content', 'bp_core_screen_delete_account_content' );
199
 
153
 
154
  /**** DELETE ACCOUNT ****/
155
 
156
+ function bp_core_screen_delete_account() {
157
+ if ( isset( $_POST['delete-account-understand'] ) ) {
 
 
158
  check_admin_referer( 'delete-account' );
159
+
160
  // delete the users account
161
  if ( bp_core_delete_account() )
162
  bp_core_redirect( site_url() );
163
  }
164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  add_action( 'bp_template_title', 'bp_core_screen_delete_account_title' );
166
  add_action( 'bp_template_content', 'bp_core_screen_delete_account_content' );
167
 
bp-core/bp-core-signup.php CHANGED
@@ -116,8 +116,6 @@ function bp_core_screen_signup() {
116
  /* If the user decided to create a blog, save those details to usermeta */
117
  if ( 'blog' == $active_signup || 'all' == $active_signup ) {
118
  $usermeta['public'] = ( 'public' == $_POST['signup_blog_privacy'] ) ? true : false;
119
- $usermeta['blogname'] = $_POST['signup_blog_url'];
120
- $usermeta['blog_title'] = $_POST['signup_blog_title'];
121
  }
122
 
123
  $usermeta = apply_filters( 'bp_signup_usermeta', $usermeta );
116
  /* If the user decided to create a blog, save those details to usermeta */
117
  if ( 'blog' == $active_signup || 'all' == $active_signup ) {
118
  $usermeta['public'] = ( 'public' == $_POST['signup_blog_privacy'] ) ? true : false;
 
 
119
  }
120
 
121
  $usermeta = apply_filters( 'bp_signup_usermeta', $usermeta );
bp-forums/bbpress/bb-admin/admin-base.php CHANGED
@@ -10,7 +10,11 @@ bb_get_admin_header();
10
 
11
  <?php if ( is_callable($bb_admin_page) ) : call_user_func( $bb_admin_page ); else : ?>
12
 
13
- <p><?php _e('Nothing to see here.'); ?><p>
 
 
 
 
14
 
15
  <?php endif; ?>
16
 
10
 
11
  <?php if ( is_callable($bb_admin_page) ) : call_user_func( $bb_admin_page ); else : ?>
12
 
13
+ <h2><?php _e( 'Page not found' ); ?></h2>
14
+ <?php
15
+ bb_admin_notice( __( 'There is no administration page at the requested address. Please check the address you entered and try again.' ), 'error' );
16
+ do_action( 'bb_admin_notices' );
17
+ ?>
18
 
19
  <?php endif; ?>
20
 
bp-forums/bbpress/bb-admin/admin.php CHANGED
@@ -16,8 +16,10 @@ require_once( BB_PATH . 'bb-admin/includes/functions.bb-admin.php' );
16
 
17
  $bb_admin_page = bb_find_filename( $_SERVER['PHP_SELF'] );
18
 
 
19
  if ( $bb_admin_page == 'admin-base.php' ) {
20
- $bb_admin_page = $_GET['plugin'];
 
21
  }
22
 
23
  wp_enqueue_script( 'common' );
@@ -34,4 +36,10 @@ if ( isset( $_GET['foldmenu'] ) ) {
34
  }
35
  bb_admin_menu_generator();
36
  bb_get_current_admin_menu();
 
 
 
 
 
 
37
  ?>
16
 
17
  $bb_admin_page = bb_find_filename( $_SERVER['PHP_SELF'] );
18
 
19
+ $_check_callback = false;
20
  if ( $bb_admin_page == 'admin-base.php' ) {
21
+ $bb_admin_page = (string) @$_GET['plugin'];
22
+ $_check_callback = true;
23
  }
24
 
25
  wp_enqueue_script( 'common' );
36
  }
37
  bb_admin_menu_generator();
38
  bb_get_current_admin_menu();
39
+
40
+ if ( $_check_callback ) {
41
+ if ( empty( $bb_registered_plugin_callbacks ) || empty( $bb_admin_page ) || !in_array( $bb_admin_page, $bb_registered_plugin_callbacks ) ) {
42
+ unset( $bb_admin_page );
43
+ }
44
+ }
45
  ?>
bp-forums/bbpress/bb-admin/includes/class.bb-install.php CHANGED
@@ -309,6 +309,9 @@ class BB_Install
309
  function get_languages()
310
  {
311
  foreach ( bb_glob( BB_LANG_DIR . '*.mo' ) as $language ) {
 
 
 
312
  $language = str_replace( '.mo', '', basename( $language ) );
313
  $this->languages[$language] = $language;
314
  }
309
  function get_languages()
310
  {
311
  foreach ( bb_glob( BB_LANG_DIR . '*.mo' ) as $language ) {
312
+ if ( substr( $language, 0, 18 ) === 'continents-cities-' ) {
313
+ continue;
314
+ }
315
  $language = str_replace( '.mo', '', basename( $language ) );
316
  $this->languages[$language] = $language;
317
  }
bp-forums/bbpress/bb-admin/includes/defaults.bb-schema.php CHANGED
@@ -113,33 +113,37 @@ $bb_queries['topics'] = "CREATE TABLE IF NOT EXISTS `$bbdb->topics` (
113
  KEY `stickies` (`topic_status`, `topic_sticky`, `topic_time`)
114
  );";
115
 
116
- // users - 'user_login', 'user_nicename' and 'user_registered' indices are inconsistent with WordPress
117
- $bb_queries['users'] = "CREATE TABLE IF NOT EXISTS `$bbdb->users` (
118
- `ID` bigint(20) unsigned NOT NULL auto_increment,
119
- `user_login` varchar(60) NOT NULL default '',
120
- `user_pass` varchar(64) NOT NULL default '',
121
- `user_nicename` varchar(50) NOT NULL default '',
122
- `user_email` varchar(100) NOT NULL default '',
123
- `user_url` varchar(100) NOT NULL default '',
124
- `user_registered` datetime NOT NULL default '0000-00-00 00:00:00',
125
- `user_status` int(11) NOT NULL default 0,
126
- `display_name` varchar(250) NOT NULL default '',
127
- PRIMARY KEY (`ID`),
128
- UNIQUE KEY `user_login` (`user_login`),
129
- UNIQUE KEY `user_nicename` (`user_nicename`),
130
- KEY `user_registered` (`user_registered`)
131
- );";
132
-
133
- // usermeta
134
- $bb_queries['usermeta'] = "CREATE TABLE IF NOT EXISTS `$bbdb->usermeta` (
135
- `umeta_id` bigint(20) NOT NULL auto_increment,
136
- `user_id` bigint(20) NOT NULL default 0,
137
- `meta_key` varchar(255),
138
- `meta_value` longtext,
139
- PRIMARY KEY (`umeta_id`),
140
- KEY `user_id` (`user_id`),
141
- KEY `meta_key` (`meta_key`)
142
- );";
 
 
 
 
143
 
144
  $bb_queries = apply_filters( 'bb_schema_pre_charset', $bb_queries );
145
 
@@ -212,6 +216,18 @@ if ( bb_get_option('wp_table_prefix') || ( defined( 'BB_SCHEMA_IGNORE_WP_USERS_K
212
  $bb_schema_ignore = false;
213
  }
214
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  $bb_schema_ignore = apply_filters( 'bb_schema_ignore', $bb_schema_ignore );
216
 
217
  do_action( 'bb_schema_defined' );
113
  KEY `stickies` (`topic_status`, `topic_sticky`, `topic_time`)
114
  );";
115
 
116
+ if ( bb_get_option( 'wp_table_prefix' ) || ( defined( 'BB_SCHEMA_IGNORE_WP_USERS_TABLES' ) && BB_SCHEMA_IGNORE_WP_USERS_TABLES ) ) {
117
+ // Don't add user tables
118
+ } else {
119
+ // users - 'user_login', 'user_nicename' and 'user_registered' indices are inconsistent with WordPress
120
+ $bb_queries['users'] = "CREATE TABLE IF NOT EXISTS `$bbdb->users` (
121
+ `ID` bigint(20) unsigned NOT NULL auto_increment,
122
+ `user_login` varchar(60) NOT NULL default '',
123
+ `user_pass` varchar(64) NOT NULL default '',
124
+ `user_nicename` varchar(50) NOT NULL default '',
125
+ `user_email` varchar(100) NOT NULL default '',
126
+ `user_url` varchar(100) NOT NULL default '',
127
+ `user_registered` datetime NOT NULL default '0000-00-00 00:00:00',
128
+ `user_status` int(11) NOT NULL default 0,
129
+ `display_name` varchar(250) NOT NULL default '',
130
+ PRIMARY KEY (`ID`),
131
+ UNIQUE KEY `user_login` (`user_login`),
132
+ UNIQUE KEY `user_nicename` (`user_nicename`),
133
+ KEY `user_registered` (`user_registered`)
134
+ );";
135
+
136
+ // usermeta
137
+ $bb_queries['usermeta'] = "CREATE TABLE IF NOT EXISTS `$bbdb->usermeta` (
138
+ `umeta_id` bigint(20) NOT NULL auto_increment,
139
+ `user_id` bigint(20) NOT NULL default 0,
140
+ `meta_key` varchar(255),
141
+ `meta_value` longtext,
142
+ PRIMARY KEY (`umeta_id`),
143
+ KEY `user_id` (`user_id`),
144
+ KEY `meta_key` (`meta_key`)
145
+ );";
146
+ }
147
 
148
  $bb_queries = apply_filters( 'bb_schema_pre_charset', $bb_queries );
149
 
216
  $bb_schema_ignore = false;
217
  }
218
 
219
+ if ( bb_get_option('wp_table_prefix') || ( defined( 'BB_SCHEMA_IGNORE_WP_USERS_TABLES' ) && BB_SCHEMA_IGNORE_WP_USERS_TABLES ) ) {
220
+ if ( $bb_schema_ignore ) {
221
+ $bb_schema_ignore['tables'] = array( $bbdb->users, $bbdb->usermeta );
222
+ } else {
223
+ $bb_schema_ignore = array(
224
+ 'tables' => array( $bbdb->users, $bbdb->usermeta ),
225
+ 'columns' => array(),
226
+ 'indices' => array()
227
+ );
228
+ }
229
+ }
230
+
231
  $bb_schema_ignore = apply_filters( 'bb_schema_ignore', $bb_schema_ignore );
232
 
233
  do_action( 'bb_schema_defined' );
bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php CHANGED
@@ -117,6 +117,10 @@ function bb_admin_menu_generator()
117
  function bb_admin_add_menu( $display_name, $capability, $file_name, $menu_position = false, $class = '', $id = '' )
118
  {
119
  global $bb_menu;
 
 
 
 
120
 
121
  if ( $display_name && $capability && $file_name ) {
122
  // Get an array of the keys
@@ -164,6 +168,10 @@ function bb_admin_add_menu( $display_name, $capability, $file_name, $menu_positi
164
  $plugin_menu_next++;
165
  }
166
 
 
 
 
 
167
  // Add the menu item at the given key
168
  $bb_menu[$plugin_menu_next] = array( $display_name, $capability, $file_name, $class, $id );
169
 
@@ -178,7 +186,15 @@ function bb_admin_add_menu( $display_name, $capability, $file_name, $menu_positi
178
  function bb_admin_add_submenu( $display_name, $capability, $file_name, $parent = 'plugins.php' )
179
  {
180
  global $bb_submenu;
 
 
 
 
 
181
  if ( $display_name && $capability && $file_name ) {
 
 
 
182
  $bb_submenu[$parent][] = array( $display_name, $capability, $file_name );
183
  ksort( $bb_submenu );
184
  }
@@ -397,10 +413,13 @@ function bb_get_ids_by_role( $role = 'moderator', $sort = 0, $page = 1, $limit =
397
 
398
  function bb_user_row( $user, $role = '', $email = false ) {
399
  $actions = "<a href='" . esc_attr( get_user_profile_link( $user->ID ) ) . "'>" . __('View') . "</a>";
400
- if ( bb_current_user_can( 'edit_user', $user_id ) )
 
401
  $actions .= " | <a href='" . esc_attr( get_profile_tab_link( $user->ID, 'edit' ) ) . "'>" . __('Edit') . "</a>";
 
 
402
  $r = "\t<tr id='user-$user->ID'" . get_alt_class("user-$role") . ">\n";
403
- $r .= "\t\t<td class=\"user\">" . bb_get_avatar( $user->ID, 32 ) . "<span class=\"row-title\"><a href='" . get_user_profile_link( $user->ID ) . "'>" . get_user_name( $user->ID ) . "</a></span><div><span class=\"row-actions\">$actions</span>&nbsp;</div></td>\n";
404
  $r .= "\t\t<td><a href='" . get_user_profile_link( $user->ID ) . "'>" . get_user_display_name( $user->ID ) . "</a></td>\n";
405
  if ( $email ) {
406
  $email = bb_get_user_email( $user->ID );
117
  function bb_admin_add_menu( $display_name, $capability, $file_name, $menu_position = false, $class = '', $id = '' )
118
  {
119
  global $bb_menu;
120
+ global $bb_registered_plugin_callbacks;
121
+ if ( empty( $bb_registered_plugin_callbacks ) ) {
122
+ $bb_registered_plugin_callbacks = array();
123
+ }
124
 
125
  if ( $display_name && $capability && $file_name ) {
126
  // Get an array of the keys
168
  $plugin_menu_next++;
169
  }
170
 
171
+ if ( strpos( $file_name, '.php' ) === false ) {
172
+ $bb_registered_plugin_callbacks[] = $file_name;
173
+ }
174
+
175
  // Add the menu item at the given key
176
  $bb_menu[$plugin_menu_next] = array( $display_name, $capability, $file_name, $class, $id );
177
 
186
  function bb_admin_add_submenu( $display_name, $capability, $file_name, $parent = 'plugins.php' )
187
  {
188
  global $bb_submenu;
189
+ global $bb_registered_plugin_callbacks;
190
+ if ( empty( $bb_registered_plugin_callbacks ) ) {
191
+ $bb_registered_plugin_callbacks = array();
192
+ }
193
+
194
  if ( $display_name && $capability && $file_name ) {
195
+ if ( strpos( $file_name, '.php' ) === false ) {
196
+ $bb_registered_plugin_callbacks[] = $file_name;
197
+ }
198
  $bb_submenu[$parent][] = array( $display_name, $capability, $file_name );
199
  ksort( $bb_submenu );
200
  }
413
 
414
  function bb_user_row( $user, $role = '', $email = false ) {
415
  $actions = "<a href='" . esc_attr( get_user_profile_link( $user->ID ) ) . "'>" . __('View') . "</a>";
416
+ $title = '';
417
+ if ( bb_current_user_can( 'edit_user', $user_id ) ) {
418
  $actions .= " | <a href='" . esc_attr( get_profile_tab_link( $user->ID, 'edit' ) ) . "'>" . __('Edit') . "</a>";
419
+ $title = " title='" . esc_attr( sprintf( __( 'User ID: %d' ), $user->ID ) ) . "'";
420
+ }
421
  $r = "\t<tr id='user-$user->ID'" . get_alt_class("user-$role") . ">\n";
422
+ $r .= "\t\t<td class=\"user\">" . bb_get_avatar( $user->ID, 32 ) . "<span class=\"row-title\"><a href='" . get_user_profile_link( $user->ID ) . "'" . $title . ">" . get_user_name( $user->ID ) . "</a></span><div><span class=\"row-actions\">$actions</span>&nbsp;</div></td>\n";
423
  $r .= "\t\t<td><a href='" . get_user_profile_link( $user->ID ) . "'>" . get_user_display_name( $user->ID ) . "</a></td>\n";
424
  if ( $email ) {
425
  $email = bb_get_user_email( $user->ID );
bp-forums/bbpress/bb-admin/includes/functions.bb-recount.php ADDED
@@ -0,0 +1,262 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function bb_recount_topic_posts()
4
+ {
5
+ global $bbdb;
6
+
7
+ $statement = __( 'Counting the number of posts in each topic&hellip; %s' );
8
+ $result = __( 'Failed!' );
9
+
10
+ $sql = "INSERT INTO `$bbdb->topics` (`topic_id`, `topic_posts`) (SELECT `topic_id`, COUNT(`post_status`) as `topic_posts` FROM `$bbdb->posts` WHERE `post_status` = '0' GROUP BY `topic_id`) ON DUPLICATE KEY UPDATE `topic_posts` = VALUES(`topic_posts`);";
11
+ if ( is_wp_error( $bbdb->query( $sql ) ) ) {
12
+ return sprintf( $statement, $result );
13
+ }
14
+
15
+ $result = __( 'Complete!' );
16
+ return sprintf( $statement, $result );
17
+ }
18
+
19
+ function bb_recount_topic_voices()
20
+ {
21
+ global $bbdb;
22
+
23
+ $statement = __( 'Counting the number of voices in each topic&hellip; %s' );
24
+ $result = __( 'Failed!' );
25
+
26
+ $sql_delete = "DELETE FROM `$bbdb->meta` WHERE `object_type` = 'bb_topic' AND `meta_key` = 'voices_count';";
27
+ if ( is_wp_error( $bbdb->query( $sql_delete ) ) ) {
28
+ return sprintf( $statement, $result );
29
+ }
30
+
31
+ $sql = "INSERT INTO `$bbdb->meta` (`object_type`, `object_id`, `meta_key`, `meta_value`) (SELECT 'bb_topic', `topic_id`, 'voices_count', COUNT(DISTINCT `poster_id`) as `meta_value` FROM `$bbdb->posts` WHERE `post_status` = '0' GROUP BY `topic_id`);";
32
+ if ( is_wp_error( $bbdb->query( $sql ) ) ) {
33
+ return sprintf( $statement, $result );
34
+ }
35
+
36
+ $result = __( 'Complete!' );
37
+ return sprintf( $statement, $result );
38
+ }
39
+
40
+ function bb_recount_topic_deleted_posts()
41
+ {
42
+ global $bbdb;
43
+
44
+ $statement = __( 'Counting the number of deleted posts in each topic&hellip; %s' );
45
+ $result = __( 'Failed!' );
46
+
47
+ $sql_delete = "DELETE FROM `$bbdb->meta` WHERE `object_type` = 'bb_topic' AND `meta_key` = 'deleted_posts';";
48
+ if ( is_wp_error( $bbdb->query( $sql_delete ) ) ) {
49
+ return sprintf( $statement, $result );
50
+ }
51
+
52
+ $sql = "INSERT INTO `$bbdb->meta` (`object_type`, `object_id`, `meta_key`, `meta_value`) (SELECT 'bb_topic', `topic_id`, 'deleted_posts', COUNT(`post_status`) as `meta_value` FROM `$bbdb->posts` WHERE `post_status` != '0' GROUP BY `topic_id`);";
53
+ if ( is_wp_error( $bbdb->query( $sql ) ) ) {
54
+ return sprintf( $statement, $result );
55
+ }
56
+
57
+ $result = __( 'Complete!' );
58
+ return sprintf( $statement, $result );
59
+ }
60
+
61
+ function bb_recount_forum_topics()
62
+ {
63
+ global $bbdb;
64
+
65
+ $statement = __( 'Counting the number of topics in each forum&hellip; %s' );
66
+ $result = __( 'Failed!' );
67
+
68
+ $sql = "INSERT INTO `$bbdb->forums` (`forum_id`, `topics`) (SELECT `forum_id`, COUNT(`topic_status`) as `topics` FROM `$bbdb->topics` WHERE `topic_status` = '0' GROUP BY `forum_id`) ON DUPLICATE KEY UPDATE `topics` = VALUES(`topics`);";
69
+ if ( is_wp_error( $bbdb->query( $sql ) ) ) {
70
+ return sprintf( $statement, $result );
71
+ }
72
+
73
+ $result = __( 'Complete!' );
74
+ return sprintf( $statement, $result );
75
+ }
76
+
77
+ function bb_recount_forum_posts()
78
+ {
79
+ global $bbdb;
80
+
81
+ $statement = __( 'Counting the number of posts in each forum&hellip; %s' );
82
+ $result = __( 'Failed!' );
83
+
84
+ $sql = "INSERT INTO `$bbdb->forums` (`forum_id`, `posts`) (SELECT `forum_id`, COUNT(`post_status`) as `posts` FROM `$bbdb->posts` WHERE `post_status` = '0' GROUP BY `forum_id`) ON DUPLICATE KEY UPDATE `posts` = VALUES(`posts`);";
85
+ if ( is_wp_error( $bbdb->query( $sql ) ) ) {
86
+ return sprintf( $statement, $result );
87
+ }
88
+
89
+ $result = __( 'Complete!' );
90
+ return sprintf( $statement, $result );
91
+ }
92
+
93
+ function bb_recount_user_topics_replied()
94
+ {
95
+ global $bbdb;
96
+
97
+ $statement = __( 'Counting the number of topics to which each user has replied&hellip; %s' );
98
+ $result = __( 'Failed!' );
99
+
100
+ $sql_select = "SELECT `poster_id`, COUNT(DISTINCT `topic_id`) as `_count` FROM `$bbdb->posts` WHERE `post_status` = '0' GROUP BY `poster_id`;";
101
+ $insert_rows = $bbdb->get_results( $sql_select );
102
+
103
+ if ( is_wp_error( $insert_rows ) ) {
104
+ return sprintf( $statement, $result );
105
+ }
106
+
107
+ $meta_key = $bbdb->prefix . 'topics_replied';
108
+
109
+ $insert_values = array();
110
+ foreach ( $insert_rows as $insert_row ) {
111
+ $insert_values[] = "('$insert_row->poster_id', '$meta_key', '$insert_row->_count')";
112
+ }
113
+
114
+ if ( !count( $insert_values ) ) {
115
+ return sprintf( $statement, $result );
116
+ }
117
+
118
+ $sql_delete = "DELETE FROM `$bbdb->usermeta` WHERE `meta_key` = '$meta_key';";
119
+ if ( is_wp_error( $bbdb->query( $sql_delete ) ) ) {
120
+ return sprintf( $statement, $result );
121
+ }
122
+
123
+ $insert_values = array_chunk( $insert_values, 10000 );
124
+ foreach ( $insert_values as $chunk ) {
125
+ $chunk = "\n" . join( ",\n", $chunk );
126
+ $sql_insert = "INSERT INTO `$bbdb->usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES $chunk;";
127
+
128
+ if ( is_wp_error( $bbdb->query( $sql_insert ) ) ) {
129
+ return sprintf( $statement, $result );
130
+ }
131
+ }
132
+
133
+ $result = __( 'Complete!' );
134
+ return sprintf( $statement, $result );
135
+ }
136
+
137
+ // TODO - make fast - see #1146
138
+ function bb_recount_topic_tags()
139
+ {
140
+ // Reset tag count to zero
141
+ $bbdb->query( "UPDATE $bbdb->topics SET tag_count = 0" );
142
+
143
+ // Get all tags
144
+ $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag' );
145
+
146
+ if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
147
+ $message = __('Counted topic tags');
148
+ foreach ( $terms as $term ) {
149
+ $topic_ids = bb_get_tagged_topic_ids( $term->term_id );
150
+ if ( !is_wp_error( $topic_ids ) && is_array( $topic_ids ) ) {
151
+ $bbdb->query(
152
+ "UPDATE $bbdb->topics SET tag_count = tag_count + 1 WHERE topic_id IN (" . join( ',', $topic_ids ) . ")"
153
+ );
154
+ }
155
+ unset( $topic_ids );
156
+ }
157
+ }
158
+ unset( $terms, $term );
159
+
160
+ return $message;
161
+ }
162
+
163
+ // TODO - make fast - see #1146
164
+ function bb_recount_tag_topics()
165
+ {
166
+ // Get all tags
167
+ $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag', array( 'hide_empty' => false ) );
168
+
169
+ if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
170
+ $message = __('Counted tagged topics');
171
+ $_terms = array();
172
+ foreach ( $terms as $term ) {
173
+ $_terms[] = $term->term_id;
174
+ }
175
+ if ( count( $_terms ) ) {
176
+ $wp_taxonomy_object->update_term_count( $_terms, 'bb_topic_tag' );
177
+ }
178
+ }
179
+ unset( $term, $_terms );
180
+
181
+ return $message;
182
+ }
183
+
184
+ // TODO - make fast - see #1146
185
+ function bb_recount_tag_delete_empty()
186
+ {
187
+ // Get all tags
188
+ if ( !isset( $terms ) ) {
189
+ $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag', array( 'hide_empty' => false ) );
190
+ }
191
+
192
+ if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
193
+ $message = __('Deleted tags with no topics');
194
+ foreach ( $terms as $term ) {
195
+ $topic_ids = bb_get_tagged_topic_ids( $term->term_id );
196
+ if ( !is_wp_error( $topic_ids ) && is_array( $topic_ids ) ) {
197
+ if ( false === $topic_ids || ( is_array( $topic_ids ) && !count( $topic_ids ) ) ) {
198
+ bb_destroy_tag( $term->term_taxonomy_id );
199
+ }
200
+ }
201
+ unset( $topic_ids );
202
+ }
203
+ }
204
+ unset( $terms, $term );
205
+
206
+ return $message;
207
+ }
208
+
209
+ function bb_recount_clean_favorites()
210
+ {
211
+ global $bbdb;
212
+
213
+ $statement = __( 'Removing deleted topics from user favorites&hellip; %s' );
214
+ $result = __( 'Failed!' );
215
+
216
+ $meta_key = $bbdb->prefix . 'favorites';
217
+
218
+ $users = $bbdb->get_results( "SELECT `user_id`, `meta_value` AS `favorites` FROM `$bbdb->usermeta` WHERE `meta_key` = '$meta_key';" );
219
+ if ( is_wp_error( $users ) ) {
220
+ return sprintf( $statement, $result );
221
+ }
222
+
223
+ $topics = $bbdb->get_col( "SELECT `topic_id` FROM `$bbdb->topics` WHERE `topic_status` = '0';" );
224
+
225
+ if ( is_wp_error( $topics ) ) {
226
+ return sprintf( $statement, $result );
227
+ }
228
+
229
+ $values = array();
230
+ foreach ( $users as $user ) {
231
+ if ( empty( $user->favorites ) || !is_string( $user->favorites ) ) {
232
+ continue;
233
+ }
234
+ $favorites = explode( ',', $user->favorites );
235
+ if ( empty( $favorites ) || !is_array( $favorites ) ) {
236
+ continue;
237
+ }
238
+ $favorites = join( ',', array_intersect( $topics, $favorites ) );
239
+ $values[] = "('$user->user_id', '$meta_key', '$favorites')";
240
+ }
241
+
242
+ if ( !count( $values ) ) {
243
+ return sprintf( $statement, $result );
244
+ }
245
+
246
+ $sql_delete = "DELETE FROM `$bbdb->usermeta` WHERE `meta_key` = '$meta_key';";
247
+ if ( is_wp_error( $bbdb->query( $sql_delete ) ) ) {
248
+ return sprintf( $statement, $result );
249
+ }
250
+
251
+ $values = array_chunk( $values, 10000 );
252
+ foreach ( $values as $chunk ) {
253
+ $chunk = "\n" . join( ",\n", $chunk );
254
+ $sql_insert = "INSERT INTO `$bbdb->usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES $chunk;";
255
+ if ( is_wp_error( $bbdb->query( $sql_insert ) ) ) {
256
+ return sprintf( $statement, $result );
257
+ }
258
+ }
259
+
260
+ $result = __( 'Complete!' );
261
+ return sprintf( $statement, $result );
262
+ }
bp-forums/bbpress/bb-admin/includes/functions.bb-upgrade.php CHANGED
@@ -9,16 +9,25 @@ function bb_install() {
9
  return array_filter($alterations);
10
  }
11
 
12
- function bb_upgrade_all() {
13
- if ( !ini_get('safe_mode') )
 
14
  set_time_limit(600);
 
 
 
 
 
 
15
 
16
  $bb_upgrade = array();
17
 
18
  // Pre DB Delta
19
- $bb_upgrade['messages'][] = bb_upgrade_160(); // Break blocked users
20
- $bb_upgrade['messages'][] = bb_upgrade_170(); // Escaping in usermeta
21
- $bb_upgrade['messages'][] = bb_upgrade_180(); // Delete users for real
 
 
22
  $bb_upgrade['messages'][] = bb_upgrade_190(); // Move topic_resolved to topicmeta
23
  $bb_upgrade['messages'][] = bb_upgrade_200(); // Indices
24
  $bb_upgrade['messages'][] = bb_upgrade_210(); // Convert text slugs to varchar slugs
@@ -37,13 +46,17 @@ function bb_upgrade_all() {
37
  // Post DB Delta
38
  $bb_upgrade['messages'][] = bb_upgrade_1000(); // Make forum and topic slugs
39
  $bb_upgrade['messages'][] = bb_upgrade_1010(); // Make sure all forums have a valid parent
40
- $bb_upgrade['messages'][] = bb_upgrade_1020(); // Add a user_nicename to existing users
 
 
41
  $bb_upgrade['messages'][] = bb_upgrade_1030(); // Move admin_email option to from_email
42
  $bb_upgrade['messages'][] = bb_upgrade_1040(); // Activate Akismet and bozo plugins and convert active plugins to new convention on upgrade only
43
  $bb_upgrade['messages'][] = bb_upgrade_1050(); // Update active theme if present
44
  $bb_upgrade['messages'][] = bb_upgrade_1070(); // trim whitespace from raw_tag
45
  $bb_upgrade['messages'][] = bb_upgrade_1080(); // Convert tags to taxonomy
46
- $bb_upgrade['messages'][] = bb_upgrade_1090(); // Add display names
 
 
47
  $bb_upgrade['messages'][] = bb_upgrade_1100(); // Replace forum_stickies index with stickies (#876)
48
  $bb_upgrade['messages'][] = bb_upgrade_1110(); // Create plugin directory (#1083)
49
  $bb_upgrade['messages'][] = bb_upgrade_1120(); // Create theme directory (#1083)
9
  return array_filter($alterations);
10
  }
11
 
12
+ function bb_upgrade_all()
13
+ {
14
+ if ( !ini_get( 'safe_mode' ) ) {
15
  set_time_limit(600);
16
+ }
17
+
18
+ $_do_user_operations = true;
19
+ if ( bb_get_option( 'wp_table_prefix' ) || ( defined( 'BB_SCHEMA_IGNORE_WP_USERS_TABLES' ) && BB_SCHEMA_IGNORE_WP_USERS_TABLES ) ) {
20
+ $_do_user_operations = false;
21
+ }
22
 
23
  $bb_upgrade = array();
24
 
25
  // Pre DB Delta
26
+ if ( $_do_user_operations ) {
27
+ $bb_upgrade['messages'][] = bb_upgrade_160(); // Break blocked users
28
+ $bb_upgrade['messages'][] = bb_upgrade_170(); // Escaping in usermeta
29
+ $bb_upgrade['messages'][] = bb_upgrade_180(); // Delete users for real
30
+ }
31
  $bb_upgrade['messages'][] = bb_upgrade_190(); // Move topic_resolved to topicmeta
32
  $bb_upgrade['messages'][] = bb_upgrade_200(); // Indices
33
  $bb_upgrade['messages'][] = bb_upgrade_210(); // Convert text slugs to varchar slugs
46
  // Post DB Delta
47
  $bb_upgrade['messages'][] = bb_upgrade_1000(); // Make forum and topic slugs
48
  $bb_upgrade['messages'][] = bb_upgrade_1010(); // Make sure all forums have a valid parent
49
+ if ( $_do_user_operations ) {
50
+ $bb_upgrade['messages'][] = bb_upgrade_1020(); // Add a user_nicename to existing users
51
+ }
52
  $bb_upgrade['messages'][] = bb_upgrade_1030(); // Move admin_email option to from_email
53
  $bb_upgrade['messages'][] = bb_upgrade_1040(); // Activate Akismet and bozo plugins and convert active plugins to new convention on upgrade only
54
  $bb_upgrade['messages'][] = bb_upgrade_1050(); // Update active theme if present
55
  $bb_upgrade['messages'][] = bb_upgrade_1070(); // trim whitespace from raw_tag
56
  $bb_upgrade['messages'][] = bb_upgrade_1080(); // Convert tags to taxonomy
57
+ if ( $_do_user_operations ) {
58
+ $bb_upgrade['messages'][] = bb_upgrade_1090(); // Add display names
59
+ }
60
  $bb_upgrade['messages'][] = bb_upgrade_1100(); // Replace forum_stickies index with stickies (#876)
61
  $bb_upgrade['messages'][] = bb_upgrade_1110(); // Create plugin directory (#1083)
62
  $bb_upgrade['messages'][] = bb_upgrade_1120(); // Create theme directory (#1083)
bp-forums/bbpress/bb-admin/index.php CHANGED
@@ -29,6 +29,14 @@ $rn_users_average = sprintf(__ngettext('<span>%d</span> user', '<span>%d</span>
29
  $rn_topic_tags_average = bb_get_topic_tags_per_day();
30
  $rn_topic_tags_average = sprintf(__ngettext('<span>%d</span> tag', '<span>%d</span> tags', $rn_topic_tags_average), $rn_topic_tags_average);
31
 
 
 
 
 
 
 
 
 
32
  $bb_admin_body_class = ' bb-admin-dashboard';
33
 
34
  bb_get_admin_header();
@@ -48,28 +56,24 @@ bb_get_admin_header();
48
  <th><?php _e( 'Per Day' ); ?></th>
49
  </tr>
50
  </thead>
 
 
 
51
  <tbody>
 
 
 
52
  <tr>
53
- <td><?php echo $rn_forums; ?></td>
54
- <td>-</td>
55
- </tr>
56
- <tr>
57
- <td><?php echo $rn_topics; ?></td>
58
- <td><?php echo $rn_topics_average; ?></td>
59
- </tr>
60
- <tr>
61
- <td><?php echo $rn_posts; ?></td>
62
- <td><?php echo $rn_posts_average; ?></td>
63
- </tr>
64
- <tr>
65
- <td><?php echo $rn_topic_tags; ?></td>
66
- <td><?php echo $rn_topic_tags_average; ?></td>
67
- </tr>
68
- <tr>
69
- <td><?php echo $rn_users; ?></td>
70
- <td><?php echo $rn_users_average; ?></td>
71
  </tr>
 
 
 
72
  </tbody>
 
 
 
73
  </table>
74
  </div>
75
 
29
  $rn_topic_tags_average = bb_get_topic_tags_per_day();
30
  $rn_topic_tags_average = sprintf(__ngettext('<span>%d</span> tag', '<span>%d</span> tags', $rn_topic_tags_average), $rn_topic_tags_average);
31
 
32
+ $rn = apply_filters( 'bb_admin_right_now', array(
33
+ 'forums' => array( $rn_forums, '-' ),
34
+ 'topics' => array( $rn_topics, $rn_topics_average ),
35
+ 'posts' => array( $rn_posts, $rn_posts_average ),
36
+ 'topic_tags' => array( $rn_topic_tags, $rn_topic_tags_average ),
37
+ 'users' => array( $rn_users, $rn_users_average )
38
+ ) );
39
+
40
  $bb_admin_body_class = ' bb-admin-dashboard';
41
 
42
  bb_get_admin_header();
56
  <th><?php _e( 'Per Day' ); ?></th>
57
  </tr>
58
  </thead>
59
+ <?php
60
+ if ( !empty( $rn ) && is_array( $rn ) ) {
61
+ ?>
62
  <tbody>
63
+ <?php
64
+ foreach ( $rn as $rn_row ) {
65
+ ?>
66
  <tr>
67
+ <td><?php echo $rn_row[0]; ?></td>
68
+ <td><?php echo $rn_row[1]; ?></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  </tr>
70
+ <?php
71
+ }
72
+ ?>
73
  </tbody>
74
+ <?php
75
+ }
76
+ ?>
77
  </table>
78
  </div>
79
 
bp-forums/bbpress/bb-admin/tools-recount.php CHANGED
@@ -1,164 +1,59 @@
1
  <?php
2
- require_once('admin.php');
 
3
 
4
  if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
5
  bb_check_admin_referer( 'do-counts' );
6
 
 
7
  $messages = array();
8
- if ( isset($_POST['topic-posts']) && 1 == $_POST['topic-posts'] ) {
9
- if ( $topics = (array) $bbdb->get_results("SELECT topic_id, COUNT(post_id) AS count FROM $bbdb->posts WHERE post_status = '0' GROUP BY topic_id") ) {
10
- $messages[] = __('Counted posts');
11
- foreach ($topics as $topic) {
12
- $topic_id = (int) $topic->topic_id;
13
- $bbdb->query( $bbdb->prepare( "UPDATE $bbdb->topics SET topic_posts = %s WHERE topic_id = %s" ), $topic->count, $topic_id );
14
- }
15
- unset($topics, $topic, $topic_id);
16
- }
17
- }
18
 
19
- if ( isset($_POST['topic-voices']) && 1 == $_POST['topic-voices'] ) {
20
- if ( $topics = (array) $bbdb->get_results("SELECT topic_id FROM $bbdb->topics ORDER BY topic_id") ) {
21
- $messages[] = __('Counted voices');
22
- foreach ($topics as $topic) {
23
- $topic_id = (int) $topic->topic_id;
24
- if ( $voices = $bbdb->get_col( $bbdb->prepare( "SELECT DISTINCT poster_id FROM $bbdb->posts WHERE topic_id = %s AND post_status = '0';", $topic_id ) ) ) {
25
- $voices = count( $voices );
26
- bb_update_topicmeta( $topic_id, 'voices_count', $voices );
27
- }
28
- }
29
- unset($topics, $topic, $topic_id);
30
- }
31
  }
32
 
33
- if ( isset($_POST['topic-deleted-posts']) && 1 == $_POST['topic-deleted-posts'] ) {
34
- $old = (array) $bbdb->get_col("SELECT object_id FROM $bbdb->meta WHERE object_type = 'bb_topics' AND meta_key = 'deleted_posts'");
35
- $old = array_flip($old);
36
- if ( $topics = (array) $bbdb->get_results("SELECT topic_id, COUNT(post_id) AS count FROM $bbdb->posts WHERE post_status != '0' GROUP BY topic_id") ) {
37
- $messages[] = __('Counting deleted posts&#8230;');
38
- foreach ( $topics as $topic ) {
39
- bb_update_topicmeta( $topic->topic_id, 'deleted_posts', $topic->count );
40
- unset($old[$topic->topic_id]);
41
- }
42
- unset($topics, $topic);
43
- }
44
- if ( $old ) {
45
- $old = join(',', array_flip($old));
46
- $bbdb->query("DELETE FROM $bbdb->meta WHERE object_type = 'bb_topic' AND object_id IN ($old) AND meta_key = 'deleted_posts'");
47
- $messages[] = __('&#8230;counted deleted posts');
48
- } else {
49
- $messages[] = __('&#8230;no deleted posts to count');
50
- }
51
  }
52
 
53
- if ( isset($_POST['forums']) && 1 == $_POST['forums'] ) {
54
- if ( $all_forums = (array) $bbdb->get_col("SELECT forum_id FROM $bbdb->forums") ) {
55
- $messages[] = __('Counted forum topics and posts');
56
- $all_forums = array_flip( $all_forums );
57
- $forums = $bbdb->get_results("SELECT forum_id, COUNT(topic_id) AS topic_count, SUM(topic_posts) AS post_count FROM $bbdb->topics WHERE topic_status = 0 GROUP BY forum_id");
58
- foreach ( (array) $forums as $forum ) {
59
- $bbdb->query("UPDATE $bbdb->forums SET topics = '$forum->topic_count', posts = '$forum->post_count' WHERE forum_id = '$forum->forum_id'");
60
- unset($all_forums[$forum->forum_id]);
61
- }
62
- if ( $all_forums ) {
63
- $all_forums = implode(',', array_flip( $all_forums ) );
64
- $bbdb->query("UPDATE $bbdb->forums SET topics = 0, posts = 0 WHERE forum_id IN ($all_forums)");
65
- }
66
- unset($all_forums, $forums, $forum);
67
- }
68
  }
69
 
70
- if ( isset($_POST['topics-replied']) && 1 == $_POST['topics-replied'] ) {
71
- if ( $users = (array) $bbdb->get_col("SELECT ID FROM $bbdb->users") ) {
72
- $messages[] = __('Counted topics to which each user has replied');
73
- foreach ( $users as $user )
74
- bb_update_topics_replied( $user );
75
- unset($users, $user);
76
- }
77
  }
78
 
79
- if ( isset($_POST['topic-tag-count']) && 1 == $_POST['topic-tag-count'] ) {
80
- // Reset tag count to zero
81
- $bbdb->query( "UPDATE $bbdb->topics SET tag_count = 0" );
82
-
83
- // Get all tags
84
- $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag' );
85
-
86
- if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
87
- $messages[] = __('Counted topic tags');
88
- foreach ( $terms as $term ) {
89
- $topic_ids = bb_get_tagged_topic_ids( $term->term_id );
90
- if ( !is_wp_error( $topic_ids ) && is_array( $topic_ids ) ) {
91
- $bbdb->query(
92
- "UPDATE $bbdb->topics SET tag_count = tag_count + 1 WHERE topic_id IN (" . join( ',', $topic_ids ) . ")"
93
- );
94
- }
95
- unset( $topic_ids );
96
- }
97
- }
98
- unset( $terms, $term );
99
  }
100
 
101
- if ( isset($_POST['tags-tag-count']) && 1 == $_POST['tags-tag-count'] ) {
102
- // Get all tags
103
- $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag', array( 'hide_empty' => false ) );
104
-
105
- if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
106
- $messages[] = __('Counted tagged topics');
107
- $_terms = array();
108
- foreach ( $terms as $term ) {
109
- $_terms[] = $term->term_id;
110
- }
111
- if ( count( $_terms ) ) {
112
- $wp_taxonomy_object->update_term_count( $_terms, 'bb_topic_tag' );
113
- }
114
- }
115
- unset( $term, $_terms );
116
  }
117
 
118
- if ( isset($_POST['tags-delete-empty']) && 1 == $_POST['tags-delete-empty'] ) {
119
- // Get all tags
120
- if ( !isset( $terms ) ) {
121
- $terms = $wp_taxonomy_object->get_terms( 'bb_topic_tag', array( 'hide_empty' => false ) );
122
- }
123
 
124
- if ( !is_wp_error( $terms ) && is_array( $terms ) ) {
125
- $messages[] = __('Deleted tags with no topics');
126
- foreach ( $terms as $term ) {
127
- $topic_ids = bb_get_tagged_topic_ids( $term->term_id );
128
- if ( !is_wp_error( $topic_ids ) && is_array( $topic_ids ) ) {
129
- if ( false === $topic_ids || ( is_array( $topic_ids ) && !count( $topic_ids ) ) ) {
130
- bb_destroy_tag( $term->term_taxonomy_id );
131
- }
132
- }
133
- unset( $topic_ids );
134
- }
135
- }
136
- unset( $terms, $term );
137
  }
138
 
139
- if ( isset($_POST['clean-favorites']) && 1 == $_POST['clean-favorites'] ) {
140
- $favorites_key = $bbdb->prefix . 'favorites';
141
- if ( $users = $bbdb->get_results("SELECT user_id AS id, meta_value AS favorites FROM $bbdb->usermeta WHERE meta_key = '" . $favorites_key . "'") ) {
142
- $messages[] = __('Removed deleted topics from users\' favorites');
143
- $topics = $bbdb->get_col("SELECT topic_id FROM $bbdb->topics WHERE topic_status = '0'");
144
- foreach ( $users as $user ) {
145
- foreach ( explode(',', $user->favorites) as $favorite ) {
146
- if ( !in_array($favorite, $topics) ) {
147
- bb_remove_user_favorite( $user->id, $favorite );
148
- }
149
- }
150
- }
151
- unset($topics, $users, $user, $favorite);
152
- }
153
  }
154
 
155
  bb_recount_list();
156
  foreach ( (array) $recount_list as $item ) {
157
  if ( isset($item[2]) && isset($_POST[$item[0]]) && 1 == $_POST[$item[0]] && is_callable($item[2]) ) {
158
- call_user_func( $item[2] );
159
  }
160
  }
161
-
 
 
162
  if ( count( $messages ) ) {
163
  $messages = join( '</p>' . "\n" . '<p>', $messages );
164
  bb_admin_notice( $messages );
1
  <?php
2
+ require_once( 'admin.php' );
3
+ require_once( 'includes/functions.bb-recount.php' );
4
 
5
  if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
6
  bb_check_admin_referer( 'do-counts' );
7
 
8
+ // Stores messages
9
  $messages = array();
 
 
 
 
 
 
 
 
 
 
10
 
11
+ if ( !empty( $_POST['topic-posts'] ) ) {
12
+ $messages[] = bb_recount_topic_posts();
 
 
 
 
 
 
 
 
 
 
13
  }
14
 
15
+ if ( !empty( $_POST['topic-voices'] ) ) {
16
+ $messages[] = bb_recount_topic_voices();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
+ if ( !empty( $_POST['topic-deleted-posts'] ) ) {
20
+ $messages[] = bb_recount_topic_deleted_posts();
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
22
 
23
+ if ( !empty( $_POST['forums'] ) ) {
24
+ $messages[] = bb_recount_forum_topics();
25
+ $messages[] = bb_recount_forum_posts();
 
 
 
 
26
  }
27
 
28
+ if ( !empty( $_POST['topics-replied'] ) ) {
29
+ $messages[] = bb_recount_user_topics_replied();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
32
+ if ( !empty( $_POST['topic-tag-count'] ) ) {
33
+ $messages[] = bb_recount_topic_tags();
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
35
 
36
+ if ( !empty( $_POST['tags-tag-count'] ) ) {
37
+ $messages[] = bb_recount_tag_topics();
38
+ }
 
 
39
 
40
+ if ( !empty( $_POST['tags-delete-empty'] ) ) {
41
+ $messages[] = bb_recount_tag_delete_empty();
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
 
44
+ if ( !empty( $_POST['clean-favorites'] ) ) {
45
+ $messages[] = bb_recount_clean_favorites();
 
 
 
 
 
 
 
 
 
 
 
 
46
  }
47
 
48
  bb_recount_list();
49
  foreach ( (array) $recount_list as $item ) {
50
  if ( isset($item[2]) && isset($_POST[$item[0]]) && 1 == $_POST[$item[0]] && is_callable($item[2]) ) {
51
+ $messages[] = call_user_func( $item[2] );
52
  }
53
  }
54
+
55
+ wp_cache_flush();
56
+
57
  if ( count( $messages ) ) {
58
  $messages = join( '</p>' . "\n" . '<p>', $messages );
59
  bb_admin_notice( $messages );
bp-forums/bbpress/bb-cron.php CHANGED
@@ -11,6 +11,10 @@
11
 
12
  ignore_user_abort( true );
13
 
 
 
 
 
14
  /**
15
  * Tell bbPress we are doing the CRON task.
16
  *
@@ -21,24 +25,19 @@ define( 'DOING_CRON', true );
21
  /** Setup bbPress environment */
22
  require_once( './bb-load.php' );
23
 
24
- if ( $_GET['check'] != backpress_get_option( 'cron_check' ) ) {
25
- exit;
26
- }
27
-
28
- if ( bb_get_option( 'doing_cron' ) > time() ) {
29
- exit;
30
  }
31
 
32
- bb_update_option( 'doing_cron', time() + 30 );
33
-
34
- $crons = _get_cron_array();
35
  $keys = array_keys( $crons );
36
- if ( !is_array( $crons ) || $keys[0] > time() ) {
37
- return;
 
 
38
  }
39
 
40
  foreach ( $crons as $timestamp => $cronhooks ) {
41
- if ( $timestamp > time() ) {
42
  break;
43
  }
44
  foreach ( $cronhooks as $hook => $keys ) {
@@ -53,5 +52,3 @@ foreach ( $crons as $timestamp => $cronhooks ) {
53
  }
54
  }
55
  }
56
-
57
- bb_update_option( 'doing_cron', 0 );
11
 
12
  ignore_user_abort( true );
13
 
14
+ if ( !empty( $_POST ) || defined( 'DOING_AJAX' ) || defined( 'DOING_CRON' ) ) {
15
+ die();
16
+ }
17
+
18
  /**
19
  * Tell bbPress we are doing the CRON task.
20
  *
25
  /** Setup bbPress environment */
26
  require_once( './bb-load.php' );
27
 
28
+ if ( false === $crons = _get_cron_array() ) {
29
+ die();
 
 
 
 
30
  }
31
 
 
 
 
32
  $keys = array_keys( $crons );
33
+ $local_time = time();
34
+
35
+ if ( !is_array( $crons ) || ( isset($keys[0]) && $keys[0] > $local_time ) ) {
36
+ die();
37
  }
38
 
39
  foreach ( $crons as $timestamp => $cronhooks ) {
40
+ if ( $timestamp > $local_time ) {
41
  break;
42
  }
43
  foreach ( $cronhooks as $hook => $keys ) {
52
  }
53
  }
54
  }
 
 
bp-forums/bbpress/bb-includes/backpress/functions.formatting.php CHANGED
@@ -1489,14 +1489,15 @@ if ( !function_exists('clean_url') ) :
1489
  *
1490
  * @param string $url The URL to be cleaned.
1491
  * @param array $protocols Optional. An array of acceptable protocols.
1492
- * Defaults to 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet' if not set.
1493
  * @param string $context Optional. How the URL will be used. Default is 'display'.
1494
  * @return string The cleaned $url after the 'cleaned_url' filter is applied.
1495
  */
1496
  function clean_url( $url, $protocols = null, $context = 'display' ) {
1497
  $original_url = $url;
1498
 
1499
- if ('' == $url) return $url;
 
1500
  $url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $url);
1501
  $strip = array('%0d', '%0a', '%0D', '%0A');
1502
  $url = _deep_replace($strip, $url);
@@ -1511,12 +1512,13 @@ function clean_url( $url, $protocols = null, $context = 'display' ) {
1511
 
1512
  // Replace ampersands and single quotes only when displaying.
1513
  if ( 'display' == $context ) {
1514
- $url = preg_replace('/&([^#])(?![a-z]{2,8};)/', '&#038;$1', $url);
 
1515
  $url = str_replace( "'", '&#039;', $url );
1516
  }
1517
 
1518
  if ( !is_array($protocols) )
1519
- $protocols = array('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet');
1520
  if ( wp_kses_bad_protocol( $url, $protocols ) != $url )
1521
  return '';
1522
 
1489
  *
1490
  * @param string $url The URL to be cleaned.
1491
  * @param array $protocols Optional. An array of acceptable protocols.
1492
+ * Defaults to 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn' if not set.
1493
  * @param string $context Optional. How the URL will be used. Default is 'display'.
1494
  * @return string The cleaned $url after the 'cleaned_url' filter is applied.
1495
  */
1496
  function clean_url( $url, $protocols = null, $context = 'display' ) {
1497
  $original_url = $url;
1498
 
1499
+ if ( '' == $url )
1500
+ return $url;
1501
  $url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $url);
1502
  $strip = array('%0d', '%0a', '%0D', '%0A');
1503
  $url = _deep_replace($strip, $url);
1512
 
1513
  // Replace ampersands and single quotes only when displaying.
1514
  if ( 'display' == $context ) {
1515
+ $url = wp_kses_normalize_entities( $url );
1516
+ $url = str_replace( '&amp;', '&#038;', $url );
1517
  $url = str_replace( "'", '&#039;', $url );
1518
  }
1519
 
1520
  if ( !is_array($protocols) )
1521
+ $protocols = array ('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn');
1522
  if ( wp_kses_bad_protocol( $url, $protocols ) != $url )
1523
  return '';
1524
 
bp-forums/bbpress/bb-includes/backpress/functions.kses.php CHANGED
@@ -1,30 +1,485 @@
1
  <?php
2
- // Last sync [WP11537]
3
 
4
  /**
5
- * HTML/XHTML filter that only allows some elements and attributes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  *
7
  * Added wp_ prefix to avoid conflicts with existing kses users
8
  *
9
  * @version 0.2.2
10
  * @copyright (C) 2002, 2003, 2005
11
- * @author Ulf Harnhammar <metaur@users.sourceforge.net>
12
  *
13
  * @package External
14
  * @subpackage KSES
15
  *
16
- * @internal
17
- * *** CONTACT INFORMATION ***
18
- * E-mail: metaur at users dot sourceforge dot net
19
- * Web page: http://sourceforge.net/projects/kses
20
- * Paper mail: Ulf Harnhammar
21
- * Ymergatan 17 C
22
- * 753 25 Uppsala
23
- * SWEDEN
24
- *
25
- * [kses strips evil scripts!]
26
  */
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  /**
30
  * Filters content and keeps only allowable HTML elements.
@@ -35,9 +490,9 @@
35
  * call this function.
36
  *
37
  * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news',
38
- * 'irc', 'gopher', 'nntp', 'feed', and finally 'telnet. This covers all common
39
- * link protocols, except for 'javascript' which should not be allowed for
40
- * untrusted users.
41
  *
42
  * @since 1.0.0
43
  *
@@ -46,7 +501,8 @@
46
  * @param array $allowed_protocols Optional. Allowed protocol in links.
47
  * @return string Filtered content with only allowed HTML elements
48
  */
49
- function wp_kses($string, $allowed_html, $allowed_protocols = array ('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet')) {
 
50
  $string = wp_kses_no_null($string);
51
  $string = wp_kses_js_entities($string);
52
  $string = wp_kses_normalize_entities($string);
@@ -100,8 +556,18 @@ function wp_kses_split($string, $allowed_html, $allowed_protocols) {
100
  global $pass_allowed_html, $pass_allowed_protocols;
101
  $pass_allowed_html = $allowed_html;
102
  $pass_allowed_protocols = $allowed_protocols;
103
- return preg_replace_callback('%((<!--.*?(-->|$))|(<[^>]*(>|$)|>))%',
104
- create_function('$match', 'global $pass_allowed_html, $pass_allowed_protocols; return wp_kses_split2($match[1], $pass_allowed_html, $pass_allowed_protocols);'), $string);
 
 
 
 
 
 
 
 
 
 
105
  }
106
 
107
  /**
@@ -186,7 +652,7 @@ function wp_kses_attr($element, $attr, $allowed_html, $allowed_protocols) {
186
  # Is there a closing XHTML slash at the end of the attributes?
187
 
188
  $xhtml_slash = '';
189
- if (preg_match('%\s/\s*$%', $attr))
190
  $xhtml_slash = ' /';
191
 
192
  # Are any attributes allowed at all for this element?
@@ -224,6 +690,19 @@ function wp_kses_attr($element, $attr, $allowed_html, $allowed_protocols) {
224
  break;
225
  }
226
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  if ($ok)
228
  $attr2 .= ' '.$arreach['whole']; # it passed them
229
  } # if !is_array($current)
@@ -299,11 +778,11 @@ function wp_kses_hair($attr, $allowed_protocols) {
299
 
300
  case 2 : # attribute value, a URL after href= for instance
301
 
302
- if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match))
303
  # "value"
304
  {
305
  $thisval = $match[1];
306
- if ( in_array($attrname, $uris) )
307
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
308
 
309
  if(FALSE === array_key_exists($attrname, $attrarr)) {
@@ -315,11 +794,11 @@ function wp_kses_hair($attr, $allowed_protocols) {
315
  break;
316
  }
317
 
318
- if (preg_match("/^'([^']*)'(\s+|$)/", $attr, $match))
319
  # 'value'
320
  {
321
  $thisval = $match[1];
322
- if ( in_array($attrname, $uris) )
323
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
324
 
325
  if(FALSE === array_key_exists($attrname, $attrarr)) {
@@ -331,11 +810,11 @@ function wp_kses_hair($attr, $allowed_protocols) {
331
  break;
332
  }
333
 
334
- if (preg_match("%^([^\s\"']+)(\s+|$)%", $attr, $match))
335
  # value
336
  {
337
  $thisval = $match[1];
338
- if ( in_array($attrname, $uris) )
339
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
340
 
341
  if(FALSE === array_key_exists($attrname, $attrarr)) {
@@ -374,10 +853,10 @@ function wp_kses_hair($attr, $allowed_protocols) {
374
  * @since 1.0.0
375
  *
376
  * @param string $value Attribute value
377
- * @param string $vless Whether the value is valueless or not. Use 'y' or 'n'
378
  * @param string $checkname What $checkvalue is checking for.
379
  * @param mixed $checkvalue What constraint the value should pass
380
- * @return bool Whether check passes (true) or not (false)
381
  */
382
  function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {
383
  $ok = true;
@@ -453,7 +932,6 @@ function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {
453
  */
454
  function wp_kses_bad_protocol($string, $allowed_protocols) {
455
  $string = wp_kses_no_null($string);
456
- $string = preg_replace('/\xad+/', '', $string); # deals with Opera "feature"
457
  $string2 = $string.'a';
458
 
459
  while ($string != $string2) {
@@ -559,14 +1037,9 @@ function wp_kses_html_error($string) {
559
  * @return string Sanitized content
560
  */
561
  function wp_kses_bad_protocol_once($string, $allowed_protocols) {
562
- global $_kses_allowed_protocols;
563
- $_kses_allowed_protocols = $allowed_protocols;
564
-
565
- $string2 = preg_split('/:|&#58;|&#x3a;/i', $string, 2);
566
- if ( isset($string2[1]) && !preg_match('%/\?%', $string2[0]) )
567
- $string = wp_kses_bad_protocol_once2($string2[0]) . trim($string2[1]);
568
- else
569
- $string = preg_replace_callback('/^((&[^;]*;|[\sA-Za-z0-9])*)'.'(:|&#58;|&#[Xx]3[Aa];)\s*/', 'wp_kses_bad_protocol_once2', $string);
570
 
571
  return $string;
572
  }
@@ -580,31 +1053,19 @@ function wp_kses_bad_protocol_once($string, $allowed_protocols) {
580
  * @access private
581
  * @since 1.0.0
582
  *
583
- * @param mixed $matches string or preg_replace_callback() matches array to check for bad protocols
 
584
  * @return string Sanitized content
585
  */
586
- function wp_kses_bad_protocol_once2($matches) {
587
- global $_kses_allowed_protocols;
588
-
589
- if ( is_array($matches) ) {
590
- if ( ! isset($matches[1]) || empty($matches[1]) )
591
- return '';
592
-
593
- $string = $matches[1];
594
- } else {
595
- $string = $matches;
596
- }
597
-
598
  $string2 = wp_kses_decode_entities($string);
599
  $string2 = preg_replace('/\s/', '', $string2);
600
  $string2 = wp_kses_no_null($string2);
601
- $string2 = preg_replace('/\xad+/', '', $string2);
602
- # deals with Opera "feature"
603
  $string2 = strtolower($string2);
604
 
605
  $allowed = false;
606
- foreach ( (array) $_kses_allowed_protocols as $one_protocol)
607
- if (strtolower($one_protocol) == $string2) {
608
  $allowed = true;
609
  break;
610
  }
@@ -633,13 +1094,34 @@ function wp_kses_normalize_entities($string) {
633
 
634
  # Change back the allowed entities in our entity whitelist
635
 
636
- $string = preg_replace('/&amp;([A-Za-z][A-Za-z0-9]{0,19});/', '&\\1;', $string);
637
- $string = preg_replace_callback('/&amp;#0*([0-9]{1,5});/', 'wp_kses_normalize_entities2', $string);
638
- $string = preg_replace_callback('/&amp;#([Xx])0*(([0-9A-Fa-f]{2}){1,2});/', 'wp_kses_normalize_entities3', $string);
639
 
640
  return $string;
641
  }
642
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  /**
644
  * Callback for wp_kses_normalize_entities() regular expression.
645
  *
@@ -653,11 +1135,18 @@ function wp_kses_normalize_entities($string) {
653
  * @return string Correctly encoded entity
654
  */
655
  function wp_kses_normalize_entities2($matches) {
656
- if ( ! isset($matches[1]) || empty($matches[1]) )
657
  return '';
658
 
659
  $i = $matches[1];
660
- return ( ( ! valid_unicode($i) ) || ($i > 65535) ? "&amp;#$i;" : "&#$i;" );
 
 
 
 
 
 
 
661
  }
662
 
663
  /**
@@ -672,11 +1161,11 @@ function wp_kses_normalize_entities2($matches) {
672
  * @return string Correctly encoded entity
673
  */
674
  function wp_kses_normalize_entities3($matches) {
675
- if ( ! isset($matches[2]) || empty($matches[2]) )
676
  return '';
677
 
678
- $hexchars = $matches[2];
679
- return ( ( ! valid_unicode(hexdec($hexchars)) ) ? "&amp;#x$hexchars;" : "&#x$hexchars;" );
680
  }
681
 
682
  /**
@@ -705,8 +1194,160 @@ function valid_unicode($i) {
705
  * @return string Content after decoded entities
706
  */
707
  function wp_kses_decode_entities($string) {
708
- $string = preg_replace_callback('/&#([0-9]+);/', create_function('$match', 'return chr($match[1]);'), $string);
709
- $string = preg_replace_callback('/&#[Xx]([0-9A-Fa-f]+);/', create_function('$match', 'return chr(hexdec($match[1]));'), $string);
710
 
711
  return $string;
712
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ // Last sync [WP17185]
3
 
4
  /**
5
+ * kses 0.2.2 - HTML/XHTML filter that only allows some elements and attributes
6
+ * Copyright (C) 2002, 2003, 2005 Ulf Harnhammar
7
+ *
8
+ * This program is free software and open source software; you can redistribute
9
+ * it and/or modify it under the terms of the GNU General Public License as
10
+ * published by the Free Software Foundation; either version 2 of the License,
11
+ * or (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful, but WITHOUT
14
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16
+ * more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License along
19
+ * with this program; if not, write to the Free Software Foundation, Inc.,
20
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit
21
+ * http://www.gnu.org/licenses/gpl.html
22
+ *
23
+ * [kses strips evil scripts!]
24
  *
25
  * Added wp_ prefix to avoid conflicts with existing kses users
26
  *
27
  * @version 0.2.2
28
  * @copyright (C) 2002, 2003, 2005
29
+ * @author Ulf Harnhammar <http://advogato.org/person/metaur/>
30
  *
31
  * @package External
32
  * @subpackage KSES
33
  *
 
 
 
 
 
 
 
 
 
 
34
  */
35
 
36
+ /**
37
+ * You can override this in a plugin.
38
+ *
39
+ * @since 1.2.0
40
+ */
41
+ if ( ! defined( 'BP_CUSTOM_TAGS' ) )
42
+ define( 'BP_CUSTOM_TAGS', false );
43
+
44
+ if ( ! BP_CUSTOM_TAGS ) {
45
+ /**
46
+ * Kses global for default allowable HTML tags.
47
+ *
48
+ * Can be override by using CUSTOM_TAGS constant.
49
+ *
50
+ * @global array $allowedposttags
51
+ * @since 2.0.0
52
+ */
53
+ $allowedposttags = array(
54
+ 'address' => array(),
55
+ 'a' => array(
56
+ 'class' => array (),
57
+ 'href' => array (),
58
+ 'id' => array (),
59
+ 'title' => array (),
60
+ 'rel' => array (),
61
+ 'rev' => array (),
62
+ 'name' => array (),
63
+ 'target' => array()),
64
+ 'abbr' => array(
65
+ 'class' => array (),
66
+ 'title' => array ()),
67
+ 'acronym' => array(
68
+ 'title' => array ()),
69
+ 'article' => array(
70
+ 'align' => array (),
71
+ 'class' => array (),
72
+ 'dir' => array (),
73
+ 'lang' => array(),
74
+ 'style' => array (),
75
+ 'xml:lang' => array(),
76
+ ),
77
+ 'aside' => array(
78
+ 'align' => array (),
79
+ 'class' => array (),
80
+ 'dir' => array (),
81
+ 'lang' => array(),
82
+ 'style' => array (),
83
+ 'xml:lang' => array(),
84
+ ),
85
+ 'b' => array(),
86
+ 'big' => array(),
87
+ 'blockquote' => array(
88
+ 'id' => array (),
89
+ 'cite' => array (),
90
+ 'class' => array(),
91
+ 'lang' => array(),
92
+ 'xml:lang' => array()),
93
+ 'br' => array (
94
+ 'class' => array ()),
95
+ 'button' => array(
96
+ 'disabled' => array (),
97
+ 'name' => array (),
98
+ 'type' => array (),
99
+ 'value' => array ()),
100
+ 'caption' => array(
101
+ 'align' => array (),
102
+ 'class' => array ()),
103
+ 'cite' => array (
104
+ 'class' => array(),
105
+ 'dir' => array(),
106
+ 'lang' => array(),
107
+ 'title' => array ()),
108
+ 'code' => array (
109
+ 'style' => array()),
110
+ 'col' => array(
111
+ 'align' => array (),
112
+ 'char' => array (),
113
+ 'charoff' => array (),
114
+ 'span' => array (),
115
+ 'dir' => array(),
116
+ 'style' => array (),
117
+ 'valign' => array (),
118
+ 'width' => array ()),
119
+ 'del' => array(
120
+ 'datetime' => array ()),
121
+ 'dd' => array(),
122
+ 'details' => array(
123
+ 'align' => array (),
124
+ 'class' => array (),
125
+ 'dir' => array (),
126
+ 'lang' => array(),
127
+ 'open' => array (),
128
+ 'style' => array (),
129
+ 'xml:lang' => array(),
130
+ ),
131
+ 'div' => array(
132
+ 'align' => array (),
133
+ 'class' => array (),
134
+ 'dir' => array (),
135
+ 'lang' => array(),
136
+ 'style' => array (),
137
+ 'xml:lang' => array()),
138
+ 'dl' => array(),
139
+ 'dt' => array(),
140
+ 'em' => array(),
141
+ 'fieldset' => array(),
142
+ 'figure' => array(
143
+ 'align' => array (),
144
+ 'class' => array (),
145
+ 'dir' => array (),
146
+ 'lang' => array(),
147
+ 'style' => array (),
148
+ 'xml:lang' => array(),
149
+ ),
150
+ 'figcaption' => array(
151
+ 'align' => array (),
152
+ 'class' => array (),
153
+ 'dir' => array (),
154
+ 'lang' => array(),
155
+ 'style' => array (),
156
+ 'xml:lang' => array(),
157
+ ),
158
+ 'font' => array(
159
+ 'color' => array (),
160
+ 'face' => array (),
161
+ 'size' => array ()),
162
+ 'footer' => array(
163
+ 'align' => array (),
164
+ 'class' => array (),
165
+ 'dir' => array (),
166
+ 'lang' => array(),
167
+ 'style' => array (),
168
+ 'xml:lang' => array(),
169
+ ),
170
+ 'form' => array(
171
+ 'action' => array (),
172
+ 'accept' => array (),
173
+ 'accept-charset' => array (),
174
+ 'enctype' => array (),
175
+ 'method' => array (),
176
+ 'name' => array (),
177
+ 'target' => array ()),
178
+ 'h1' => array(
179
+ 'align' => array (),
180
+ 'class' => array (),
181
+ 'id' => array (),
182
+ 'style' => array ()),
183
+ 'h2' => array (
184
+ 'align' => array (),
185
+ 'class' => array (),
186
+ 'id' => array (),
187
+ 'style' => array ()),
188
+ 'h3' => array (
189
+ 'align' => array (),
190
+ 'class' => array (),
191
+ 'id' => array (),
192
+ 'style' => array ()),
193
+ 'h4' => array (
194
+ 'align' => array (),
195
+ 'class' => array (),
196
+ 'id' => array (),
197
+ 'style' => array ()),
198
+ 'h5' => array (
199
+ 'align' => array (),
200
+ 'class' => array (),
201
+ 'id' => array (),
202
+ 'style' => array ()),
203
+ 'h6' => array (
204
+ 'align' => array (),
205
+ 'class' => array (),
206
+ 'id' => array (),
207
+ 'style' => array ()),
208
+ 'header' => array(
209
+ 'align' => array (),
210
+ 'class' => array (),
211
+ 'dir' => array (),
212
+ 'lang' => array(),
213
+ 'style' => array (),
214
+ 'xml:lang' => array(),
215
+ ),
216
+ 'hgroup' => array(
217
+ 'align' => array (),
218
+ 'class' => array (),
219
+ 'dir' => array (),
220
+ 'lang' => array(),
221
+ 'style' => array (),
222
+ 'xml:lang' => array(),
223
+ ),
224
+ 'hr' => array (
225
+ 'align' => array (),
226
+ 'class' => array (),
227
+ 'noshade' => array (),
228
+ 'size' => array (),
229
+ 'width' => array ()),
230
+ 'i' => array(),
231
+ 'img' => array(
232
+ 'alt' => array (),
233
+ 'align' => array (),
234
+ 'border' => array (),
235
+ 'class' => array (),
236
+ 'height' => array (),
237
+ 'hspace' => array (),
238
+ 'longdesc' => array (),
239
+ 'vspace' => array (),
240
+ 'src' => array (),
241
+ 'style' => array (),
242
+ 'width' => array ()),
243
+ 'ins' => array(
244
+ 'datetime' => array (),
245
+ 'cite' => array ()),
246
+ 'kbd' => array(),
247
+ 'label' => array(
248
+ 'for' => array ()),
249
+ 'legend' => array(
250
+ 'align' => array ()),
251
+ 'li' => array (
252
+ 'align' => array (),
253
+ 'class' => array ()),
254
+ 'menu' => array (
255
+ 'class' => array (),
256
+ 'style' => array (),
257
+ 'type' => array ()),
258
+ 'nav' => array(
259
+ 'align' => array (),
260
+ 'class' => array (),
261
+ 'dir' => array (),
262
+ 'lang' => array(),
263
+ 'style' => array (),
264
+ 'xml:lang' => array(),
265
+ ),
266
+ 'p' => array(
267
+ 'class' => array (),
268
+ 'align' => array (),
269
+ 'dir' => array(),
270
+ 'lang' => array(),
271
+ 'style' => array (),
272
+ 'xml:lang' => array()),
273
+ 'pre' => array(
274
+ 'style' => array(),
275
+ 'width' => array ()),
276
+ 'q' => array(
277
+ 'cite' => array ()),
278
+ 's' => array(),
279
+ 'span' => array (
280
+ 'class' => array (),
281
+ 'dir' => array (),
282
+ 'align' => array (),
283
+ 'lang' => array (),
284
+ 'style' => array (),
285
+ 'title' => array (),
286
+ 'xml:lang' => array()),
287
+ 'section' => array(
288
+ 'align' => array (),
289
+ 'class' => array (),
290
+ 'dir' => array (),
291
+ 'lang' => array(),
292
+ 'style' => array (),
293
+ 'xml:lang' => array(),
294
+ ),
295
+ 'strike' => array(),
296
+ 'strong' => array(),
297
+ 'sub' => array(),
298
+ 'summary' => array(
299
+ 'align' => array (),
300
+ 'class' => array (),
301
+ 'dir' => array (),
302
+ 'lang' => array(),
303
+ 'style' => array (),
304
+ 'xml:lang' => array(),
305
+ ),
306
+ 'sup' => array(),
307
+ 'table' => array(
308
+ 'align' => array (),
309
+ 'bgcolor' => array (),
310
+ 'border' => array (),
311
+ 'cellpadding' => array (),
312
+ 'cellspacing' => array (),
313
+ 'class' => array (),
314
+ 'dir' => array(),
315
+ 'id' => array(),
316
+ 'rules' => array (),
317
+ 'style' => array (),
318
+ 'summary' => array (),
319
+ 'width' => array ()),
320
+ 'tbody' => array(
321
+ 'align' => array (),
322
+ 'char' => array (),
323
+ 'charoff' => array (),
324
+ 'valign' => array ()),
325
+ 'td' => array(
326
+ 'abbr' => array (),
327
+ 'align' => array (),
328
+ 'axis' => array (),
329
+ 'bgcolor' => array (),
330
+ 'char' => array (),
331
+ 'charoff' => array (),
332
+ 'class' => array (),
333
+ 'colspan' => array (),
334
+ 'dir' => array(),
335
+ 'headers' => array (),
336
+ 'height' => array (),
337
+ 'nowrap' => array (),
338
+ 'rowspan' => array (),
339
+ 'scope' => array (),
340
+ 'style' => array (),
341
+ 'valign' => array (),
342
+ 'width' => array ()),
343
+ 'textarea' => array(
344
+ 'cols' => array (),
345
+ 'rows' => array (),
346
+ 'disabled' => array (),
347
+ 'name' => array (),
348
+ 'readonly' => array ()),
349
+ 'tfoot' => array(
350
+ 'align' => array (),
351
+ 'char' => array (),
352
+ 'class' => array (),
353
+ 'charoff' => array (),
354
+ 'valign' => array ()),
355
+ 'th' => array(
356
+ 'abbr' => array (),
357
+ 'align' => array (),
358
+ 'axis' => array (),
359
+ 'bgcolor' => array (),
360
+ 'char' => array (),
361
+ 'charoff' => array (),
362
+ 'class' => array (),
363
+ 'colspan' => array (),
364
+ 'headers' => array (),
365
+ 'height' => array (),
366
+ 'nowrap' => array (),
367
+ 'rowspan' => array (),
368
+ 'scope' => array (),
369
+ 'valign' => array (),
370
+ 'width' => array ()),
371
+ 'thead' => array(
372
+ 'align' => array (),
373
+ 'char' => array (),
374
+ 'charoff' => array (),
375
+ 'class' => array (),
376
+ 'valign' => array ()),
377
+ 'title' => array(),
378
+ 'tr' => array(
379
+ 'align' => array (),
380
+ 'bgcolor' => array (),
381
+ 'char' => array (),
382
+ 'charoff' => array (),
383
+ 'class' => array (),
384
+ 'style' => array (),
385
+ 'valign' => array ()),
386
+ 'tt' => array(),
387
+ 'u' => array(),
388
+ 'ul' => array (
389
+ 'class' => array (),
390
+ 'style' => array (),
391
+ 'type' => array ()),
392
+ 'ol' => array (
393
+ 'class' => array (),
394
+ 'start' => array (),
395
+ 'style' => array (),
396
+ 'type' => array ()),
397
+ 'var' => array ());
398
+
399
+ /**
400
+ * Kses allowed HTML elements.
401
+ *
402
+ * @global array $allowedtags
403
+ * @since 1.0.0
404
+ */
405
+ $allowedtags = array(
406
+ 'a' => array(
407
+ 'href' => array (),
408
+ 'title' => array ()),
409
+ 'abbr' => array(
410
+ 'title' => array ()),
411
+ 'acronym' => array(
412
+ 'title' => array ()),
413
+ 'b' => array(),
414
+ 'blockquote' => array(
415
+ 'cite' => array ()),
416
+ // 'br' => array(),
417
+ 'cite' => array (),
418
+ 'code' => array(),
419
+ 'del' => array(
420
+ 'datetime' => array ()),
421
+ // 'dd' => array(),
422
+ // 'dl' => array(),
423
+ // 'dt' => array(),
424
+ 'em' => array (), 'i' => array (),
425
+ // 'ins' => array('datetime' => array(), 'cite' => array()),
426
+ // 'li' => array(),
427
+ // 'ol' => array(),
428
+ // 'p' => array(),
429
+ 'q' => array(
430
+ 'cite' => array ()),
431
+ 'strike' => array(),
432
+ 'strong' => array(),
433
+ // 'sub' => array(),
434
+ // 'sup' => array(),
435
+ // 'u' => array(),
436
+ // 'ul' => array(),
437
+ );
438
+
439
+ $allowedentitynames = array(
440
+ 'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen',
441
+ 'brvbar', 'sect', 'uml', 'copy', 'ordf', 'laquo',
442
+ 'not', 'shy', 'reg', 'macr', 'deg', 'plusmn',
443
+ 'acute', 'micro', 'para', 'middot', 'cedil', 'ordm',
444
+ 'raquo', 'iquest', 'Agrave', 'Aacute', 'Acirc', 'Atilde',
445
+ 'Auml', 'Aring', 'AElig', 'Ccedil', 'Egrave', 'Eacute',
446
+ 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml',
447
+ 'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde',
448
+ 'Ouml', 'times', 'Oslash', 'Ugrave', 'Uacute', 'Ucirc',
449
+ 'Uuml', 'Yacute', 'THORN', 'szlig', 'agrave', 'aacute',
450
+ 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil',
451
+ 'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute',
452
+ 'icirc', 'iuml', 'eth', 'ntilde', 'ograve', 'oacute',
453
+ 'ocirc', 'otilde', 'ouml', 'divide', 'oslash', 'ugrave',
454
+ 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml',
455
+ 'quot', 'amp', 'lt', 'gt', 'apos', 'OElig',
456
+ 'oelig', 'Scaron', 'scaron', 'Yuml', 'circ', 'tilde',
457
+ 'ensp', 'emsp', 'thinsp', 'zwnj', 'zwj', 'lrm',
458
+ 'rlm', 'ndash', 'mdash', 'lsquo', 'rsquo', 'sbquo',
459
+ 'ldquo', 'rdquo', 'bdquo', 'dagger', 'Dagger', 'permil',
460
+ 'lsaquo', 'rsaquo', 'euro', 'fnof', 'Alpha', 'Beta',
461
+ 'Gamma', 'Delta', 'Epsilon', 'Zeta', 'Eta', 'Theta',
462
+ 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi',
463
+ 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon',
464
+ 'Phi', 'Chi', 'Psi', 'Omega', 'alpha', 'beta',
465
+ 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta',
466
+ 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi',
467
+ 'omicron', 'pi', 'rho', 'sigmaf', 'sigma', 'tau',
468
+ 'upsilon', 'phi', 'chi', 'psi', 'omega', 'thetasym',
469
+ 'upsih', 'piv', 'bull', 'hellip', 'prime', 'Prime',
470
+ 'oline', 'frasl', 'weierp', 'image', 'real', 'trade',
471
+ 'alefsym', 'larr', 'uarr', 'rarr', 'darr', 'harr',
472
+ 'crarr', 'lArr', 'uArr', 'rArr', 'dArr', 'hArr',
473
+ 'forall', 'part', 'exist', 'empty', 'nabla', 'isin',
474
+ 'notin', 'ni', 'prod', 'sum', 'minus', 'lowast',
475
+ 'radic', 'prop', 'infin', 'ang', 'and', 'or',
476
+ 'cap', 'cup', 'int', 'sim', 'cong', 'asymp',
477
+ 'ne', 'equiv', 'le', 'ge', 'sub', 'sup',
478
+ 'nsub', 'sube', 'supe', 'oplus', 'otimes', 'perp',
479
+ 'sdot', 'lceil', 'rceil', 'lfloor', 'rfloor', 'lang',
480
+ 'rang', 'loz', 'spades', 'clubs', 'hearts', 'diams',
481
+ );
482
+ }
483
 
484
  /**
485
  * Filters content and keeps only allowable HTML elements.
490
  * call this function.
491
  *
492
  * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news',
493
+ * 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This
494
+ * covers all common link protocols, except for 'javascript' which should not
495
+ * be allowed for untrusted users.
496
  *
497
  * @since 1.0.0
498
  *
501
  * @param array $allowed_protocols Optional. Allowed protocol in links.
502
  * @return string Filtered content with only allowed HTML elements
503
  */
504
+ function wp_kses($string, $allowed_html, $allowed_protocols = array ()) {
505
+ $allowed_protocols = wp_parse_args( $allowed_protocols, apply_filters('kses_allowed_protocols', array ('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn') ));
506
  $string = wp_kses_no_null($string);
507
  $string = wp_kses_js_entities($string);
508
  $string = wp_kses_normalize_entities($string);
556
  global $pass_allowed_html, $pass_allowed_protocols;
557
  $pass_allowed_html = $allowed_html;
558
  $pass_allowed_protocols = $allowed_protocols;
559
+ return preg_replace_callback( '%((<!--.*?(-->|$))|(<[^>]*(>|$)|>))%', '_wp_kses_split_callback', $string );
560
+ }
561
+
562
+ /**
563
+ * Callback for wp_kses_split.
564
+ *
565
+ * @since 3.1.0
566
+ * @access private
567
+ */
568
+ function _wp_kses_split_callback( $match ) {
569
+ global $pass_allowed_html, $pass_allowed_protocols;
570
+ return wp_kses_split2( $match[1], $pass_allowed_html, $pass_allowed_protocols );
571
  }
572
 
573
  /**
652
  # Is there a closing XHTML slash at the end of the attributes?
653
 
654
  $xhtml_slash = '';
655
+ if (preg_match('%\s*/\s*$%', $attr))
656
  $xhtml_slash = ' /';
657
 
658
  # Are any attributes allowed at all for this element?
690
  break;
691
  }
692
 
693
+ if ( strtolower($arreach['name']) == 'style' ) {
694
+ $orig_value = $arreach['value'];
695
+
696
+ $value = safecss_filter_attr($orig_value);
697
+
698
+ if ( empty($value) )
699
+ continue;
700
+
701
+ $arreach['value'] = $value;
702
+
703
+ $arreach['whole'] = str_replace($orig_value, $value, $arreach['whole']);
704
+ }
705
+
706
  if ($ok)
707
  $attr2 .= ' '.$arreach['whole']; # it passed them
708
  } # if !is_array($current)
778
 
779
  case 2 : # attribute value, a URL after href= for instance
780
 
781
+ if (preg_match('%^"([^"]*)"(\s+|/?$)%', $attr, $match))
782
  # "value"
783
  {
784
  $thisval = $match[1];
785
+ if ( in_array(strtolower($attrname), $uris) )
786
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
787
 
788
  if(FALSE === array_key_exists($attrname, $attrarr)) {
794
  break;
795
  }
796
 
797
+ if (preg_match("%^'([^']*)'(\s+|/?$)%", $attr, $match))
798
  # 'value'
799
  {
800
  $thisval = $match[1];
801
+ if ( in_array(strtolower($attrname), $uris) )
802
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
803
 
804
  if(FALSE === array_key_exists($attrname, $attrarr)) {
810
  break;
811
  }
812
 
813
+ if (preg_match("%^([^\s\"']+)(\s+|/?$)%", $attr, $match))
814
  # value
815
  {
816
  $thisval = $match[1];
817
+ if ( in_array(strtolower($attrname), $uris) )
818
  $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);
819
 
820
  if(FALSE === array_key_exists($attrname, $attrarr)) {
853
  * @since 1.0.0
854
  *
855
  * @param string $value Attribute value
856
+ * @param string $vless Whether the value is valueless. Use 'y' or 'n'
857
  * @param string $checkname What $checkvalue is checking for.
858
  * @param mixed $checkvalue What constraint the value should pass
859
+ * @return bool Whether check passes
860
  */
861
  function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {
862
  $ok = true;
932
  */
933
  function wp_kses_bad_protocol($string, $allowed_protocols) {
934
  $string = wp_kses_no_null($string);
 
935
  $string2 = $string.'a';
936
 
937
  while ($string != $string2) {
1037
  * @return string Sanitized content
1038
  */
1039
  function wp_kses_bad_protocol_once($string, $allowed_protocols) {
1040
+ $string2 = preg_split( '/:|&#0*58;|&#x0*3a;/i', $string, 2 );
1041
+ if ( isset($string2[1]) && ! preg_match('%/\?%', $string2[0]) )
1042
+ $string = wp_kses_bad_protocol_once2( $string2[0], $allowed_protocols ) . trim( $string2[1] );
 
 
 
 
 
1043
 
1044
  return $string;
1045
  }
1053
  * @access private
1054
  * @since 1.0.0
1055
  *
1056
+ * @param string $string URI scheme to check against the whitelist
1057
+ * @param string $allowed_protocols Allowed protocols
1058
  * @return string Sanitized content
1059
  */
1060
+ function wp_kses_bad_protocol_once2( $string, $allowed_protocols ) {
 
 
 
 
 
 
 
 
 
 
 
1061
  $string2 = wp_kses_decode_entities($string);
1062
  $string2 = preg_replace('/\s/', '', $string2);
1063
  $string2 = wp_kses_no_null($string2);
 
 
1064
  $string2 = strtolower($string2);
1065
 
1066
  $allowed = false;
1067
+ foreach ( (array) $allowed_protocols as $one_protocol )
1068
+ if ( strtolower($one_protocol) == $string2 ) {
1069
  $allowed = true;
1070
  break;
1071
  }
1094
 
1095
  # Change back the allowed entities in our entity whitelist
1096
 
1097
+ $string = preg_replace_callback('/&amp;([A-Za-z]{2,8});/', 'wp_kses_named_entities', $string);
1098
+ $string = preg_replace_callback('/&amp;#(0*[0-9]{1,7});/', 'wp_kses_normalize_entities2', $string);
1099
+ $string = preg_replace_callback('/&amp;#[Xx](0*[0-9A-Fa-f]{1,6});/', 'wp_kses_normalize_entities3', $string);
1100
 
1101
  return $string;
1102
  }
1103
 
1104
+ /**
1105
+ * Callback for wp_kses_normalize_entities() regular expression.
1106
+ *
1107
+ * This function only accepts valid named entity references, which are finite,
1108
+ * case-sensitive, and highly scrutinized by HTML and XML validators.
1109
+ *
1110
+ * @since 3.0.0
1111
+ *
1112
+ * @param array $matches preg_replace_callback() matches array
1113
+ * @return string Correctly encoded entity
1114
+ */
1115
+ function wp_kses_named_entities($matches) {
1116
+ global $allowedentitynames;
1117
+
1118
+ if ( empty($matches[1]) )
1119
+ return '';
1120
+
1121
+ $i = $matches[1];
1122
+ return ( ( ! in_array($i, $allowedentitynames) ) ? "&amp;$i;" : "&$i;" );
1123
+ }
1124
+
1125
  /**
1126
  * Callback for wp_kses_normalize_entities() regular expression.
1127
  *
1135
  * @return string Correctly encoded entity
1136
  */
1137
  function wp_kses_normalize_entities2($matches) {
1138
+ if ( empty($matches[1]) )
1139
  return '';
1140
 
1141
  $i = $matches[1];
1142
+ if (valid_unicode($i)) {
1143
+ $i = str_pad(ltrim($i,'0'), 3, '0', STR_PAD_LEFT);
1144
+ $i = "&#$i;";
1145
+ } else {
1146
+ $i = "&amp;#$i;";
1147
+ }
1148
+
1149
+ return $i;
1150
  }
1151
 
1152
  /**
1161
  * @return string Correctly encoded entity
1162
  */
1163
  function wp_kses_normalize_entities3($matches) {
1164
+ if ( empty($matches[1]) )
1165
  return '';
1166
 
1167
+ $hexchars = $matches[1];
1168
+ return ( ( ! valid_unicode(hexdec($hexchars)) ) ? "&amp;#x$hexchars;" : '&#x'.ltrim($hexchars,'0').';' );
1169
  }
1170
 
1171
  /**
1194
  * @return string Content after decoded entities
1195
  */
1196
  function wp_kses_decode_entities($string) {
1197
+ $string = preg_replace_callback('/&#([0-9]+);/', '_wp_kses_decode_entities_chr', $string);
1198
+ $string = preg_replace_callback('/&#[Xx]([0-9A-Fa-f]+);/', '_wp_kses_decode_entities_chr_hexdec', $string);
1199
 
1200
  return $string;
1201
  }
1202
+
1203
+ /**
1204
+ * Regex callback for wp_kses_decode_entities()
1205
+ *
1206
+ * @param array $match preg match
1207
+ * @return string
1208
+ */
1209
+ function _wp_kses_decode_entities_chr( $match ) {
1210
+ return chr( $match[1] );
1211
+ }
1212
+
1213
+ /**
1214
+ * Regex callback for wp_kses_decode_entities()
1215
+ *
1216
+ * @param array $match preg match
1217
+ * @return string
1218
+ */
1219
+ function _wp_kses_decode_entities_chr_hexdec( $match ) {
1220
+ return chr( hexdec( $match[1] ) );
1221
+ }
1222
+
1223
+ /**
1224
+ * Sanitize content with allowed HTML Kses rules.
1225
+ *
1226
+ * @since 1.0.0
1227
+ * @uses $allowedtags
1228
+ *
1229
+ * @param string $data Content to filter, expected to be escaped with slashes
1230
+ * @return string Filtered content
1231
+ */
1232
+ function wp_filter_kses($data) {
1233
+ global $allowedtags;
1234
+ return addslashes( wp_kses(stripslashes( $data ), $allowedtags) );
1235
+ }
1236
+
1237
+ /**
1238
+ * Sanitize content with allowed HTML Kses rules.
1239
+ *
1240
+ * @since 2.9.0
1241
+ * @uses $allowedtags
1242
+ *
1243
+ * @param string $data Content to filter, expected to not be escaped
1244
+ * @return string Filtered content
1245
+ */
1246
+ function wp_kses_data($data) {
1247
+ global $allowedtags;
1248
+ return wp_kses( $data , $allowedtags );
1249
+ }
1250
+
1251
+ /**
1252
+ * Sanitize content for allowed HTML tags for post content.
1253
+ *
1254
+ * Post content refers to the page contents of the 'post' type and not $_POST
1255
+ * data from forms.
1256
+ *
1257
+ * @since 2.0.0
1258
+ * @uses $allowedposttags
1259
+ *
1260
+ * @param string $data Post content to filter, expected to be escaped with slashes
1261
+ * @return string Filtered post content with allowed HTML tags and attributes intact.
1262
+ */
1263
+ function wp_filter_post_kses($data) {
1264
+ global $allowedposttags;
1265
+ return addslashes ( wp_kses(stripslashes( $data ), $allowedposttags) );
1266
+ }
1267
+
1268
+ /**
1269
+ * Sanitize content for allowed HTML tags for post content.
1270
+ *
1271
+ * Post content refers to the page contents of the 'post' type and not $_POST
1272
+ * data from forms.
1273
+ *
1274
+ * @since 2.9.0
1275
+ * @uses $allowedposttags
1276
+ *
1277
+ * @param string $data Post content to filter
1278
+ * @return string Filtered post content with allowed HTML tags and attributes intact.
1279
+ */
1280
+ function wp_kses_post($data) {
1281
+ global $allowedposttags;
1282
+ return wp_kses( $data , $allowedposttags );
1283
+ }
1284
+
1285
+ /**
1286
+ * Strips all of the HTML in the content.
1287
+ *
1288
+ * @since 2.1.0
1289
+ *
1290
+ * @param string $data Content to strip all HTML from
1291
+ * @return string Filtered content without any HTML
1292
+ */
1293
+ function wp_filter_nohtml_kses($data) {
1294
+ return addslashes ( wp_kses(stripslashes( $data ), array()) );
1295
+ }
1296
+
1297
+ // ! function kses_init_filters()
1298
+ // ! function kses_remove_filters()
1299
+ // ! function kses_init()
1300
+
1301
+ /**
1302
+ * Inline CSS filter
1303
+ *
1304
+ * @since 2.8.1
1305
+ */
1306
+ function safecss_filter_attr( $css, $deprecated = '' ) {
1307
+ if ( !empty( $deprecated ) )
1308
+ _deprecated_argument( __FUNCTION__, '2.8.1' ); // Never implemented
1309
+
1310
+ $css = wp_kses_no_null($css);
1311
+ $css = str_replace(array("\n","\r","\t"), '', $css);
1312
+
1313
+ if ( preg_match( '%[\\(&=}]|/\*%', $css ) ) // remove any inline css containing \ ( & } = or comments
1314
+ return '';
1315
+
1316
+ $css_array = explode( ';', trim( $css ) );
1317
+ $allowed_attr = apply_filters( 'safe_style_css', array( 'text-align', 'margin', 'color', 'float',
1318
+ 'border', 'background', 'background-color', 'border-bottom', 'border-bottom-color',
1319
+ 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-left',
1320
+ 'border-left-color', 'border-left-style', 'border-left-width', 'border-right', 'border-right-color',
1321
+ 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top',
1322
+ 'border-top-color', 'border-top-style', 'border-top-width', 'border-width', 'caption-side',
1323
+ 'clear', 'cursor', 'direction', 'font', 'font-family', 'font-size', 'font-style',
1324
+ 'font-variant', 'font-weight', 'height', 'letter-spacing', 'line-height', 'margin-bottom',
1325
+ 'margin-left', 'margin-right', 'margin-top', 'overflow', 'padding', 'padding-bottom',
1326
+ 'padding-left', 'padding-right', 'padding-top', 'text-decoration', 'text-indent', 'vertical-align',
1327
+ 'width' ) );
1328
+
1329
+ if ( empty($allowed_attr) )
1330
+ return $css;
1331
+
1332
+ $css = '';
1333
+ foreach ( $css_array as $css_item ) {
1334
+ if ( $css_item == '' )
1335
+ continue;
1336
+ $css_item = trim( $css_item );
1337
+ $found = false;
1338
+ if ( strpos( $css_item, ':' ) === false ) {
1339
+ $found = true;
1340
+ } else {
1341
+ $parts = split( ':', $css_item );
1342
+ if ( in_array( trim( $parts[0] ), $allowed_attr ) )
1343
+ $found = true;
1344
+ }
1345
+ if ( $found ) {
1346
+ if( $css != '' )
1347
+ $css .= ';';
1348
+ $css .= $css_item;
1349
+ }
1350
+ }
1351
+
1352
+ return $css;
1353
+ }
bp-forums/bbpress/bb-includes/class.bp-options.php CHANGED
@@ -25,9 +25,6 @@ class BP_Options
25
  case 'cron_uri':
26
  return bb_get_uri( 'bb-cron.php', array( 'check' => BP_Options::get( 'cron_check' ) ), BB_URI_CONTEXT_WP_HTTP_REQUEST );
27
  break;
28
- case 'cron_check':
29
- return bb_hash( '187425' );
30
- break;
31
  case 'wp_http_version':
32
  return 'bbPress/' . bb_get_option( 'version' );
33
  break;
25
  case 'cron_uri':
26
  return bb_get_uri( 'bb-cron.php', array( 'check' => BP_Options::get( 'cron_check' ) ), BB_URI_CONTEXT_WP_HTTP_REQUEST );
27
  break;
 
 
 
28
  case 'wp_http_version':
29
  return 'bbPress/' . bb_get_option( 'version' );
30
  break;
bp-forums/bbpress/bb-includes/functions.bb-core.php CHANGED
@@ -351,16 +351,45 @@ function bb_timer_stop($display = 0, $precision = 3) { //if called like bb_timer
351
  }
352
 
353
  // GMT -> so many minutes ago
354
- function bb_since( $original, $do_more = 0 ) {
355
- $today = time();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
 
357
- if ( !is_numeric($original) ) {
358
- if ( $today < $_original = bb_gmtstrtotime( str_replace(',', ' ', $original) ) ) // Looks like bb_since was called twice
 
 
359
  return $original;
360
- else
361
  $original = $_original;
 
362
  }
363
-
 
 
 
 
 
 
 
 
 
 
364
  // array of time period chunks
365
  $chunks = array(
366
  ( 60 * 60 * 24 * 365 ), // years
@@ -372,33 +401,35 @@ function bb_since( $original, $do_more = 0 ) {
372
  ( 1 ) // seconds
373
  );
374
 
375
- $since = $today - $original;
376
-
377
- for ($i = 0, $j = count($chunks); $i < $j; $i++) {
378
- $seconds = $chunks[$i];
379
-
380
- if ( 0 != $count = floor($since / $seconds) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
  break;
 
382
  }
383
 
384
- $trans = array(
385
- _n( '%d year', '%d years', $count ),
386
- _n( '%d month', '%d months', $count ),
387
- _n( '%d week', '%d weeks', $count ),
388
- _n( '%d day', '%d days', $count ),
389
- _n( '%d hour', '%d hours', $count ),
390
- _n( '%d minute', '%d minutes', $count ),
391
- _n( '%d second', '%d seconds', $count )
392
- );
393
-
394
- $print = sprintf( $trans[$i], $count );
395
-
396
- if ( $do_more && $i + 1 < $j) {
397
- $seconds2 = $chunks[$i + 1];
398
- if ( 0 != $count2 = floor( ($since - $seconds * $count) / $seconds2) )
399
- $print .= sprintf( $trans[$i + 1], $count2 );
400
  }
401
- return $print;
 
402
  }
403
 
404
  function bb_current_time( $type = 'timestamp' ) {
@@ -701,9 +732,13 @@ function bb_repermalink() {
701
  $user = bb_get_current_user(); // Attempt to go to the current users profile
702
  } else {
703
  if ( bb_get_option( 'mod_rewrite' ) === 'slugs') {
704
- $user = bb_get_user_by_nicename( $id ); // Get by the user_nicename
 
 
705
  } else {
706
- $user = bb_get_user( $id ); // Get by the ID
 
 
707
  }
708
  }
709
 
351
  }
352
 
353
  // GMT -> so many minutes ago
354
+ function bb_since( $original, $args = '' )
355
+ {
356
+ $defaults = array(
357
+ 'levels' => 1,
358
+ 'separator' => ', '
359
+ );
360
+
361
+ // $args used to be $do_more
362
+ // $do_more = 0 is equivalent to $args['levels'] = 1
363
+ // $do_more = 1 is equivalent to $args['levels'] = 2
364
+ if ( !is_array( $args ) ) {
365
+ $args = array(
366
+ 'levels' => abs( (integer) $args ) + 1
367
+ );
368
+ }
369
+
370
+ $args = wp_parse_args( $args, $defaults );
371
+ extract( $args, EXTR_SKIP );
372
 
373
+ $today = (integer) time();
374
+
375
+ if ( !is_numeric( $original ) ) {
376
+ if ( $today < $_original = bb_gmtstrtotime( str_replace( ',', ' ', $original ) ) ) { // Looks like bb_since was called twice
377
  return $original;
378
+ } else {
379
  $original = $_original;
380
+ }
381
  }
382
+
383
+ $seconds = $today - ( (integer) $original );
384
+ if ( 0 === $seconds ) {
385
+ return sprintf( _n( '%d second', '%d seconds', 0 ), 0 );
386
+ }
387
+
388
+ $levels = abs( (integer) $levels );
389
+ if ( 0 === $levels ) {
390
+ return '';
391
+ }
392
+
393
  // array of time period chunks
394
  $chunks = array(
395
  ( 60 * 60 * 24 * 365 ), // years
401
  ( 1 ) // seconds
402
  );
403
 
404
+ $caught = 0;
405
+ $parts = array();
406
+ for ( $i = 0; $i < count( $chunks ); $i++ ) {
407
+ if ( ( $count = floor( $seconds / $chunks[$i] ) ) || $caught ) {
408
+ if ( $count ) {
409
+ $trans = array(
410
+ _n( '%d year', '%d years', $count ),
411
+ _n( '%d month', '%d months', $count ),
412
+ _n( '%d week', '%d weeks', $count ),
413
+ _n( '%d day', '%d days', $count ),
414
+ _n( '%d hour', '%d hours', $count ),
415
+ _n( '%d minute', '%d minutes', $count ),
416
+ _n( '%d second', '%d seconds', $count )
417
+ );
418
+ $parts[] = sprintf( $trans[$i], $count );
419
+ }
420
+ $caught++;
421
+ $seconds = $seconds - ( $count * $chunks[$i] );
422
+ }
423
+ if ( $caught === $levels ) {
424
  break;
425
+ }
426
  }
427
 
428
+ if ( empty( $parts ) ) {
429
+ return sprintf( _n( '%d second', '%d seconds', 0 ), 0 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
430
  }
431
+
432
+ return join( $separator, $parts );
433
  }
434
 
435
  function bb_current_time( $type = 'timestamp' ) {
732
  $user = bb_get_current_user(); // Attempt to go to the current users profile
733
  } else {
734
  if ( bb_get_option( 'mod_rewrite' ) === 'slugs') {
735
+ if ( !$user = bb_get_user_by_nicename( $id ) ) {
736
+ $user = bb_get_user( $id );
737
+ }
738
  } else {
739
+ if ( !$user = bb_get_user( $id ) ) {
740
+ $user = bb_get_user_by_nicename( $id );
741
+ }
742
  }
743
  }
744
 
bp-forums/bbpress/bb-includes/functions.bb-deprecated.php CHANGED
@@ -640,8 +640,11 @@ function bb_pull_cols( $obj_array ) {
640
 
641
  // $length parameter is deprecated
642
  function bb_random_pass( $length ) {
643
- bb_log_deprecated('function', __FUNCTION__, 'wp_generate_password');
644
- return wp_generate_password();
 
 
 
645
  }
646
 
647
  // Old RSS related functions
640
 
641
  // $length parameter is deprecated
642
  function bb_random_pass( $length ) {
643
+ bb_log_deprecated('function', __FUNCTION__, 'bb_generate_password');
644
+ if ( 12 < (int) $length ) {
645
+ $length = 12;
646
+ }
647
+ return bb_generate_password( $length );
648
  }
649
 
650
  // Old RSS related functions
bp-forums/bbpress/bb-includes/functions.bb-meta.php CHANGED
@@ -297,7 +297,7 @@ function bb_get_option( $option )
297
  $r = $bb_locale->text_direction;
298
  break;
299
  case 'version':
300
- return '1.0.2'; // Don't filter
301
  break;
302
  case 'bb_db_version' :
303
  return '2078'; // Don't filter
297
  $r = $bb_locale->text_direction;
298
  break;
299
  case 'version':
300
+ return '1.0.4'; // Don't filter
301
  break;
302
  case 'bb_db_version' :
303
  return '2078'; // Don't filter
bp-forums/bbpress/bb-includes/functions.bb-pluggable.php CHANGED
@@ -368,20 +368,19 @@ function bb_create_nonce($action = -1) {
368
  }
369
  endif;
370
 
371
- function _bb_get_key( $key, $default_key = false ) {
372
- if ( !$default_key ) {
373
- global $bb_default_secret_key;
374
- $default_key = $bb_default_secret_key;
375
- }
376
 
377
- if ( defined( $key ) && '' != constant( $key ) && $default_key != constant( $key ) ) {
378
  return constant( $key );
379
  }
380
 
381
- return $default_key;
382
  }
383
 
384
- function _bb_get_salt( $constants, $option = false ) {
 
385
  if ( !is_array( $constants ) ) {
386
  $constants = array( $constants );
387
  }
@@ -398,7 +397,7 @@ function _bb_get_salt( $constants, $option = false ) {
398
  }
399
  $salt = bb_get_option( $option );
400
  if ( empty( $salt ) ) {
401
- $salt = bb_generate_password();
402
  bb_update_option( $option, $salt );
403
  }
404
  return $salt;
@@ -419,27 +418,29 @@ if ( !function_exists( 'bb_salt' ) ) :
419
  *
420
  * @return string Salt value for the given scheme
421
  */
422
- function bb_salt($scheme = 'auth') {
 
 
423
  $secret_key = _bb_get_key( 'BB_SECRET_KEY' );
424
 
425
  switch ($scheme) {
426
  case 'auth':
427
- $secret_key = _bb_get_key( 'BB_AUTH_KEY', $secret_key );
428
  $salt = _bb_get_salt( array( 'BB_AUTH_SALT', 'BB_SECRET_SALT' ) );
429
  break;
430
 
431
  case 'secure_auth':
432
- $secret_key = _bb_get_key( 'BB_SECURE_AUTH_KEY', $secret_key );
433
  $salt = _bb_get_salt( 'BB_SECURE_AUTH_SALT' );
434
  break;
435
 
436
  case 'logged_in':
437
- $secret_key = _bb_get_key( 'BB_LOGGED_IN_KEY', $secret_key );
438
  $salt = _bb_get_salt( 'BB_LOGGED_IN_SALT' );
439
  break;
440
 
441
  case 'nonce':
442
- $secret_key = _bb_get_key( 'BB_NONCE_KEY', $secret_key );
443
  $salt = _bb_get_salt( 'BB_NONCE_SALT' );
444
  break;
445
 
368
  }
369
  endif;
370
 
371
+ function _bb_get_key( $key, $default_key = false )
372
+ {
373
+ global $bb_default_secret_key;
 
 
374
 
375
+ if ( defined( $key ) && '' != constant( $key ) && $bb_default_secret_key != constant( $key ) ) {
376
  return constant( $key );
377
  }
378
 
379
+ return '';
380
  }
381
 
382
+ function _bb_get_salt( $constants, $option = false )
383
+ {
384
  if ( !is_array( $constants ) ) {
385
  $constants = array( $constants );
386
  }
397
  }
398
  $salt = bb_get_option( $option );
399
  if ( empty( $salt ) ) {
400
+ $salt = bb_generate_password( 64 );
401
  bb_update_option( $option, $salt );
402
  }
403
  return $salt;
418
  *
419
  * @return string Salt value for the given scheme
420
  */
421
+ function bb_salt( $scheme = 'auth' )
422
+ {
423
+ // Deprecated
424
  $secret_key = _bb_get_key( 'BB_SECRET_KEY' );
425
 
426
  switch ($scheme) {
427
  case 'auth':
428
+ $secret_key = _bb_get_key( 'BB_AUTH_KEY' );
429
  $salt = _bb_get_salt( array( 'BB_AUTH_SALT', 'BB_SECRET_SALT' ) );
430
  break;
431
 
432
  case 'secure_auth':
433
+ $secret_key = _bb_get_key( 'BB_SECURE_AUTH_KEY' );
434
  $salt = _bb_get_salt( 'BB_SECURE_AUTH_SALT' );
435
  break;
436
 
437
  case 'logged_in':
438
+ $secret_key = _bb_get_key( 'BB_LOGGED_IN_KEY' );
439
  $salt = _bb_get_salt( 'BB_LOGGED_IN_SALT' );
440
  break;
441
 
442
  case 'nonce':
443
+ $secret_key = _bb_get_key( 'BB_NONCE_KEY' );
444
  $salt = _bb_get_salt( 'BB_NONCE_SALT' );
445
  break;
446
 
bp-forums/bbpress/bb-includes/functions.bb-posts.php CHANGED
@@ -94,6 +94,7 @@ function bb_cache_first_posts( $_topics = false, $author_cache = true ) {
94
  function bb_cache_posts( $query, $post_id_query = false ) {
95
  global $bbdb;
96
 
 
97
  $_query_post_ids = array();
98
  $_query_posts = array();
99
  $_cached_posts = array();
94
  function bb_cache_posts( $query, $post_id_query = false ) {
95
  global $bbdb;
96
 
97
+ $_query = '';
98
  $_query_post_ids = array();
99
  $_query_posts = array();
100
  $_cached_posts = array();
bp-forums/bbpress/bb-includes/functions.bb-template.php CHANGED
@@ -254,13 +254,13 @@ function bb_post_template() {
254
  function post_form( $args = array() ) {
255
  global $page, $topic, $forum;
256
 
257
- if ( is_string( $args ) ) {
258
- $args['h2'] = $args;
259
- }
260
  $defaults = array(
261
  'h2' => '',
262
  'last_page_only' => true
263
  );
 
 
 
264
  $args = wp_parse_args( $args, $defaults );
265
  extract( $args, EXTR_SKIP );
266
 
@@ -1523,17 +1523,13 @@ function bb_get_topic_move_dropdown( $args = '' )
1523
  if ( !$dropdown )
1524
  return;
1525
 
1526
- $r = $before . '<form id="topic-move" method="post" action="' . bb_get_uri( 'bb-admin/topic-move.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_ADMIN ) . '">' . "\n";
1527
- $r .= '<fieldset>' . "\n";
1528
- $r .= '<div>' . "\n";
1529
  $r .= '<input type="hidden" name="topic_id" value="' . $topic->topic_id . '" />' . "\n";
1530
  $r .= '<label for="forum-id">'. __( 'Move to' ) . '</label>' . "\n";
1531
  $r .= $dropdown . "\n";
1532
  $r .= bb_nonce_field( 'move-topic_' . $topic->topic_id, '_wpnonce', true , false );
1533
  $r .= '<input type="submit" name="Submit" value="' . __( 'Move' ) . '" />' . "\n";
1534
- $r .= '</div>' . "\n";
1535
- $r .= '</fieldset>' . "\n";
1536
- $r .= '</form>' . $after;
1537
 
1538
  return $r;
1539
  }
@@ -3506,6 +3502,9 @@ function _bb_time_function_return( $time, $args ) {
3506
  case 'mysql' :
3507
  $format = 'Y-m-d H:i:s';
3508
  break;
 
 
 
3509
  endswitch;
3510
 
3511
  if ( $args['localize'] ) {
254
  function post_form( $args = array() ) {
255
  global $page, $topic, $forum;
256
 
 
 
 
257
  $defaults = array(
258
  'h2' => '',
259
  'last_page_only' => true
260
  );
261
+ if ( is_string( $args ) ) {
262
+ $defaults['h2'] = $args;
263
+ }
264
  $args = wp_parse_args( $args, $defaults );
265
  extract( $args, EXTR_SKIP );
266
 
1523
  if ( !$dropdown )
1524
  return;
1525
 
1526
+ $r = $before . '<form id="topic-move" method="post" action="' . bb_get_uri( 'bb-admin/topic-move.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_ADMIN ) . '"><fieldset><div>' . "\n";
 
 
1527
  $r .= '<input type="hidden" name="topic_id" value="' . $topic->topic_id . '" />' . "\n";
1528
  $r .= '<label for="forum-id">'. __( 'Move to' ) . '</label>' . "\n";
1529
  $r .= $dropdown . "\n";
1530
  $r .= bb_nonce_field( 'move-topic_' . $topic->topic_id, '_wpnonce', true , false );
1531
  $r .= '<input type="submit" name="Submit" value="' . __( 'Move' ) . '" />' . "\n";
1532
+ $r .= '</div></fieldset></form>' . $after;
 
 
1533
 
1534
  return $r;
1535
  }
3502
  case 'mysql' :
3503
  $format = 'Y-m-d H:i:s';
3504
  break;
3505
+ case 'datetime' :
3506
+ $format = bb_get_option( 'datetime_format' );
3507
+ break;
3508
  endswitch;
3509
 
3510
  if ( $args['localize'] ) {
bp-forums/bbpress/bb-includes/functions.bb-users.php CHANGED
@@ -252,37 +252,48 @@ function bb_update_user( $user_id, $user_email, $user_url, $display_name ) {
252
  * @param string $user_login
253
  * @return bool
254
  */
255
- function bb_reset_email( $user_login ) {
 
256
  global $bbdb;
257
 
258
  $user_login = sanitize_user( $user_login, true );
259
 
260
- if ( !$user = $bbdb->get_row( $bbdb->prepare( "SELECT * FROM $bbdb->users WHERE user_login = %s", $user_login ) ) )
261
- return new WP_Error('user_does_not_exist', __('The specified user does not exist.'));
 
262
 
263
- $resetkey = substr(md5(bb_generate_password()), 0, 15);
264
  bb_update_usermeta( $user->ID, 'newpwdkey', $resetkey );
265
 
 
 
 
 
 
 
266
  $message = sprintf(
267
- __("If you wanted to reset your password, you may do so by visiting the following address:\n\n%s\n\nIf you don't want to reset your password, just ignore this email. Thanks!"),
268
- bb_get_uri(
269
- 'bb-reset-password.php',
270
- array('key' => $resetkey),
271
- BB_URI_CONTEXT_TEXT + BB_URI_CONTEXT_BB_USER_FORMS
272
- )
 
 
273
  );
 
274
 
275
  $mail_result = bb_mail(
276
  bb_get_user_email( $user->ID ),
277
- bb_get_option('name') . ': ' . __('Password Reset'),
278
  $message
279
  );
280
 
281
- if (!$mail_result) {
282
- return new WP_Error('sending_mail_failed', __('The email containing the password reset link could not be sent.'));
283
- } else {
284
- return true;
285
  }
 
 
286
  }
287
 
288
  /**
@@ -297,29 +308,42 @@ function bb_reset_email( $user_login ) {
297
  * @param string $key
298
  * @return unknown
299
  */
300
- function bb_reset_password( $key ) {
 
301
  global $bbdb;
 
302
  $key = sanitize_user( $key, true );
303
- if ( empty( $key ) )
304
- return new WP_Error('key_not_found', __('Key not found.'));
305
- if ( !$user_id = $bbdb->get_var( $bbdb->prepare( "SELECT user_id FROM $bbdb->usermeta WHERE meta_key = 'newpwdkey' AND meta_value = %s", $key ) ) )
306
- return new WP_Error('key_not_found', __('Key not found.'));
307
- if ( $user = new BP_User( $user_id ) ) {
308
- if ( bb_has_broken_pass( $user->ID ) )
309
- bb_block_current_user();
310
- if ( !$user->has_cap( 'change_user_password', $user->ID ) )
311
- return new WP_Error('permission_denied', __('You are not allowed to change your password.'));
312
- $newpass = bb_generate_password();
313
- bb_update_user_password( $user->ID, $newpass );
314
- if (!bb_send_pass( $user->ID, $newpass )) {
315
- return new WP_Error('sending_mail_failed', __('The email containing the new password could not be sent.'));
316
- } else {
317
- bb_update_usermeta( $user->ID, 'newpwdkey', '' );
318
- return true;
319
- }
320
- } else {
321
- return new WP_Error('key_not_found', __('Key not found.'));
322
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
  }
324
 
325
  /**
@@ -357,16 +381,30 @@ function bb_update_user_password( $user_id, $password ) {
357
  * @param string $pass
358
  * @return bool
359
  */
360
- function bb_send_pass( $user, $pass ) {
361
- if ( !$user = bb_get_user( $user ) )
 
362
  return false;
 
363
 
364
- $message = __("Your username is: %1\$s \nYour password is: %2\$s \nYou can now log in: %3\$s \n\nEnjoy!");
 
 
 
 
 
 
 
 
 
 
 
 
365
 
366
  return bb_mail(
367
  bb_get_user_email( $user->ID ),
368
- bb_get_option('name') . ': ' . __('Password'),
369
- sprintf($message, $user->user_login, $pass, bb_get_uri(null, null, BB_URI_CONTEXT_TEXT))
370
  );
371
  }
372
 
252
  * @param string $user_login
253
  * @return bool
254
  */
255
+ function bb_reset_email( $user_login )
256
+ {
257
  global $bbdb;
258
 
259
  $user_login = sanitize_user( $user_login, true );
260
 
261
+ if ( !$user = $bbdb->get_row( $bbdb->prepare( "SELECT * FROM $bbdb->users WHERE user_login = %s", $user_login ) ) ) {
262
+ return new WP_Error( 'user_does_not_exist', __( 'The specified user does not exist.' ) );
263
+ }
264
 
265
+ $resetkey = substr( md5( bb_generate_password() ), 0, 15 );
266
  bb_update_usermeta( $user->ID, 'newpwdkey', $resetkey );
267
 
268
+ $reseturi = bb_get_uri(
269
+ 'bb-reset-password.php',
270
+ array( 'key' => $resetkey ),
271
+ BB_URI_CONTEXT_TEXT + BB_URI_CONTEXT_BB_USER_FORMS
272
+ );
273
+
274
  $message = sprintf(
275
+ __( "If you wanted to reset your password, you may do so by visiting the following address:\n\n%s\n\nIf you don't want to reset your password, just ignore this email. Thanks!" ),
276
+ $reseturi
277
+ );
278
+ $message = apply_filters( 'bb_reset_email_message', $message, $user, $reseturi, $resetkey );
279
+
280
+ $subject = sprintf(
281
+ __( '%s: Password Reset' ),
282
+ bb_get_option( 'name' )
283
  );
284
+ $subject = apply_filters( 'bb_reset_email_subject', $subject, $user );
285
 
286
  $mail_result = bb_mail(
287
  bb_get_user_email( $user->ID ),
288
+ $subject,
289
  $message
290
  );
291
 
292
+ if ( !$mail_result ) {
293
+ return new WP_Error( 'sending_mail_failed', __( 'The email containing the password reset link could not be sent.' ) );
 
 
294
  }
295
+
296
+ return true;
297
  }
298
 
299
  /**
308
  * @param string $key
309
  * @return unknown
310
  */
311
+ function bb_reset_password( $key )
312
+ {
313
  global $bbdb;
314
+
315
  $key = sanitize_user( $key, true );
316
+
317
+ if ( empty( $key ) || !is_string( $key ) ) {
318
+ return new WP_Error( 'invalid_key', __( 'Invalid key' ) );
319
+ }
320
+
321
+ if ( !$user_id = $bbdb->get_var( $bbdb->prepare( "SELECT user_id FROM $bbdb->usermeta WHERE meta_key = 'newpwdkey' AND meta_value = %s", $key ) ) ) {
322
+ return new WP_Error( 'invalid_key', __( 'Invalid key' ) );
323
+ }
324
+
325
+ $user = new BP_User( $user_id );
326
+
327
+ if ( !$user || is_wp_error( $user ) ) {
328
+ return new WP_Error( 'invalid_key', __( 'Invalid key' ) );
 
 
 
 
 
 
329
  }
330
+
331
+ if ( bb_has_broken_pass( $user->ID ) ) {
332
+ bb_block_current_user();
333
+ }
334
+
335
+ if ( !$user->has_cap( 'change_user_password', $user->ID ) ) {
336
+ return new WP_Error( 'permission_denied', __( 'You are not allowed to change your password.' ) );
337
+ }
338
+
339
+ $newpass = bb_generate_password();
340
+ bb_update_user_password( $user->ID, $newpass );
341
+ if ( !bb_send_pass( $user->ID, $newpass ) ) {
342
+ return new WP_Error( 'sending_mail_failed', __( 'The email containing the new password could not be sent.' ) );
343
+ }
344
+
345
+ bb_update_usermeta( $user->ID, 'newpwdkey', '' );
346
+ return true;
347
  }
348
 
349
  /**
381
  * @param string $pass
382
  * @return bool
383
  */
384
+ function bb_send_pass( $user, $pass )
385
+ {
386
+ if ( !$user = bb_get_user( $user ) ) {
387
  return false;
388
+ }
389
 
390
+ $message = sprintf(
391
+ __( "Your username is: %1\$s \nYour password is: %2\$s \nYou can now log in: %3\$s \n\nEnjoy!" ),
392
+ $user->user_login,
393
+ $pass,
394
+ bb_get_uri( null, null, BB_URI_CONTEXT_TEXT )
395
+ );
396
+ $message = apply_filters( 'bb_send_pass_message', $message, $user, $pass );
397
+
398
+ $subject = sprintf(
399
+ __( '%s: Password' ),
400
+ bb_get_option( 'name' )
401
+ );
402
+ $subject = apply_filters( 'bb_send_pass_subject', $subject, $user );
403
 
404
  return bb_mail(
405
  bb_get_user_email( $user->ID ),
406
+ $subject,
407
+ $message
408
  );
409
  }
410
 
bp-forums/bbpress/bb-includes/js/jquery/interface.js CHANGED
@@ -9,4 +9,5 @@
9
  *
10
  *
11
  */
12
- eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('k.f2={2r:u(M){E q.1E(u(){if(!M.aR||!M.aZ)E;D el=q;el.2l={aq:M.aq||cO,aR:M.aR,aZ:M.aZ,8e:M.8e||\'fV\',aJ:M.aJ||\'fV\',2Y:M.2Y&&2g M.2Y==\'u\'?M.2Y:I,3i:M.2Y&&2g M.3i==\'u\'?M.3i:I,7U:M.7U&&2g M.7U==\'u\'?M.7U:I,as:k(M.aR,q),8f:k(M.aZ,q),H:M.H||8J,67:M.67||0};el.2l.8f.2G().B(\'W\',\'9R\').eq(0).B({W:el.2l.aq+\'U\',19:\'2B\'}).2T();el.2l.as.1E(u(2N){q.7X=2N}).gC(u(){k(q).2R(el.2l.aJ)},u(){k(q).4i(el.2l.aJ)}).1J(\'5h\',u(e){if(el.2l.67==q.7X)E;el.2l.as.eq(el.2l.67).4i(el.2l.8e).2T().eq(q.7X).2R(el.2l.8e).2T();el.2l.8f.eq(el.2l.67).5w({W:0},el.2l.H,u(){q.14.19=\'1o\';if(el.2l.3i){el.2l.3i.1D(el,[q])}}).2T().eq(q.7X).1Y().5w({W:el.2l.aq},el.2l.H,u(){q.14.19=\'2B\';if(el.2l.2Y){el.2l.2Y.1D(el,[q])}}).2T();if(el.2l.7U){el.2l.7U.1D(el,[q,el.2l.8f.K(q.7X),el.2l.as.K(el.2l.67),el.2l.8f.K(el.2l.67)])}el.2l.67=q.7X}).eq(0).2R(el.2l.8e).2T();k(q).B(\'W\',k(q).B(\'W\')).B(\'2U\',\'2K\')})}};k.fn.gN=k.f2.2r;k.aA={2r:u(M){E q.1E(u(){D el=q;D 7E=2*18.2Q/f1;D an=2*18.2Q;if(k(el).B(\'Y\')!=\'2s\'&&k(el).B(\'Y\')!=\'1P\'){k(el).B(\'Y\',\'2s\')}el.1l={1R:k(M.1R,q),2F:M.2F,6q:M.6q,aD:M.aD,an:an,1N:k.1a.2o(q),Y:k.1a.3w(q),26:18.2Q/2,bi:M.bi,8p:M.6r,6r:[],aG:I,7E:2*18.2Q/f1};el.1l.fB=(el.1l.1N.w-el.1l.2F)/2;el.1l.7D=(el.1l.1N.h-el.1l.6q-el.1l.6q*el.1l.8p)/2;el.1l.2D=2*18.2Q/el.1l.1R.1N();el.1l.ba=el.1l.1N.w/2;el.1l.b9=el.1l.1N.h/2-el.1l.6q*el.1l.8p;D ak=1h.3F(\'22\');k(ak).B({Y:\'1P\',3I:1,Q:0,O:0});k(el).1S(ak);el.1l.1R.1E(u(2N){a6=k(\'1T\',q).K(0);W=T(el.1l.6q*el.1l.8p);if(k.3a.4t){3E=1h.3F(\'1T\');k(3E).B(\'Y\',\'1P\');3E.2J=a6.2J;3E.14.5E=\'gE 9n:9w.9y.cC(1G=60, 14=1, gB=0, gA=0, gv=0, gF=0)\'}P{3E=1h.3F(\'3E\');if(3E.fD){4L=3E.fD("2d");3E.14.Y=\'1P\';3E.14.W=W+\'U\';3E.14.Z=el.1l.2F+\'U\';3E.W=W;3E.Z=el.1l.2F;4L.gu();4L.gO(0,W);4L.gk(1,-1);4L.gp(a6,0,0,el.1l.2F,W);4L.6H();4L.gm="gG-4l";D ap=4L.hy(0,0,0,W);ap.fs(1,"fr(1V, 1V, 1V, 1)");ap.fs(0,"fr(1V, 1V, 1V, 0.6)");4L.hx=ap;if(hA.hB.3J(\'hw\')!=-1){4L.hv()}P{4L.hu(0,0,el.1l.2F,W)}}}el.1l.6r[2N]=3E;k(ak).1S(3E)}).1J(\'9z\',u(e){el.1l.aG=1b;el.1l.H=el.1l.7E*0.1*el.1l.H/18.3S(el.1l.H);E I}).1J(\'8B\',u(e){el.1l.aG=I;E I});k.aA.7T(el);el.1l.H=el.1l.7E*0.2;el.1l.ht=1X.6V(u(){el.1l.26+=el.1l.H;if(el.1l.26>an)el.1l.26=0;k.aA.7T(el)},20);k(el).1J(\'8B\',u(){el.1l.H=el.1l.7E*0.2*el.1l.H/18.3S(el.1l.H)}).1J(\'3D\',u(e){if(el.1l.aG==I){1s=k.1a.4a(e);fz=el.1l.1N.w-1s.x+el.1l.Y.x;el.1l.H=el.1l.bi*el.1l.7E*(el.1l.1N.w/2-fz)/(el.1l.1N.w/2)}})})},7T:u(el){el.1l.1R.1E(u(2N){b8=el.1l.26+2N*el.1l.2D;x=el.1l.fB*18.5H(b8);y=el.1l.7D*18.83(b8);f9=T(2a*(el.1l.7D+y)/(2*el.1l.7D));fk=(el.1l.7D+y)/(2*el.1l.7D);Z=T((el.1l.2F-el.1l.aD)*fk+el.1l.aD);W=T(Z*el.1l.6q/el.1l.2F);q.14.Q=el.1l.b9+y-W/2+"U";q.14.O=el.1l.ba+x-Z/2+"U";q.14.Z=Z+"U";q.14.W=W+"U";q.14.3I=f9;el.1l.6r[2N].14.Q=T(el.1l.b9+y+W-1-W/2)+"U";el.1l.6r[2N].14.O=T(el.1l.ba+x-Z/2)+"U";el.1l.6r[2N].14.Z=Z+"U";el.1l.6r[2N].14.W=T(W*el.1l.8p)+"U"})}};k.fn.hI=k.aA.2r;k.23({G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W},hK:u(p,n,1W,1H,1m){E 1H*(n/=1m)*n*n+1W},fl:u(p,n,1W,1H,1m){E-1H*((n=n/1m-1)*n*n*n-1)+1W},hm:u(p,n,1W,1H,1m){if((n/=1m/2)<1)E 1H/2*n*n*n*n+1W;E-1H/2*((n-=2)*n*n*n-2)+1W},8l:u(p,n,1W,1H,1m){if((n/=1m)<(1/2.75)){E 1H*(7.aB*n*n)+1W}P if(n<(2/2.75)){E 1H*(7.aB*(n-=(1.5/2.75))*n+.75)+1W}P if(n<(2.5/2.75)){E 1H*(7.aB*(n-=(2.25/2.75))*n+.gY)+1W}P{E 1H*(7.aB*(n-=(2.h2/2.75))*n+.gX)+1W}},cr:u(p,n,1W,1H,1m){if(k.G.8l)E 1H-k.G.8l(p,1m-n,0,1H,1m)+1W;E 1W+1H},gW:u(p,n,1W,1H,1m){if(k.G.cr&&k.G.8l)if(n<1m/2)E k.G.cr(p,n*2,0,1H,1m)*.5+1W;E k.G.8l(p,n*2-1m,0,1H,1m)*.5+1H*.5+1W;E 1W+1H},gQ:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m)==1)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E-(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W},gT:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E a*18.6b(2,-10*n)*18.83((n*1m-s)*(2*18.2Q)/p)+1H+1W},gV:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}if(n<1){E-.5*(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W}E a*18.6b(2,-10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p)*.5+1H+1W}}});k.6n={2r:u(M){E q.1E(u(){D el=q;el.1F={1R:k(M.1R,q),1Z:k(M.1Z,q),1M:k.1a.3w(q),2F:M.2F,ax:M.ax,7Y:M.7Y,ge:M.ge,51:M.51,6x:M.6x};k.6n.aH(el,0);k(1X).1J(\'gU\',u(){el.1F.1M=k.1a.3w(el);k.6n.aH(el,0);k.6n.7T(el)});k.6n.7T(el);el.1F.1R.1J(\'9z\',u(){k(el.1F.ax,q).K(0).14.19=\'2B\'}).1J(\'8B\',u(){k(el.1F.ax,q).K(0).14.19=\'1o\'});k(1h).1J(\'3D\',u(e){D 1s=k.1a.4a(e);D 5s=0;if(el.1F.51&&el.1F.51==\'cv\')D aI=1s.x-el.1F.1M.x-(el.4c-el.1F.2F*el.1F.1R.1N())/2-el.1F.2F/2;P if(el.1F.51&&el.1F.51==\'2L\')D aI=1s.x-el.1F.1M.x-el.4c+el.1F.2F*el.1F.1R.1N();P D aI=1s.x-el.1F.1M.x;D fP=18.6b(1s.y-el.1F.1M.y-el.5W/2,2);el.1F.1R.1E(u(2N){45=18.ez(18.6b(aI-2N*el.1F.2F,2)+fP);45-=el.1F.2F/2;45=45<0?0:45;45=45>el.1F.7Y?el.1F.7Y:45;45=el.1F.7Y-45;bB=el.1F.6x*45/el.1F.7Y;q.14.Z=el.1F.2F+bB+\'U\';q.14.O=el.1F.2F*2N+5s+\'U\';5s+=bB});k.6n.aH(el,5s)})})},aH:u(el,5s){if(el.1F.51)if(el.1F.51==\'cv\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())/2-5s/2+\'U\';P if(el.1F.51==\'O\')el.1F.1Z.K(0).14.O=-5s/el.1F.1R.1N()+\'U\';P if(el.1F.51==\'2L\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())-5s/2+\'U\';el.1F.1Z.K(0).14.Z=el.1F.2F*el.1F.1R.1N()+5s+\'U\'},7T:u(el){el.1F.1R.1E(u(2N){q.14.Z=el.1F.2F+\'U\';q.14.O=el.1F.2F*2N+\'U\'})}};k.fn.hi=k.6n.2r;k.N={1c:S,8R:S,3A:S,2I:S,4y:S,cl:S,1d:S,2h:S,1R:S,5o:u(){k.N.8R.5o();if(k.N.3A){k.N.3A.2G()}},4w:u(){k.N.1R=S;k.N.2h=S;k.N.4y=k.N.1d.2y;if(k.N.1c.B(\'19\')==\'2B\'){if(k.N.1d.1f.fx){3m(k.N.1d.1f.fx.1u){1e\'c6\':k.N.1c.7a(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'1z\':k.N.1c.fq(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'a7\':k.N.1c.g3(k.N.1d.1f.fx.1m,k.N.5o);1r}}P{k.N.1c.2G()}if(k.N.1d.1f.3i)k.N.1d.1f.3i.1D(k.N.1d,[k.N.1c,k.N.3A])}P{k.N.5o()}1X.bH(k.N.2I)},dQ:u(){D 1d=k.N.1d;D 4d=k.N.aY(1d);if(1d&&4d.3o!=k.N.4y&&4d.3o.1g>=1d.1f.aL){k.N.4y=4d.3o;k.N.cl=4d.3o;81={2n:k(1d).1p(\'hj\')||\'2n\',2y:4d.3o};k.hl({1u:\'hk\',81:k.hf(81),he:u(fZ){1d.1f.4e=k(\'3o\',fZ);1N=1d.1f.4e.1N();if(1N>0){D 5p=\'\';1d.1f.4e.1E(u(2N){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'});if(1d.1f.aU){D 3M=k(\'2y\',1d.1f.4e.K(0)).3g();1d.2y=4d.3j+3M+1d.1f.3N+4d.66;k.N.6J(1d,4d.3o.1g!=3M.1g?(4d.3j.1g+4d.3o.1g):3M.1g,4d.3o.1g!=3M.1g?(4d.3j.1g+3M.1g):3M.1g)}if(1N>0){k.N.cj(1d,5p)}P{k.N.4w()}}P{k.N.4w()}},5N:1d.1f.aN})}},cj:u(1d,5p){k.N.8R.3x(5p);k.N.1R=k(\'8P\',k.N.8R.K(0));k.N.1R.9z(k.N.di).1J(\'5h\',k.N.dj);D Y=k.1a.3w(1d);D 1N=k.1a.2o(1d);k.N.1c.B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').2R(1d.1f.aM);if(k.N.3A){k.N.3A.B(\'19\',\'2B\').B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').B(\'Z\',k.N.1c.B(\'Z\')).B(\'W\',k.N.1c.B(\'W\'))}k.N.2h=0;k.N.1R.K(0).3l=1d.1f.7H;k.N.8Q(1d,1d.1f.4e.K(0),\'7J\');if(k.N.1c.B(\'19\')==\'1o\'){if(1d.1f.bV){D cp=k.1a.aT(1d,1b);D cm=k.1a.6U(1d,1b);k.N.1c.B(\'Z\',1d.4c-(k.dF?(cp.l+cp.r+cm.l+cm.r):0)+\'U\')}if(1d.1f.fx){3m(1d.1f.fx.1u){1e\'c6\':k.N.1c.7f(1d.1f.fx.1m);1r;1e\'1z\':k.N.1c.fo(1d.1f.fx.1m);1r;1e\'a7\':k.N.1c.gb(1d.1f.fx.1m);1r}}P{k.N.1c.1Y()}if(k.N.1d.1f.2Y)k.N.1d.1f.2Y.1D(k.N.1d,[k.N.1c,k.N.3A])}},dO:u(){D 1d=q;if(1d.1f.4e){k.N.4y=1d.2y;k.N.cl=1d.2y;D 5p=\'\';1d.1f.4e.1E(u(2N){2y=k(\'2y\',q).3g().6c();fY=1d.2y.6c();if(2y.3J(fY)==0){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'}});if(5p!=\'\'){k.N.cj(1d,5p);q.1f.9x=1b;E}}1d.1f.4e=S;q.1f.9x=I},6J:u(2n,26,2T){if(2n.b1){D 6t=2n.b1();6t.hp(1b);6t.dI("ck",26);6t.ha("ck",-2T+26);6t.8C()}P if(2n.aF){2n.aF(26,2T)}P{if(2n.5q){2n.5q=26;2n.dN=2T}}2n.6K()},f0:u(2n){if(2n.5q)E 2n.5q;P if(2n.b1){D 6t=1h.6J.dZ();D eX=6t.h9();E 0-eX.dI(\'ck\',-h6)}},aY:u(2n){D 4P={2y:2n.2y,3j:\'\',66:\'\',3o:\'\'};if(2n.1f.aQ){D 8N=I;D 5q=k.N.f0(2n)||0;D 4T=4P.2y.7C(2n.1f.3N);24(D i=0;i<4T.1g;i++){if((4P.3j.1g+4T[i].1g>=5q||5q==0)&&!8N){if(4P.3j.1g<=5q)4P.3o=4T[i];P 4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\');8N=1b}P if(8N){4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\')}if(!8N){4P.3j+=4T[i]+(4T.1g>1?2n.1f.3N:\'\')}}}P{4P.3o=4P.2y}E 4P},bU:u(e){1X.bH(k.N.2I);D 1d=k.N.aY(q);D 3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40|9/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';P k.N.2h=-1;3m(3K){1e 9:1e 13:if(k.N.2h==-1)k.N.2h=0;D 2h=k.N.1R.K(k.N.2h||0);D 3M=2h.5C(\'4I\');q.2y=1d.3j+3M+q.1f.3N+1d.66;k.N.4y=1d.3o;k.N.6J(q,1d.3j.1g+3M.1g+q.1f.3N.1g,1d.3j.1g+3M.1g+q.1f.3N.1g);k.N.4w();if(q.1f.68){4u=T(2h.5C(\'8K\'))||0;k.N.8Q(q,q.1f.4e.K(4u),\'68\')}if(q.7W)q.7W(I);E 3K!=13;1r;1e 27:q.2y=1d.3j+k.N.4y+q.1f.3N+1d.66;q.1f.4e=S;k.N.4w();if(q.7W)q.7W(I);E I;1r;1e 35:k.N.2h=k.N.1R.1N()-1;1r;1e 36:k.N.2h=0;1r;1e 38:k.N.2h--;if(k.N.2h<0)k.N.2h=k.N.1R.1N()-1;1r;1e 40:k.N.2h++;if(k.N.2h==k.N.1R.1N())k.N.2h=0;1r}k.N.8Q(q,q.1f.4e.K(k.N.2h||0),\'7J\');k.N.1R.K(k.N.2h||0).3l=q.1f.7H;if(k.N.1R.K(k.N.2h||0).7W)k.N.1R.K(k.N.2h||0).7W(I);if(q.1f.aU){D aK=k.N.1R.K(k.N.2h||0).5C(\'4I\');q.2y=1d.3j+aK+q.1f.3N+1d.66;if(k.N.4y.1g!=aK.1g)k.N.6J(q,1d.3j.1g+k.N.4y.1g,1d.3j.1g+aK.1g)}E I}k.N.dO.1D(q);if(q.1f.9x==I){if(1d.3o!=k.N.4y&&1d.3o.1g>=q.1f.aL)k.N.2I=1X.9T(k.N.dQ,q.1f.54);if(k.N.1R){k.N.4w()}}E 1b},8Q:u(2n,3o,1u){if(2n.1f[1u]){D 81={};ar=3o.f3(\'*\');24(i=0;i<ar.1g;i++){81[ar[i].4Y]=ar[i].7c.h4}2n.1f[1u].1D(2n,[81])}},di:u(e){if(k.N.1R){if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';k.N.1R.K(k.N.2h||0).3l=\'\';k.N.2h=T(q.5C(\'8K\'))||0;k.N.1R.K(k.N.2h||0).3l=k.N.1d.1f.7H}},dj:u(2k){1X.bH(k.N.2I);2k=2k||k.2k.gS(1X.2k);2k.aP();2k.aW();D 1d=k.N.aY(k.N.1d);D 3M=q.5C(\'4I\');k.N.1d.2y=1d.3j+3M+k.N.1d.1f.3N+1d.66;k.N.4y=q.5C(\'4I\');k.N.6J(k.N.1d,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g);k.N.4w();if(k.N.1d.1f.68){4u=T(q.5C(\'8K\'))||0;k.N.8Q(k.N.1d,k.N.1d.1f.4e.K(4u),\'68\')}E I},eJ:u(e){3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}E I}},2r:u(M){if(!M.aN||!k.1a){E}if(!k.N.1c){if(k.3a.4t){k(\'2e\',1h).1S(\'<3A 14="19:1o;Y:1P;5E:9n:9w.9y.cC(1G=0);" id="ds" 2J="ek:I;" ej="0" ep="cD"></3A>\');k.N.3A=k(\'#ds\')}k(\'2e\',1h).1S(\'<22 id="dr" 14="Y: 1P; Q: 0; O: 0; z-cZ: h3; 19: 1o;"><9h 14="6w: 0;8F: 0; h1-14: 1o; z-cZ: h0;">&7k;</9h></22>\');k.N.1c=k(\'#dr\');k.N.8R=k(\'9h\',k.N.1c)}E q.1E(u(){if(q.4Y!=\'ch\'&&q.5C(\'1u\')!=\'3g\')E;q.1f={};q.1f.aN=M.aN;q.1f.aL=18.3S(T(M.aL)||1);q.1f.aM=M.aM?M.aM:\'\';q.1f.7H=M.7H?M.7H:\'\';q.1f.68=M.68&&M.68.1K==2A?M.68:S;q.1f.2Y=M.2Y&&M.2Y.1K==2A?M.2Y:S;q.1f.3i=M.3i&&M.3i.1K==2A?M.3i:S;q.1f.7J=M.7J&&M.7J.1K==2A?M.7J:S;q.1f.bV=M.bV||I;q.1f.aQ=M.aQ||I;q.1f.3N=q.1f.aQ?(M.3N||\', \'):\'\';q.1f.aU=M.aU?1b:I;q.1f.54=18.3S(T(M.54)||aC);if(M.fx&&M.fx.1K==7M){if(!M.fx.1u||!/c6|1z|a7/.48(M.fx.1u)){M.fx.1u=\'1z\'}if(M.fx.1u==\'1z\'&&!k.fx.1z)E;if(M.fx.1u==\'a7\'&&!k.fx.61)E;M.fx.1m=18.3S(T(M.fx.1m)||8J);if(M.fx.1m>q.1f.54){M.fx.1m=q.1f.54-2a}q.1f.fx=M.fx}q.1f.4e=S;q.1f.9x=I;k(q).1p(\'bU\',\'eN\').6K(u(){k.N.1d=q;k.N.4y=q.2y}).dH(k.N.eJ).6y(k.N.bU).5B(u(){k.N.2I=1X.9T(k.N.4w,hM)})})}};k.fn.hR=k.N.2r;k.1y={2I:S,4Q:S,29:S,2D:10,26:u(el,4J,2D,eG){k.1y.4Q=el;k.1y.29=4J;k.1y.2D=T(2D)||10;k.1y.2I=1X.6V(k.1y.eF,T(eG)||40)},eF:u(){24(i=0;i<k.1y.29.1g;i++){if(!k.1y.29[i].2X){k.1y.29[i].2X=k.23(k.1a.7G(k.1y.29[i]),k.1a.74(k.1y.29[i]),k.1a.6z(k.1y.29[i]))}P{k.1y.29[i].2X.t=k.1y.29[i].3d;k.1y.29[i].2X.l=k.1y.29[i].3c}if(k.1y.4Q.A&&k.1y.4Q.A.7q==1b){69={x:k.1y.4Q.A.2v,y:k.1y.4Q.A.2q,1C:k.1y.4Q.A.1B.1C,hb:k.1y.4Q.A.1B.hb}}P{69=k.23(k.1a.7G(k.1y.4Q),k.1a.74(k.1y.4Q))}if(k.1y.29[i].2X.t>0&&k.1y.29[i].2X.y+k.1y.29[i].2X.t>69.y){k.1y.29[i].3d-=k.1y.2D}P if(k.1y.29[i].2X.t<=k.1y.29[i].2X.h&&k.1y.29[i].2X.t+k.1y.29[i].2X.hb<69.y+69.hb){k.1y.29[i].3d+=k.1y.2D}if(k.1y.29[i].2X.l>0&&k.1y.29[i].2X.x+k.1y.29[i].2X.l>69.x){k.1y.29[i].3c-=k.1y.2D}P if(k.1y.29[i].2X.l<=k.1y.29[i].2X.hP&&k.1y.29[i].2X.l+k.1y.29[i].2X.1C<69.x+69.1C){k.1y.29[i].3c+=k.1y.2D}}},8o:u(){1X.5T(k.1y.2I);k.1y.4Q=S;k.1y.29=S;24(i in k.1y.29){k.1y.29[i].2X=S}}};k.11={1c:S,F:S,4U:u(){E q.1E(u(){if(q.9I){q.A.5e.3q(\'5v\',k.11.bN);q.A=S;q.9I=I;if(k.3a.4t){q.bE="eN"}P{q.14.hq=\'\';q.14.e1=\'\';q.14.e7=\'\'}}})},bN:u(e){if(k.11.F!=S){k.11.9A(e);E I}D C=q.3U;k(1h).1J(\'3D\',k.11.bX).1J(\'5P\',k.11.9A);C.A.1s=k.1a.4a(e);C.A.4B=C.A.1s;C.A.7q=I;C.A.ho=q!=q.3U;k.11.F=C;if(C.A.5i&&q!=q.3U){bS=k.1a.3w(C.31);bQ=k.1a.2o(C);bR={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};dx=C.A.4B.x-bS.x-bQ.1C/2-bR.x;dy=C.A.4B.y-bS.y-bQ.hb/2-bR.y;k.3b.5c(C,[dx,dy])}E k.7n||I},ea:u(e){D C=k.11.F;C.A.7q=1b;D 9G=C.14;C.A.7V=k.B(C,\'19\');C.A.4n=k.B(C,\'Y\');if(!C.A.cz)C.A.cz=C.A.4n;C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.9B=0;C.A.ai=0;if(k.3a.4t){D bW=k.1a.6U(C,1b);C.A.9B=bW.l||0;C.A.ai=bW.t||0}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){9G.Y=\'2s\'}k.11.1c.5o();D 5g=C.fI(1b);k(5g).B({19:\'2B\',O:\'2P\',Q:\'2P\'});5g.14.5K=\'0\';5g.14.5z=\'0\';5g.14.5k=\'0\';5g.14.5j=\'0\';k.11.1c.1S(5g);D 3Y=k.11.1c.K(0).14;if(C.A.bD){3Y.Z=\'9F\';3Y.W=\'9F\'}P{3Y.W=C.A.1B.hb+\'U\';3Y.Z=C.A.1B.1C+\'U\'}3Y.19=\'2B\';3Y.5K=\'2P\';3Y.5z=\'2P\';3Y.5k=\'2P\';3Y.5j=\'2P\';k.23(C.A.1B,k.1a.2o(5g));if(C.A.2V){if(C.A.2V.O){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.2V.O;C.A.1B.x=C.A.1s.x-C.A.2V.O}if(C.A.2V.Q){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.2V.Q;C.A.1B.y=C.A.1s.y-C.A.2V.Q}if(C.A.2V.2L){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.1B.hb+C.A.2V.2L;C.A.1B.x=C.A.1s.x-C.A.1B.1C+C.A.2V.2L}if(C.A.2V.4D){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.1B.hb+C.A.2V.4D;C.A.1B.y=C.A.1s.y-C.A.1B.hb+C.A.2V.4D}}C.A.2v=C.A.2c.x;C.A.2q=C.A.2c.y;if(C.A.8s||C.A.2p==\'94\'){8U=k.1a.6U(C.31,1b);C.A.1B.x=C.8t+(k.3a.4t?0:k.3a.7I?-8U.l:8U.l);C.A.1B.y=C.8G+(k.3a.4t?0:k.3a.7I?-8U.t:8U.t);k(C.31).1S(k.11.1c.K(0))}if(C.A.2p){k.11.c5(C);C.A.5t.2p=k.11.ce}if(C.A.5i){k.3b.ct(C)}3Y.O=C.A.1B.x-C.A.9B+\'U\';3Y.Q=C.A.1B.y-C.A.ai+\'U\';3Y.Z=C.A.1B.1C+\'U\';3Y.W=C.A.1B.hb+\'U\';k.11.F.A.9E=I;if(C.A.gx){C.A.5t.6a=k.11.c7}if(C.A.3I!=I){k.11.1c.B(\'3I\',C.A.3I)}if(C.A.1G){k.11.1c.B(\'1G\',C.A.1G);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=\'+C.A.1G*2a+\')\')}}if(C.A.7O){k.11.1c.2R(C.A.7O);k.11.1c.K(0).7c.14.19=\'1o\'}if(C.A.4o)C.A.4o.1D(C,[5g,C.A.2c.x,C.A.2c.y]);if(k.1x&&k.1x.8D>0){k.1x.ed(C)}if(C.A.46==I){9G.19=\'1o\'}E I},c5:u(C){if(C.A.2p.1K==b0){if(C.A.2p==\'94\'){C.A.28=k.23({x:0,y:0},k.1a.2o(C.31));D 8S=k.1a.6U(C.31,1b);C.A.28.w=C.A.28.1C-8S.l-8S.r;C.A.28.h=C.A.28.hb-8S.t-8S.b}P if(C.A.2p==\'1h\'){D bY=k.1a.bm();C.A.28={x:0,y:0,w:bY.w,h:bY.h}}}P if(C.A.2p.1K==7F){C.A.28={x:T(C.A.2p[0])||0,y:T(C.A.2p[1])||0,w:T(C.A.2p[2])||0,h:T(C.A.2p[3])||0}}C.A.28.dx=C.A.28.x-C.A.1B.x;C.A.28.dy=C.A.28.y-C.A.1B.y},9H:u(F){if(F.A.8s||F.A.2p==\'94\'){k(\'2e\',1h).1S(k.11.1c.K(0))}k.11.1c.5o().2G().B(\'1G\',1);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=2a)\')}},9A:u(e){k(1h).3q(\'3D\',k.11.bX).3q(\'5P\',k.11.9A);if(k.11.F==S){E}D F=k.11.F;k.11.F=S;if(F.A.7q==I){E I}if(F.A.44==1b){k(F).B(\'Y\',F.A.4n)}D 9G=F.14;if(F.5i){k.11.1c.B(\'9b\',\'8j\')}if(F.A.7O){k.11.1c.4i(F.A.7O)}if(F.A.6N==I){if(F.A.fx>0){if(!F.A.1O||F.A.1O==\'4j\'){D x=12 k.fx(F,{1m:F.A.fx},\'O\');x.1L(F.A.2c.x,F.A.8y)}if(!F.A.1O||F.A.1O==\'49\'){D y=12 k.fx(F,{1m:F.A.fx},\'Q\');y.1L(F.A.2c.y,F.A.8v)}}P{if(!F.A.1O||F.A.1O==\'4j\')F.14.O=F.A.8y+\'U\';if(!F.A.1O||F.A.1O==\'49\')F.14.Q=F.A.8v+\'U\'}k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}P if(F.A.fx>0){F.A.9E=1b;D dh=I;if(k.1x&&k.1t&&F.A.44){dh=k.1a.3w(k.1t.1c.K(0))}k.11.1c.5w({O:dh?dh.x:F.A.1B.x,Q:dh?dh.y:F.A.1B.y},F.A.fx,u(){F.A.9E=I;if(F.A.46==I){F.14.19=F.A.7V}k.11.9H(F)})}P{k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}if(k.1x&&k.1x.8D>0){k.1x.eO(F)}if(k.1t&&F.A.44){k.1t.fC(F)}if(F.A.2Z&&(F.A.8y!=F.A.2c.x||F.A.8v!=F.A.2c.y)){F.A.2Z.1D(F,F.A.b3||[0,0,F.A.8y,F.A.8v])}if(F.A.3T)F.A.3T.1D(F);E I},c7:u(x,y,dx,dy){if(dx!=0)dx=T((dx+(q.A.gx*dx/18.3S(dx))/2)/q.A.gx)*q.A.gx;if(dy!=0)dy=T((dy+(q.A.gy*dy/18.3S(dy))/2)/q.A.gy)*q.A.gy;E{dx:dx,dy:dy,x:0,y:0}},ce:u(x,y,dx,dy){dx=18.3L(18.3r(dx,q.A.28.dx),q.A.28.w+q.A.28.dx-q.A.1B.1C);dy=18.3L(18.3r(dy,q.A.28.dy),q.A.28.h+q.A.28.dy-q.A.1B.hb);E{dx:dx,dy:dy,x:0,y:0}},bX:u(e){if(k.11.F==S||k.11.F.A.9E==1b){E}D F=k.11.F;F.A.4B=k.1a.4a(e);if(F.A.7q==I){45=18.ez(18.6b(F.A.1s.x-F.A.4B.x,2)+18.6b(F.A.1s.y-F.A.4B.y,2));if(45<F.A.6M){E}P{k.11.ea(e)}}D dx=F.A.4B.x-F.A.1s.x;D dy=F.A.4B.y-F.A.1s.y;24(D i in F.A.5t){D 3y=F.A.5t[i].1D(F,[F.A.2c.x+dx,F.A.2c.y+dy,dx,dy]);if(3y&&3y.1K==7M){dx=i!=\'7R\'?3y.dx:(3y.x-F.A.2c.x);dy=i!=\'7R\'?3y.dy:(3y.y-F.A.2c.y)}}F.A.2v=F.A.1B.x+dx-F.A.9B;F.A.2q=F.A.1B.y+dy-F.A.ai;if(F.A.5i&&(F.A.3H||F.A.2Z)){k.3b.3H(F,F.A.2v,F.A.2q)}if(F.A.4m)F.A.4m.1D(F,[F.A.2c.x+dx,F.A.2c.y+dy]);if(!F.A.1O||F.A.1O==\'4j\'){F.A.8y=F.A.2c.x+dx;k.11.1c.K(0).14.O=F.A.2v+\'U\'}if(!F.A.1O||F.A.1O==\'49\'){F.A.8v=F.A.2c.y+dy;k.11.1c.K(0).14.Q=F.A.2q+\'U\'}if(k.1x&&k.1x.8D>0){k.1x.al(F)}E I},2r:u(o){if(!k.11.1c){k(\'2e\',1h).1S(\'<22 id="e8"></22>\');k.11.1c=k(\'#e8\');D el=k.11.1c.K(0);D 4J=el.14;4J.Y=\'1P\';4J.19=\'1o\';4J.9b=\'8j\';4J.eu=\'1o\';4J.2U=\'2K\';if(1X.71){el.bE="e4"}P{4J.gi=\'1o\';4J.e7=\'1o\';4J.e1=\'1o\'}}if(!o){o={}}E q.1E(u(){if(q.9I||!k.1a)E;if(1X.71){q.gh=u(){E I};q.gj=u(){E I}}D el=q;D 5e=o.3v?k(q).gf(o.3v):k(q);if(k.3a.4t){5e.1E(u(){q.bE="e4"})}P{5e.B(\'-gI-7R-8C\',\'1o\');5e.B(\'7R-8C\',\'1o\');5e.B(\'-gH-7R-8C\',\'1o\')}q.A={5e:5e,6N:o.6N?1b:I,46:o.46?1b:I,44:o.44?o.44:I,5i:o.5i?o.5i:I,8s:o.8s?o.8s:I,3I:o.3I?T(o.3I)||0:I,1G:o.1G?2m(o.1G):I,fx:T(o.fx)||S,6R:o.6R?o.6R:I,5t:{},1s:{},4o:o.4o&&o.4o.1K==2A?o.4o:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:0,2V:o.2V?o.2V:I,bD:o.bD?1b:I,7O:o.7O||I};if(o.5t&&o.5t.1K==2A)q.A.5t.7R=o.5t;if(o.4m&&o.4m.1K==2A)q.A.4m=o.4m;if(o.2p&&((o.2p.1K==b0&&(o.2p==\'94\'||o.2p==\'1h\'))||(o.2p.1K==7F&&o.2p.1g==4))){q.A.2p=o.2p}if(o.2O){q.A.2O=o.2O}if(o.6a){if(2g o.6a==\'gz\'){q.A.gx=T(o.6a)||1;q.A.gy=T(o.6a)||1}P if(o.6a.1g==2){q.A.gx=T(o.6a[0])||1;q.A.gy=T(o.6a[1])||1}}if(o.3H&&o.3H.1K==2A){q.A.3H=o.3H}q.9I=1b;5e.1E(u(){q.3U=el});5e.1J(\'5v\',k.11.bN)})}};k.fn.23({aS:k.11.4U,7t:k.11.2r});k.1x={du:u(5J,5G,7Q,7S){E 5J<=k.11.F.A.2v&&(5J+7Q)>=(k.11.F.A.2v+k.11.F.A.1B.w)&&5G<=k.11.F.A.2q&&(5G+7S)>=(k.11.F.A.2q+k.11.F.A.1B.h)?1b:I},cV:u(5J,5G,7Q,7S){E!(5J>(k.11.F.A.2v+k.11.F.A.1B.w)||(5J+7Q)<k.11.F.A.2v||5G>(k.11.F.A.2q+k.11.F.A.1B.h)||(5G+7S)<k.11.F.A.2q)?1b:I},1s:u(5J,5G,7Q,7S){E 5J<k.11.F.A.4B.x&&(5J+7Q)>k.11.F.A.4B.x&&5G<k.11.F.A.4B.y&&(5G+7S)>k.11.F.A.4B.y?1b:I},5r:I,3Q:{},8D:0,3P:{},ed:u(C){if(k.11.F==S){E}D i;k.1x.3Q={};D bJ=I;24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){if(1j.1i.m==I){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));1j.1i.m=1b}if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);1j.1i.ay=k.1t.8x(k.1p(1j,\'id\')).7l;C.14.19=C.A.7V;bJ=1b}if(1j.1i.9i){1j.1i.9i.1D(k.1x.3P[i].K(0),[k.11.F])}}}}if(bJ){k.1t.26()}},dS:u(){k.1x.3Q={};24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);C.14.19=C.A.7V}}}}},al:u(e){if(k.11.F==S){E}k.1x.5r=I;D i;D bK=I;D eQ=0;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(k.1x.5r==I&&k.1x[1j.1i.t](1j.1i.p.x,1j.1i.p.y,1j.1i.p.1C,1j.1i.p.hb)){if(1j.1i.hc&&1j.1i.h==I){k.1x.3Q[i].2R(1j.1i.hc)}if(1j.1i.h==I&&1j.1i.7x){bK=1b}1j.1i.h=1b;k.1x.5r=1j;if(k.1t&&1j.1i.s&&k.11.F.A.44){k.1t.1c.K(0).3l=1j.1i.eV;k.1t.al(1j)}eQ++}P if(1j.1i.h==1b){if(1j.1i.7y){1j.1i.7y.1D(1j,[e,k.11.1c.K(0).7c,1j.1i.fx])}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}1j.1i.h=I}}if(k.1t&&!k.1x.5r&&k.11.F.44){k.1t.1c.K(0).14.19=\'1o\'}if(bK){k.1x.5r.1i.7x.1D(k.1x.5r,[e,k.11.1c.K(0).7c])}},eO:u(e){D i;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(1j.1i.ac){k.1x.3Q[i].4i(1j.1i.ac)}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}if(1j.1i.s){k.1t.7s[k.1t.7s.1g]=i}if(1j.1i.9l&&1j.1i.h==1b){1j.1i.h=I;1j.1i.9l.1D(1j,[e,1j.1i.fx])}1j.1i.m=I;1j.1i.h=I}k.1x.3Q={}},4U:u(){E q.1E(u(){if(q.9j){if(q.1i.s){id=k.1p(q,\'id\');k.1t.5L[id]=S;k(\'.\'+q.1i.a,q).aS()}k.1x.3P[\'d\'+q.c2]=S;q.9j=I;q.f=S}})},2r:u(o){E q.1E(u(){if(q.9j==1b||!o.3C||!k.1a||!k.11){E}q.1i={a:o.3C,ac:o.9J||I,hc:o.a5||I,eV:o.58||I,9l:o.gq||o.9l||I,7x:o.7x||o.dC||I,7y:o.7y||o.fO||I,9i:o.9i||I,t:o.6I&&(o.6I==\'du\'||o.6I==\'cV\')?o.6I:\'1s\',fx:o.fx?o.fx:I,m:I,h:I};if(o.cQ==1b&&k.1t){id=k.1p(q,\'id\');k.1t.5L[id]=q.1i.a;q.1i.s=1b;if(o.2Z){q.1i.2Z=o.2Z;q.1i.ay=k.1t.8x(id).7l}}q.9j=1b;q.c2=T(18.6o()*c9);k.1x.3P[\'d\'+q.c2]=k(q);k.1x.8D++})}};k.fn.23({dR:k.1x.4U,do:k.1x.2r});k.gD=k.1x.dS;k.3B={1c:S,8L:u(){3g=q.2y;if(!3g)E;14={dz:k(q).B(\'dz\')||\'\',4A:k(q).B(\'4A\')||\'\',8Z:k(q).B(\'8Z\')||\'\',dP:k(q).B(\'dP\')||\'\',dT:k(q).B(\'dT\')||\'\',dU:k(q).B(\'dU\')||\'\',c3:k(q).B(\'c3\')||\'\',dY:k(q).B(\'dY\')||\'\'};k.3B.1c.B(14);3x=k.3B.dX(3g);3x=3x.4E(12 bb("\\\\n","g"),"<br />");k.3B.1c.3x(\'gL\');ci=k.3B.1c.K(0).4c;k.3B.1c.3x(3x);Z=k.3B.1c.K(0).4c+ci;if(q.6l.2M&&Z>q.6l.2M[0]){Z=q.6l.2M[0]}q.14.Z=Z+\'U\';if(q.4Y==\'cf\'){W=k.3B.1c.K(0).5W+ci;if(q.6l.2M&&W>q.6l.2M[1]){W=q.6l.2M[1]}q.14.W=W+\'U\'}},dX:u(3g){cg={\'&\':\'&gK;\',\'<\':\'&gJ;\',\'>\':\'&gt;\',\'"\':\'&gs;\'};24(i in cg){3g=3g.4E(12 bb(i,\'g\'),cg[i])}E 3g},2r:u(2M){if(k.3B.1c==S){k(\'2e\',1h).1S(\'<22 id="dE" 14="Y: 1P; Q: 0; O: 0; 3n: 2K;"></22>\');k.3B.1c=k(\'#dE\')}E q.1E(u(){if(/cf|ch/.48(q.4Y)){if(q.4Y==\'ch\'){dB=q.5C(\'1u\');if(!/3g|gr/.48(dB)){E}}if(2M&&(2M.1K==bn||(2M.1K==7F&&2M.1g==2))){if(2M.1K==bn)2M=[2M,2M];P{2M[0]=T(2M[0])||8J;2M[1]=T(2M[1])||8J}q.6l={2M:2M}}k(q).5B(k.3B.8L).6y(k.3B.8L).dH(k.3B.8L);k.3B.8L.1D(q)}})}};k.fn.kc=k.3B.2r;k.4K=u(e){if(/^kd$|^ke$|^ka$|^6L$|^k9$|^k5$|^k4$|^k6$|^k7$|^2e$|^k8$|^kf$|^kg$|^kn$|^ko$|^kp$|^kq$/i.48(e.9N))E I;P E 1b};k.fx.a0=u(e,65){D c=e.7c;D cs=c.14;cs.Y=65.Y;cs.5K=65.3G.t;cs.5j=65.3G.l;cs.5k=65.3G.b;cs.5z=65.3G.r;cs.Q=65.Q+\'U\';cs.O=65.O+\'U\';e.31.ew(c,e);e.31.km(e)};k.fx.9P=u(e){if(!k.4K(e))E I;D t=k(e);D es=e.14;D 73=I;if(t.B(\'19\')==\'1o\'){5Y=t.B(\'3n\');t.B(\'3n\',\'2K\').1Y();73=1b}D V={};V.Y=t.B(\'Y\');V.1q=k.1a.2o(e);V.3G=k.1a.cy(e);D co=e.4Z?e.4Z.ei:t.B(\'hU\');V.Q=T(t.B(\'Q\'))||0;V.O=T(t.B(\'O\'))||0;D eo=\'kl\'+T(18.6o()*c9);D 6u=1h.3F(/^1T$|^br$|^kh$|^hr$|^8C$|^kj$|^8T$|^3A$|^kk$|^k3$|^k2$|^9h$|^dl$|^jM$/i.48(e.9N)?\'22\':e.9N);k.1p(6u,\'id\',eo);D jN=k(6u).2R(\'jO\');D 4h=6u.14;D Q=0;D O=0;if(V.Y==\'2s\'||V.Y==\'1P\'){Q=V.Q;O=V.O}4h.Q=Q+\'U\';4h.O=O+\'U\';4h.Y=V.Y!=\'2s\'&&V.Y!=\'1P\'?\'2s\':V.Y;4h.W=V.1q.hb+\'U\';4h.Z=V.1q.1C+\'U\';4h.5K=V.3G.t;4h.5z=V.3G.r;4h.5k=V.3G.b;4h.5j=V.3G.l;4h.2U=\'2K\';if(k.3a.4t){4h.ei=co}P{4h.jK=co}if(k.3a=="4t"){es.5E="8V(1G="+0.ex*2a+")"}es.1G=0.ex;e.31.ew(6u,e);6u.jF(e);es.5K=\'2P\';es.5z=\'2P\';es.5k=\'2P\';es.5j=\'2P\';es.Y=\'1P\';es.eu=\'1o\';es.Q=\'2P\';es.O=\'2P\';if(73){t.2G();es.3n=5Y}E{V:V,3p:k(6u)}};k.fx.8E={jE:[0,1V,1V],jG:[eD,1V,1V],jH:[e6,e6,jI],jP:[0,0,0],ks:[0,0,1V],jY:[dv,42,42],jZ:[0,1V,1V],k0:[0,0,7w],k1:[0,7w,7w],jX:[cn,cn,cn],jS:[0,2a,0],jR:[jT,jU,eb],jV:[7w,0,7w],kr:[85,eb,47],kP:[1V,eA,0],kN:[kO,50,kx],kF:[7w,0,0],kD:[ku,f8,kt],ky:[kH,0,9C],kL:[1V,0,1V],kM:[1V,kJ,0],kv:[0,6C,0],kA:[75,0,kE],kC:[eD,eB,eA],kG:[kI,kB,eB],kw:[e0,1V,1V],kz:[eL,kK,eL],kQ:[9C,9C,9C],jC:[1V,iy,iz],iA:[1V,1V,e0],iB:[0,1V,0],ix:[1V,0,1V],iv:[6C,0,0],iq:[0,0,6C],ip:[6C,6C,0],ir:[1V,dv,0],it:[1V,ah,iu],iC:[6C,0,6C],iD:[1V,0,0],iK:[ah,ah,ah],iL:[1V,1V,1V],iM:[1V,1V,0]};k.fx.6D=u(4x,dm){if(k.fx.8E[4x])E{r:k.fx.8E[4x][0],g:k.fx.8E[4x][1],b:k.fx.8E[4x][2]};P if(2W=/^6Y\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.a4(4x))E{r:T(2W[1]),g:T(2W[2]),b:T(2W[3])};P if(2W=/6Y\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.a4(4x))E{r:2m(2W[1])*2.55,g:2m(2W[2])*2.55,b:2m(2W[3])*2.55};P if(2W=/^#([a-fA-79-9])([a-fA-79-9])([a-fA-79-9])$/.a4(4x))E{r:T("77"+2W[1]+2W[1]),g:T("77"+2W[2]+2W[2]),b:T("77"+2W[3]+2W[3])};P if(2W=/^#([a-fA-79-9]{2})([a-fA-79-9]{2})([a-fA-79-9]{2})$/.a4(4x))E{r:T("77"+2W[1]),g:T("77"+2W[2]),b:T("77"+2W[3])};P E dm==1b?I:{r:1V,g:1V,b:1V}};k.fx.dD={5Q:1,5b:1,5O:1,4S:1,4D:1,4A:1,W:1,O:1,c3:1,iI:1,5k:1,5j:1,5z:1,5K:1,8b:1,6x:1,8c:1,av:1,1G:1,iE:1,iF:1,5n:1,4X:1,5U:1,5M:1,2L:1,jD:1,Q:1,Z:1,3I:1};k.fx.dA={7i:1,iG:1,iH:1,io:1,im:1,4x:1,i2:1};k.fx.8A=[\'i3\',\'i4\',\'i5\',\'i1\'];k.fx.cc={\'cd\':[\'2E\',\'dK\'],\'a8\':[\'2E\',\'bh\'],\'6w\':[\'6w\',\'\'],\'8F\':[\'8F\',\'\']};k.fn.23({5w:u(5X,H,G,J){E q.1w(u(){D a1=k.H(H,G,J);D e=12 k.dM(q,a1,5X)})},c4:u(H,J){E q.1w(u(){D a1=k.H(H,J);D e=12 k.c4(q,a1)})},8o:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D)})},i0:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D);if(q.1w&&q.1w[\'fx\'])q.1w.fx=[]})}});k.23({c4:u(2f,M){D z=q,3t;z.2D=u(){if(k.fQ(M.21))M.21.1D(2f)};z.2I=6V(u(){z.2D()},M.1m);2f.6d=z},G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W}},dM:u(2f,M,5X){D z=q,3t;D y=2f.14;D fR=k.B(2f,"2U");D 72=k.B(2f,"19");D 2j={};z.9O=(12 7g()).7z();M.G=M.G&&k.G[M.G]?M.G:\'c8\';z.ag=u(2w,43){if(k.fx.dD[2w]){if(43==\'1Y\'||43==\'2G\'||43==\'3R\'){if(!2f.6v)2f.6v={};D r=2m(k.6E(2f,2w));2f.6v[2w]=r&&r>-c9?r:(2m(k.B(2f,2w))||0);43=43==\'3R\'?(72==\'1o\'?\'1Y\':\'2G\'):43;M[43]=1b;2j[2w]=43==\'1Y\'?[0,2f.6v[2w]]:[2f.6v[2w],0];if(2w!=\'1G\')y[2w]=2j[2w][0]+(2w!=\'3I\'&&2w!=\'8Z\'?\'U\':\'\');P k.1p(y,"1G",2j[2w][0])}P{2j[2w]=[2m(k.6E(2f,2w)),2m(43)||0]}}P if(k.fx.dA[2w])2j[2w]=[k.fx.6D(k.6E(2f,2w)),k.fx.6D(43)];P if(/^6w$|8F$|2E$|a8$|cd$/i.48(2w)){D m=43.4E(/\\s+/g,\' \').4E(/6Y\\s*\\(\\s*/g,\'6Y(\').4E(/\\s*,\\s*/g,\',\').4E(/\\s*\\)/g,\')\').d5(/([^\\s]+)/g);3m(2w){1e\'6w\':1e\'8F\':1e\'cd\':1e\'a8\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];24(D i=0;i<k.fx.8A.1g;i++){D 64=k.fx.cc[2w][0]+k.fx.8A[i]+k.fx.cc[2w][1];2j[64]=2w==\'a8\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),2m(m[i])]}1r;1e\'2E\':24(D i=0;i<m.1g;i++){D bd=2m(m[i]);D a9=!hX(bd)?\'dK\':(!/cu|1o|2K|hY|hZ|i6|i7|ii|ij|ik|il/i.48(m[i])?\'bh\':I);if(a9){24(D j=0;j<k.fx.8A.1g;j++){64=\'2E\'+k.fx.8A[j]+a9;2j[64]=a9==\'bh\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),bd]}}P{y[\'ie\']=m[i]}}1r}}P{y[2w]=43}E I};24(p in 5X){if(p==\'14\'){D 5f=k.bl(5X[p]);24(7A in 5f){q.ag(7A,5f[7A])}}P if(p==\'3l\'){if(1h.af)24(D i=0;i<1h.af.1g;i++){D 7e=1h.af[i].7e||1h.af[i].i9||S;if(7e){24(D j=0;j<7e.1g;j++){if(7e[j].i8==\'.\'+5X[p]){D 6X=12 bb(\'\\.\'+5X[p]+\' {\');D 5Z=7e[j].14.9X;D 5f=k.bl(5Z.4E(6X,\'\').4E(/}/g,\'\'));24(7A in 5f){q.ag(7A,5f[7A])}}}}}}P{q.ag(p,5X[p])}}y.19=72==\'1o\'?\'2B\':72;y.2U=\'2K\';z.2D=u(){D t=(12 7g()).7z();if(t>M.1m+z.9O){5T(z.2I);z.2I=S;24(p in 2j){if(p=="1G")k.1p(y,"1G",2j[p][1]);P if(2g 2j[p][1]==\'8T\')y[p]=\'6Y(\'+2j[p][1].r+\',\'+2j[p][1].g+\',\'+2j[p][1].b+\')\';P y[p]=2j[p][1]+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}if(M.2G||M.1Y)24(D p in 2f.6v)if(p=="1G")k.1p(y,p,2f.6v[p]);P y[p]="";y.19=M.2G?\'1o\':(72!=\'1o\'?72:\'2B\');y.2U=fR;2f.6d=S;if(k.fQ(M.21))M.21.1D(2f)}P{D n=t-q.9O;D 8w=n/M.1m;24(p in 2j){if(2g 2j[p][1]==\'8T\'){y[p]=\'6Y(\'+T(k.G[M.G](8w,n,2j[p][0].r,(2j[p][1].r-2j[p][0].r),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].g,(2j[p][1].g-2j[p][0].g),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].b,(2j[p][1].b-2j[p][0].b),M.1m))+\')\'}P{D bz=k.G[M.G](8w,n,2j[p][0],(2j[p][1]-2j[p][0]),M.1m);if(p=="1G")k.1p(y,"1G",bz);P y[p]=bz+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}}}};z.2I=6V(u(){z.2D()},13);2f.6d=z},by:u(2f,2D){if(2D)2f.6d.9O-=iO;P{1X.5T(2f.6d.2I);2f.6d=S;k.2H(2f,"fx")}}});k.bl=u(5Z){D 5f={};if(2g 5Z==\'4V\'){5Z=5Z.6c().7C(\';\');24(D i=0;i<5Z.1g;i++){6X=5Z[i].7C(\':\');if(6X.1g==2){5f[k.g6(6X[0].4E(/\\-(\\w)/g,u(m,c){E c.jo()}))]=k.g6(6X[1])}}}E 5f};k.fn.23({g3:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4F\',G)})},gb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4r\',G)})},jl:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fJ\',G)})},jk:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'O\',G)})},jg:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'2L\',G)})},jf:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fh\',G)})}});k.fx.61=u(e,H,J,2S,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.1N=k.1a.2o(e);z.G=2g J==\'4V\'?J:G||S;if(!e.4s)e.4s=z.el.B(\'19\');if(2S==\'fJ\'){2S=z.el.B(\'19\')==\'1o\'?\'4r\':\'4F\'}P if(2S==\'fh\'){2S=z.el.B(\'19\')==\'1o\'?\'2L\':\'O\'}z.el.1Y();z.H=H;z.J=2g J==\'u\'?J:S;z.fx=k.fx.9P(e);z.2S=2S;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.2S==\'4r\'||z.2S==\'2L\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(z.fx.V.1q.hb,0);1r;1e\'4r\':z.fx.3p.B(\'W\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(0,z.fx.V.1q.hb);1r;1e\'O\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(z.fx.V.1q.1C,0);1r;1e\'2L\':z.fx.3p.B(\'Z\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(0,z.fx.V.1q.1C);1r}};k.fn.ji=u(5D,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.f4(q,5D,J);e.bp()})};k.fx.f4=u(e,5D,J){D z=q;z.el=k(e);z.el.1Y();z.J=J;z.5D=T(5D)||40;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.3V=5;z.5y=1;z.bp=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:jj,21:u(){z.e=12 k.fx(z.el.K(0),{1m:80,21:u(){z.5D=T(z.5D/2);if(z.5y<=z.3V)z.bp();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'Q\');z.e.1L(z.V.Q-z.5D,z.V.Q)}},\'Q\');z.e.1L(z.V.Q,z.V.Q-z.5D)}};k.fn.23({jy:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'4l\',G)})},jz:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'in\',G)})},jA:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'3R\',G)})},jB:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'4l\',G)})},jx:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'in\',G)})},jw:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'3R\',G)})},js:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'4l\',G)})},jt:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'in\',G)})},ju:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'3R\',G)})},jv:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'4l\',G)})},je:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'in\',G)})},jd:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'3R\',G)})}});k.fx.4f=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(!e.4s)e.4s=z.el.B(\'19\');if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}z.el.1Y();if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.1u=1u;J=2g J==\'u\'?J:S;8H=1;3m(2S){1e\'4F\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;8H=-1;1r;1e\'4r\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;1r;1e\'2L\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;1r;1e\'O\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;8H=-1;1r}z.e2=12 k.fx(z.el.K(0),k.H(H,z.G,u(){z.el.B(z.V);if(z.1u==\'4l\'){z.el.B(\'19\',\'1o\')}P z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s);k.2H(z.el.K(0),\'1n\')}),\'1G\');if(1u==\'in\'){z.e.1L(z.62+2a*8H,z.62);z.e2.1L(0,1)}P{z.e.1L(z.62,z.62+2a*8H);z.e2.1L(1,0)}};k.fn.23({j0:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'fp\',G)})},iW:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'9M\',G)})},iV:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'3R\',G)})}});k.fx.9L=u(e,H,W,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'9M\':\'fp\'}z.H=H;z.W=W&&W.1K==bn?W:20;z.fx=k.fx.9P(e);z.1u=1u;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.1u==\'9M\'){z.el.1Y()}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};if(z.1u==\'9M\'){z.el.1Y();z.fx.3p.B(\'W\',z.W+\'U\').B(\'Z\',\'9R\');z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');z.ef.1L(z.W,z.fx.V.1q.hb)}),\'Z\');z.ef.1L(0,z.fx.V.1q.1C)}P{z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');z.ef.1L(z.fx.V.1q.1C,0)}),\'W\');z.ef.1L(z.fx.V.1q.hb,z.W)}};k.fn.iR=u(H,4x,J,G){E q.1w(\'fv\',u(){q.6W=k(q).1p("14")||\'\';G=2g J==\'4V\'?J:G||S;J=2g J==\'u\'?J:S;D 9S=k(q).B(\'7i\');D 8I=q.31;7d(9S==\'cu\'&&8I){9S=k(8I).B(\'7i\');8I=8I.31}k(q).B(\'7i\',4x);if(2g q.6W==\'8T\')q.6W=q.6W["9X"];k(q).5w({\'7i\':9S},H,G,u(){k.2H(q,\'fv\');if(2g k(q).1p("14")==\'8T\'){k(q).1p("14")["9X"]="";k(q).1p("14")["9X"]=q.6W}P{k(q).1p("14",q.6W)}if(J)J.1D(q)})})};k.fn.23({iT:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6g\',G)})},iU:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)})},j1:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)}})},j2:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'49\',\'6g\',G)}})},j9:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)})},ja:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)})}});k.fx.5m=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;D 73=I;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1u=1u;z.H=H;z.2i=k.1a.2o(e);z.V={};z.V.Y=z.el.B(\'Y\');z.V.19=z.el.B(\'19\');if(z.V.19==\'1o\'){5Y=z.el.B(\'3n\');z.el.1Y();73=1b}z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(73){z.el.2G();z.el.B(\'3n\',5Y)}z.V.Z=z.2i.w+\'U\';z.V.W=z.2i.h+\'U\';z.V.2U=z.el.B(\'2U\');z.2i.Q=T(z.V.Q)||0;z.2i.O=T(z.V.O)||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\').B(\'W\',1u==\'6Z\'&&2S==\'49\'?1:z.2i.h+\'U\').B(\'Z\',1u==\'6Z\'&&2S==\'4j\'?1:z.2i.w+\'U\');z.21=u(){z.el.B(z.V);if(z.1u==\'6g\')z.el.2G();P z.el.1Y();k.2H(z.el.K(0),\'1n\')};3m(2S){1e\'49\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'W\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'6g\'){z.eh.1L(z.2i.h,0);z.et.1L(z.2i.Q,z.2i.Q+z.2i.h/2)}P{z.eh.1L(0,z.2i.h);z.et.1L(z.2i.Q+z.2i.h/2,z.2i.Q)}1r;1e\'4j\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Z\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'6g\'){z.eh.1L(z.2i.w,0);z.et.1L(z.2i.O,z.2i.O+z.2i.w/2)}P{z.eh.1L(0,z.2i.w);z.et.1L(z.2i.O+z.2i.w/2,z.2i.O)}1r}};k.fn.bg=u(H,3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D fx=12 k.fx.bg(q,H,3V,J);fx.bf()})};k.fx.bg=u(el,H,3V,J){D z=q;z.3V=3V;z.5y=1;z.el=el;z.H=H;z.J=J;k(z.el).1Y();z.bf=u(){z.5y++;z.e=12 k.fx(z.el,k.H(z.H,u(){z.ef=12 k.fx(z.el,k.H(z.H,u(){if(z.5y<=z.3V)z.bf();P{k.2H(z.el,\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el)}}}),\'1G\');z.ef.1L(0,1)}),\'1G\');z.e.1L(1,0)}};k.fn.23({jb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,1,2a,1b,J,\'fa\',G)})},jc:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,2a,1,1b,J,\'b4\',G)})},j8:u(H,J,G){E q.1w(\'1n\',u(){D G=G||\'fl\';12 k.fx.6G(q,H,2a,f8,1b,J,\'6h\',G)})},6G:u(H,57,30,6H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,57,30,6H,J,\'6G\',G)})}});k.fx.6G=u(e,H,57,30,6H,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.57=T(57)||2a;z.30=T(30)||2a;z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1m=k.H(H).1m;z.6H=6H||S;z.2i=k.1a.2o(e);z.V={Z:z.el.B(\'Z\'),W:z.el.B(\'W\'),4A:z.el.B(\'4A\')||\'2a%\',Y:z.el.B(\'Y\'),19:z.el.B(\'19\'),Q:z.el.B(\'Q\'),O:z.el.B(\'O\'),2U:z.el.B(\'2U\'),4S:z.el.B(\'4S\'),5O:z.el.B(\'5O\'),5Q:z.el.B(\'5Q\'),5b:z.el.B(\'5b\'),5M:z.el.B(\'5M\'),5U:z.el.B(\'5U\'),5n:z.el.B(\'5n\'),4X:z.el.B(\'4X\')};z.Z=T(z.V.Z)||e.4c||0;z.W=T(z.V.W)||e.5W||0;z.Q=T(z.V.Q)||0;z.O=T(z.V.O)||0;1q=[\'em\',\'U\',\'j7\',\'%\'];24(i in 1q){if(z.V.4A.3J(1q[i])>0){z.fg=1q[i];z.4A=2m(z.V.4A)}if(z.V.4S.3J(1q[i])>0){z.fc=1q[i];z.bw=2m(z.V.4S)||0}if(z.V.5O.3J(1q[i])>0){z.fe=1q[i];z.bc=2m(z.V.5O)||0}if(z.V.5Q.3J(1q[i])>0){z.fL=1q[i];z.bA=2m(z.V.5Q)||0}if(z.V.5b.3J(1q[i])>0){z.g8=1q[i];z.bt=2m(z.V.5b)||0}if(z.V.5M.3J(1q[i])>0){z.g4=1q[i];z.bx=2m(z.V.5M)||0}if(z.V.5U.3J(1q[i])>0){z.g9=1q[i];z.bv=2m(z.V.5U)||0}if(z.V.5n.3J(1q[i])>0){z.gc=1q[i];z.bj=2m(z.V.5n)||0}if(z.V.4X.3J(1q[i])>0){z.fK=1q[i];z.b7=2m(z.V.4X)||0}}if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\');z.1u=1u;3m(z.1u){1e\'fa\':z.4b=z.Q+z.2i.h/2;z.5a=z.Q;z.4k=z.O+z.2i.w/2;z.59=z.O;1r;1e\'b4\':z.5a=z.Q+z.2i.h/2;z.4b=z.Q;z.59=z.O+z.2i.w/2;z.4k=z.O;1r;1e\'6h\':z.5a=z.Q-z.2i.h/4;z.4b=z.Q;z.59=z.O-z.2i.w/4;z.4k=z.O;1r}z.be=I;z.t=(12 7g).7z();z.4w=u(){5T(z.2I);z.2I=S};z.2D=u(){if(z.be==I){z.el.1Y();z.be=1b}D t=(12 7g).7z();D n=t-z.t;D p=n/z.1m;if(t>=z.1m+z.t){9T(u(){o=1;if(z.1u){t=z.5a;l=z.59;if(z.1u==\'6h\')o=0}z.bs(z.30,l,t,1b,o)},13);z.4w()}P{o=1;if(!k.G||!k.G[z.G]){s=((-18.5H(p*18.2Q)/2)+0.5)*(z.30-z.57)+z.57}P{s=k.G[z.G](p,n,z.57,(z.30-z.57),z.1m)}if(z.1u){if(!k.G||!k.G[z.G]){t=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b;l=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k;if(z.1u==\'6h\')o=((-18.5H(p*18.2Q)/2)+0.5)*(-0.9Y)+0.9Y}P{t=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.1m);l=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.1m);if(z.1u==\'6h\')o=k.G[z.G](p,n,0.9Y,-0.9Y,z.1m)}}z.bs(s,l,t,I,o)}};z.2I=6V(u(){z.2D()},13);z.bs=u(4q,O,Q,fM,1G){z.el.B(\'W\',z.W*4q/2a+\'U\').B(\'Z\',z.Z*4q/2a+\'U\').B(\'O\',O+\'U\').B(\'Q\',Q+\'U\').B(\'4A\',z.4A*4q/2a+z.fg);if(z.bw)z.el.B(\'4S\',z.bw*4q/2a+z.fc);if(z.bc)z.el.B(\'5O\',z.bc*4q/2a+z.fe);if(z.bA)z.el.B(\'5Q\',z.bA*4q/2a+z.fL);if(z.bt)z.el.B(\'5b\',z.bt*4q/2a+z.g8);if(z.bx)z.el.B(\'5M\',z.bx*4q/2a+z.g4);if(z.bv)z.el.B(\'5U\',z.bv*4q/2a+z.g9);if(z.bj)z.el.B(\'5n\',z.bj*4q/2a+z.gc);if(z.b7)z.el.B(\'4X\',z.b7*4q/2a+z.fK);if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+1G*2a+")";z.el.K(0).14.1G=1G}if(fM){if(z.6H){z.el.B(z.V)}if(z.1u==\'b4\'||z.1u==\'6h\'){z.el.B(\'19\',\'1o\');if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+2a+")";z.el.K(0).14.1G=1}}P z.el.B(\'19\',\'2B\');if(z.J)z.J.1D(z.el.K(0));k.2H(z.el.K(0),\'1n\')}}};k.fn.23({9U:u(H,1O,G){o=k.H(H);E q.1w(\'1n\',u(){12 k.fx.9U(q,o,1O,G)})},j6:u(H,1O,G){E q.1E(u(){k(\'a[@3h*="#"]\',q).5h(u(e){fW=q.3h.7C(\'#\');k(\'#\'+fW[1]).9U(H,1O,G);E I})})}});k.fx.9U=u(e,o,1O,G){D z=q;z.o=o;z.e=e;z.1O=/fT|gd/.48(1O)?1O:I;z.G=G;p=k.1a.3w(e);s=k.1a.6z();z.4w=u(){5T(z.2I);z.2I=S;k.2H(z.e,\'1n\')};z.t=(12 7g).7z();s.h=s.h>s.ih?(s.h-s.ih):s.h;s.w=s.w>s.iw?(s.w-s.iw):s.w;z.5a=p.y>s.h?s.h:p.y;z.59=p.x>s.w?s.w:p.x;z.4b=s.t;z.4k=s.l;z.2D=u(){D t=(12 7g).7z();D n=t-z.t;D p=n/z.o.1m;if(t>=z.o.1m+z.t){z.4w();9T(u(){z.d3(z.5a,z.59)},13)}P{if(!z.1O||z.1O==\'fT\'){if(!k.G||!k.G[z.G]){9V=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b}P{9V=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.o.1m)}}P{9V=z.4b}if(!z.1O||z.1O==\'gd\'){if(!k.G||!k.G[z.G]){9W=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k}P{9W=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.o.1m)}}P{9W=z.4k}z.d3(9V,9W)}};z.d3=u(t,l){1X.j4(l,t)};z.2I=6V(u(){z.2D()},13)};k.fn.cY=u(3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.cY(q,3V,J);e.cG()})};k.fx.cY=u(e,3V,J){D z=q;z.el=k(e);z.el.1Y();z.3V=T(3V)||3;z.J=J;z.5y=1;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.cG=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(e,{1m:60,21:u(){if(z.5y<=z.3V)z.cG();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'O\');z.e.1L(z.V.O-20,z.V.O)}},\'O\');z.e.1L(z.V.O+20,z.V.O-20)}},\'O\');z.e.1L(z.V.O,z.V.O+20)}};k.fn.23({fo:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'in\',G)})},fq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'4l\',G)})},iY:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'3R\',G)})},iX:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'in\',G)})},jr:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'4l\',G)})},jq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'3R\',G)})},jp:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'in\',G)})},jn:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'4l\',G)})},jm:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'3R\',G)})},iP:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'in\',G)})},ic:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'4l\',G)})},ib:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'3R\',G)})}});k.fx.1z=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}if(!e.4s)e.4s=z.el.B(\'19\');z.el.1Y();z.H=H;z.fx=k.fx.9P(e);z.1u=1u;z.2S=2S;z.21=u(){if(z.1u==\'4l\')z.el.B(\'3n\',\'2K\');k.fx.a0(z.fx.3p.K(0),z.fx.V);if(z.1u==\'in\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.B(\'19\',\'1o\');z.el.B(\'3n\',\'dd\')}if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'W\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.hb,0);z.7v.1L(0,z.fx.V.1q.hb)}P{z.ef.1L(0,-z.fx.V.1q.hb);z.7v.1L(z.fx.V.1q.hb,0)}1r;1e\'4r\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.hb,0)}P{z.ef.1L(0,z.fx.V.1q.hb)}1r;1e\'O\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'Z\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.1C,0);z.7v.1L(0,z.fx.V.1q.1C)}P{z.ef.1L(0,-z.fx.V.1q.1C);z.7v.1L(z.fx.V.1q.1C,0)}1r;1e\'2L\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.1C,0)}P{z.ef.1L(0,z.fx.V.1q.1C)}1r}};k.3f=S;k.fn.ig=u(o){E q.1w(\'1n\',u(){12 k.fx.dG(q,o)})};k.fx.dG=u(e,o){if(k.3f==S){k(\'2e\',1h).1S(\'<22 id="3f"></22>\');k.3f=k(\'#3f\')}k.3f.B(\'19\',\'2B\').B(\'Y\',\'1P\');D z=q;z.el=k(e);if(!o||!o.30){E}if(o.30.1K==b0&&1h.9e(o.30)){o.30=1h.9e(o.30)}P if(!o.30.dq){E}if(!o.1m){o.1m=g5}z.1m=o.1m;z.30=o.30;z.8r=o.3l;z.21=o.21;if(z.8r){k.3f.2R(z.8r)}z.a3=0;z.a2=0;if(k.dF){z.a3=(T(k.3f.B(\'5b\'))||0)+(T(k.3f.B(\'5O\'))||0)+(T(k.3f.B(\'4X\'))||0)+(T(k.3f.B(\'5U\'))||0);z.a2=(T(k.3f.B(\'4S\'))||0)+(T(k.3f.B(\'5Q\'))||0)+(T(k.3f.B(\'5M\'))||0)+(T(k.3f.B(\'5n\'))||0)}z.26=k.23(k.1a.3w(z.el.K(0)),k.1a.2o(z.el.K(0)));z.2T=k.23(k.1a.3w(z.30),k.1a.2o(z.30));z.26.1C-=z.a3;z.26.hb-=z.a2;z.2T.1C-=z.a3;z.2T.hb-=z.a2;z.J=o.21;k.3f.B(\'Z\',z.26.1C+\'U\').B(\'W\',z.26.hb+\'U\').B(\'Q\',z.26.y+\'U\').B(\'O\',z.26.x+\'U\').5w({Q:z.2T.y,O:z.2T.x,Z:z.2T.1C,W:z.2T.hb},z.1m,u(){if(z.8r)k.3f.4i(z.8r);k.3f.B(\'19\',\'1o\');if(z.21&&z.21.1K==2A){z.21.1D(z.el.K(0),[z.30])}k.2H(z.el.K(0),\'1n\')})};k.1v={M:{2E:10,ec:\'1Q/iJ.eZ\',e3:\'<1T 2J="1Q/6g.da" />\',eW:0.8,d8:\'iN a6\',dc:\'57\',3W:8J},jQ:I,jW:I,6j:S,8m:I,8k:I,d1:u(2k){if(!k.1v.8k||k.1v.8m)E;D 3K=2k.7L||2k.7K||-1;3m(3K){1e 35:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jJ\').K(0));1r;1e 36:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jL\').K(0));1r;1e 37:1e 8:1e 33:1e 80:1e kb:D 9p=k(\'#87\');if(9p.K(0).53!=S){9p.K(0).53.1D(9p.K(0))}1r;1e 38:1r;1e 39:1e 34:1e 32:1e gl:1e 78:D 9k=k(\'#88\');if(9k.K(0).53!=S){9k.K(0).53.1D(9k.K(0))}1r;1e 40:1r;1e 27:k.1v.au();1r}},7q:u(M){if(M)k.23(k.1v.M,M);if(1X.2k){k(\'2e\',1h).1J(\'6y\',k.1v.d1)}P{k(1h).1J(\'6y\',k.1v.d1)}k(\'a\').1E(u(){el=k(q);en=el.1p(\'4I\')||\'\';e9=el.1p(\'3h\')||\'\';ev=/\\.da|\\.gw|\\.8X|\\.eZ|\\.gn/g;if(e9.6c().d5(ev)!=S&&en.6c().3J(\'eU\')==0){el.1J(\'5h\',k.1v.26)}});if(k.3a.4t){3A=1h.3F(\'3A\');k(3A).1p({id:\'cN\',2J:\'ek:I;\',ej:\'cD\',ep:\'cD\'}).B({19:\'1o\',Y:\'1P\',Q:\'0\',O:\'0\',5E:\'9n:9w.9y.cC(1G=0)\'});k(\'2e\').1S(3A)}8n=1h.3F(\'22\');k(8n).1p(\'id\',\'cP\').B({Y:\'1P\',19:\'1o\',Q:\'0\',O:\'0\',1G:0}).1S(1h.8M(\' \')).1J(\'5h\',k.1v.au);6A=1h.3F(\'22\');k(6A).1p(\'id\',\'eK\').B({4X:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cE=1h.3F(\'22\');k(cE).1p(\'id\',\'dg\').B({4X:k.1v.M.2E+\'U\',5n:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cF=1h.3F(\'a\');k(cF).1p({id:\'gg\',3h:\'#\'}).B({Y:\'1P\',2L:k.1v.M.2E+\'U\',Q:\'0\'}).1S(k.1v.M.e3).1J(\'5h\',k.1v.au);7m=1h.3F(\'22\');k(7m).1p(\'id\',\'cM\').B({Y:\'2s\',cA:\'O\',6w:\'0 9F\',3I:1}).1S(6A).1S(cE).1S(cF);2b=1h.3F(\'1T\');2b.2J=k.1v.M.ec;k(2b).1p(\'id\',\'eM\').B({Y:\'1P\'});4G=1h.3F(\'a\');k(4G).1p({id:\'87\',3h:\'#\'}).B({Y:\'1P\',19:\'1o\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));4M=1h.3F(\'a\');k(4M).1p({id:\'88\',3h:\'#\'}).B({Y:\'1P\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));1Z=1h.3F(\'22\');k(1Z).1p(\'id\',\'eE\').B({19:\'1o\',Y:\'2s\',2U:\'2K\',cA:\'O\',6w:\'0 9F\',Q:\'0\',O:\'0\',3I:2}).1S([2b,4G,4M]);6F=1h.3F(\'22\');k(6F).1p(\'id\',\'ao\').B({19:\'1o\',Y:\'1P\',2U:\'2K\',Q:\'0\',O:\'0\',cA:\'cv\',7i:\'cu\',hC:\'0\'}).1S([1Z,7m]);k(\'2e\').1S(8n).1S(6F)},26:u(e,C){el=C?k(C):k(q);9t=el.1p(\'4I\');D 6B,4u,4G,4M;if(9t!=\'eU\'){k.1v.6j=9t;8Y=k(\'a[@4I=\'+9t+\']\');6B=8Y.1N();4u=8Y.cZ(C?C:q);4G=8Y.K(4u-1);4M=8Y.K(4u+1)}89=el.1p(\'3h\');6A=el.1p(\'4g\');3O=k.1a.6z();8n=k(\'#cP\');if(!k.1v.8k){k.1v.8k=1b;if(k.3a.4t){k(\'#cN\').B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y()}8n.B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y().fX(cO,k.1v.M.eW,u(){k.1v.cw(89,6A,3O,6B,4u,4G,4M)});k(\'#ao\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\')}P{k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.cw(89,6A,3O,6B,4u,4G,4M)}E I},cw:u(89,gP,3O,6B,4u,4G,4M){k(\'#cW\').bk();aX=k(\'#87\');aX.2G();aO=k(\'#88\');aO.2G();2b=k(\'#eM\');1Z=k(\'#eE\');6F=k(\'#ao\');7m=k(\'#cM\').B(\'3n\',\'2K\');k(\'#eK\').3x(6A);k.1v.8m=1b;if(6B)k(\'#dg\').3x(k.1v.M.d8+\' \'+(4u+1)+\' \'+k.1v.M.dc+\' \'+6B);if(4G){aX.K(0).53=u(){q.5B();k.1v.26(S,4G);E I}}if(4M){aO.K(0).53=u(){q.5B();k.1v.26(S,4M);E I}}2b.1Y();82=k.1a.2o(1Z.K(0));56=18.3r(82.1C,2b.K(0).Z+k.1v.M.2E*2);6f=18.3r(82.hb,2b.K(0).W+k.1v.M.2E*2);2b.B({O:(56-2b.K(0).Z)/2+\'U\',Q:(6f-2b.K(0).W)/2+\'U\'});1Z.B({Z:56+\'U\',W:6f+\'U\'}).1Y();dw=k.1a.bm();6F.B(\'Q\',3O.t+(dw.h/15)+\'U\');if(6F.B(\'19\')==\'1o\'){6F.1Y().7f(k.1v.M.3W)}6k=12 9s;k(6k).1p(\'id\',\'cW\').1J(\'hJ\',u(){56=6k.Z+k.1v.M.2E*2;6f=6k.W+k.1v.M.2E*2;2b.2G();1Z.5w({W:6f},82.hb!=6f?k.1v.M.3W:1,u(){1Z.5w({Z:56},82.1C!=56?k.1v.M.3W:1,u(){1Z.bG(6k);k(6k).B({Y:\'1P\',O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\'}).7f(k.1v.M.3W,u(){db=k.1a.2o(7m.K(0));if(4G){aX.B({O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}if(4M){aO.B({O:56/2+k.1v.M.2E*2+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}7m.B({Z:56+\'U\',Q:-db.hb+\'U\',3n:\'dd\'}).5w({Q:-1},k.1v.M.3W,u(){k.1v.8m=I})})})})});6k.2J=89},au:u(){k(\'#cW\').bk();k(\'#ao\').2G();k(\'#cM\').B(\'3n\',\'2K\');k(\'#cP\').fX(cO,0,u(){k(q).2G();if(k.3a.4t){k(\'#cN\').2G()}});k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.6j=S;k.1v.8k=I;k.1v.8m=I;E I}};k.R={1A:S,41:S,F:S,1s:S,1q:S,Y:S,9a:u(e){k.R.F=(q.d0)?q.d0:q;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(k.R.F).B(\'Z\'))||0,W:T(k(k.R.F).B(\'W\'))||0};k.R.Y={Q:T(k(k.R.F).B(\'Q\'))||0,O:T(k(k.R.F).B(\'O\'))||0};k(1h).1J(\'3D\',k.R.cR).1J(\'5P\',k.R.cK);if(2g k.R.F.1k.g2===\'u\'){k.R.F.1k.g2.1D(k.R.F)}E I},cK:u(e){k(1h).3q(\'3D\',k.R.cR).3q(\'5P\',k.R.cK);if(2g k.R.F.1k.fN===\'u\'){k.R.F.1k.fN.1D(k.R.F)}k.R.F=S},cR:u(e){if(!k.R.F){E}1s=k.1a.4a(e);7p=k.R.Y.Q-k.R.1s.y+1s.y;7r=k.R.Y.O-k.R.1s.x+1s.x;7p=18.3r(18.3L(7p,k.R.F.1k.8g-k.R.1q.W),k.R.F.1k.7h);7r=18.3r(18.3L(7r,k.R.F.1k.8h-k.R.1q.Z),k.R.F.1k.70);if(2g k.R.F.1k.4m===\'u\'){D 8a=k.R.F.1k.4m.1D(k.R.F,[7r,7p]);if(2g 8a==\'hh\'&&8a.1g==2){7r=8a[0];7p=8a[1]}}k.R.F.14.Q=7p+\'U\';k.R.F.14.O=7r+\'U\';E I},26:u(e){k(1h).1J(\'3D\',k.R.8j).1J(\'5P\',k.R.8o);k.R.1A=q.1A;k.R.41=q.41;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(q.1A).B(\'Z\'))||0,W:T(k(q.1A).B(\'W\'))||0};k.R.Y={Q:T(k(q.1A).B(\'Q\'))||0,O:T(k(q.1A).B(\'O\'))||0};if(k.R.1A.1k.4o){k.R.1A.1k.4o.1D(k.R.1A,[q])}E I},8o:u(){k(1h).3q(\'3D\',k.R.8j).3q(\'5P\',k.R.8o);if(k.R.1A.1k.3T){k.R.1A.1k.3T.1D(k.R.1A,[k.R.41])}k.R.1A=S;k.R.41=S},6i:u(dx,az){E 18.3L(18.3r(k.R.1q.Z+dx*az,k.R.1A.1k.av),k.R.1A.1k.6x)},6m:u(dy,az){E 18.3L(18.3r(k.R.1q.W+dy*az,k.R.1A.1k.8c),k.R.1A.1k.8b)},fb:u(W){E 18.3L(18.3r(W,k.R.1A.1k.8c),k.R.1A.1k.8b)},8j:u(e){if(k.R.1A==S){E}1s=k.1a.4a(e);dx=1s.x-k.R.1s.x;dy=1s.y-k.R.1s.y;1I={Z:k.R.1q.Z,W:k.R.1q.W};2z={Q:k.R.Y.Q,O:k.R.Y.O};3m(k.R.41){1e\'e\':1I.Z=k.R.6i(dx,1);1r;1e\'fj\':1I.Z=k.R.6i(dx,1);1I.W=k.R.6m(dy,1);1r;1e\'w\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'5F\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1I.W=k.R.6m(dy,1);1r;1e\'76\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'n\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1r;1e\'at\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,1);1r;1e\'s\':1I.W=k.R.6m(dy,1);1r}if(k.R.1A.1k.4v){if(k.R.41==\'n\'||k.R.41==\'s\')4p=1I.W*k.R.1A.1k.4v;P 4p=1I.Z;4W=k.R.fb(4p*k.R.1A.1k.4v);4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.W=4W;1I.Z=4p}if(2z.Q<k.R.1A.1k.7h){4W=1I.W+2z.Q-k.R.1A.1k.7h;2z.Q=k.R.1A.1k.7h;if(k.R.1A.1k.4v){4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.Z=4p}1I.W=4W}if(2z.O<k.R.1A.1k.70){4p=1I.Z+2z.O-k.R.1A.1k.70;2z.O=k.R.1A.1k.70;if(k.R.1A.1k.4v){4W=4p*k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}1I.W=4W}1I.Z=4p}if(2z.Q+1I.W>k.R.1A.1k.8g){1I.W=k.R.1A.1k.8g-2z.Q;if(k.R.1A.1k.4v){1I.Z=1I.W/k.R.1A.1k.4v}}if(2z.O+1I.Z>k.R.1A.1k.8h){1I.Z=k.R.1A.1k.8h-2z.O;if(k.R.1A.1k.4v){1I.W=1I.Z*k.R.1A.1k.4v}}D 6p=I;if(k.R.1A.1k.f7){6p=k.R.1A.1k.f7.1D(k.R.1A,[1I,2z]);if(6p){if(6p.1q){k.23(1I,6p.1q)}if(6p.Y){k.23(2z,6p.Y)}}}8d=k.R.1A.14;8d.O=2z.O+\'U\';8d.Q=2z.Q+\'U\';8d.Z=1I.Z+\'U\';8d.W=1I.W+\'U\';E I},2r:u(M){if(!M||!M.3Z||M.3Z.1K!=7M){E}E q.1E(u(){D el=q;el.1k=M;el.1k.av=M.av||10;el.1k.8c=M.8c||10;el.1k.6x=M.6x||6P;el.1k.8b=M.8b||6P;el.1k.7h=M.7h||-aC;el.1k.70=M.70||-aC;el.1k.8h=M.8h||6P;el.1k.8g=M.8g||6P;d6=k(el).B(\'Y\');if(!(d6==\'2s\'||d6==\'1P\')){el.14.Y=\'2s\'}fS=/n|at|e|fj|s|5F|w|76/g;24(i in el.1k.3Z){if(i.6c().d5(fS)!=S){if(el.1k.3Z[i].1K==b0){3v=k(el.1k.3Z[i]);if(3v.1N()>0){el.1k.3Z[i]=3v.K(0)}}if(el.1k.3Z[i].4Y){el.1k.3Z[i].1A=el;el.1k.3Z[i].41=i;k(el.1k.3Z[i]).1J(\'5v\',k.R.26)}}}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){aV=k(el.1k.5S);if(aV.1N()>0){aV.1E(u(){q.d0=el});aV.1J(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).1J(\'5v\',k.R.9a)}}})},4U:u(){E q.1E(u(){D el=q;24(i in el.1k.3Z){el.1k.3Z[i].1A=S;el.1k.3Z[i].41=S;k(el.1k.3Z[i]).3q(\'5v\',k.R.26)}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){3v=k(el.1k.5S);if(3v.1N()>0){3v.3q(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).3q(\'5v\',k.R.9a)}}el.1k=S})}};k.fn.23({hz:k.R.2r,hs:k.R.4U});k.2C=S;k.7n=I;k.3k=S;k.7o=[];k.9v=u(e){D 3K=e.7L||e.7K||-1;if(3K==17||3K==16){k.7n=1b}};k.9u=u(e){k.7n=I};k.dL=u(e){q.f.1s=k.1a.4a(e);q.f.1M=k.23(k.1a.3w(q),k.1a.2o(q));q.f.3e=k.1a.6z(q);q.f.1s.x-=q.f.1M.x;q.f.1s.y-=q.f.1M.y;k(q).1S(k.2C.K(0));if(q.f.hc)k.2C.2R(q.f.hc).B(\'19\',\'2B\');k.2C.B({19:\'2B\',Z:\'2P\',W:\'2P\'});if(q.f.o){k.2C.B(\'1G\',q.f.o)}k.3k=q;k.96=I;k.7o=[];q.f.el.1E(u(){q.1M={x:q.8t+(q.4Z&&!k.3a.7I?T(q.4Z.5b)||0:0)+(k.3k.3c||0),y:q.8G+(q.4Z&&!k.3a.7I?T(q.4Z.4S)||0:0)+(k.3k.3d||0),1C:q.4c,hb:q.5W};if(q.s==1b){if(k.7n==I){q.s=I;k(q).4i(k.3k.f.7j)}P{k.96=1b;k.7o[k.7o.1g]=k.1p(q,\'id\')}}});k.am.1D(q,[e]);k(1h).1J(\'3D\',k.am).1J(\'5P\',k.cX);E I};k.am=u(e){if(!k.3k)E;k.fd.1D(k.3k,[e])};k.fd=u(e){if(!k.3k)E;D 1s=k.1a.4a(e);D 3e=k.1a.6z(k.3k);1s.x+=3e.l-q.f.3e.l-q.f.1M.x;1s.y+=3e.t-q.f.3e.t-q.f.1M.y;D 93=18.3L(1s.x,q.f.1s.x);D 5F=18.3L(18.3S(1s.x-q.f.1s.x),18.3S(q.f.3e.w-93));D 99=18.3L(1s.y,q.f.1s.y);D 9g=18.3L(18.3S(1s.y-q.f.1s.y),18.3S(q.f.3e.h-99));if(q.3d>0&&1s.y-20<q.3d){D 3X=18.3L(3e.t,10);99-=3X;9g+=3X;q.3d-=3X}P if(q.3d+q.f.1M.h<q.f.3e.h&&1s.y+20>q.3d+q.f.1M.h){D 3X=18.3L(q.f.3e.h-q.3d,10);q.3d+=3X;if(q.3d!=3e.t)9g+=3X}if(q.3c>0&&1s.x-20<q.3c){D 3X=18.3L(3e.l,10);93-=3X;5F+=3X;q.3c-=3X}P if(q.3c+q.f.1M.w<q.f.3e.w&&1s.x+20>q.3c+q.f.1M.w){D 3X=18.3L(q.f.3e.w-q.3c,10);q.3c+=3X;if(q.3c!=3e.l)5F+=3X}k.2C.B({O:93+\'U\',Q:99+\'U\',Z:5F+\'U\',W:9g+\'U\'});k.2C.l=93+q.f.3e.l;k.2C.t=99+q.f.3e.t;k.2C.r=k.2C.l+5F;k.2C.b=k.2C.t+9g;k.96=I;q.f.el.1E(u(){aw=k.7o.3J(k.1p(q,\'id\'));if(!(q.1M.x>k.2C.r||(q.1M.x+q.1M.1C)<k.2C.l||q.1M.y>k.2C.b||(q.1M.y+q.1M.hb)<k.2C.t)){k.96=1b;if(q.s!=1b){q.s=1b;k(q).2R(k.3k.f.7j)}if(aw!=-1){q.s=I;k(q).4i(k.3k.f.7j)}}P if((q.s==1b)&&(aw==-1)){q.s=I;k(q).4i(k.3k.f.7j)}P if((!q.s)&&(k.7n==1b)&&(aw!=-1)){q.s=1b;k(q).2R(k.3k.f.7j)}});E I};k.cX=u(e){if(!k.3k)E;k.g0.1D(k.3k,[e])};k.g0=u(e){k(1h).3q(\'3D\',k.am).3q(\'5P\',k.cX);if(!k.3k)E;k.2C.B(\'19\',\'1o\');if(q.f.hc)k.2C.4i(q.f.hc);k.3k=I;k(\'2e\').1S(k.2C.K(0));if(k.96==1b){if(q.f.98)q.f.98(k.cJ(k.1p(q,\'id\')))}P{if(q.f.9d)q.f.9d(k.cJ(k.1p(q,\'id\')))}k.7o=[]};k.cJ=u(s){D h=\'\';D o=[];if(a=k(\'#\'+s)){a.K(0).f.el.1E(u(){if(q.s==1b){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[o.1g]=k.1p(q,\'id\')}})}E{7l:h,o:o}};k.fn.gZ=u(o){if(!k.2C){k(\'2e\',1h).1S(\'<22 id="2C"></22>\').1J(\'7B\',k.9v).1J(\'6y\',k.9u);k.2C=k(\'#2C\');k.2C.B({Y:\'1P\',19:\'1o\'});if(1X.2k){k(\'2e\',1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}P{k(1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}}if(!o){o={}}E q.1E(u(){if(q.eP)E;q.eP=1b;q.f={a:o.3C,o:o.1G?2m(o.1G):I,7j:o.eS?o.eS:I,hc:o.58?o.58:I,98:o.98?o.98:I,9d:o.9d?o.9d:I};q.f.el=k(\'.\'+o.3C);k(q).1J(\'5v\',k.dL).B(\'Y\',\'2s\')})};k.3b={bM:1,eH:u(3t){D 3t=3t;E q.1E(u(){q.4z.6s.1E(u(ab){k.3b.5c(q,3t[ab])})})},K:u(){D 3t=[];q.1E(u(cL){if(q.bI){3t[cL]=[];D C=q;D 1q=k.1a.2o(q);q.4z.6s.1E(u(ab){D x=q.8t;D y=q.8G;92=T(x*2a/(1q.w-q.4c));91=T(y*2a/(1q.h-q.5W));3t[cL][ab]=[92||0,91||0,x||0,y||0]})}});E 3t},ct:u(C){C.A.fu=C.A.28.w-C.A.1B.1C;C.A.fw=C.A.28.h-C.A.1B.hb;if(C.9r.4z.bC){9Z=C.9r.4z.6s.K(C.bF+1);if(9Z){C.A.28.w=(T(k(9Z).B(\'O\'))||0)+C.A.1B.1C;C.A.28.h=(T(k(9Z).B(\'Q\'))||0)+C.A.1B.hb}9Q=C.9r.4z.6s.K(C.bF-1);if(9Q){D cU=T(k(9Q).B(\'O\'))||0;D cH=T(k(9Q).B(\'O\'))||0;C.A.28.x+=cU;C.A.28.y+=cH;C.A.28.w-=cU;C.A.28.h-=cH}}C.A.g7=C.A.28.w-C.A.1B.1C;C.A.eC=C.A.28.h-C.A.1B.hb;if(C.A.2O){C.A.gx=((C.A.28.w-C.A.1B.1C)/C.A.2O)||1;C.A.gy=((C.A.28.h-C.A.1B.hb)/C.A.2O)||1;C.A.fU=C.A.g7/C.A.2O;C.A.fH=C.A.eC/C.A.2O}C.A.28.dx=C.A.28.x-C.A.2c.x;C.A.28.dy=C.A.28.y-C.A.2c.y;k.11.1c.B(\'9b\',\'ad\')},3H:u(C,x,y){if(C.A.2O){fE=T(x/C.A.fU);92=fE*2a/C.A.2O;ft=T(y/C.A.fH);91=ft*2a/C.A.2O}P{92=T(x*2a/C.A.fu);91=T(y*2a/C.A.fw)}C.A.b3=[92||0,91||0,x||0,y||0];if(C.A.3H)C.A.3H.1D(C,C.A.b3)},eI:u(2k){3K=2k.7L||2k.7K||-1;3m(3K){1e 35:k.3b.5c(q.3U,[ae,ae]);1r;1e 36:k.3b.5c(q.3U,[-ae,-ae]);1r;1e 37:k.3b.5c(q.3U,[-q.3U.A.gx||-1,0]);1r;1e 38:k.3b.5c(q.3U,[0,-q.3U.A.gy||-1]);1r;1e 39:k.3b.5c(q.3U,[q.3U.A.gx||1,0]);1r;1e 40:k.11.5c(q.3U,[0,q.3U.A.gy||1]);1r}},5c:u(C,Y){if(!C.A){E}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.4n=k.B(C,\'Y\');if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){C.14.Y=\'2s\'}k.11.c5(C);k.3b.ct(C);dx=T(Y[0])||0;dy=T(Y[1])||0;2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.2O){3y=k.11.c7.1D(C,[2v,2q,dx,dy]);if(3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy}3y=k.11.ce.1D(C,[2v,2q,dx,dy]);if(3y&&3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.5i&&(C.A.3H||C.A.2Z)){k.3b.3H(C,2v,2q)}2v=!C.A.1O||C.A.1O==\'4j\'?2v:C.A.2c.x||0;2q=!C.A.1O||C.A.1O==\'49\'?2q:C.A.2c.y||0;C.14.O=2v+\'U\';C.14.Q=2q+\'U\'},2r:u(o){E q.1E(u(){if(q.bI==1b||!o.3C||!k.1a||!k.11||!k.1x){E}5x=k(o.3C,q);if(5x.1N()==0){E}D 4N={2p:\'94\',5i:1b,3H:o.3H&&o.3H.1K==2A?o.3H:S,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:S,3v:q,1G:o.1G||I};if(o.2O&&T(o.2O)){4N.2O=T(o.2O)||1;4N.2O=4N.2O>0?4N.2O:1}if(5x.1N()==1)5x.7t(4N);P{k(5x.K(0)).7t(4N);4N.3v=S;5x.7t(4N)}5x.7B(k.3b.eI);5x.1p(\'bM\',k.3b.bM++);q.bI=1b;q.4z={};q.4z.er=4N.er;q.4z.2O=4N.2O;q.4z.6s=5x;q.4z.bC=o.bC?1b:I;bZ=q;bZ.4z.6s.1E(u(2N){q.bF=2N;q.9r=bZ});if(o.3t&&o.3t.1K==7F){24(i=o.3t.1g-1;i>=0;i--){if(o.3t[i].1K==7F&&o.3t[i].1g==2){el=q.4z.6s.K(i);if(el.4Y){k.3b.5c(el,o.3t[i])}}}}})}};k.fn.23({hN:k.3b.2r,hS:k.3b.eH,hG:k.3b.K});k.2u={5I:[],eg:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},dp:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u-1;1Q=k(\'1T\',X.L.5u);if(1z<1){1z=X.L.1Q.1g}X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},2I:u(c){X=1h.9e(c);if(X.L.6o){1z=X.L.3u;7d(1z==X.L.3u){1z=1+T(18.6o()*X.L.1Q.1g)}}P{1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},go:u(o){D X;if(o&&o.1K==7M){if(o.2b){X=1h.9e(o.2b.X);5N=1X.hn.3h.7C("#");o.2b.6S=S;if(5N.1g==2){1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}P{1z=1}}if(o.90){o.90.5B();X=o.90.31.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}5N=o.90.3h.7C("#");1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}if(X.L.1Q.1g<1z||1z<1){1z=1}X.L.3u=1z;52=k.1a.2o(X);dt=k.1a.aT(X);d9=k.1a.6U(X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}if(X.L.2b){y=T(dt.t)+T(d9.t);if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}if(!X.L.c1){X.L.df=o.2b?o.2b.W:(T(X.L.2b.B(\'W\'))||0);X.L.c1=o.2b?o.2b.Z:(T(X.L.2b.B(\'Z\'))||0)}X.L.2b.B(\'Q\',y+(52.h-X.L.df)/2+\'U\');X.L.2b.B(\'O\',(52.1C-X.L.c1)/2+\'U\');X.L.2b.B(\'19\',\'2B\')}1Q=k(\'1T\',X.L.5u);if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}P{aj=k(\'a\',X.L.1U.o).K(1z-1);k(aj).2R(X.L.1U.5R);D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=1z-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[1z-1].6L)}}}},95:u(){X=q.31.31;X.L.5u.B(\'19\',\'1o\');if(X.L.1U.5R){aj=k(\'a\',X.L.1U.o).4i(X.L.1U.5R).K(X.L.3u-1);k(aj).2R(X.L.1U.5R)}D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=X.L.3u-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[X.L.3u-1].6L)}},19:u(){X=1h.9e(q.X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}52=k.1a.2o(X);y=0;if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}hg=k(\'.ca\',X);y=y+(52.h-q.W)/2;x=(52.1C-q.Z)/2;X.L.5u.B(\'Q\',y+\'U\').B(\'O\',x+\'U\').3x(\'<1T 2J="\'+q.2J+\'" />\');X.L.5u.7f(X.L.3W);3s=X.L.3u+1;if(3s>X.L.1Q.1g){3s=1}3z=X.L.3u-1;if(3z<1){3z=X.L.1Q.1g}X.L.3s.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+2*q.Z/3+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3s-1].6L);X.L.3s.o.K(0).3h=\'#\'+3s+k.1p(X,\'id\');X.L.3z.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3z-1].6L);X.L.3z.o.K(0).3h=\'#\'+3z+k.1p(X,\'id\')},2r:u(o){if(!o||!o.1Z||k.2u.5I[o.1Z])E;D 1Z=k(\'#\'+o.1Z);D el=1Z.K(0);if(el.14.Y!=\'1P\'&&el.14.Y!=\'2s\'){el.14.Y=\'2s\'}el.14.2U=\'2K\';if(1Z.1N()==0)E;el.L={};el.L.1Q=o.1Q?o.1Q:[];el.L.6o=o.6o&&o.6o==1b||I;97=el.f3(\'hL\');24(i=0;i<97.1g;i++){7Z=el.L.1Q.1g;el.L.1Q[7Z]={2J:97[i].2J,6L:97[i].4g||97[i].hD||\'\'}}if(el.L.1Q.1g==0){E}el.L.4n=k.23(k.1a.3w(el),k.1a.2o(el));el.L.b5=k.1a.aT(el);el.L.bu=k.1a.6U(el);t=T(el.L.b5.t)+T(el.L.bu.t);b=T(el.L.b5.b)+T(el.L.bu.b);k(\'1T\',el).bk();el.L.3W=o.3W?o.3W:g5;if(o.5A||o.9f||o.5R){el.L.1U={};1Z.1S(\'<22 6T="g1"></22>\');el.L.1U.o=k(\'.g1\',el);if(o.9f){el.L.1U.9f=o.9f;el.L.1U.o.2R(o.9f)}if(o.5R){el.L.1U.5R=o.5R}el.L.1U.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.5A&&o.5A==\'Q\'){el.L.1U.5A=\'Q\';el.L.1U.o.B(\'Q\',t+\'U\')}P{el.L.1U.5A=\'4D\';el.L.1U.o.B(\'4D\',b+\'U\')}el.L.1U.aE=o.aE?o.aE:\' \';24(D i=0;i<el.L.1Q.1g;i++){7Z=T(i)+1;el.L.1U.o.1S(\'<a 3h="#\'+7Z+o.1Z+\'" 6T="gR" 4g="\'+el.L.1Q[i].6L+\'">\'+7Z+\'</a>\'+(7Z!=el.L.1Q.1g?el.L.1U.aE:\'\'))}k(\'a\',el.L.1U.o).1J(\'5h\',u(){k.2u.go({90:q})});el.L.1U.4C=k.1a.2o(el.L.1U.o.K(0))}if(o.6Q||o.9c){el.L.2x={};1Z.1S(\'<22 6T="dn">&7k;</22>\');el.L.2x.o=k(\'.dn\',el);if(o.9c){el.L.2x.9c=o.9c;el.L.2x.o.2R(o.9c)}el.L.2x.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.6Q&&o.6Q==\'Q\'){el.L.2x.6Q=\'Q\';el.L.2x.o.B(\'Q\',(el.L.1U&&el.L.1U.5A==\'Q\'?el.L.1U.4C.hb+t:t)+\'U\')}P{el.L.2x.6Q=\'4D\';el.L.2x.o.B(\'4D\',(el.L.1U&&el.L.1U.5A==\'4D\'?el.L.1U.4C.hb+b:b)+\'U\')}el.L.2x.4C=k.1a.2o(el.L.2x.o.K(0))}if(o.9D){el.L.3s={9D:o.9D};1Z.1S(\'<a 3h="#2\'+o.1Z+\'" 6T="eY">&7k;</a>\');el.L.3s.o=k(\'.eY\',el);el.L.3s.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3s.9D);el.L.3s.o.1J(\'5h\',k.2u.eg)}if(o.9o){el.L.3z={9o:o.9o};1Z.1S(\'<a 3h="#0\'+o.1Z+\'" 6T="ee">&7k;</a>\');el.L.3z.o=k(\'.ee\',el);el.L.3z.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3z.9o);el.L.3z.o.1J(\'5h\',k.2u.dp)}1Z.bG(\'<22 6T="ca"></22>\');el.L.5u=k(\'.ca\',el);el.L.5u.B(\'Y\',\'1P\').B(\'Q\',\'2P\').B(\'O\',\'2P\').B(\'19\',\'1o\');if(o.2b){1Z.bG(\'<22 6T="dW" 14="19: 1o;"><1T 2J="\'+o.2b+\'" /></22>\');el.L.2b=k(\'.dW\',el);el.L.2b.B(\'Y\',\'1P\');D 1T=12 9s();1T.X=o.1Z;1T.2J=o.2b;if(1T.21){1T.6S=S;k.2u.go({2b:1T})}P{1T.6S=u(){k.2u.go({2b:q})}}}P{k.2u.go({1Z:el})}if(o.cS){fi=T(o.cS)*aC}k.2u.5I[o.1Z]=o.cS?1X.6V(\'k.2u.2I(\\\'\'+o.1Z+\'\\\')\',fi):S}};k.X=k.2u.2r;k.1t={7s:[],5L:{},1c:I,7u:S,26:u(){if(k.11.F==S){E}D 4O,3G,c,cs;k.1t.1c.K(0).3l=k.11.F.A.6R;4O=k.1t.1c.K(0).14;4O.19=\'2B\';k.1t.1c.1B=k.23(k.1a.3w(k.1t.1c.K(0)),k.1a.2o(k.1t.1c.K(0)));4O.Z=k.11.F.A.1B.1C+\'U\';4O.W=k.11.F.A.1B.hb+\'U\';3G=k.1a.cy(k.11.F);4O.5K=3G.t;4O.5z=3G.r;4O.5k=3G.b;4O.5j=3G.l;if(k.11.F.A.46==1b){c=k.11.F.fI(1b);cs=c.14;cs.5K=\'2P\';cs.5z=\'2P\';cs.5k=\'2P\';cs.5j=\'2P\';cs.19=\'2B\';k.1t.1c.5o().1S(c)}k(k.11.F).f5(k.1t.1c.K(0));k.11.F.14.19=\'1o\'},fC:u(e){if(!e.A.44&&k.1x.5r.cQ){if(e.A.3T)e.A.3T.1D(F);k(e).B(\'Y\',e.A.cz||e.A.4n);k(e).aS();k(k.1x.5r).f6(e)}k.1t.1c.4i(e.A.6R).3x(\'&7k;\');k.1t.7u=S;D 4O=k.1t.1c.K(0).14;4O.19=\'1o\';k.1t.1c.f5(e);if(e.A.fx>0){k(e).7f(e.A.fx)}k(\'2e\').1S(k.1t.1c.K(0));D 86=[];D 8q=I;24(D i=0;i<k.1t.7s.1g;i++){D 1j=k.1x.3P[k.1t.7s[i]].K(0);D id=k.1p(1j,\'id\');D 8i=k.1t.8x(id);if(1j.1i.ay!=8i.7l){1j.1i.ay=8i.7l;if(8q==I&&1j.1i.2Z){8q=1j.1i.2Z}8i.id=id;86[86.1g]=8i}}k.1t.7s=[];if(8q!=I&&86.1g>0){8q(86)}},al:u(e,o){if(!k.11.F)E;D 6e=I;D i=0;if(e.1i.el.1N()>0){24(i=e.1i.el.1N();i>0;i--){if(e.1i.el.K(i-1)!=k.11.F){if(!e.5V.b2){if((e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}P{1r}}P{if((e.1i.el.K(i-1).1M.x+e.1i.el.K(i-1).1M.1C/2)>k.11.F.A.2v&&(e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}}}}}if(6e&&k.1t.7u!=6e){k.1t.7u=6e;k(6e).h5(k.1t.1c.K(0))}P if(!6e&&(k.1t.7u!=S||k.1t.1c.K(0).31!=e)){k.1t.7u=S;k(e).1S(k.1t.1c.K(0))}k.1t.1c.K(0).14.19=\'2B\'},cT:u(e){if(k.11.F==S){E}e.1i.el.1E(u(){q.1M=k.23(k.1a.74(q),k.1a.7G(q))})},8x:u(s){D i;D h=\'\';D o={};if(s){if(k.1t.5L[s]){o[s]=[];k(\'#\'+s+\' .\'+k.1t.5L[s]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[s][o[s].1g]=k.1p(q,\'id\')})}P{24(a in s){if(k.1t.5L[s[a]]){o[s[a]]=[];k(\'#\'+s[a]+\' .\'+k.1t.5L[s[a]]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s[a]+\'[]=\'+k.1p(q,\'id\');o[s[a]][o[s[a]].1g]=k.1p(q,\'id\')})}}}}P{24(i in k.1t.5L){o[i]=[];k(\'#\'+i+\' .\'+k.1t.5L[i]).1E(u(){if(h.1g>0){h+=\'&\'}h+=i+\'[]=\'+k.1p(q,\'id\');o[i][o[i].1g]=k.1p(q,\'id\')})}}E{7l:h,o:o}},fF:u(e){if(!e.dq){E}E q.1E(u(){if(!q.5V||!k(e).is(\'.\'+q.5V.3C))k(e).2R(q.5V.3C);k(e).7t(q.5V.A)})},4U:u(){E q.1E(u(){k(\'.\'+q.5V.3C).aS();k(q).dR();q.5V=S;q.fm=S})},2r:u(o){if(o.3C&&k.1a&&k.11&&k.1x){if(!k.1t.1c){k(\'2e\',1h).1S(\'<22 id="e5">&7k;</22>\');k.1t.1c=k(\'#e5\');k.1t.1c.K(0).14.19=\'1o\'}q.do({3C:o.3C,9J:o.9J?o.9J:I,a5:o.a5?o.a5:I,58:o.58?o.58:I,7x:o.7x||o.dC,7y:o.7y||o.fO,cQ:1b,2Z:o.2Z||o.ia,fx:o.fx?o.fx:I,46:o.46?1b:I,6I:o.6I?o.6I:\'cV\'});E q.1E(u(){D A={6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,4o:o.4o&&o.4o.1K==2A?o.4o:I,4m:o.4m&&o.4m.1K==2A?o.4m:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:I,2V:o.2V?o.2V:I};k(\'.\'+o.3C,q).7t(A);q.fm=1b;q.5V={3C:o.3C,6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,b2:o.b2?1b:I,A:A}})}}};k.fn.23({j3:k.1t.2r,f6:k.1t.fF,iS:k.1t.4U});k.iZ=k.1t.8x;k.2t={6O:S,7b:I,9m:S,6K:u(e){k.2t.7b=1b;k.2t.1Y(e,q,1b)},cq:u(e){if(k.2t.6O!=q)E;k.2t.7b=I;k.2t.2G(e,q)},1Y:u(e,el,7b){if(k.2t.6O!=S)E;if(!el){el=q}k.2t.6O=el;1M=k.23(k.1a.3w(el),k.1a.2o(el));8u=k(el);4g=8u.1p(\'4g\');3h=8u.1p(\'3h\');if(4g){k.2t.9m=4g;8u.1p(\'4g\',\'\');k(\'#eT\').3x(4g);if(3h)k(\'#bL\').3x(3h.4E(\'jh://\',\'\'));P k(\'#bL\').3x(\'\');1c=k(\'#8z\');if(el.4H.3l){1c.K(0).3l=el.4H.3l}P{1c.K(0).3l=\'\'}bo=k.1a.2o(1c.K(0));ga=7b&&el.4H.Y==\'bO\'?\'4D\':el.4H.Y;3m(ga){1e\'Q\':2q=1M.y-bo.hb;2v=1M.x;1r;1e\'O\':2q=1M.y;2v=1M.x-bo.1C;1r;1e\'2L\':2q=1M.y;2v=1M.x+1M.1C;1r;1e\'bO\':k(\'2e\').1J(\'3D\',k.2t.3D);1s=k.1a.4a(e);2q=1s.y+15;2v=1s.x+15;1r;ad:2q=1M.y+1M.hb;2v=1M.x;1r}1c.B({Q:2q+\'U\',O:2v+\'U\'});if(el.4H.54==I){1c.1Y()}P{1c.7f(el.4H.54)}if(el.4H.2Y)el.4H.2Y.1D(el);8u.1J(\'8B\',k.2t.2G).1J(\'5B\',k.2t.cq)}},3D:u(e){if(k.2t.6O==S){k(\'2e\').3q(\'3D\',k.2t.3D);E}1s=k.1a.4a(e);k(\'#8z\').B({Q:1s.y+15+\'U\',O:1s.x+15+\'U\'})},2G:u(e,el){if(!el){el=q}if(k.2t.7b!=1b&&k.2t.6O==el){k.2t.6O=S;k(\'#8z\').7a(1);k(el).1p(\'4g\',k.2t.9m).3q(\'8B\',k.2t.2G).3q(\'5B\',k.2t.cq);if(el.4H.3i)el.4H.3i.1D(el);k.2t.9m=S}},2r:u(M){if(!k.2t.1c){k(\'2e\').1S(\'<22 id="8z"><22 id="eT"></22><22 id="bL"></22></22>\');k(\'#8z\').B({Y:\'1P\',3I:6P,19:\'1o\'});k.2t.1c=1b}E q.1E(u(){if(k.1p(q,\'4g\')){q.4H={Y:/Q|4D|O|2L|bO/.48(M.Y)?M.Y:\'4D\',3l:M.3l?M.3l:I,54:M.54?M.54:I,2Y:M.2Y&&M.2Y.1K==2A?M.2Y:I,3i:M.3i&&M.3i.1K==2A?M.3i:I};D el=k(q);el.1J(\'9z\',k.2t.1Y);el.1J(\'6K\',k.2t.6K)}})}};k.fn.hO=k.2t.2r;k.84={bq:u(e){3K=e.7L||e.7K||-1;if(3K==9){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(q.b1){1h.6J.dZ().3g="\\t";q.dV=u(){q.6K();q.dV=S}}P if(q.aF){26=q.5q;2T=q.dN;q.2y=q.2y.hd(0,26)+"\\t"+q.2y.h8(2T);q.aF(26+1,26+1);q.6K()}E I}},4U:u(){E q.1E(u(){if(q.7P&&q.7P==1b){k(q).3q(\'7B\',k.84.bq);q.7P=I}})},2r:u(){E q.1E(u(){if(q.4Y==\'cf\'&&(!q.7P||q.7P==I)){k(q).1J(\'7B\',k.84.bq);q.7P=1b}})}};k.fn.23({j5:k.84.2r,hH:k.84.4U});k.1a={3w:u(e){D x=0;D y=0;D es=e.14;D bP=I;if(k(e).B(\'19\')==\'1o\'){D 5Y=es.3n;D 9q=es.Y;bP=1b;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\'}D el=e;7d(el){x+=el.8t+(el.4Z&&!k.3a.7I?T(el.4Z.5b)||0:0);y+=el.8G+(el.4Z&&!k.3a.7I?T(el.4Z.4S)||0:0);el=el.dJ}el=e;7d(el&&el.4Y&&el.4Y.6c()!=\'2e\'){x-=el.3c||0;y-=el.3d||0;el=el.31}if(bP==1b){es.19=\'1o\';es.Y=9q;es.3n=5Y}E{x:x,y:y}},7G:u(el){D x=0,y=0;7d(el){x+=el.8t||0;y+=el.8G||0;el=el.dJ}E{x:x,y:y}},2o:u(e){D w=k.B(e,\'Z\');D h=k.B(e,\'W\');D 1C=0;D hb=0;D es=e.14;if(k(e).B(\'19\')!=\'1o\'){1C=e.4c;hb=e.5W}P{D 5Y=es.3n;D 9q=es.Y;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\';1C=e.4c;hb=e.5W;es.19=\'1o\';es.Y=9q;es.3n=5Y}E{w:w,h:h,1C:1C,hb:hb}},74:u(el){E{1C:el.4c||0,hb:el.5W||0}},bm:u(e){D h,w,de;if(e){w=e.8W;h=e.8O}P{de=1h.5d;w=1X.d4||aa.d4||(de&&de.8W)||1h.2e.8W;h=1X.cB||aa.cB||(de&&de.8O)||1h.2e.8O}E{w:w,h:h}},6z:u(e){D t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.9N.6c()!=\'2e\'){t=e.3d;l=e.3c;w=e.d7;h=e.d2;iw=0;ih=0}P{if(1h.5d){t=1h.5d.3d;l=1h.5d.3c;w=1h.5d.d7;h=1h.5d.d2}P if(1h.2e){t=1h.2e.3d;l=1h.2e.3c;w=1h.2e.d7;h=1h.2e.d2}iw=aa.d4||1h.5d.8W||1h.2e.8W||0;ih=aa.cB||1h.5d.8O||1h.2e.8O||0}E{t:t,l:l,w:w,h:h,iw:iw,ih:ih}},cy:u(e,7N){D el=k(e);D t=el.B(\'5K\')||\'\';D r=el.B(\'5z\')||\'\';D b=el.B(\'5k\')||\'\';D l=el.B(\'5j\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},aT:u(e,7N){D el=k(e);D t=el.B(\'5M\')||\'\';D r=el.B(\'5U\')||\'\';D b=el.B(\'5n\')||\'\';D l=el.B(\'4X\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},6U:u(e,7N){D el=k(e);D t=el.B(\'4S\')||\'\';D r=el.B(\'5O\')||\'\';D b=el.B(\'5Q\')||\'\';D l=el.B(\'5b\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)||0};P E{t:t,r:r,b:b,l:l}},4a:u(2k){D x=2k.hT||(2k.gM+(1h.5d.3c||1h.2e.3c))||0;D y=2k.ki||(2k.iQ+(1h.5d.3d||1h.2e.3d))||0;E{x:x,y:y}},cI:u(4R,cx){cx(4R);4R=4R.7c;7d(4R){k.1a.cI(4R,cx);4R=4R.hQ}},h7:u(4R){k.1a.cI(4R,u(el){24(D 1p in el){if(2g el[1p]===\'u\'){el[1p]=S}}})},hV:u(el,1O){D 5l=k.1a.6z();D b6=k.1a.2o(el);if(!1O||1O==\'49\')k(el).B({Q:5l.t+((18.3r(5l.h,5l.ih)-5l.t-b6.hb)/2)+\'U\'});if(!1O||1O==\'4j\')k(el).B({O:5l.l+((18.3r(5l.w,5l.iw)-5l.l-b6.1C)/2)+\'U\'})},hW:u(el,dk){D 1Q=k(\'1T[@2J*="8X"]\',el||1h),8X;1Q.1E(u(){8X=q.2J;q.2J=dk;q.14.5E="9n:9w.9y.hE(2J=\'"+8X+"\')"})}};[].3J||(7F.hF.3J=u(v,n){n=(n==S)?0:n;D m=q.1g;24(D i=n;i<m;i++)if(q[i]==v)E i;E-1});',62,1293,'||||||||||||||||||||jQuery||||||this||||function||||||dragCfg|css|elm|var|return|dragged|easing|speed|false|callback|get|ss|options|iAuto|left|else|top|iResize|null|parseInt|px|oldStyle|height|slideshow|position|width||iDrag|new||style||||Math|display|iUtil|true|helper|subject|case|autoCFG|length|document|dropCfg|iEL|resizeOptions|carouselCfg|duration|interfaceFX|none|attr|sizes|break|pointer|iSort|type|ImageBox|queue|iDrop|iAutoscroller|slide|resizeElement|oC|wb|apply|each|fisheyeCfg|opacity|delta|newSizes|bind|constructor|custom|pos|size|axis|absolute|images|items|append|img|slideslinks|255|firstNum|window|show|container||complete|div|extend|for||start||cont|elsToScroll|100|loader|oR||body|elem|typeof|selectedItem|oldP|props|event|accordionCfg|parseFloat|field|getSize|containment|ny|build|relative|iTooltip|islideshow|nx|tp|slideCaption|value|newPosition|Function|block|selectHelper|step|border|itemWidth|hide|dequeue|timer|src|hidden|right|limit|nr|fractions|0px|PI|addClass|direction|end|overflow|cursorAt|result|parentData|onShow|onChange|to|parentNode|||||||||browser|iSlider|scrollLeft|scrollTop|scr|transferHelper|text|href|onHide|pre|selectdrug|className|switch|visibility|item|wrapper|unbind|max|nextslide|values|currentslide|handle|getPosition|html|newCoords|prevslide|iframe|iExpander|accept|mousemove|canvas|createElement|margins|onSlide|zIndex|indexOf|pressedKey|min|valueToAdd|multipleSeparator|pageSize|zones|highlighted|toggle|abs|onStop|dragElem|times|fadeDuration|diff|dhs|handlers||resizeDirection||vp|so|distance|ghosting||test|vertically|getPointer|startTop|offsetWidth|subjectValue|lastSuggestion|DropOutDirectiont|title|wrs|removeClass|horizontally|startLeft|out|onDrag|oP|onStart|nWidth|percent|down|ifxFirstDisplay|msie|iteration|ratio|clear|color|lastValue|slideCfg|fontSize|currentPointer|dimm|bottom|replace|up|prevImage|tooltipCFG|rel|els|fxCheckTag|context|nextImage|params|shs|fieldData|elToScroll|nodeEl|borderTopWidth|chunks|destroy|string|nHeight|paddingLeft|tagName|currentStyle||halign|slidePos|onclick|delay||containerW|from|helperclass|endLeft|endTop|borderLeftWidth|dragmoveBy|documentElement|dhe|newStyles|clonedEl|click|si|marginLeft|marginBottom|clientScroll|OpenClose|paddingBottom|empty|toWrite|selectionStart|overzone|toAdd|onDragModifier|holder|mousedown|animate|toDrag|cnt|marginRight|linksPosition|blur|getAttribute|hight|filter|sw|zoney|cos|slideshows|zonex|marginTop|collected|paddingTop|url|borderRightWidth|mouseup|borderBottomWidth|activeLinkClass|dragHandle|clearInterval|paddingRight|sortCfg|offsetHeight|prop|oldVisibility|styles||BlindDirection|point|fxh|nmp|old|post|currentPanel|onSelect|elementData|grid|pow|toLowerCase|animationHandler|cur|containerH|close|puff|getWidth|currentRel|imageEl|Expander|getHeight|iFisheye|random|newDimensions|itemHeight|reflections|sliders|selRange|wr|orig|margin|maxWidth|keyup|getScroll|captionText|totalImages|128|parseColor|curCSS|outerContainer|Scale|restore|tolerance|selection|focus|caption|snapDistance|revert|current|3000|captionPosition|hpc|onload|class|getBorder|setInterval|oldStyleAttr|rule|rgb|open|minLeft|ActiveXObject|oldDisplay|restoreStyle|getSizeLite||nw|0x||F0|fadeOut|focused|firstChild|while|cssRules|fadeIn|Date|minTop|backgroundColor|sc|nbsp|hash|captionEl|selectKeyHelper|selectCurrent|newTop|init|newLeft|changed|Draggable|inFrontOf|efx|139|onHover|onOut|getTime|np|keydown|split|radiusY|increment|Array|getPositionLite|selectClass|opera|onHighlight|keyCode|charCode|Object|toInteger|frameClass|hasTabsEnabled|zonew|user|zoneh|positionItems|onClick|oD|scrollIntoView|accordionPos|proximity|indic||data|containerSize|sin|iTTabs||ts|ImageBoxPrevImage|ImageBoxNextImage|imageSrc|newPos|maxHeight|minHeight|elS|activeClass|panels|maxBottom|maxRight|ser|move|opened|bounceout|animationInProgress|overlay|stop|reflectionSize|fnc|classname|insideParent|offsetLeft|jEl|nRy|pr|serialize|nRx|tooltipHelper|cssSides|mouseout|select|count|namedColors|padding|offsetTop|directionIncrement|parentEl|400|dir|expand|createTextNode|finishedPre|clientHeight|li|applyOn|content|contBorders|object|parentBorders|alpha|clientWidth|png|gallery|fontWeight|link|yproc|xproc|sx|parent|showImage|selectedone|imgs|onselect|sy|startDrag|cursor|captionClass|onselectstop|getElementById|linksClass|sh|ul|onActivate|isDroppable|nextEl|onDrop|oldTitle|progid|prevslideClass|prevEl|oldPosition|SliderContainer|Image|linkRel|selectKeyUp|selectKeyDown|DXImageTransform|inCache|Microsoft|mouseover|dragstop|diffX|211|nextslideClass|prot|auto|dEs|hidehelper|isDraggable|activeclass|unit|DoFold|unfold|nodeName|startTime|buildWrapper|prev|1px|oldColor|setTimeout|ScrollTo|st|sl|cssText|9999|next|destroyWrapper|opt|diffHeight|diffWidth|exec|hoverclass|image|blind|borderColor|sideEnd|self|key||default|2000|styleSheets|getValues|192|diffY|lnk|reflexions|checkhover|selectcheck|maxRotation|ImageBoxOuterContainer|gradient|panelHeight|childs|headers|ne|hideImage|minWidth|iIndex|itemsText|os|side|iCarousel|5625|1000|itemMinWidth|linksSeparator|setSelectionRange|protectRotation|positionContainer|posx|hoverClass|valToAdd|minchars|helperClass|source|nextImageEl|preventDefault|multiple|headerSelector|DraggableDestroy|getPadding|autofill|handleEl|stopPropagation|prevImageEl|getFieldValues|panelSelector|String|createTextRange|floats|lastSi|shrink|oPad|windowSize|paddingLeftSize|angle|paddingY|paddingX|RegExp|borderRightSize|floatVal|firstStep|pulse|Pulsate|Color|rotationSpeed|paddingBottomSize|remove|parseStyle|getClient|Number|helperSize|bounce|doTab||zoom|borderLeftSize|oBor|paddingRightSize|borderTopSize|paddingTopSize|stopAnim|pValue|borderBottomSize|extraWidth|restricted|autoSize|unselectable|SliderIteration|prepend|clearTimeout|isSlider|oneIsSortable|applyOnHover|tooltipURL|tabindex|draginit|mouse|restoreStyles|sliderSize|sliderPos|parentPos|cancelBubble|autocomplete|inputWidth|oldBorder|dragmove|clnt|sliderEl|returnValue|loaderWidth|idsa|letterSpacing|pause|getContainment|fade|snapToGrid|linear|10000|slideshowHolder|asin|cssSidesEnd|borderWidth|fitToContainer|TEXTAREA|entities|INPUT|spacer|writeItems|character|currentValue|paddings|169|oldFloat|borders|hidefocused|bouncein||modifyContainer|transparent|center|loadImage|func|getMargins|initialPosition|textAlign|innerHeight|Alpha|no|captionImages|closeEl|shake|prevTop|traverseDOM|Selectserialize|stopDrag|slider|ImageBoxCaption|ImageBoxIframe|300|ImageBoxOverlay|sortable|moveDrag|autoplay|measure|prevLeft|intersect|ImageBoxCurrentImage|selectstop|Shake|index|dragEl|keyPressed|scrollHeight|scroll|innerWidth|match|elPosition|scrollWidth|textImage|slideBor|jpg|captionSize|textImageFrom|visible||loaderHeight|ImageBoxCaptionImages||hoverItem|clickItem|emptyGIF||notColor|slideshowCaption|Droppable|goprev|childNodes|autocompleteHelper|autocompleteIframe|slidePad|fit|165|clientSize|||fontFamily|colorCssProps|elType|onhover|cssProps|expanderHelper|boxModel|itransferTo|keypress|moveStart|offsetParent|Width|selectstart|fxe|selectionEnd|checkCache|fontStyle|update|DroppableDestroy|remeasure|fontStretch|fontVariant|onblur|slideshowLoader|htmlEntities|wordSpacing|createRange|224|KhtmlUserSelect||closeHTML|on|sortHelper|245|userSelect|dragHelper|hrefAttr|dragstart|107|loaderSRC|highlight|slideshowPrevslide||gonext||styleFloat|frameborder|javascript|||relAttr|wid|scrolling||onslide|||listStyle|imageTypes|insertBefore|999|textDecoration|sqrt|140|230|maxy|240|ImageBoxContainer|doScroll|interval|set|dragmoveByKey|protect|ImageBoxCaptionText|144|ImageBoxLoader|off|checkdrop|isSelectable|hlt|30px|selectedclass|tooltipTitle|imagebox|shc|overlayOpacity|selRange2|slideshowNextSlide|gif|getSelectionStart|360|iAccordion|getElementsByTagName|iBounce|after|SortableAddItem|onResize|150|itemZIndex|grow|getHeightMinMax|borderTopUnit|selectcheckApply|borderRightUnit|zindex|fontUnit|togglehor|time|se|parte|easeout|isSortable||SlideInUp|fold|SlideOutUp|rgba|addColorStop|yfrac|containerMaxx|interfaceColorFX|containerMaxy||leftUnit|mousex||radiusX|check|getContext|xfrac|addItem|topUnit|fracH|cloneNode|togglever|paddingLeftUnit|borderBottomUnit|finish|onDragStop|onout|posy|isFunction|oldOverflow|directions|vertical|fracW|fakeAccordionClass|parts|fadeTo|inputValue|xml|selectstopApply|slideshowLinks|onDragStart|BlindUp|paddingTopUnit|500|trim|maxx|borderLeftUnit|paddingRightUnit|filteredPosition|BlindDown|paddingBottomUnit|horizontal|valign|find|ImageBoxClose|onselectstart|mozUserSelect|ondragstart|scale|110|globalCompositeOperation|bmp||drawImage|ondrop|password|quot||save|starty|jpeg|||number|startx|finishOpacity|hover|recallDroppables|flipv|finishx|destination|khtml|moz|lt|amp|pW|clientX|Accordion|translate|captiontext|elasticin|slideshowLink|fix|elasticout|resize|elasticboth|bounceboth|984375|9375|Selectable|30002|list|625|30001|nodeValue|before|100000|purgeEvents|substr|duplicate|moveEnd|||substring|success|param|par|array|Fisheye|name|POST|ajax|easeboth|location|fromHandler|collapse|MozUserSelect||ResizableDestroy|rotationTimer|fillRect|fill|WebKit|fillStyle|createLinearGradient|Resizable|navigator|appVersion|lineHeigt|alt|AlphaImageLoader|prototype|SliderGetValues|DisableTabs|Carousel|load|easein|IMG|200|Slider|ToolTip|wh|nextSibling|Autocomplete|SliderSetValues|pageX|float|centerEl|fixPNG|isNaN|dotted|dashed|stopAll|Left|outlineColor|Top|Right|Bottom|solid|double|selectorText|rules|onchange|SlideToggleRight|SlideOutRight||borderStyle||TransferTo||groove|ridge|inset|outset|borderTopColor||borderRightColor|olive|navy|orange||pink|203|maroon||magenta|182|193|lightyellow|lime|purple|red|outlineOffset|outlineWidth|borderBottomColor|borderLeftColor|lineHeight|loading|silver|white|yellow|Showing|100000000|SlideInRight|clientY|Highlight|SortableDestroy|CloseVertically|CloseHorizontally|FoldToggle|UnFold|SlideInDown|SlideToggleUp|SortSerialize|Fold|SwitchHorizontally|SwitchVertically|Sortable|scrollTo|EnableTabs|ScrollToAnchors|pt|Puff|OpenVertically|OpenHorizontally|Grow|Shrink|DropToggleRight|DropInRight|BlindToggleHorizontally|BlindRight|http|Bounce|120|BlindLeft|BlindToggleVertically|SlideToggleLeft|SlideOutLeft|toUpperCase|SlideInLeft|SlideToggleDown|SlideOutDown|DropOutLeft|DropInLeft|DropToggleLeft|DropOutRight|DropToggleUp|DropInUp|DropOutDown|DropInDown|DropToggleDown|DropOutUp|lightpink|textIndent|aqua|appendChild|azure|beige|220|last|cssFloat|first|ol|wrapEl|fxWrapper|black|imageLoaded|darkkhaki|darkgreen|189|183|darkmagenta|firstResize|darkgrey|brown|cyan|darkblue|darkcyan|table|form|col|tfoot|colgroup|th|header|thead|tbody|112|Autoexpand|tr|td|script|frame|input|pageY|textarea|button|w_|removeChild|frameset|option|optgroup|meta|darkolivegreen|blue|122|233|green|lightcyan|204|darkviolet|lightgreen|indigo|216|khaki|darksalmon|130|darkred|lightblue|148|173|215|238|fuchsia|gold|darkorchid|153|darkorange|lightgrey'.split('|'),0,{}))
 
9
  *
10
  *
11
  */
12
+ eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('k.f2={2r:u(M){E q.1E(u(){if(!M.aR||!M.aZ)E;D el=q;el.2l={aq:M.aq||cO,aR:M.aR,aZ:M.aZ,8e:M.8e||\'fV\',aJ:M.aJ||\'fV\',2Y:M.2Y&&2g M.2Y==\'u\'?M.2Y:I,3i:M.2Y&&2g M.3i==\'u\'?M.3i:I,7U:M.7U&&2g M.7U==\'u\'?M.7U:I,as:k(M.aR,q),8f:k(M.aZ,q),H:M.H||8J,67:M.67||0};el.2l.8f.2G().B(\'W\',\'9R\').eq(0).B({W:el.2l.aq+\'U\',19:\'2B\'}).2T();el.2l.as.1E(u(2N){q.7X=2N}).gC(u(){k(q).2R(el.2l.aJ)},u(){k(q).4i(el.2l.aJ)}).1J(\'5h\',u(e){if(el.2l.67==q.7X)E;el.2l.as.eq(el.2l.67).4i(el.2l.8e).2T().eq(q.7X).2R(el.2l.8e).2T();el.2l.8f.eq(el.2l.67).5w({W:0},el.2l.H,u(){q.14.19=\'1o\';if(el.2l.3i){el.2l.3i.1D(el,[q])}}).2T().eq(q.7X).1Y().5w({W:el.2l.aq},el.2l.H,u(){q.14.19=\'2B\';if(el.2l.2Y){el.2l.2Y.1D(el,[q])}}).2T();if(el.2l.7U){el.2l.7U.1D(el,[q,el.2l.8f.K(q.7X),el.2l.as.K(el.2l.67),el.2l.8f.K(el.2l.67)])}el.2l.67=q.7X}).eq(0).2R(el.2l.8e).2T();k(q).B(\'W\',k(q).B(\'W\')).B(\'2U\',\'2K\')})}};k.fn.gN=k.f2.2r;k.aA={2r:u(M){E q.1E(u(){D el=q;D 7E=2*18.2Q/f1;D an=2*18.2Q;if(k(el).B(\'Y\')!=\'2s\'&&k(el).B(\'Y\')!=\'1P\'){k(el).B(\'Y\',\'2s\')}el.1l={1R:k(M.1R,q),2F:M.2F,6q:M.6q,aD:M.aD,an:an,1N:k.1a.2o(q),Y:k.1a.3w(q),26:18.2Q/2,bi:M.bi,8p:M.6r,6r:[],aG:I,7E:2*18.2Q/f1};el.1l.fB=(el.1l.1N.w-el.1l.2F)/2;el.1l.7D=(el.1l.1N.h-el.1l.6q-el.1l.6q*el.1l.8p)/2;el.1l.2D=2*18.2Q/el.1l.1R.1N();el.1l.ba=el.1l.1N.w/2;el.1l.b9=el.1l.1N.h/2-el.1l.6q*el.1l.8p;D ak=1h.3F(\'22\');k(ak).B({Y:\'1P\',3I:1,Q:0,O:0});k(el).1S(ak);el.1l.1R.1E(u(2N){a6=k(\'1T\',q).K(0);W=T(el.1l.6q*el.1l.8p);if(k.3a.4t){3E=1h.3F(\'1T\');k(3E).B(\'Y\',\'1P\');3E.2J=a6.2J;3E.14.5E=\'gE 9n:9w.9y.cC(1G=60, 14=1, gB=0, gA=0, gv=0, gF=0)\'}P{3E=1h.3F(\'3E\');if(3E.fD){4L=3E.fD("2d");3E.14.Y=\'1P\';3E.14.W=W+\'U\';3E.14.Z=el.1l.2F+\'U\';3E.W=W;3E.Z=el.1l.2F;4L.gu();4L.gO(0,W);4L.gk(1,-1);4L.gp(a6,0,0,el.1l.2F,W);4L.6H();4L.gm="gG-4l";D ap=4L.hy(0,0,0,W);ap.fs(1,"fr(1V, 1V, 1V, 1)");ap.fs(0,"fr(1V, 1V, 1V, 0.6)");4L.hx=ap;if(hA.hB.3J(\'hw\')!=-1){4L.hv()}P{4L.hu(0,0,el.1l.2F,W)}}}el.1l.6r[2N]=3E;k(ak).1S(3E)}).1J(\'9z\',u(e){el.1l.aG=1b;el.1l.H=el.1l.7E*0.1*el.1l.H/18.3S(el.1l.H);E I}).1J(\'8B\',u(e){el.1l.aG=I;E I});k.aA.7T(el);el.1l.H=el.1l.7E*0.2;el.1l.ht=1X.6V(u(){el.1l.26+=el.1l.H;if(el.1l.26>an)el.1l.26=0;k.aA.7T(el)},20);k(el).1J(\'8B\',u(){el.1l.H=el.1l.7E*0.2*el.1l.H/18.3S(el.1l.H)}).1J(\'3D\',u(e){if(el.1l.aG==I){1s=k.1a.4a(e);fz=el.1l.1N.w-1s.x+el.1l.Y.x;el.1l.H=el.1l.bi*el.1l.7E*(el.1l.1N.w/2-fz)/(el.1l.1N.w/2)}})})},7T:u(el){el.1l.1R.1E(u(2N){b8=el.1l.26+2N*el.1l.2D;x=el.1l.fB*18.5H(b8);y=el.1l.7D*18.83(b8);f9=T(2a*(el.1l.7D+y)/(2*el.1l.7D));fk=(el.1l.7D+y)/(2*el.1l.7D);Z=T((el.1l.2F-el.1l.aD)*fk+el.1l.aD);W=T(Z*el.1l.6q/el.1l.2F);q.14.Q=el.1l.b9+y-W/2+"U";q.14.O=el.1l.ba+x-Z/2+"U";q.14.Z=Z+"U";q.14.W=W+"U";q.14.3I=f9;el.1l.6r[2N].14.Q=T(el.1l.b9+y+W-1-W/2)+"U";el.1l.6r[2N].14.O=T(el.1l.ba+x-Z/2)+"U";el.1l.6r[2N].14.Z=Z+"U";el.1l.6r[2N].14.W=T(W*el.1l.8p)+"U"})}};k.fn.hI=k.aA.2r;k.23({G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W},hK:u(p,n,1W,1H,1m){E 1H*(n/=1m)*n*n+1W},fl:u(p,n,1W,1H,1m){E-1H*((n=n/1m-1)*n*n*n-1)+1W},hm:u(p,n,1W,1H,1m){if((n/=1m/2)<1)E 1H/2*n*n*n*n+1W;E-1H/2*((n-=2)*n*n*n-2)+1W},8l:u(p,n,1W,1H,1m){if((n/=1m)<(1/2.75)){E 1H*(7.aB*n*n)+1W}P if(n<(2/2.75)){E 1H*(7.aB*(n-=(1.5/2.75))*n+.75)+1W}P if(n<(2.5/2.75)){E 1H*(7.aB*(n-=(2.25/2.75))*n+.gY)+1W}P{E 1H*(7.aB*(n-=(2.h2/2.75))*n+.gX)+1W}},cr:u(p,n,1W,1H,1m){if(k.G.8l)E 1H-k.G.8l(p,1m-n,0,1H,1m)+1W;E 1W+1H},gW:u(p,n,1W,1H,1m){if(k.G.cr&&k.G.8l)if(n<1m/2)E k.G.cr(p,n*2,0,1H,1m)*.5+1W;E k.G.8l(p,n*2-1m,0,1H,1m)*.5+1H*.5+1W;E 1W+1H},gQ:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m)==1)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E-(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W},gT:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E a*18.6b(2,-10*n)*18.83((n*1m-s)*(2*18.2Q)/p)+1H+1W},gV:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}if(n<1){E-.5*(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W}E a*18.6b(2,-10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p)*.5+1H+1W}}});k.6n={2r:u(M){E q.1E(u(){D el=q;el.1F={1R:k(M.1R,q),1Z:k(M.1Z,q),1M:k.1a.3w(q),2F:M.2F,ax:M.ax,7Y:M.7Y,ge:M.ge,51:M.51,6x:M.6x};k.6n.aH(el,0);k(1X).1J(\'gU\',u(){el.1F.1M=k.1a.3w(el);k.6n.aH(el,0);k.6n.7T(el)});k.6n.7T(el);el.1F.1R.1J(\'9z\',u(){k(el.1F.ax,q).K(0).14.19=\'2B\'}).1J(\'8B\',u(){k(el.1F.ax,q).K(0).14.19=\'1o\'});k(1h).1J(\'3D\',u(e){D 1s=k.1a.4a(e);D 5s=0;if(el.1F.51&&el.1F.51==\'cv\')D aI=1s.x-el.1F.1M.x-(el.4c-el.1F.2F*el.1F.1R.1N())/2-el.1F.2F/2;P if(el.1F.51&&el.1F.51==\'2L\')D aI=1s.x-el.1F.1M.x-el.4c+el.1F.2F*el.1F.1R.1N();P D aI=1s.x-el.1F.1M.x;D fP=18.6b(1s.y-el.1F.1M.y-el.5W/2,2);el.1F.1R.1E(u(2N){45=18.ez(18.6b(aI-2N*el.1F.2F,2)+fP);45-=el.1F.2F/2;45=45<0?0:45;45=45>el.1F.7Y?el.1F.7Y:45;45=el.1F.7Y-45;bB=el.1F.6x*45/el.1F.7Y;q.14.Z=el.1F.2F+bB+\'U\';q.14.O=el.1F.2F*2N+5s+\'U\';5s+=bB});k.6n.aH(el,5s)})})},aH:u(el,5s){if(el.1F.51)if(el.1F.51==\'cv\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())/2-5s/2+\'U\';P if(el.1F.51==\'O\')el.1F.1Z.K(0).14.O=-5s/el.1F.1R.1N()+\'U\';P if(el.1F.51==\'2L\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())-5s/2+\'U\';el.1F.1Z.K(0).14.Z=el.1F.2F*el.1F.1R.1N()+5s+\'U\'},7T:u(el){el.1F.1R.1E(u(2N){q.14.Z=el.1F.2F+\'U\';q.14.O=el.1F.2F*2N+\'U\'})}};k.fn.hi=k.6n.2r;k.N={1c:S,8R:S,3A:S,2I:S,4y:S,cl:S,1d:S,2h:S,1R:S,5o:u(){k.N.8R.5o();if(k.N.3A){k.N.3A.2G()}},4w:u(){k.N.1R=S;k.N.2h=S;k.N.4y=k.N.1d.2y;if(k.N.1c.B(\'19\')==\'2B\'){if(k.N.1d.1f.fx){3m(k.N.1d.1f.fx.1u){1e\'c6\':k.N.1c.7a(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'1z\':k.N.1c.fq(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'a7\':k.N.1c.g3(k.N.1d.1f.fx.1m,k.N.5o);1r}}P{k.N.1c.2G()}if(k.N.1d.1f.3i)k.N.1d.1f.3i.1D(k.N.1d,[k.N.1c,k.N.3A])}P{k.N.5o()}1X.bH(k.N.2I)},dQ:u(){D 1d=k.N.1d;D 4d=k.N.aY(1d);if(1d&&4d.3o!=k.N.4y&&4d.3o.1g>=1d.1f.aL){k.N.4y=4d.3o;k.N.cl=4d.3o;81={2n:k(1d).1p(\'hj\')||\'2n\',2y:4d.3o};k.hl({1u:\'hk\',81:k.hf(81),he:u(fZ){1d.1f.4e=k(\'3o\',fZ);1N=1d.1f.4e.1N();if(1N>0){D 5p=\'\';1d.1f.4e.1E(u(2N){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'});if(1d.1f.aU){D 3M=k(\'2y\',1d.1f.4e.K(0)).3g();1d.2y=4d.3j+3M+1d.1f.3N+4d.66;k.N.6J(1d,4d.3o.1g!=3M.1g?(4d.3j.1g+4d.3o.1g):3M.1g,4d.3o.1g!=3M.1g?(4d.3j.1g+3M.1g):3M.1g)}if(1N>0){k.N.cj(1d,5p)}P{k.N.4w()}}P{k.N.4w()}},5N:1d.1f.aN})}},cj:u(1d,5p){k.N.8R.3x(5p);k.N.1R=k(\'8P\',k.N.8R.K(0));k.N.1R.9z(k.N.di).1J(\'5h\',k.N.dj);D Y=k.1a.3w(1d);D 1N=k.1a.2o(1d);k.N.1c.B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').2R(1d.1f.aM);if(k.N.3A){k.N.3A.B(\'19\',\'2B\').B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').B(\'Z\',k.N.1c.B(\'Z\')).B(\'W\',k.N.1c.B(\'W\'))}k.N.2h=0;k.N.1R.K(0).3l=1d.1f.7H;k.N.8Q(1d,1d.1f.4e.K(0),\'7J\');if(k.N.1c.B(\'19\')==\'1o\'){if(1d.1f.bV){D cp=k.1a.aT(1d,1b);D cm=k.1a.6U(1d,1b);k.N.1c.B(\'Z\',1d.4c-(k.dF?(cp.l+cp.r+cm.l+cm.r):0)+\'U\')}if(1d.1f.fx){3m(1d.1f.fx.1u){1e\'c6\':k.N.1c.7f(1d.1f.fx.1m);1r;1e\'1z\':k.N.1c.fo(1d.1f.fx.1m);1r;1e\'a7\':k.N.1c.gb(1d.1f.fx.1m);1r}}P{k.N.1c.1Y()}if(k.N.1d.1f.2Y)k.N.1d.1f.2Y.1D(k.N.1d,[k.N.1c,k.N.3A])}},dO:u(){D 1d=q;if(1d.1f.4e){k.N.4y=1d.2y;k.N.cl=1d.2y;D 5p=\'\';1d.1f.4e.1E(u(2N){2y=k(\'2y\',q).3g().6c();fY=1d.2y.6c();if(2y.3J(fY)==0){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'}});if(5p!=\'\'){k.N.cj(1d,5p);q.1f.9x=1b;E}}1d.1f.4e=S;q.1f.9x=I},6J:u(2n,26,2T){if(2n.b1){D 6t=2n.b1();6t.hp(1b);6t.dI("ck",26);6t.ha("ck",-2T+26);6t.8C()}P if(2n.aF){2n.aF(26,2T)}P{if(2n.5q){2n.5q=26;2n.dN=2T}}2n.6K()},f0:u(2n){if(2n.5q)E 2n.5q;P if(2n.b1){D 6t=1h.6J.dZ();D eX=6t.h9();E 0-eX.dI(\'ck\',-h6)}},aY:u(2n){D 4P={2y:2n.2y,3j:\'\',66:\'\',3o:\'\'};if(2n.1f.aQ){D 8N=I;D 5q=k.N.f0(2n)||0;D 4T=4P.2y.7C(2n.1f.3N);24(D i=0;i<4T.1g;i++){if((4P.3j.1g+4T[i].1g>=5q||5q==0)&&!8N){if(4P.3j.1g<=5q)4P.3o=4T[i];P 4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\');8N=1b}P if(8N){4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\')}if(!8N){4P.3j+=4T[i]+(4T.1g>1?2n.1f.3N:\'\')}}}P{4P.3o=4P.2y}E 4P},bU:u(e){1X.bH(k.N.2I);D 1d=k.N.aY(q);D 3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40|9/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';P k.N.2h=-1;3m(3K){1e 9:1e 13:if(k.N.2h==-1)k.N.2h=0;D 2h=k.N.1R.K(k.N.2h||0);D 3M=2h.5C(\'4I\');q.2y=1d.3j+3M+q.1f.3N+1d.66;k.N.4y=1d.3o;k.N.6J(q,1d.3j.1g+3M.1g+q.1f.3N.1g,1d.3j.1g+3M.1g+q.1f.3N.1g);k.N.4w();if(q.1f.68){4u=T(2h.5C(\'8K\'))||0;k.N.8Q(q,q.1f.4e.K(4u),\'68\')}if(q.7W)q.7W(I);E 3K!=13;1r;1e 27:q.2y=1d.3j+k.N.4y+q.1f.3N+1d.66;q.1f.4e=S;k.N.4w();if(q.7W)q.7W(I);E I;1r;1e 35:k.N.2h=k.N.1R.1N()-1;1r;1e 36:k.N.2h=0;1r;1e 38:k.N.2h--;if(k.N.2h<0)k.N.2h=k.N.1R.1N()-1;1r;1e 40:k.N.2h++;if(k.N.2h==k.N.1R.1N())k.N.2h=0;1r}k.N.8Q(q,q.1f.4e.K(k.N.2h||0),\'7J\');k.N.1R.K(k.N.2h||0).3l=q.1f.7H;if(k.N.1R.K(k.N.2h||0).7W)k.N.1R.K(k.N.2h||0).7W(I);if(q.1f.aU){D aK=k.N.1R.K(k.N.2h||0).5C(\'4I\');q.2y=1d.3j+aK+q.1f.3N+1d.66;if(k.N.4y.1g!=aK.1g)k.N.6J(q,1d.3j.1g+k.N.4y.1g,1d.3j.1g+aK.1g)}E I}k.N.dO.1D(q);if(q.1f.9x==I){if(1d.3o!=k.N.4y&&1d.3o.1g>=q.1f.aL)k.N.2I=1X.9T(k.N.dQ,q.1f.54);if(k.N.1R){k.N.4w()}}E 1b},8Q:u(2n,3o,1u){if(2n.1f[1u]){D 81={};ar=3o.f3(\'*\');24(i=0;i<ar.1g;i++){81[ar[i].4Y]=ar[i].7c.h4}2n.1f[1u].1D(2n,[81])}},di:u(e){if(k.N.1R){if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';k.N.1R.K(k.N.2h||0).3l=\'\';k.N.2h=T(q.5C(\'8K\'))||0;k.N.1R.K(k.N.2h||0).3l=k.N.1d.1f.7H}},dj:u(2k){1X.bH(k.N.2I);2k=2k||k.2k.gS(1X.2k);2k.aP();2k.aW();D 1d=k.N.aY(k.N.1d);D 3M=q.5C(\'4I\');k.N.1d.2y=1d.3j+3M+k.N.1d.1f.3N+1d.66;k.N.4y=q.5C(\'4I\');k.N.6J(k.N.1d,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g);k.N.4w();if(k.N.1d.1f.68){4u=T(q.5C(\'8K\'))||0;k.N.8Q(k.N.1d,k.N.1d.1f.4e.K(4u),\'68\')}E I},eJ:u(e){3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}E I}},2r:u(M){if(!M.aN||!k.1a){E}if(!k.N.1c){if(k.3a.4t){k(\'2e\',1h).1S(\'<3A 14="19:1o;Y:1P;5E:9n:9w.9y.cC(1G=0);" id="ds" 2J="ek:I;" ej="0" ep="cD"></3A>\');k.N.3A=k(\'#ds\')}k(\'2e\',1h).1S(\'<22 id="dr" 14="Y: 1P; Q: 0; O: 0; z-cZ: h3; 19: 1o;"><9h 14="6w: 0;8F: 0; h1-14: 1o; z-cZ: h0;">&7k;</9h></22>\');k.N.1c=k(\'#dr\');k.N.8R=k(\'9h\',k.N.1c)}E q.1E(u(){if(q.4Y!=\'ch\'&&q.5C(\'1u\')!=\'3g\')E;q.1f={};q.1f.aN=M.aN;q.1f.aL=18.3S(T(M.aL)||1);q.1f.aM=M.aM?M.aM:\'\';q.1f.7H=M.7H?M.7H:\'\';q.1f.68=M.68&&M.68.1K==2A?M.68:S;q.1f.2Y=M.2Y&&M.2Y.1K==2A?M.2Y:S;q.1f.3i=M.3i&&M.3i.1K==2A?M.3i:S;q.1f.7J=M.7J&&M.7J.1K==2A?M.7J:S;q.1f.bV=M.bV||I;q.1f.aQ=M.aQ||I;q.1f.3N=q.1f.aQ?(M.3N||\', \'):\'\';q.1f.aU=M.aU?1b:I;q.1f.54=18.3S(T(M.54)||aC);if(M.fx&&M.fx.1K==7M){if(!M.fx.1u||!/c6|1z|a7/.48(M.fx.1u)){M.fx.1u=\'1z\'}if(M.fx.1u==\'1z\'&&!k.fx.1z)E;if(M.fx.1u==\'a7\'&&!k.fx.61)E;M.fx.1m=18.3S(T(M.fx.1m)||8J);if(M.fx.1m>q.1f.54){M.fx.1m=q.1f.54-2a}q.1f.fx=M.fx}q.1f.4e=S;q.1f.9x=I;k(q).1p(\'bU\',\'eN\').6K(u(){k.N.1d=q;k.N.4y=q.2y}).dH(k.N.eJ).6y(k.N.bU).5B(u(){k.N.2I=1X.9T(k.N.4w,hM)})})}};k.fn.hR=k.N.2r;k.1y={2I:S,4Q:S,29:S,2D:10,26:u(el,4J,2D,eG){k.1y.4Q=el;k.1y.29=4J;k.1y.2D=T(2D)||10;k.1y.2I=1X.6V(k.1y.eF,T(eG)||40)},eF:u(){24(i=0;i<k.1y.29.1g;i++){if(!k.1y.29[i].2X){k.1y.29[i].2X=k.23(k.1a.7G(k.1y.29[i]),k.1a.74(k.1y.29[i]),k.1a.6z(k.1y.29[i]))}P{k.1y.29[i].2X.t=k.1y.29[i].3d;k.1y.29[i].2X.l=k.1y.29[i].3c}if(k.1y.4Q.A&&k.1y.4Q.A.7q==1b){69={x:k.1y.4Q.A.2v,y:k.1y.4Q.A.2q,1C:k.1y.4Q.A.1B.1C,hb:k.1y.4Q.A.1B.hb}}P{69=k.23(k.1a.7G(k.1y.4Q),k.1a.74(k.1y.4Q))}if(k.1y.29[i].2X.t>0&&k.1y.29[i].2X.y+k.1y.29[i].2X.t>69.y){k.1y.29[i].3d-=k.1y.2D}P if(k.1y.29[i].2X.t<=k.1y.29[i].2X.h&&k.1y.29[i].2X.t+k.1y.29[i].2X.hb<69.y+69.hb){k.1y.29[i].3d+=k.1y.2D}if(k.1y.29[i].2X.l>0&&k.1y.29[i].2X.x+k.1y.29[i].2X.l>69.x){k.1y.29[i].3c-=k.1y.2D}P if(k.1y.29[i].2X.l<=k.1y.29[i].2X.hP&&k.1y.29[i].2X.l+k.1y.29[i].2X.1C<69.x+69.1C){k.1y.29[i].3c+=k.1y.2D}}},8o:u(){1X.5T(k.1y.2I);k.1y.4Q=S;k.1y.29=S;24(i in k.1y.29){k.1y.29[i].2X=S}}};k.11={1c:S,F:S,4U:u(){E q.1E(u(){if(q.9I){q.A.5e.3q(\'5v\',k.11.bN);q.A=S;q.9I=I;if(k.3a.4t){q.bE="eN"}P{q.14.hq=\'\';q.14.e1=\'\';q.14.e7=\'\'}}})},bN:u(e){if(k.11.F!=S){k.11.9A(e);E I}D C=q.3U;k(1h).1J(\'3D\',k.11.bX).1J(\'5P\',k.11.9A);C.A.1s=k.1a.4a(e);C.A.4B=C.A.1s;C.A.7q=I;C.A.ho=q!=q.3U;k.11.F=C;if(C.A.5i&&q!=q.3U){bS=k.1a.3w(C.31);bQ=k.1a.2o(C);bR={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};dx=C.A.4B.x-bS.x-bQ.1C/2-bR.x;dy=C.A.4B.y-bS.y-bQ.hb/2-bR.y;k.3b.5c(C,[dx,dy])}E k.7n||I},ea:u(e){D C=k.11.F;C.A.7q=1b;D 9G=C.14;C.A.7V=k.B(C,\'19\');C.A.4n=k.B(C,\'Y\');if(!C.A.cz)C.A.cz=C.A.4n;C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.9B=0;C.A.ai=0;if(k.3a.4t){D bW=k.1a.6U(C,1b);C.A.9B=bW.l||0;C.A.ai=bW.t||0}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){9G.Y=\'2s\'}k.11.1c.5o();D 5g=C.fI(1b);k(5g).B({19:\'2B\',O:\'2P\',Q:\'2P\'});5g.14.5K=\'0\';5g.14.5z=\'0\';5g.14.5k=\'0\';5g.14.5j=\'0\';k.11.1c.1S(5g);D 3Y=k.11.1c.K(0).14;if(C.A.bD){3Y.Z=\'9F\';3Y.W=\'9F\'}P{3Y.W=C.A.1B.hb+\'U\';3Y.Z=C.A.1B.1C+\'U\'}3Y.19=\'2B\';3Y.5K=\'2P\';3Y.5z=\'2P\';3Y.5k=\'2P\';3Y.5j=\'2P\';k.23(C.A.1B,k.1a.2o(5g));if(C.A.2V){if(C.A.2V.O){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.2V.O;C.A.1B.x=C.A.1s.x-C.A.2V.O}if(C.A.2V.Q){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.2V.Q;C.A.1B.y=C.A.1s.y-C.A.2V.Q}if(C.A.2V.2L){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.1B.hb+C.A.2V.2L;C.A.1B.x=C.A.1s.x-C.A.1B.1C+C.A.2V.2L}if(C.A.2V.4D){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.1B.hb+C.A.2V.4D;C.A.1B.y=C.A.1s.y-C.A.1B.hb+C.A.2V.4D}}C.A.2v=C.A.2c.x;C.A.2q=C.A.2c.y;if(C.A.8s||C.A.2p==\'94\'){8U=k.1a.6U(C.31,1b);C.A.1B.x=C.8t+(k.3a.4t?0:k.3a.7I?-8U.l:8U.l);C.A.1B.y=C.8G+(k.3a.4t?0:k.3a.7I?-8U.t:8U.t);k(C.31).1S(k.11.1c.K(0))}if(C.A.2p){k.11.c5(C);C.A.5t.2p=k.11.ce}if(C.A.5i){k.3b.ct(C)}3Y.O=C.A.1B.x-C.A.9B+\'U\';3Y.Q=C.A.1B.y-C.A.ai+\'U\';3Y.Z=C.A.1B.1C+\'U\';3Y.W=C.A.1B.hb+\'U\';k.11.F.A.9E=I;if(C.A.gx){C.A.5t.6a=k.11.c7}if(C.A.3I!=I){k.11.1c.B(\'3I\',C.A.3I)}if(C.A.1G){k.11.1c.B(\'1G\',C.A.1G);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=\'+C.A.1G*2a+\')\')}}if(C.A.7O){k.11.1c.2R(C.A.7O);k.11.1c.K(0).7c.14.19=\'1o\'}if(C.A.4o)C.A.4o.1D(C,[5g,C.A.2c.x,C.A.2c.y]);if(k.1x&&k.1x.8D>0){k.1x.ed(C)}if(C.A.46==I){9G.19=\'1o\'}E I},c5:u(C){if(C.A.2p.1K==b0){if(C.A.2p==\'94\'){C.A.28=k.23({x:0,y:0},k.1a.2o(C.31));D 8S=k.1a.6U(C.31,1b);C.A.28.w=C.A.28.1C-8S.l-8S.r;C.A.28.h=C.A.28.hb-8S.t-8S.b}P if(C.A.2p==\'1h\'){D bY=k.1a.bm();C.A.28={x:0,y:0,w:bY.w,h:bY.h}}}P if(C.A.2p.1K==7F){C.A.28={x:T(C.A.2p[0])||0,y:T(C.A.2p[1])||0,w:T(C.A.2p[2])||0,h:T(C.A.2p[3])||0}}C.A.28.dx=C.A.28.x-C.A.1B.x;C.A.28.dy=C.A.28.y-C.A.1B.y},9H:u(F){if(F.A.8s||F.A.2p==\'94\'){k(\'2e\',1h).1S(k.11.1c.K(0))}k.11.1c.5o().2G().B(\'1G\',1);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=2a)\')}},9A:u(e){k(1h).3q(\'3D\',k.11.bX).3q(\'5P\',k.11.9A);if(k.11.F==S){E}D F=k.11.F;k.11.F=S;if(F.A.7q==I){E I}if(F.A.44==1b){k(F).B(\'Y\',F.A.4n)}D 9G=F.14;if(F.5i){k.11.1c.B(\'9b\',\'8j\')}if(F.A.7O){k.11.1c.4i(F.A.7O)}if(F.A.6N==I){if(F.A.fx>0){if(!F.A.1O||F.A.1O==\'4j\'){D x=12 k.fx(F,{1m:F.A.fx},\'O\');x.1L(F.A.2c.x,F.A.8y)}if(!F.A.1O||F.A.1O==\'49\'){D y=12 k.fx(F,{1m:F.A.fx},\'Q\');y.1L(F.A.2c.y,F.A.8v)}}P{if(!F.A.1O||F.A.1O==\'4j\')F.14.O=F.A.8y+\'U\';if(!F.A.1O||F.A.1O==\'49\')F.14.Q=F.A.8v+\'U\'}k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}P if(F.A.fx>0){F.A.9E=1b;D dh=I;if(k.1x&&k.1t&&F.A.44){dh=k.1a.3w(k.1t.1c.K(0))}k.11.1c.5w({O:dh?dh.x:F.A.1B.x,Q:dh?dh.y:F.A.1B.y},F.A.fx,u(){F.A.9E=I;if(F.A.46==I){F.14.19=F.A.7V}k.11.9H(F)})}P{k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}if(k.1x&&k.1x.8D>0){k.1x.eO(F)}if(k.1t&&F.A.44){k.1t.fC(F)}if(F.A.2Z&&(F.A.8y!=F.A.2c.x||F.A.8v!=F.A.2c.y)){F.A.2Z.1D(F,F.A.b3||[0,0,F.A.8y,F.A.8v])}if(F.A.3T)F.A.3T.1D(F);E I},c7:u(x,y,dx,dy){if(dx!=0)dx=T((dx+(q.A.gx*dx/18.3S(dx))/2)/q.A.gx)*q.A.gx;if(dy!=0)dy=T((dy+(q.A.gy*dy/18.3S(dy))/2)/q.A.gy)*q.A.gy;E{dx:dx,dy:dy,x:0,y:0}},ce:u(x,y,dx,dy){dx=18.3L(18.3r(dx,q.A.28.dx),q.A.28.w+q.A.28.dx-q.A.1B.1C);dy=18.3L(18.3r(dy,q.A.28.dy),q.A.28.h+q.A.28.dy-q.A.1B.hb);E{dx:dx,dy:dy,x:0,y:0}},bX:u(e){if(k.11.F==S||k.11.F.A.9E==1b){E}D F=k.11.F;F.A.4B=k.1a.4a(e);if(F.A.7q==I){45=18.ez(18.6b(F.A.1s.x-F.A.4B.x,2)+18.6b(F.A.1s.y-F.A.4B.y,2));if(45<F.A.6M){E}P{k.11.ea(e)}}D dx=F.A.4B.x-F.A.1s.x;D dy=F.A.4B.y-F.A.1s.y;24(D i in F.A.5t){D 3y=F.A.5t[i].1D(F,[F.A.2c.x+dx,F.A.2c.y+dy,dx,dy]);if(3y&&3y.1K==7M){dx=i!=\'7R\'?3y.dx:(3y.x-F.A.2c.x);dy=i!=\'7R\'?3y.dy:(3y.y-F.A.2c.y)}}F.A.2v=F.A.1B.x+dx-F.A.9B;F.A.2q=F.A.1B.y+dy-F.A.ai;if(F.A.5i&&(F.A.3H||F.A.2Z)){k.3b.3H(F,F.A.2v,F.A.2q)}if(F.A.4m)F.A.4m.1D(F,[F.A.2c.x+dx,F.A.2c.y+dy]);if(!F.A.1O||F.A.1O==\'4j\'){F.A.8y=F.A.2c.x+dx;k.11.1c.K(0).14.O=F.A.2v+\'U\'}if(!F.A.1O||F.A.1O==\'49\'){F.A.8v=F.A.2c.y+dy;k.11.1c.K(0).14.Q=F.A.2q+\'U\'}if(k.1x&&k.1x.8D>0){k.1x.al(F)}E I},2r:u(o){if(!k.11.1c){k(\'2e\',1h).1S(\'<22 id="e8"></22>\');k.11.1c=k(\'#e8\');D el=k.11.1c.K(0);D 4J=el.14;4J.Y=\'1P\';4J.19=\'1o\';4J.9b=\'8j\';4J.eu=\'1o\';4J.2U=\'2K\';if(1X.71){el.bE="e4"}P{4J.gi=\'1o\';4J.e7=\'1o\';4J.e1=\'1o\'}}if(!o){o={}}E q.1E(u(){if(q.9I||!k.1a)E;if(1X.71){q.gh=u(){E I};q.gj=u(){E I}}D el=q;D 5e=o.3v?k(q).gf(o.3v):k(q);if(k.3a.4t){5e.1E(u(){q.bE="e4"})}P{5e.B(\'-gI-7R-8C\',\'1o\');5e.B(\'7R-8C\',\'1o\');5e.B(\'-gH-7R-8C\',\'1o\')}q.A={5e:5e,6N:o.6N?1b:I,46:o.46?1b:I,44:o.44?o.44:I,5i:o.5i?o.5i:I,8s:o.8s?o.8s:I,3I:o.3I?T(o.3I)||0:I,1G:o.1G?2m(o.1G):I,fx:T(o.fx)||S,6R:o.6R?o.6R:I,5t:{},1s:{},4o:o.4o&&o.4o.1K==2A?o.4o:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:0,2V:o.2V?o.2V:I,bD:o.bD?1b:I,7O:o.7O||I};if(o.5t&&o.5t.1K==2A)q.A.5t.7R=o.5t;if(o.4m&&o.4m.1K==2A)q.A.4m=o.4m;if(o.2p&&((o.2p.1K==b0&&(o.2p==\'94\'||o.2p==\'1h\'))||(o.2p.1K==7F&&o.2p.1g==4))){q.A.2p=o.2p}if(o.2O){q.A.2O=o.2O}if(o.6a){if(2g o.6a==\'gz\'){q.A.gx=T(o.6a)||1;q.A.gy=T(o.6a)||1}P if(o.6a.1g==2){q.A.gx=T(o.6a[0])||1;q.A.gy=T(o.6a[1])||1}}if(o.3H&&o.3H.1K==2A){q.A.3H=o.3H}q.9I=1b;5e.1E(u(){q.3U=el});5e.1J(\'5v\',k.11.bN)})}};k.fn.23({aS:k.11.4U,7t:k.11.2r});k.1x={du:u(5J,5G,7Q,7S){E 5J<=k.11.F.A.2v&&(5J+7Q)>=(k.11.F.A.2v+k.11.F.A.1B.w)&&5G<=k.11.F.A.2q&&(5G+7S)>=(k.11.F.A.2q+k.11.F.A.1B.h)?1b:I},cV:u(5J,5G,7Q,7S){E!(5J>(k.11.F.A.2v+k.11.F.A.1B.w)||(5J+7Q)<k.11.F.A.2v||5G>(k.11.F.A.2q+k.11.F.A.1B.h)||(5G+7S)<k.11.F.A.2q)?1b:I},1s:u(5J,5G,7Q,7S){E 5J<k.11.F.A.4B.x&&(5J+7Q)>k.11.F.A.4B.x&&5G<k.11.F.A.4B.y&&(5G+7S)>k.11.F.A.4B.y?1b:I},5r:I,3Q:{},8D:0,3P:{},ed:u(C){if(k.11.F==S){E}D i;k.1x.3Q={};D bJ=I;24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){if(1j.1i.m==I){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));1j.1i.m=1b}if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);1j.1i.ay=k.1t.8x(k.1p(1j,\'id\')).7l;C.14.19=C.A.7V;bJ=1b}if(1j.1i.9i){1j.1i.9i.1D(k.1x.3P[i].K(0),[k.11.F])}}}}if(bJ){k.1t.26()}},dS:u(){k.1x.3Q={};24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);C.14.19=C.A.7V}}}}},al:u(e){if(k.11.F==S){E}k.1x.5r=I;D i;D bK=I;D eQ=0;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(k.1x.5r==I&&k.1x[1j.1i.t](1j.1i.p.x,1j.1i.p.y,1j.1i.p.1C,1j.1i.p.hb)){if(1j.1i.hc&&1j.1i.h==I){k.1x.3Q[i].2R(1j.1i.hc)}if(1j.1i.h==I&&1j.1i.7x){bK=1b}1j.1i.h=1b;k.1x.5r=1j;if(k.1t&&1j.1i.s&&k.11.F.A.44){k.1t.1c.K(0).3l=1j.1i.eV;k.1t.al(1j)}eQ++}P if(1j.1i.h==1b){if(1j.1i.7y){1j.1i.7y.1D(1j,[e,k.11.1c.K(0).7c,1j.1i.fx])}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}1j.1i.h=I}}if(k.1t&&!k.1x.5r&&k.11.F.44){k.1t.1c.K(0).14.19=\'1o\'}if(bK){k.1x.5r.1i.7x.1D(k.1x.5r,[e,k.11.1c.K(0).7c])}},eO:u(e){D i;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(1j.1i.ac){k.1x.3Q[i].4i(1j.1i.ac)}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}if(1j.1i.s){k.1t.7s[k.1t.7s.1g]=i}if(1j.1i.9l&&1j.1i.h==1b){1j.1i.h=I;1j.1i.9l.1D(1j,[e,1j.1i.fx])}1j.1i.m=I;1j.1i.h=I}k.1x.3Q={}},4U:u(){E q.1E(u(){if(q.9j){if(q.1i.s){id=k.1p(q,\'id\');k.1t.5L[id]=S;k(\'.\'+q.1i.a,q).aS()}k.1x.3P[\'d\'+q.c2]=S;q.9j=I;q.f=S}})},2r:u(o){E q.1E(u(){if(q.9j==1b||!o.3C||!k.1a||!k.11){E}q.1i={a:o.3C,ac:o.9J||I,hc:o.a5||I,eV:o.58||I,9l:o.gq||o.9l||I,7x:o.7x||o.dC||I,7y:o.7y||o.fO||I,9i:o.9i||I,t:o.6I&&(o.6I==\'du\'||o.6I==\'cV\')?o.6I:\'1s\',fx:o.fx?o.fx:I,m:I,h:I};if(o.cQ==1b&&k.1t){id=k.1p(q,\'id\');k.1t.5L[id]=q.1i.a;q.1i.s=1b;if(o.2Z){q.1i.2Z=o.2Z;q.1i.ay=k.1t.8x(id).7l}}q.9j=1b;q.c2=T(18.6o()*c9);k.1x.3P[\'d\'+q.c2]=k(q);k.1x.8D++})}};k.fn.23({dR:k.1x.4U,do:k.1x.2r});k.gD=k.1x.dS;k.3B={1c:S,8L:u(){3g=q.2y;if(!3g)E;14={dz:k(q).B(\'dz\')||\'\',4A:k(q).B(\'4A\')||\'\',8Z:k(q).B(\'8Z\')||\'\',dP:k(q).B(\'dP\')||\'\',dT:k(q).B(\'dT\')||\'\',dU:k(q).B(\'dU\')||\'\',c3:k(q).B(\'c3\')||\'\',dY:k(q).B(\'dY\')||\'\'};k.3B.1c.B(14);3x=k.3B.dX(3g);3x=3x.4E(12 bb("\\\\n","g"),"<br />");k.3B.1c.3x(\'gL\');ci=k.3B.1c.K(0).4c;k.3B.1c.3x(3x);Z=k.3B.1c.K(0).4c+ci;if(q.6l.2M&&Z>q.6l.2M[0]){Z=q.6l.2M[0]}q.14.Z=Z+\'U\';if(q.4Y==\'cf\'){W=k.3B.1c.K(0).5W+ci;if(q.6l.2M&&W>q.6l.2M[1]){W=q.6l.2M[1]}q.14.W=W+\'U\'}},dX:u(3g){cg={\'&\':\'&gK;\',\'<\':\'&gJ;\',\'>\':\'&gt;\',\'"\':\'&gs;\'};24(i in cg){3g=3g.4E(12 bb(i,\'g\'),cg[i])}E 3g},2r:u(2M){if(k.3B.1c==S){k(\'2e\',1h).1S(\'<22 id="dE" 14="Y: 1P; Q: 0; O: 0; 3n: 2K;"></22>\');k.3B.1c=k(\'#dE\')}E q.1E(u(){if(/cf|ch/.48(q.4Y)){if(q.4Y==\'ch\'){dB=q.5C(\'1u\');if(!/3g|gr/.48(dB)){E}}if(2M&&(2M.1K==bn||(2M.1K==7F&&2M.1g==2))){if(2M.1K==bn)2M=[2M,2M];P{2M[0]=T(2M[0])||8J;2M[1]=T(2M[1])||8J}q.6l={2M:2M}}k(q).5B(k.3B.8L).6y(k.3B.8L).dH(k.3B.8L);k.3B.8L.1D(q)}})}};k.fn.kc=k.3B.2r;k.4K=u(e){if(/^kd$|^ke$|^ka$|^6L$|^k9$|^k5$|^k4$|^k6$|^k7$|^2e$|^k8$|^kf$|^kg$|^kn$|^ko$|^kp$|^kq$/i.48(e.9N))E I;P E 1b};k.fx.a0=u(e,65){D c=e.7c;D cs=c.14;cs.Y=65.Y;cs.5K=65.3G.t;cs.5j=65.3G.l;cs.5k=65.3G.b;cs.5z=65.3G.r;cs.Q=65.Q+\'U\';cs.O=65.O+\'U\';e.31.ew(c,e);e.31.km(e)};k.fx.9P=u(e){if(!k.4K(e))E I;D t=k(e);D es=e.14;D 73=I;if(t.B(\'19\')==\'1o\'){5Y=t.B(\'3n\');t.B(\'3n\',\'2K\').1Y();73=1b}D V={};V.Y=t.B(\'Y\');V.1q=k.1a.2o(e);V.3G=k.1a.cy(e);D co=e.4Z?e.4Z.ei:t.B(\'hU\');V.Q=T(t.B(\'Q\'))||0;V.O=T(t.B(\'O\'))||0;D eo=\'kl\'+T(18.6o()*c9);D 6u=1h.3F(/^1T$|^br$|^kh$|^hr$|^8C$|^kj$|^8T$|^3A$|^kk$|^k3$|^k2$|^9h$|^dl$|^jM$/i.48(e.9N)?\'22\':e.9N);k.1p(6u,\'id\',eo);D jN=k(6u).2R(\'jO\');D 4h=6u.14;D Q=0;D O=0;if(V.Y==\'2s\'||V.Y==\'1P\'){Q=V.Q;O=V.O}4h.Q=Q+\'U\';4h.O=O+\'U\';4h.Y=V.Y!=\'2s\'&&V.Y!=\'1P\'?\'2s\':V.Y;4h.W=V.1q.hb+\'U\';4h.Z=V.1q.1C+\'U\';4h.5K=V.3G.t;4h.5z=V.3G.r;4h.5k=V.3G.b;4h.5j=V.3G.l;4h.2U=\'2K\';if(k.3a.4t){4h.ei=co}P{4h.jK=co}if(k.3a=="4t"){es.5E="8V(1G="+0.ex*2a+")"}es.1G=0.ex;e.31.ew(6u,e);6u.jF(e);es.5K=\'2P\';es.5z=\'2P\';es.5k=\'2P\';es.5j=\'2P\';es.Y=\'1P\';es.eu=\'1o\';es.Q=\'2P\';es.O=\'2P\';if(73){t.2G();es.3n=5Y}E{V:V,3p:k(6u)}};k.fx.8E={jE:[0,1V,1V],jG:[eD,1V,1V],jH:[e6,e6,jI],jP:[0,0,0],ks:[0,0,1V],jY:[dv,42,42],jZ:[0,1V,1V],k0:[0,0,7w],k1:[0,7w,7w],jX:[cn,cn,cn],jS:[0,2a,0],jR:[jT,jU,eb],jV:[7w,0,7w],kr:[85,eb,47],kP:[1V,eA,0],kN:[kO,50,kx],kF:[7w,0,0],kD:[ku,f8,kt],ky:[kH,0,9C],kL:[1V,0,1V],kM:[1V,kJ,0],kv:[0,6C,0],kA:[75,0,kE],kC:[eD,eB,eA],kG:[kI,kB,eB],kw:[e0,1V,1V],kz:[eL,kK,eL],kQ:[9C,9C,9C],jC:[1V,iy,iz],iA:[1V,1V,e0],iB:[0,1V,0],ix:[1V,0,1V],iv:[6C,0,0],iq:[0,0,6C],ip:[6C,6C,0],ir:[1V,dv,0],it:[1V,ah,iu],iC:[6C,0,6C],iD:[1V,0,0],iK:[ah,ah,ah],iL:[1V,1V,1V],iM:[1V,1V,0]};k.fx.6D=u(4x,dm){if(k.fx.8E[4x])E{r:k.fx.8E[4x][0],g:k.fx.8E[4x][1],b:k.fx.8E[4x][2]};P if(2W=/^6Y\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.a4(4x))E{r:T(2W[1]),g:T(2W[2]),b:T(2W[3])};P if(2W=/6Y\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.a4(4x))E{r:2m(2W[1])*2.55,g:2m(2W[2])*2.55,b:2m(2W[3])*2.55};P if(2W=/^#([a-fA-79-9])([a-fA-79-9])([a-fA-79-9])$/.a4(4x))E{r:T("77"+2W[1]+2W[1]),g:T("77"+2W[2]+2W[2]),b:T("77"+2W[3]+2W[3])};P if(2W=/^#([a-fA-79-9]{2})([a-fA-79-9]{2})([a-fA-79-9]{2})$/.a4(4x))E{r:T("77"+2W[1]),g:T("77"+2W[2]),b:T("77"+2W[3])};P E dm==1b?I:{r:1V,g:1V,b:1V}};k.fx.dD={5Q:1,5b:1,5O:1,4S:1,4D:1,4A:1,W:1,O:1,c3:1,iI:1,5k:1,5j:1,5z:1,5K:1,8b:1,6x:1,8c:1,av:1,1G:1,iE:1,iF:1,5n:1,4X:1,5U:1,5M:1,2L:1,jD:1,Q:1,Z:1,3I:1};k.fx.dA={7i:1,iG:1,iH:1,io:1,im:1,4x:1,i2:1};k.fx.8A=[\'i3\',\'i4\',\'i5\',\'i1\'];k.fx.cc={\'cd\':[\'2E\',\'dK\'],\'a8\':[\'2E\',\'bh\'],\'6w\':[\'6w\',\'\'],\'8F\':[\'8F\',\'\']};k.fn.23({5w:u(5X,H,G,J){E q.1w(u(){D a1=k.H(H,G,J);D e=12 k.dM(q,a1,5X)})},c4:u(H,J){E q.1w(u(){D a1=k.H(H,J);D e=12 k.c4(q,a1)})},8o:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D)})},i0:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D);if(q.1w&&q.1w[\'fx\'])q.1w.fx=[]})}});k.23({c4:u(2f,M){D z=q,3t;z.2D=u(){if(k.fQ(M.21))M.21.1D(2f)};z.2I=6V(u(){z.2D()},M.1m);2f.6d=z},G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W}},dM:u(2f,M,5X){D z=q,3t;D y=2f.14;D fR=k.B(2f,"2U");D 72=k.B(2f,"19");D 2j={};z.9O=(12 7g()).7z();M.G=M.G&&k.G[M.G]?M.G:\'c8\';z.ag=u(2w,43){if(k.fx.dD[2w]){if(43==\'1Y\'||43==\'2G\'||43==\'3R\'){if(!2f.6v)2f.6v={};D r=2m(k.6E(2f,2w));2f.6v[2w]=r&&r>-c9?r:(2m(k.B(2f,2w))||0);43=43==\'3R\'?(72==\'1o\'?\'1Y\':\'2G\'):43;M[43]=1b;2j[2w]=43==\'1Y\'?[0,2f.6v[2w]]:[2f.6v[2w],0];if(2w!=\'1G\')y[2w]=2j[2w][0]+(2w!=\'3I\'&&2w!=\'8Z\'?\'U\':\'\');P k.1p(y,"1G",2j[2w][0])}P{2j[2w]=[2m(k.6E(2f,2w)),2m(43)||0]}}P if(k.fx.dA[2w])2j[2w]=[k.fx.6D(k.6E(2f,2w)),k.fx.6D(43)];P if(/^6w$|8F$|2E$|a8$|cd$/i.48(2w)){D m=43.4E(/\\s+/g,\' \').4E(/6Y\\s*\\(\\s*/g,\'6Y(\').4E(/\\s*,\\s*/g,\',\').4E(/\\s*\\)/g,\')\').d5(/([^\\s]+)/g);3m(2w){1e\'6w\':1e\'8F\':1e\'cd\':1e\'a8\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];24(D i=0;i<k.fx.8A.1g;i++){D 64=k.fx.cc[2w][0]+k.fx.8A[i]+k.fx.cc[2w][1];2j[64]=2w==\'a8\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),2m(m[i])]}1r;1e\'2E\':24(D i=0;i<m.1g;i++){D bd=2m(m[i]);D a9=!hX(bd)?\'dK\':(!/cu|1o|2K|hY|hZ|i6|i7|ii|ij|ik|il/i.48(m[i])?\'bh\':I);if(a9){24(D j=0;j<k.fx.8A.1g;j++){64=\'2E\'+k.fx.8A[j]+a9;2j[64]=a9==\'bh\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),bd]}}P{y[\'ie\']=m[i]}}1r}}P{y[2w]=43}E I};24(p in 5X){if(p==\'14\'){D 5f=k.bl(5X[p]);24(7A in 5f){q.ag(7A,5f[7A])}}P if(p==\'3l\'){if(1h.af)24(D i=0;i<1h.af.1g;i++){D 7e=1h.af[i].7e||1h.af[i].i9||S;if(7e){24(D j=0;j<7e.1g;j++){if(7e[j].i8==\'.\'+5X[p]){D 6X=12 bb(\'\\.\'+5X[p]+\' {\');D 5Z=7e[j].14.9X;D 5f=k.bl(5Z.4E(6X,\'\').4E(/}/g,\'\'));24(7A in 5f){q.ag(7A,5f[7A])}}}}}}P{q.ag(p,5X[p])}}y.19=72==\'1o\'?\'2B\':72;y.2U=\'2K\';z.2D=u(){D t=(12 7g()).7z();if(t>M.1m+z.9O){5T(z.2I);z.2I=S;24(p in 2j){if(p=="1G")k.1p(y,"1G",2j[p][1]);P if(2g 2j[p][1]==\'8T\')y[p]=\'6Y(\'+2j[p][1].r+\',\'+2j[p][1].g+\',\'+2j[p][1].b+\')\';P y[p]=2j[p][1]+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}if(M.2G||M.1Y)24(D p in 2f.6v)if(p=="1G")k.1p(y,p,2f.6v[p]);P y[p]="";y.19=M.2G?\'1o\':(72!=\'1o\'?72:\'2B\');y.2U=fR;2f.6d=S;if(k.fQ(M.21))M.21.1D(2f)}P{D n=t-q.9O;D 8w=n/M.1m;24(p in 2j){if(2g 2j[p][1]==\'8T\'){y[p]=\'6Y(\'+T(k.G[M.G](8w,n,2j[p][0].r,(2j[p][1].r-2j[p][0].r),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].g,(2j[p][1].g-2j[p][0].g),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].b,(2j[p][1].b-2j[p][0].b),M.1m))+\')\'}P{D bz=k.G[M.G](8w,n,2j[p][0],(2j[p][1]-2j[p][0]),M.1m);if(p=="1G")k.1p(y,"1G",bz);P y[p]=bz+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}}}};z.2I=6V(u(){z.2D()},13);2f.6d=z},by:u(2f,2D){if(2D)2f.6d.9O-=iO;P{1X.5T(2f.6d.2I);2f.6d=S;k.2H(2f,"fx")}}});k.bl=u(5Z){D 5f={};if(2g 5Z==\'4V\'){5Z=5Z.6c().7C(\';\');24(D i=0;i<5Z.1g;i++){6X=5Z[i].7C(\':\');if(6X.1g==2){5f[k.g6(6X[0].4E(/\\-(\\w)/g,u(m,c){E c.jo()}))]=k.g6(6X[1])}}}E 5f};k.fn.23({g3:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4F\',G)})},gb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4r\',G)})},jl:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fJ\',G)})},jk:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'O\',G)})},jg:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'2L\',G)})},jf:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fh\',G)})}});k.fx.61=u(e,H,J,2S,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.1N=k.1a.2o(e);z.G=2g J==\'4V\'?J:G||S;if(!e.4s)e.4s=z.el.B(\'19\');if(2S==\'fJ\'){2S=z.el.B(\'19\')==\'1o\'?\'4r\':\'4F\'}P if(2S==\'fh\'){2S=z.el.B(\'19\')==\'1o\'?\'2L\':\'O\'}z.el.1Y();z.H=H;z.J=2g J==\'u\'?J:S;z.fx=k.fx.9P(e);z.2S=2S;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.2S==\'4r\'||z.2S==\'2L\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(z.fx.V.1q.hb,0);1r;1e\'4r\':z.fx.3p.B(\'W\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(0,z.fx.V.1q.hb);1r;1e\'O\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(z.fx.V.1q.1C,0);1r;1e\'2L\':z.fx.3p.B(\'Z\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(0,z.fx.V.1q.1C);1r}};k.fn.ji=u(5D,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.f4(q,5D,J);e.bp()})};k.fx.f4=u(e,5D,J){D z=q;z.el=k(e);z.el.1Y();z.J=J;z.5D=T(5D)||40;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.3V=5;z.5y=1;z.bp=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:jj,21:u(){z.e=12 k.fx(z.el.K(0),{1m:80,21:u(){z.5D=T(z.5D/2);if(z.5y<=z.3V)z.bp();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'Q\');z.e.1L(z.V.Q-z.5D,z.V.Q)}},\'Q\');z.e.1L(z.V.Q,z.V.Q-z.5D)}};k.fn.23({jy:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'4l\',G)})},jz:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'in\',G)})},jA:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'3R\',G)})},jB:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'4l\',G)})},jx:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'in\',G)})},jw:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'3R\',G)})},js:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'4l\',G)})},jt:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'in\',G)})},ju:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'3R\',G)})},jv:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'4l\',G)})},je:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'in\',G)})},jd:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'3R\',G)})}});k.fx.4f=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(!e.4s)e.4s=z.el.B(\'19\');if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}z.el.1Y();if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.1u=1u;J=2g J==\'u\'?J:S;8H=1;3m(2S){1e\'4F\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;8H=-1;1r;1e\'4r\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;1r;1e\'2L\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;1r;1e\'O\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;8H=-1;1r}z.e2=12 k.fx(z.el.K(0),k.H(H,z.G,u(){z.el.B(z.V);if(z.1u==\'4l\'){z.el.B(\'19\',\'1o\')}P z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s);k.2H(z.el.K(0),\'1n\')}),\'1G\');if(1u==\'in\'){z.e.1L(z.62+2a*8H,z.62);z.e2.1L(0,1)}P{z.e.1L(z.62,z.62+2a*8H);z.e2.1L(1,0)}};k.fn.23({j0:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'fp\',G)})},iW:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'9M\',G)})},iV:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'3R\',G)})}});k.fx.9L=u(e,H,W,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'9M\':\'fp\'}z.H=H;z.W=W&&W.1K==bn?W:20;z.fx=k.fx.9P(e);z.1u=1u;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.1u==\'9M\'){z.el.1Y()}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};if(z.1u==\'9M\'){z.el.1Y();z.fx.3p.B(\'W\',z.W+\'U\').B(\'Z\',\'9R\');z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');z.ef.1L(z.W,z.fx.V.1q.hb)}),\'Z\');z.ef.1L(0,z.fx.V.1q.1C)}P{z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');z.ef.1L(z.fx.V.1q.1C,0)}),\'W\');z.ef.1L(z.fx.V.1q.hb,z.W)}};k.fn.iR=u(H,4x,J,G){E q.1w(\'fv\',u(){q.6W=k(q).1p("14")||\'\';G=2g J==\'4V\'?J:G||S;J=2g J==\'u\'?J:S;D 9S=k(q).B(\'7i\');D 8I=q.31;7d(9S==\'cu\'&&8I){9S=k(8I).B(\'7i\');8I=8I.31}k(q).B(\'7i\',4x);if(2g q.6W==\'8T\')q.6W=q.6W["9X"];k(q).5w({\'7i\':9S},H,G,u(){k.2H(q,\'fv\');if(2g k(q).1p("14")==\'8T\'){k(q).1p("14")["9X"]="";k(q).1p("14")["9X"]=q.6W}P{k(q).1p("14",q.6W)}if(J)J.1D(q)})})};k.fn.23({iT:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6g\',G)})},iU:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)})},j1:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)}})},j2:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'49\',\'6g\',G)}})},j9:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)})},ja:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)})}});k.fx.5m=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;D 73=I;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1u=1u;z.H=H;z.2i=k.1a.2o(e);z.V={};z.V.Y=z.el.B(\'Y\');z.V.19=z.el.B(\'19\');if(z.V.19==\'1o\'){5Y=z.el.B(\'3n\');z.el.1Y();73=1b}z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(73){z.el.2G();z.el.B(\'3n\',5Y)}z.V.Z=z.2i.w+\'U\';z.V.W=z.2i.h+\'U\';z.V.2U=z.el.B(\'2U\');z.2i.Q=T(z.V.Q)||0;z.2i.O=T(z.V.O)||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\').B(\'W\',1u==\'6Z\'&&2S==\'49\'?1:z.2i.h+\'U\').B(\'Z\',1u==\'6Z\'&&2S==\'4j\'?1:z.2i.w+\'U\');z.21=u(){z.el.B(z.V);if(z.1u==\'6g\')z.el.2G();P z.el.1Y();k.2H(z.el.K(0),\'1n\')};3m(2S){1e\'49\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'W\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'6g\'){z.eh.1L(z.2i.h,0);z.et.1L(z.2i.Q,z.2i.Q+z.2i.h/2)}P{z.eh.1L(0,z.2i.h);z.et.1L(z.2i.Q+z.2i.h/2,z.2i.Q)}1r;1e\'4j\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Z\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'6g\'){z.eh.1L(z.2i.w,0);z.et.1L(z.2i.O,z.2i.O+z.2i.w/2)}P{z.eh.1L(0,z.2i.w);z.et.1L(z.2i.O+z.2i.w/2,z.2i.O)}1r}};k.fn.bg=u(H,3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D fx=12 k.fx.bg(q,H,3V,J);fx.bf()})};k.fx.bg=u(el,H,3V,J){D z=q;z.3V=3V;z.5y=1;z.el=el;z.H=H;z.J=J;k(z.el).1Y();z.bf=u(){z.5y++;z.e=12 k.fx(z.el,k.H(z.H,u(){z.ef=12 k.fx(z.el,k.H(z.H,u(){if(z.5y<=z.3V)z.bf();P{k.2H(z.el,\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el)}}}),\'1G\');z.ef.1L(0,1)}),\'1G\');z.e.1L(1,0)}};k.fn.23({jb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,1,2a,1b,J,\'fa\',G)})},jc:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,2a,1,1b,J,\'b4\',G)})},j8:u(H,J,G){E q.1w(\'1n\',u(){D G=G||\'fl\';12 k.fx.6G(q,H,2a,f8,1b,J,\'6h\',G)})},6G:u(H,57,30,6H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,57,30,6H,J,\'6G\',G)})}});k.fx.6G=u(e,H,57,30,6H,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.57=T(57)||2a;z.30=T(30)||2a;z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1m=k.H(H).1m;z.6H=6H||S;z.2i=k.1a.2o(e);z.V={Z:z.el.B(\'Z\'),W:z.el.B(\'W\'),4A:z.el.B(\'4A\')||\'2a%\',Y:z.el.B(\'Y\'),19:z.el.B(\'19\'),Q:z.el.B(\'Q\'),O:z.el.B(\'O\'),2U:z.el.B(\'2U\'),4S:z.el.B(\'4S\'),5O:z.el.B(\'5O\'),5Q:z.el.B(\'5Q\'),5b:z.el.B(\'5b\'),5M:z.el.B(\'5M\'),5U:z.el.B(\'5U\'),5n:z.el.B(\'5n\'),4X:z.el.B(\'4X\')};z.Z=T(z.V.Z)||e.4c||0;z.W=T(z.V.W)||e.5W||0;z.Q=T(z.V.Q)||0;z.O=T(z.V.O)||0;1q=[\'em\',\'U\',\'j7\',\'%\'];24(i in 1q){if(z.V.4A.3J(1q[i])>0){z.fg=1q[i];z.4A=2m(z.V.4A)}if(z.V.4S.3J(1q[i])>0){z.fc=1q[i];z.bw=2m(z.V.4S)||0}if(z.V.5O.3J(1q[i])>0){z.fe=1q[i];z.bc=2m(z.V.5O)||0}if(z.V.5Q.3J(1q[i])>0){z.fL=1q[i];z.bA=2m(z.V.5Q)||0}if(z.V.5b.3J(1q[i])>0){z.g8=1q[i];z.bt=2m(z.V.5b)||0}if(z.V.5M.3J(1q[i])>0){z.g4=1q[i];z.bx=2m(z.V.5M)||0}if(z.V.5U.3J(1q[i])>0){z.g9=1q[i];z.bv=2m(z.V.5U)||0}if(z.V.5n.3J(1q[i])>0){z.gc=1q[i];z.bj=2m(z.V.5n)||0}if(z.V.4X.3J(1q[i])>0){z.fK=1q[i];z.b7=2m(z.V.4X)||0}}if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\');z.1u=1u;3m(z.1u){1e\'fa\':z.4b=z.Q+z.2i.h/2;z.5a=z.Q;z.4k=z.O+z.2i.w/2;z.59=z.O;1r;1e\'b4\':z.5a=z.Q+z.2i.h/2;z.4b=z.Q;z.59=z.O+z.2i.w/2;z.4k=z.O;1r;1e\'6h\':z.5a=z.Q-z.2i.h/4;z.4b=z.Q;z.59=z.O-z.2i.w/4;z.4k=z.O;1r}z.be=I;z.t=(12 7g).7z();z.4w=u(){5T(z.2I);z.2I=S};z.2D=u(){if(z.be==I){z.el.1Y();z.be=1b}D t=(12 7g).7z();D n=t-z.t;D p=n/z.1m;if(t>=z.1m+z.t){9T(u(){o=1;if(z.1u){t=z.5a;l=z.59;if(z.1u==\'6h\')o=0}z.bs(z.30,l,t,1b,o)},13);z.4w()}P{o=1;if(!k.G||!k.G[z.G]){s=((-18.5H(p*18.2Q)/2)+0.5)*(z.30-z.57)+z.57}P{s=k.G[z.G](p,n,z.57,(z.30-z.57),z.1m)}if(z.1u){if(!k.G||!k.G[z.G]){t=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b;l=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k;if(z.1u==\'6h\')o=((-18.5H(p*18.2Q)/2)+0.5)*(-0.9Y)+0.9Y}P{t=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.1m);l=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.1m);if(z.1u==\'6h\')o=k.G[z.G](p,n,0.9Y,-0.9Y,z.1m)}}z.bs(s,l,t,I,o)}};z.2I=6V(u(){z.2D()},13);z.bs=u(4q,O,Q,fM,1G){z.el.B(\'W\',z.W*4q/2a+\'U\').B(\'Z\',z.Z*4q/2a+\'U\').B(\'O\',O+\'U\').B(\'Q\',Q+\'U\').B(\'4A\',z.4A*4q/2a+z.fg);if(z.bw)z.el.B(\'4S\',z.bw*4q/2a+z.fc);if(z.bc)z.el.B(\'5O\',z.bc*4q/2a+z.fe);if(z.bA)z.el.B(\'5Q\',z.bA*4q/2a+z.fL);if(z.bt)z.el.B(\'5b\',z.bt*4q/2a+z.g8);if(z.bx)z.el.B(\'5M\',z.bx*4q/2a+z.g4);if(z.bv)z.el.B(\'5U\',z.bv*4q/2a+z.g9);if(z.bj)z.el.B(\'5n\',z.bj*4q/2a+z.gc);if(z.b7)z.el.B(\'4X\',z.b7*4q/2a+z.fK);if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+1G*2a+")";z.el.K(0).14.1G=1G}if(fM){if(z.6H){z.el.B(z.V)}if(z.1u==\'b4\'||z.1u==\'6h\'){z.el.B(\'19\',\'1o\');if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+2a+")";z.el.K(0).14.1G=1}}P z.el.B(\'19\',\'2B\');if(z.J)z.J.1D(z.el.K(0));k.2H(z.el.K(0),\'1n\')}}};k.fn.23({9U:u(H,1O,G){o=k.H(H);E q.1w(\'1n\',u(){12 k.fx.9U(q,o,1O,G)})},j6:u(H,1O,G){E q.1E(u(){k(\'a[@3h*="#"]\',q).5h(u(e){fW=q.3h.7C(\'#\');k(\'#\'+fW[1]).9U(H,1O,G);E I})})}});k.fx.9U=u(e,o,1O,G){D z=q;z.o=o;z.e=e;z.1O=/fT|gd/.48(1O)?1O:I;z.G=G;p=k.1a.3w(e);s=k.1a.6z();z.4w=u(){5T(z.2I);z.2I=S;k.2H(z.e,\'1n\')};z.t=(12 7g).7z();s.h=s.h>s.ih?(s.h-s.ih):s.h;s.w=s.w>s.iw?(s.w-s.iw):s.w;z.5a=p.y>s.h?s.h:p.y;z.59=p.x>s.w?s.w:p.x;z.4b=s.t;z.4k=s.l;z.2D=u(){D t=(12 7g).7z();D n=t-z.t;D p=n/z.o.1m;if(t>=z.o.1m+z.t){z.4w();9T(u(){z.d3(z.5a,z.59)},13)}P{if(!z.1O||z.1O==\'fT\'){if(!k.G||!k.G[z.G]){9V=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b}P{9V=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.o.1m)}}P{9V=z.4b}if(!z.1O||z.1O==\'gd\'){if(!k.G||!k.G[z.G]){9W=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k}P{9W=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.o.1m)}}P{9W=z.4k}z.d3(9V,9W)}};z.d3=u(t,l){1X.j4(l,t)};z.2I=6V(u(){z.2D()},13)};k.fn.cY=u(3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.cY(q,3V,J);e.cG()})};k.fx.cY=u(e,3V,J){D z=q;z.el=k(e);z.el.1Y();z.3V=T(3V)||3;z.J=J;z.5y=1;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.cG=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(e,{1m:60,21:u(){if(z.5y<=z.3V)z.cG();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'O\');z.e.1L(z.V.O-20,z.V.O)}},\'O\');z.e.1L(z.V.O+20,z.V.O-20)}},\'O\');z.e.1L(z.V.O,z.V.O+20)}};k.fn.23({fo:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'in\',G)})},fq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'4l\',G)})},iY:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'3R\',G)})},iX:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'in\',G)})},jr:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'4l\',G)})},jq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'3R\',G)})},jp:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'in\',G)})},jn:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'4l\',G)})},jm:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'3R\',G)})},iP:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'in\',G)})},ic:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'4l\',G)})},ib:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'3R\',G)})}});k.fx.1z=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}if(!e.4s)e.4s=z.el.B(\'19\');z.el.1Y();z.H=H;z.fx=k.fx.9P(e);z.1u=1u;z.2S=2S;z.21=u(){if(z.1u==\'4l\')z.el.B(\'3n\',\'2K\');k.fx.a0(z.fx.3p.K(0),z.fx.V);if(z.1u==\'in\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.B(\'19\',\'1o\');z.el.B(\'3n\',\'dd\')}if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'W\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.hb,0);z.7v.1L(0,z.fx.V.1q.hb)}P{z.ef.1L(0,-z.fx.V.1q.hb);z.7v.1L(z.fx.V.1q.hb,0)}1r;1e\'4r\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.hb,0)}P{z.ef.1L(0,z.fx.V.1q.hb)}1r;1e\'O\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'Z\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.1C,0);z.7v.1L(0,z.fx.V.1q.1C)}P{z.ef.1L(0,-z.fx.V.1q.1C);z.7v.1L(z.fx.V.1q.1C,0)}1r;1e\'2L\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.1C,0)}P{z.ef.1L(0,z.fx.V.1q.1C)}1r}};k.3f=S;k.fn.ig=u(o){E q.1w(\'1n\',u(){12 k.fx.dG(q,o)})};k.fx.dG=u(e,o){if(k.3f==S){k(\'2e\',1h).1S(\'<22 id="3f"></22>\');k.3f=k(\'#3f\')}k.3f.B(\'19\',\'2B\').B(\'Y\',\'1P\');D z=q;z.el=k(e);if(!o||!o.30){E}if(o.30.1K==b0&&1h.9e(o.30)){o.30=1h.9e(o.30)}P if(!o.30.dq){E}if(!o.1m){o.1m=g5}z.1m=o.1m;z.30=o.30;z.8r=o.3l;z.21=o.21;if(z.8r){k.3f.2R(z.8r)}z.a3=0;z.a2=0;if(k.dF){z.a3=(T(k.3f.B(\'5b\'))||0)+(T(k.3f.B(\'5O\'))||0)+(T(k.3f.B(\'4X\'))||0)+(T(k.3f.B(\'5U\'))||0);z.a2=(T(k.3f.B(\'4S\'))||0)+(T(k.3f.B(\'5Q\'))||0)+(T(k.3f.B(\'5M\'))||0)+(T(k.3f.B(\'5n\'))||0)}z.26=k.23(k.1a.3w(z.el.K(0)),k.1a.2o(z.el.K(0)));z.2T=k.23(k.1a.3w(z.30),k.1a.2o(z.30));z.26.1C-=z.a3;z.26.hb-=z.a2;z.2T.1C-=z.a3;z.2T.hb-=z.a2;z.J=o.21;k.3f.B(\'Z\',z.26.1C+\'U\').B(\'W\',z.26.hb+\'U\').B(\'Q\',z.26.y+\'U\').B(\'O\',z.26.x+\'U\').5w({Q:z.2T.y,O:z.2T.x,Z:z.2T.1C,W:z.2T.hb},z.1m,u(){if(z.8r)k.3f.4i(z.8r);k.3f.B(\'19\',\'1o\');if(z.21&&z.21.1K==2A){z.21.1D(z.el.K(0),[z.30])}k.2H(z.el.K(0),\'1n\')})};k.1v={M:{2E:10,ec:\'1Q/iJ.eZ\',e3:\'<1T 2J="1Q/6g.da" />\',eW:0.8,d8:\'iN a6\',dc:\'57\',3W:8J},jQ:I,jW:I,6j:S,8m:I,8k:I,d1:u(2k){if(!k.1v.8k||k.1v.8m)E;D 3K=2k.7L||2k.7K||-1;3m(3K){1e 35:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jJ\').K(0));1r;1e 36:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jL\').K(0));1r;1e 37:1e 8:1e 33:1e 80:1e kb:D 9p=k(\'#87\');if(9p.K(0).53!=S){9p.K(0).53.1D(9p.K(0))}1r;1e 38:1r;1e 39:1e 34:1e 32:1e gl:1e 78:D 9k=k(\'#88\');if(9k.K(0).53!=S){9k.K(0).53.1D(9k.K(0))}1r;1e 40:1r;1e 27:k.1v.au();1r}},7q:u(M){if(M)k.23(k.1v.M,M);if(1X.2k){k(\'2e\',1h).1J(\'6y\',k.1v.d1)}P{k(1h).1J(\'6y\',k.1v.d1)}k(\'a\').1E(u(){el=k(q);en=el.1p(\'4I\')||\'\';e9=el.1p(\'3h\')||\'\';ev=/\\.da|\\.gw|\\.8X|\\.eZ|\\.gn/g;if(e9.6c().d5(ev)!=S&&en.6c().3J(\'eU\')==0){el.1J(\'5h\',k.1v.26)}});if(k.3a.4t){3A=1h.3F(\'3A\');k(3A).1p({id:\'cN\',2J:\'ek:I;\',ej:\'cD\',ep:\'cD\'}).B({19:\'1o\',Y:\'1P\',Q:\'0\',O:\'0\',5E:\'9n:9w.9y.cC(1G=0)\'});k(\'2e\').1S(3A)}8n=1h.3F(\'22\');k(8n).1p(\'id\',\'cP\').B({Y:\'1P\',19:\'1o\',Q:\'0\',O:\'0\',1G:0}).1S(1h.8M(\' \')).1J(\'5h\',k.1v.au);6A=1h.3F(\'22\');k(6A).1p(\'id\',\'eK\').B({4X:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cE=1h.3F(\'22\');k(cE).1p(\'id\',\'dg\').B({4X:k.1v.M.2E+\'U\',5n:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cF=1h.3F(\'a\');k(cF).1p({id:\'gg\',3h:\'#\'}).B({Y:\'1P\',2L:k.1v.M.2E+\'U\',Q:\'0\'}).1S(k.1v.M.e3).1J(\'5h\',k.1v.au);7m=1h.3F(\'22\');k(7m).1p(\'id\',\'cM\').B({Y:\'2s\',cA:\'O\',6w:\'0 9F\',3I:1}).1S(6A).1S(cE).1S(cF);2b=1h.3F(\'1T\');2b.2J=k.1v.M.ec;k(2b).1p(\'id\',\'eM\').B({Y:\'1P\'});4G=1h.3F(\'a\');k(4G).1p({id:\'87\',3h:\'#\'}).B({Y:\'1P\',19:\'1o\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));4M=1h.3F(\'a\');k(4M).1p({id:\'88\',3h:\'#\'}).B({Y:\'1P\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));1Z=1h.3F(\'22\');k(1Z).1p(\'id\',\'eE\').B({19:\'1o\',Y:\'2s\',2U:\'2K\',cA:\'O\',6w:\'0 9F\',Q:\'0\',O:\'0\',3I:2}).1S([2b,4G,4M]);6F=1h.3F(\'22\');k(6F).1p(\'id\',\'ao\').B({19:\'1o\',Y:\'1P\',2U:\'2K\',Q:\'0\',O:\'0\',cA:\'cv\',7i:\'cu\',hC:\'0\'}).1S([1Z,7m]);k(\'2e\').1S(8n).1S(6F)},26:u(e,C){el=C?k(C):k(q);9t=el.1p(\'4I\');D 6B,4u,4G,4M;if(9t!=\'eU\'){k.1v.6j=9t;8Y=k(\'a[@4I=\'+9t+\']\');6B=8Y.1N();4u=8Y.cZ(C?C:q);4G=8Y.K(4u-1);4M=8Y.K(4u+1)}89=el.1p(\'3h\');6A=el.1p(\'4g\');3O=k.1a.6z();8n=k(\'#cP\');if(!k.1v.8k){k.1v.8k=1b;if(k.3a.4t){k(\'#cN\').B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y()}8n.B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y().fX(cO,k.1v.M.eW,u(){k.1v.cw(89,6A,3O,6B,4u,4G,4M)});k(\'#ao\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\')}P{k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.cw(89,6A,3O,6B,4u,4G,4M)}E I},cw:u(89,gP,3O,6B,4u,4G,4M){k(\'#cW\').bk();aX=k(\'#87\');aX.2G();aO=k(\'#88\');aO.2G();2b=k(\'#eM\');1Z=k(\'#eE\');6F=k(\'#ao\');7m=k(\'#cM\').B(\'3n\',\'2K\');k(\'#eK\').3x(6A);k.1v.8m=1b;if(6B)k(\'#dg\').3x(k.1v.M.d8+\' \'+(4u+1)+\' \'+k.1v.M.dc+\' \'+6B);if(4G){aX.K(0).53=u(){q.5B();k.1v.26(S,4G);E I}}if(4M){aO.K(0).53=u(){q.5B();k.1v.26(S,4M);E I}}2b.1Y();82=k.1a.2o(1Z.K(0));56=18.3r(82.1C,2b.K(0).Z+k.1v.M.2E*2);6f=18.3r(82.hb,2b.K(0).W+k.1v.M.2E*2);2b.B({O:(56-2b.K(0).Z)/2+\'U\',Q:(6f-2b.K(0).W)/2+\'U\'});1Z.B({Z:56+\'U\',W:6f+\'U\'}).1Y();dw=k.1a.bm();6F.B(\'Q\',3O.t+(dw.h/15)+\'U\');if(6F.B(\'19\')==\'1o\'){6F.1Y().7f(k.1v.M.3W)}6k=12 9s;k(6k).1p(\'id\',\'cW\').1J(\'hJ\',u(){56=6k.Z+k.1v.M.2E*2;6f=6k.W+k.1v.M.2E*2;2b.2G();1Z.5w({W:6f},82.hb!=6f?k.1v.M.3W:1,u(){1Z.5w({Z:56},82.1C!=56?k.1v.M.3W:1,u(){1Z.bG(6k);k(6k).B({Y:\'1P\',O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\'}).7f(k.1v.M.3W,u(){db=k.1a.2o(7m.K(0));if(4G){aX.B({O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}if(4M){aO.B({O:56/2+k.1v.M.2E*2+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}7m.B({Z:56+\'U\',Q:-db.hb+\'U\',3n:\'dd\'}).5w({Q:-1},k.1v.M.3W,u(){k.1v.8m=I})})})})});6k.2J=89},au:u(){k(\'#cW\').bk();k(\'#ao\').2G();k(\'#cM\').B(\'3n\',\'2K\');k(\'#cP\').fX(cO,0,u(){k(q).2G();if(k.3a.4t){k(\'#cN\').2G()}});k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.6j=S;k.1v.8k=I;k.1v.8m=I;E I}};k.R={1A:S,41:S,F:S,1s:S,1q:S,Y:S,9a:u(e){k.R.F=(q.d0)?q.d0:q;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(k.R.F).B(\'Z\'))||0,W:T(k(k.R.F).B(\'W\'))||0};k.R.Y={Q:T(k(k.R.F).B(\'Q\'))||0,O:T(k(k.R.F).B(\'O\'))||0};k(1h).1J(\'3D\',k.R.cR).1J(\'5P\',k.R.cK);if(2g k.R.F.1k.g2===\'u\'){k.R.F.1k.g2.1D(k.R.F)}E I},cK:u(e){k(1h).3q(\'3D\',k.R.cR).3q(\'5P\',k.R.cK);if(2g k.R.F.1k.fN===\'u\'){k.R.F.1k.fN.1D(k.R.F)}k.R.F=S},cR:u(e){if(!k.R.F){E}1s=k.1a.4a(e);7p=k.R.Y.Q-k.R.1s.y+1s.y;7r=k.R.Y.O-k.R.1s.x+1s.x;7p=18.3r(18.3L(7p,k.R.F.1k.8g-k.R.1q.W),k.R.F.1k.7h);7r=18.3r(18.3L(7r,k.R.F.1k.8h-k.R.1q.Z),k.R.F.1k.70);if(2g k.R.F.1k.4m===\'u\'){D 8a=k.R.F.1k.4m.1D(k.R.F,[7r,7p]);if(2g 8a==\'hh\'&&8a.1g==2){7r=8a[0];7p=8a[1]}}k.R.F.14.Q=7p+\'U\';k.R.F.14.O=7r+\'U\';E I},26:u(e){k(1h).1J(\'3D\',k.R.8j).1J(\'5P\',k.R.8o);k.R.1A=q.1A;k.R.41=q.41;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(q.1A).B(\'Z\'))||0,W:T(k(q.1A).B(\'W\'))||0};k.R.Y={Q:T(k(q.1A).B(\'Q\'))||0,O:T(k(q.1A).B(\'O\'))||0};if(k.R.1A.1k.4o){k.R.1A.1k.4o.1D(k.R.1A,[q])}E I},8o:u(){k(1h).3q(\'3D\',k.R.8j).3q(\'5P\',k.R.8o);if(k.R.1A.1k.3T){k.R.1A.1k.3T.1D(k.R.1A,[k.R.41])}k.R.1A=S;k.R.41=S},6i:u(dx,az){E 18.3L(18.3r(k.R.1q.Z+dx*az,k.R.1A.1k.av),k.R.1A.1k.6x)},6m:u(dy,az){E 18.3L(18.3r(k.R.1q.W+dy*az,k.R.1A.1k.8c),k.R.1A.1k.8b)},fb:u(W){E 18.3L(18.3r(W,k.R.1A.1k.8c),k.R.1A.1k.8b)},8j:u(e){if(k.R.1A==S){E}1s=k.1a.4a(e);dx=1s.x-k.R.1s.x;dy=1s.y-k.R.1s.y;1I={Z:k.R.1q.Z,W:k.R.1q.W};2z={Q:k.R.Y.Q,O:k.R.Y.O};3m(k.R.41){1e\'e\':1I.Z=k.R.6i(dx,1);1r;1e\'fj\':1I.Z=k.R.6i(dx,1);1I.W=k.R.6m(dy,1);1r;1e\'w\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'5F\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1I.W=k.R.6m(dy,1);1r;1e\'76\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'n\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1r;1e\'at\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,1);1r;1e\'s\':1I.W=k.R.6m(dy,1);1r}if(k.R.1A.1k.4v){if(k.R.41==\'n\'||k.R.41==\'s\')4p=1I.W*k.R.1A.1k.4v;P 4p=1I.Z;4W=k.R.fb(4p*k.R.1A.1k.4v);4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.W=4W;1I.Z=4p}if(2z.Q<k.R.1A.1k.7h){4W=1I.W+2z.Q-k.R.1A.1k.7h;2z.Q=k.R.1A.1k.7h;if(k.R.1A.1k.4v){4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.Z=4p}1I.W=4W}if(2z.O<k.R.1A.1k.70){4p=1I.Z+2z.O-k.R.1A.1k.70;2z.O=k.R.1A.1k.70;if(k.R.1A.1k.4v){4W=4p*k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}1I.W=4W}1I.Z=4p}if(2z.Q+1I.W>k.R.1A.1k.8g){1I.W=k.R.1A.1k.8g-2z.Q;if(k.R.1A.1k.4v){1I.Z=1I.W/k.R.1A.1k.4v}}if(2z.O+1I.Z>k.R.1A.1k.8h){1I.Z=k.R.1A.1k.8h-2z.O;if(k.R.1A.1k.4v){1I.W=1I.Z*k.R.1A.1k.4v}}D 6p=I;if(k.R.1A.1k.f7){6p=k.R.1A.1k.f7.1D(k.R.1A,[1I,2z]);if(6p){if(6p.1q){k.23(1I,6p.1q)}if(6p.Y){k.23(2z,6p.Y)}}}8d=k.R.1A.14;8d.O=2z.O+\'U\';8d.Q=2z.Q+\'U\';8d.Z=1I.Z+\'U\';8d.W=1I.W+\'U\';E I},2r:u(M){if(!M||!M.3Z||M.3Z.1K!=7M){E}E q.1E(u(){D el=q;el.1k=M;el.1k.av=M.av||10;el.1k.8c=M.8c||10;el.1k.6x=M.6x||6P;el.1k.8b=M.8b||6P;el.1k.7h=M.7h||-aC;el.1k.70=M.70||-aC;el.1k.8h=M.8h||6P;el.1k.8g=M.8g||6P;d6=k(el).B(\'Y\');if(!(d6==\'2s\'||d6==\'1P\')){el.14.Y=\'2s\'}fS=/n|at|e|fj|s|5F|w|76/g;24(i in el.1k.3Z){if(i.6c().d5(fS)!=S){if(el.1k.3Z[i].1K==b0){3v=k(el.1k.3Z[i]);if(3v.1N()>0){el.1k.3Z[i]=3v.K(0)}}if(el.1k.3Z[i].4Y){el.1k.3Z[i].1A=el;el.1k.3Z[i].41=i;k(el.1k.3Z[i]).1J(\'5v\',k.R.26)}}}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){aV=k(el.1k.5S);if(aV.1N()>0){aV.1E(u(){q.d0=el});aV.1J(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).1J(\'5v\',k.R.9a)}}})},4U:u(){E q.1E(u(){D el=q;24(i in el.1k.3Z){el.1k.3Z[i].1A=S;el.1k.3Z[i].41=S;k(el.1k.3Z[i]).3q(\'5v\',k.R.26)}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){3v=k(el.1k.5S);if(3v.1N()>0){3v.3q(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).3q(\'5v\',k.R.9a)}}el.1k=S})}};k.fn.23({hz:k.R.2r,hs:k.R.4U});k.2C=S;k.7n=I;k.3k=S;k.7o=[];k.9v=u(e){D 3K=e.7L||e.7K||-1;if(3K==17||3K==16){k.7n=1b}};k.9u=u(e){k.7n=I};k.dL=u(e){q.f.1s=k.1a.4a(e);q.f.1M=k.23(k.1a.3w(q),k.1a.2o(q));q.f.3e=k.1a.6z(q);q.f.1s.x-=q.f.1M.x;q.f.1s.y-=q.f.1M.y;k(q).1S(k.2C.K(0));if(q.f.hc)k.2C.2R(q.f.hc).B(\'19\',\'2B\');k.2C.B({19:\'2B\',Z:\'2P\',W:\'2P\'});if(q.f.o){k.2C.B(\'1G\',q.f.o)}k.3k=q;k.96=I;k.7o=[];q.f.el.1E(u(){q.1M={x:q.8t+(q.4Z&&!k.3a.7I?T(q.4Z.5b)||0:0)+(k.3k.3c||0),y:q.8G+(q.4Z&&!k.3a.7I?T(q.4Z.4S)||0:0)+(k.3k.3d||0),1C:q.4c,hb:q.5W};if(q.s==1b){if(k.7n==I){q.s=I;k(q).4i(k.3k.f.7j)}P{k.96=1b;k.7o[k.7o.1g]=k.1p(q,\'id\')}}});k.am.1D(q,[e]);k(1h).1J(\'3D\',k.am).1J(\'5P\',k.cX);E I};k.am=u(e){if(!k.3k)E;k.fd.1D(k.3k,[e])};k.fd=u(e){if(!k.3k)E;D 1s=k.1a.4a(e);D 3e=k.1a.6z(k.3k);1s.x+=3e.l-q.f.3e.l-q.f.1M.x;1s.y+=3e.t-q.f.3e.t-q.f.1M.y;D 93=18.3L(1s.x,q.f.1s.x);D 5F=18.3L(18.3S(1s.x-q.f.1s.x),18.3S(q.f.3e.w-93));D 99=18.3L(1s.y,q.f.1s.y);D 9g=18.3L(18.3S(1s.y-q.f.1s.y),18.3S(q.f.3e.h-99));if(q.3d>0&&1s.y-20<q.3d){D 3X=18.3L(3e.t,10);99-=3X;9g+=3X;q.3d-=3X}P if(q.3d+q.f.1M.h<q.f.3e.h&&1s.y+20>q.3d+q.f.1M.h){D 3X=18.3L(q.f.3e.h-q.3d,10);q.3d+=3X;if(q.3d!=3e.t)9g+=3X}if(q.3c>0&&1s.x-20<q.3c){D 3X=18.3L(3e.l,10);93-=3X;5F+=3X;q.3c-=3X}P if(q.3c+q.f.1M.w<q.f.3e.w&&1s.x+20>q.3c+q.f.1M.w){D 3X=18.3L(q.f.3e.w-q.3c,10);q.3c+=3X;if(q.3c!=3e.l)5F+=3X}k.2C.B({O:93+\'U\',Q:99+\'U\',Z:5F+\'U\',W:9g+\'U\'});k.2C.l=93+q.f.3e.l;k.2C.t=99+q.f.3e.t;k.2C.r=k.2C.l+5F;k.2C.b=k.2C.t+9g;k.96=I;q.f.el.1E(u(){aw=k.7o.3J(k.1p(q,\'id\'));if(!(q.1M.x>k.2C.r||(q.1M.x+q.1M.1C)<k.2C.l||q.1M.y>k.2C.b||(q.1M.y+q.1M.hb)<k.2C.t)){k.96=1b;if(q.s!=1b){q.s=1b;k(q).2R(k.3k.f.7j)}if(aw!=-1){q.s=I;k(q).4i(k.3k.f.7j)}}P if((q.s==1b)&&(aw==-1)){q.s=I;k(q).4i(k.3k.f.7j)}P if((!q.s)&&(k.7n==1b)&&(aw!=-1)){q.s=1b;k(q).2R(k.3k.f.7j)}});E I};k.cX=u(e){if(!k.3k)E;k.g0.1D(k.3k,[e])};k.g0=u(e){k(1h).3q(\'3D\',k.am).3q(\'5P\',k.cX);if(!k.3k)E;k.2C.B(\'19\',\'1o\');if(q.f.hc)k.2C.4i(q.f.hc);k.3k=I;k(\'2e\').1S(k.2C.K(0));if(k.96==1b){if(q.f.98)q.f.98(k.cJ(k.1p(q,\'id\')))}P{if(q.f.9d)q.f.9d(k.cJ(k.1p(q,\'id\')))}k.7o=[]};k.cJ=u(s){D h=\'\';D o=[];if(a=k(\'#\'+s)){a.K(0).f.el.1E(u(){if(q.s==1b){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[o.1g]=k.1p(q,\'id\')}})}E{7l:h,o:o}};k.fn.gZ=u(o){if(!k.2C){k(\'2e\',1h).1S(\'<22 id="2C"></22>\').1J(\'7B\',k.9v).1J(\'6y\',k.9u);k.2C=k(\'#2C\');k.2C.B({Y:\'1P\',19:\'1o\'});if(1X.2k){k(\'2e\',1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}P{k(1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}}if(!o){o={}}E q.1E(u(){if(q.eP)E;q.eP=1b;q.f={a:o.3C,o:o.1G?2m(o.1G):I,7j:o.eS?o.eS:I,hc:o.58?o.58:I,98:o.98?o.98:I,9d:o.9d?o.9d:I};q.f.el=k(\'.\'+o.3C);k(q).1J(\'5v\',k.dL).B(\'Y\',\'2s\')})};k.3b={bM:1,eH:u(3t){D 3t=3t;E q.1E(u(){q.4z.6s.1E(u(ab){k.3b.5c(q,3t[ab])})})},K:u(){D 3t=[];q.1E(u(cL){if(q.bI){3t[cL]=[];D C=q;D 1q=k.1a.2o(q);q.4z.6s.1E(u(ab){D x=q.8t;D y=q.8G;92=T(x*2a/(1q.w-q.4c));91=T(y*2a/(1q.h-q.5W));3t[cL][ab]=[92||0,91||0,x||0,y||0]})}});E 3t},ct:u(C){C.A.fu=C.A.28.w-C.A.1B.1C;C.A.fw=C.A.28.h-C.A.1B.hb;if(C.9r.4z.bC){9Z=C.9r.4z.6s.K(C.bF+1);if(9Z){C.A.28.w=(T(k(9Z).B(\'O\'))||0)+C.A.1B.1C;C.A.28.h=(T(k(9Z).B(\'Q\'))||0)+C.A.1B.hb}9Q=C.9r.4z.6s.K(C.bF-1);if(9Q){D cU=T(k(9Q).B(\'O\'))||0;D cH=T(k(9Q).B(\'O\'))||0;C.A.28.x+=cU;C.A.28.y+=cH;C.A.28.w-=cU;C.A.28.h-=cH}}C.A.g7=C.A.28.w-C.A.1B.1C;C.A.eC=C.A.28.h-C.A.1B.hb;if(C.A.2O){C.A.gx=((C.A.28.w-C.A.1B.1C)/C.A.2O)||1;C.A.gy=((C.A.28.h-C.A.1B.hb)/C.A.2O)||1;C.A.fU=C.A.g7/C.A.2O;C.A.fH=C.A.eC/C.A.2O}C.A.28.dx=C.A.28.x-C.A.2c.x;C.A.28.dy=C.A.28.y-C.A.2c.y;k.11.1c.B(\'9b\',\'ad\')},3H:u(C,x,y){if(C.A.2O){fE=T(x/C.A.fU);92=fE*2a/C.A.2O;ft=T(y/C.A.fH);91=ft*2a/C.A.2O}P{92=T(x*2a/C.A.fu);91=T(y*2a/C.A.fw)}C.A.b3=[92||0,91||0,x||0,y||0];if(C.A.3H)C.A.3H.1D(C,C.A.b3)},eI:u(2k){3K=2k.7L||2k.7K||-1;3m(3K){1e 35:k.3b.5c(q.3U,[ae,ae]);1r;1e 36:k.3b.5c(q.3U,[-ae,-ae]);1r;1e 37:k.3b.5c(q.3U,[-q.3U.A.gx||-1,0]);1r;1e 38:k.3b.5c(q.3U,[0,-q.3U.A.gy||-1]);1r;1e 39:k.3b.5c(q.3U,[q.3U.A.gx||1,0]);1r;1e 40:k.11.5c(q.3U,[0,q.3U.A.gy||1]);1r}},5c:u(C,Y){if(!C.A){E}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.4n=k.B(C,\'Y\');if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){C.14.Y=\'2s\'}k.11.c5(C);k.3b.ct(C);dx=T(Y[0])||0;dy=T(Y[1])||0;2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.2O){3y=k.11.c7.1D(C,[2v,2q,dx,dy]);if(3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy}3y=k.11.ce.1D(C,[2v,2q,dx,dy]);if(3y&&3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.5i&&(C.A.3H||C.A.2Z)){k.3b.3H(C,2v,2q)}2v=!C.A.1O||C.A.1O==\'4j\'?2v:C.A.2c.x||0;2q=!C.A.1O||C.A.1O==\'49\'?2q:C.A.2c.y||0;C.14.O=2v+\'U\';C.14.Q=2q+\'U\'},2r:u(o){E q.1E(u(){if(q.bI==1b||!o.3C||!k.1a||!k.11||!k.1x){E}5x=k(o.3C,q);if(5x.1N()==0){E}D 4N={2p:\'94\',5i:1b,3H:o.3H&&o.3H.1K==2A?o.3H:S,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:S,3v:q,1G:o.1G||I};if(o.2O&&T(o.2O)){4N.2O=T(o.2O)||1;4N.2O=4N.2O>0?4N.2O:1}if(5x.1N()==1)5x.7t(4N);P{k(5x.K(0)).7t(4N);4N.3v=S;5x.7t(4N)}5x.7B(k.3b.eI);5x.1p(\'bM\',k.3b.bM++);q.bI=1b;q.4z={};q.4z.er=4N.er;q.4z.2O=4N.2O;q.4z.6s=5x;q.4z.bC=o.bC?1b:I;bZ=q;bZ.4z.6s.1E(u(2N){q.bF=2N;q.9r=bZ});if(o.3t&&o.3t.1K==7F){24(i=o.3t.1g-1;i>=0;i--){if(o.3t[i].1K==7F&&o.3t[i].1g==2){el=q.4z.6s.K(i);if(el.4Y){k.3b.5c(el,o.3t[i])}}}}})}};k.fn.23({hN:k.3b.2r,hS:k.3b.eH,hG:k.3b.K});k.2u={5I:[],eg:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},dp:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u-1;1Q=k(\'1T\',X.L.5u);if(1z<1){1z=X.L.1Q.1g}X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},2I:u(c){X=1h.9e(c);if(X.L.6o){1z=X.L.3u;7d(1z==X.L.3u){1z=1+T(18.6o()*X.L.1Q.1g)}}P{1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},go:u(o){D X;if(o&&o.1K==7M){if(o.2b){X=1h.9e(o.2b.X);5N=1X.hn.3h.7C("#");o.2b.6S=S;if(5N.1g==2){1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}P{1z=1}}if(o.90){o.90.5B();X=o.90.31.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}5N=o.90.3h.7C("#");1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}if(X.L.1Q.1g<1z||1z<1){1z=1}X.L.3u=1z;52=k.1a.2o(X);dt=k.1a.aT(X);d9=k.1a.6U(X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}if(X.L.2b){y=T(dt.t)+T(d9.t);if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}if(!X.L.c1){X.L.df=o.2b?o.2b.W:(T(X.L.2b.B(\'W\'))||0);X.L.c1=o.2b?o.2b.Z:(T(X.L.2b.B(\'Z\'))||0)}X.L.2b.B(\'Q\',y+(52.h-X.L.df)/2+\'U\');X.L.2b.B(\'O\',(52.1C-X.L.c1)/2+\'U\');X.L.2b.B(\'19\',\'2B\')}1Q=k(\'1T\',X.L.5u);if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}P{aj=k(\'a\',X.L.1U.o).K(1z-1);k(aj).2R(X.L.1U.5R);D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=1z-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[1z-1].6L)}}}},95:u(){X=q.31.31;X.L.5u.B(\'19\',\'1o\');if(X.L.1U.5R){aj=k(\'a\',X.L.1U.o).4i(X.L.1U.5R).K(X.L.3u-1);k(aj).2R(X.L.1U.5R)}D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=X.L.3u-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[X.L.3u-1].6L)}},19:u(){X=1h.9e(q.X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}52=k.1a.2o(X);y=0;if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}hg=k(\'.ca\',X);y=y+(52.h-q.W)/2;x=(52.1C-q.Z)/2;X.L.5u.B(\'Q\',y+\'U\').B(\'O\',x+\'U\').3x(\'<1T 2J="\'+q.2J+\'" />\');X.L.5u.7f(X.L.3W);3s=X.L.3u+1;if(3s>X.L.1Q.1g){3s=1}3z=X.L.3u-1;if(3z<1){3z=X.L.1Q.1g}X.L.3s.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+2*q.Z/3+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3s-1].6L);X.L.3s.o.K(0).3h=\'#\'+3s+k.1p(X,\'id\');X.L.3z.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3z-1].6L);X.L.3z.o.K(0).3h=\'#\'+3z+k.1p(X,\'id\')},2r:u(o){if(!o||!o.1Z||k.2u.5I[o.1Z])E;D 1Z=k(\'#\'+o.1Z);D el=1Z.K(0);if(el.14.Y!=\'1P\'&&el.14.Y!=\'2s\'){el.14.Y=\'2s\'}el.14.2U=\'2K\';if(1Z.1N()==0)E;el.L={};el.L.1Q=o.1Q?o.1Q:[];el.L.6o=o.6o&&o.6o==1b||I;97=el.f3(\'hL\');24(i=0;i<97.1g;i++){7Z=el.L.1Q.1g;el.L.1Q[7Z]={2J:97[i].2J,6L:97[i].4g||97[i].hD||\'\'}}if(el.L.1Q.1g==0){E}el.L.4n=k.23(k.1a.3w(el),k.1a.2o(el));el.L.b5=k.1a.aT(el);el.L.bu=k.1a.6U(el);t=T(el.L.b5.t)+T(el.L.bu.t);b=T(el.L.b5.b)+T(el.L.bu.b);k(\'1T\',el).bk();el.L.3W=o.3W?o.3W:g5;if(o.5A||o.9f||o.5R){el.L.1U={};1Z.1S(\'<22 6T="g1"></22>\');el.L.1U.o=k(\'.g1\',el);if(o.9f){el.L.1U.9f=o.9f;el.L.1U.o.2R(o.9f)}if(o.5R){el.L.1U.5R=o.5R}el.L.1U.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.5A&&o.5A==\'Q\'){el.L.1U.5A=\'Q\';el.L.1U.o.B(\'Q\',t+\'U\')}P{el.L.1U.5A=\'4D\';el.L.1U.o.B(\'4D\',b+\'U\')}el.L.1U.aE=o.aE?o.aE:\' \';24(D i=0;i<el.L.1Q.1g;i++){7Z=T(i)+1;el.L.1U.o.1S(\'<a 3h="#\'+7Z+o.1Z+\'" 6T="gR" 4g="\'+el.L.1Q[i].6L+\'">\'+7Z+\'</a>\'+(7Z!=el.L.1Q.1g?el.L.1U.aE:\'\'))}k(\'a\',el.L.1U.o).1J(\'5h\',u(){k.2u.go({90:q})});el.L.1U.4C=k.1a.2o(el.L.1U.o.K(0))}if(o.6Q||o.9c){el.L.2x={};1Z.1S(\'<22 6T="dn">&7k;</22>\');el.L.2x.o=k(\'.dn\',el);if(o.9c){el.L.2x.9c=o.9c;el.L.2x.o.2R(o.9c)}el.L.2x.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.6Q&&o.6Q==\'Q\'){el.L.2x.6Q=\'Q\';el.L.2x.o.B(\'Q\',(el.L.1U&&el.L.1U.5A==\'Q\'?el.L.1U.4C.hb+t:t)+\'U\')}P{el.L.2x.6Q=\'4D\';el.L.2x.o.B(\'4D\',(el.L.1U&&el.L.1U.5A==\'4D\'?el.L.1U.4C.hb+b:b)+\'U\')}el.L.2x.4C=k.1a.2o(el.L.2x.o.K(0))}if(o.9D){el.L.3s={9D:o.9D};1Z.1S(\'<a 3h="#2\'+o.1Z+\'" 6T="eY">&7k;</a>\');el.L.3s.o=k(\'.eY\',el);el.L.3s.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3s.9D);el.L.3s.o.1J(\'5h\',k.2u.eg)}if(o.9o){el.L.3z={9o:o.9o};1Z.1S(\'<a 3h="#0\'+o.1Z+\'" 6T="ee">&7k;</a>\');el.L.3z.o=k(\'.ee\',el);el.L.3z.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3z.9o);el.L.3z.o.1J(\'5h\',k.2u.dp)}1Z.bG(\'<22 6T="ca"></22>\');el.L.5u=k(\'.ca\',el);el.L.5u.B(\'Y\',\'1P\').B(\'Q\',\'2P\').B(\'O\',\'2P\').B(\'19\',\'1o\');if(o.2b){1Z.bG(\'<22 6T="dW" 14="19: 1o;"><1T 2J="\'+o.2b+\'" /></22>\');el.L.2b=k(\'.dW\',el);el.L.2b.B(\'Y\',\'1P\');D 1T=12 9s();1T.X=o.1Z;1T.2J=o.2b;if(1T.21){1T.6S=S;k.2u.go({2b:1T})}P{1T.6S=u(){k.2u.go({2b:q})}}}P{k.2u.go({1Z:el})}if(o.cS){fi=T(o.cS)*aC}k.2u.5I[o.1Z]=o.cS?1X.6V(\'k.2u.2I(\\\'\'+o.1Z+\'\\\')\',fi):S}};k.X=k.2u.2r;k.1t={7s:[],5L:{},1c:I,7u:S,26:u(){if(k.11.F==S){E}D 4O,3G,c,cs;k.1t.1c.K(0).3l=k.11.F.A.6R;4O=k.1t.1c.K(0).14;4O.19=\'2B\';k.1t.1c.1B=k.23(k.1a.3w(k.1t.1c.K(0)),k.1a.2o(k.1t.1c.K(0)));4O.Z=k.11.F.A.1B.1C+\'U\';4O.W=k.11.F.A.1B.hb+\'U\';3G=k.1a.cy(k.11.F);4O.5K=3G.t;4O.5z=3G.r;4O.5k=3G.b;4O.5j=3G.l;if(k.11.F.A.46==1b){c=k.11.F.fI(1b);cs=c.14;cs.5K=\'2P\';cs.5z=\'2P\';cs.5k=\'2P\';cs.5j=\'2P\';cs.19=\'2B\';k.1t.1c.5o().1S(c)}k(k.11.F).f5(k.1t.1c.K(0));k.11.F.14.19=\'1o\'},fC:u(e){if(!e.A.44&&k.1x.5r.cQ){if(e.A.3T)e.A.3T.1D(F);k(e).B(\'Y\',e.A.cz||e.A.4n);k(e).aS();k(k.1x.5r).f6(e)}k.1t.1c.4i(e.A.6R).3x(\'&7k;\');k.1t.7u=S;D 4O=k.1t.1c.K(0).14;4O.19=\'1o\';k.1t.1c.f5(e);if(e.A.fx>0){k(e).7f(e.A.fx)}k(\'2e\').1S(k.1t.1c.K(0));D 86=[];D 8q=I;24(D i=0;i<k.1t.7s.1g;i++){D 1j=k.1x.3P[k.1t.7s[i]].K(0);D id=k.1p(1j,\'id\');D 8i=k.1t.8x(id);if(1j.1i.ay!=8i.7l){1j.1i.ay=8i.7l;if(8q==I&&1j.1i.2Z){8q=1j.1i.2Z}8i.id=id;86[86.1g]=8i}}k.1t.7s=[];if(8q!=I&&86.1g>0){8q(86)}},al:u(e,o){if(!k.11.F)E;D 6e=I;D i=0;if(e.1i.el.1N()>0){24(i=e.1i.el.1N();i>0;i--){if(e.1i.el.K(i-1)!=k.11.F){if(!e.5V.b2){if((e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}P{1r}}P{if((e.1i.el.K(i-1).1M.x+e.1i.el.K(i-1).1M.1C/2)>k.11.F.A.2v&&(e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}}}}}if(6e&&k.1t.7u!=6e){k.1t.7u=6e;k(6e).h5(k.1t.1c.K(0))}P if(!6e&&(k.1t.7u!=S||k.1t.1c.K(0).31!=e)){k.1t.7u=S;k(e).1S(k.1t.1c.K(0))}k.1t.1c.K(0).14.19=\'2B\'},cT:u(e){if(k.11.F==S){E}e.1i.el.1E(u(){q.1M=k.23(k.1a.74(q),k.1a.7G(q))})},8x:u(s){D i;D h=\'\';D o={};if(s){if(k.1t.5L[s]){o[s]=[];k(\'#\'+s+\' .\'+k.1t.5L[s]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[s][o[s].1g]=k.1p(q,\'id\')})}P{24(a in s){if(k.1t.5L[s[a]]){o[s[a]]=[];k(\'#\'+s[a]+\' .\'+k.1t.5L[s[a]]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s[a]+\'[]=\'+k.1p(q,\'id\');o[s[a]][o[s[a]].1g]=k.1p(q,\'id\')})}}}}P{24(i in k.1t.5L){o[i]=[];k(\'#\'+i+\' .\'+k.1t.5L[i]).1E(u(){if(h.1g>0){h+=\'&\'}h+=i+\'[]=\'+k.1p(q,\'id\');o[i][o[i].1g]=k.1p(q,\'id\')})}}E{7l:h,o:o}},fF:u(e){if(!e.dq){E}E q.1E(u(){if(!q.5V||!k(e).is(\'.\'+q.5V.3C))k(e).2R(q.5V.3C);k(e).7t(q.5V.A)})},4U:u(){E q.1E(u(){k(\'.\'+q.5V.3C).aS();k(q).dR();q.5V=S;q.fm=S})},2r:u(o){if(o.3C&&k.1a&&k.11&&k.1x){if(!k.1t.1c){k(\'2e\',1h).1S(\'<22 id="e5">&7k;</22>\');k.1t.1c=k(\'#e5\');k.1t.1c.K(0).14.19=\'1o\'}q.do({3C:o.3C,9J:o.9J?o.9J:I,a5:o.a5?o.a5:I,58:o.58?o.58:I,7x:o.7x||o.dC,7y:o.7y||o.fO,cQ:1b,2Z:o.2Z||o.ia,fx:o.fx?o.fx:I,46:o.46?1b:I,6I:o.6I?o.6I:\'cV\'});E q.1E(u(){D A={6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,4o:o.4o&&o.4o.1K==2A?o.4o:I,4m:o.4m&&o.4m.1K==2A?o.4m:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:I,2V:o.2V?o.2V:I};k(\'.\'+o.3C,q).7t(A);q.fm=1b;q.5V={3C:o.3C,6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,b2:o.b2?1b:I,A:A}})}}};k.fn.23({j3:k.1t.2r,f6:k.1t.fF,iS:k.1t.4U});k.iZ=k.1t.8x;k.2t={6O:S,7b:I,9m:S,6K:u(e){k.2t.7b=1b;k.2t.1Y(e,q,1b)},cq:u(e){if(k.2t.6O!=q)E;k.2t.7b=I;k.2t.2G(e,q)},1Y:u(e,el,7b){if(k.2t.6O!=S)E;if(!el){el=q}k.2t.6O=el;1M=k.23(k.1a.3w(el),k.1a.2o(el));8u=k(el);4g=8u.1p(\'4g\');3h=8u.1p(\'3h\');if(4g){k.2t.9m=4g;8u.1p(\'4g\',\'\');k(\'#eT\').3x(4g);if(3h)k(\'#bL\').3x(3h.4E(\'jh://\',\'\'));P k(\'#bL\').3x(\'\');1c=k(\'#8z\');if(el.4H.3l){1c.K(0).3l=el.4H.3l}P{1c.K(0).3l=\'\'}bo=k.1a.2o(1c.K(0));ga=7b&&el.4H.Y==\'bO\'?\'4D\':el.4H.Y;3m(ga){1e\'Q\':2q=1M.y-bo.hb;2v=1M.x;1r;1e\'O\':2q=1M.y;2v=1M.x-bo.1C;1r;1e\'2L\':2q=1M.y;2v=1M.x+1M.1C;1r;1e\'bO\':k(\'2e\').1J(\'3D\',k.2t.3D);1s=k.1a.4a(e);2q=1s.y+15;2v=1s.x+15;1r;ad:2q=1M.y+1M.hb;2v=1M.x;1r}1c.B({Q:2q+\'U\',O:2v+\'U\'});if(el.4H.54==I){1c.1Y()}P{1c.7f(el.4H.54)}if(el.4H.2Y)el.4H.2Y.1D(el);8u.1J(\'8B\',k.2t.2G).1J(\'5B\',k.2t.cq)}},3D:u(e){if(k.2t.6O==S){k(\'2e\').3q(\'3D\',k.2t.3D);E}1s=k.1a.4a(e);k(\'#8z\').B({Q:1s.y+15+\'U\',O:1s.x+15+\'U\'})},2G:u(e,el){if(!el){el=q}if(k.2t.7b!=1b&&k.2t.6O==el){k.2t.6O=S;k(\'#8z\').7a(1);k(el).1p(\'4g\',k.2t.9m).3q(\'8B\',k.2t.2G).3q(\'5B\',k.2t.cq);if(el.4H.3i)el.4H.3i.1D(el);k.2t.9m=S}},2r:u(M){if(!k.2t.1c){k(\'2e\').1S(\'<22 id="8z"><22 id="eT"></22><22 id="bL"></22></22>\');k(\'#8z\').B({Y:\'1P\',3I:6P,19:\'1o\'});k.2t.1c=1b}E q.1E(u(){if(k.1p(q,\'4g\')){q.4H={Y:/Q|4D|O|2L|bO/.48(M.Y)?M.Y:\'4D\',3l:M.3l?M.3l:I,54:M.54?M.54:I,2Y:M.2Y&&M.2Y.1K==2A?M.2Y:I,3i:M.3i&&M.3i.1K==2A?M.3i:I};D el=k(q);el.1J(\'9z\',k.2t.1Y);el.1J(\'6K\',k.2t.6K)}})}};k.fn.hO=k.2t.2r;k.84={bq:u(e){3K=e.7L||e.7K||-1;if(3K==9){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(q.b1){1h.6J.dZ().3g="\\t";q.dV=u(){q.6K();q.dV=S}}P if(q.aF){26=q.5q;2T=q.dN;q.2y=q.2y.hd(0,26)+"\\t"+q.2y.h8(2T);q.aF(26+1,26+1);q.6K()}E I}},4U:u(){E q.1E(u(){if(q.7P&&q.7P==1b){k(q).3q(\'7B\',k.84.bq);q.7P=I}})},2r:u(){E q.1E(u(){if(q.4Y==\'cf\'&&(!q.7P||q.7P==I)){k(q).1J(\'7B\',k.84.bq);q.7P=1b}})}};k.fn.23({j5:k.84.2r,hH:k.84.4U});k.1a={3w:u(e){D x=0;D y=0;D es=e.14;D bP=I;if(k(e).B(\'19\')==\'1o\'){D 5Y=es.3n;D 9q=es.Y;bP=1b;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\'}D el=e;7d(el){x+=el.8t+(el.4Z&&!k.3a.7I?T(el.4Z.5b)||0:0);y+=el.8G+(el.4Z&&!k.3a.7I?T(el.4Z.4S)||0:0);el=el.dJ}el=e;7d(el&&el.4Y&&el.4Y.6c()!=\'2e\'){x-=el.3c||0;y-=el.3d||0;el=el.31}if(bP==1b){es.19=\'1o\';es.Y=9q;es.3n=5Y}E{x:x,y:y}},7G:u(el){D x=0,y=0;7d(el){x+=el.8t||0;y+=el.8G||0;el=el.dJ}E{x:x,y:y}},2o:u(e){D w=k.B(e,\'Z\');D h=k.B(e,\'W\');D 1C=0;D hb=0;D es=e.14;if(k(e).B(\'19\')!=\'1o\'){1C=e.4c;hb=e.5W}P{D 5Y=es.3n;D 9q=es.Y;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\';1C=e.4c;hb=e.5W;es.19=\'1o\';es.Y=9q;es.3n=5Y}E{w:w,h:h,1C:1C,hb:hb}},74:u(el){E{1C:el.4c||0,hb:el.5W||0}},bm:u(e){D h,w,de;if(e){w=e.8W;h=e.8O}P{de=1h.5d;w=1X.d4||aa.d4||(de&&de.8W)||1h.2e.8W;h=1X.cB||aa.cB||(de&&de.8O)||1h.2e.8O}E{w:w,h:h}},6z:u(e){D t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.9N.6c()!=\'2e\'){t=e.3d;l=e.3c;w=e.d7;h=e.d2;iw=0;ih=0}P{if(1h.5d){t=1h.5d.3d;l=1h.5d.3c;w=1h.5d.d7;h=1h.5d.d2}P if(1h.2e){t=1h.2e.3d;l=1h.2e.3c;w=1h.2e.d7;h=1h.2e.d2}iw=aa.d4||1h.5d.8W||1h.2e.8W||0;ih=aa.cB||1h.5d.8O||1h.2e.8O||0}E{t:t,l:l,w:w,h:h,iw:iw,ih:ih}},cy:u(e,7N){D el=k(e);D t=el.B(\'5K\')||\'\';D r=el.B(\'5z\')||\'\';D b=el.B(\'5k\')||\'\';D l=el.B(\'5j\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},aT:u(e,7N){D el=k(e);D t=el.B(\'5M\')||\'\';D r=el.B(\'5U\')||\'\';D b=el.B(\'5n\')||\'\';D l=el.B(\'4X\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},6U:u(e,7N){D el=k(e);D t=el.B(\'4S\')||\'\';D r=el.B(\'5O\')||\'\';D b=el.B(\'5Q\')||\'\';D l=el.B(\'5b\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)||0};P E{t:t,r:r,b:b,l:l}},4a:u(2k){D x=2k.hT||(2k.gM+(1h.5d.3c||1h.2e.3c))||0;D y=2k.ki||(2k.iQ+(1h.5d.3d||1h.2e.3d))||0;E{x:x,y:y}},cI:u(4R,cx){cx(4R);4R=4R.7c;7d(4R){k.1a.cI(4R,cx);4R=4R.hQ}},h7:u(4R){k.1a.cI(4R,u(el){24(D 1p in el){if(2g el[1p]===\'u\'){el[1p]=S}}})},hV:u(el,1O){D 5l=k.1a.6z();D b6=k.1a.2o(el);if(!1O||1O==\'49\')k(el).B({Q:5l.t+((18.3r(5l.h,5l.ih)-5l.t-b6.hb)/2)+\'U\'});if(!1O||1O==\'4j\')k(el).B({O:5l.l+((18.3r(5l.w,5l.iw)-5l.l-b6.1C)/2)+\'U\'})},hW:u(el,dk){D 1Q=k(\'1T[@2J*="8X"]\',el||1h),8X;1Q.1E(u(){8X=q.2J;q.2J=dk;q.14.5E="9n:9w.9y.hE(2J=\'"+8X+"\')"})}};[].3J||(7F.hF.3J=u(v,n){n=(n==S)?0:n;D m=q.1g;24(D i=n;i<m;i++)if(q[i]==v)E i;E-1});',62,1293,'||||||||||||||||||||jQuery||||||this||||function||||||dragCfg|css|elm|var|return|dragged|easing|speed|false|callback|get|ss|options|iAuto|left|else|top|iResize|null|parseInt|px|oldStyle|height|slideshow|position|width||iDrag|new||style||||Math|display|iUtil|true|helper|subject|case|autoCFG|length|document|dropCfg|iEL|resizeOptions|carouselCfg|duration|interfaceFX|none|attr|sizes|break|pointer|iSort|type|ImageBox|queue|iDrop|iAutoscroller|slide|resizeElement|oC|wb|apply|each|fisheyeCfg|opacity|delta|newSizes|bind|constructor|custom|pos|size|axis|absolute|images|items|append|img|slideslinks|255|firstNum|window|show|container||complete|div|extend|for||start||cont|elsToScroll|100|loader|oR||body|elem|typeof|selectedItem|oldP|props|event|accordionCfg|parseFloat|field|getSize|containment|ny|build|relative|iTooltip|islideshow|nx|tp|slideCaption|value|newPosition|Function|block|selectHelper|step|border|itemWidth|hide|dequeue|timer|src|hidden|right|limit|nr|fractions|0px|PI|addClass|direction|end|overflow|cursorAt|result|parentData|onShow|onChange|to|parentNode|||||||||browser|iSlider|scrollLeft|scrollTop|scr|transferHelper|text|href|onHide|pre|selectdrug|className|switch|visibility|item|wrapper|unbind|max|nextslide|values|currentslide|handle|getPosition|html|newCoords|prevslide|iframe|iExpander|accept|mousemove|canvas|createElement|margins|onSlide|zIndex|indexOf|pressedKey|min|valueToAdd|multipleSeparator|pageSize|zones|highlighted|toggle|abs|onStop|dragElem|times|fadeDuration|diff|dhs|handlers||resizeDirection||vp|so|distance|ghosting||test|vertically|getPointer|startTop|offsetWidth|subjectValue|lastSuggestion|DropOutDirectiont|title|wrs|removeClass|horizontally|startLeft|out|onDrag|oP|onStart|nWidth|percent|down|ifxFirstDisplay|msie|iteration|ratio|clear|color|lastValue|slideCfg|fontSize|currentPointer|dimm|bottom|replace|up|prevImage|tooltipCFG|rel|els|fxCheckTag|context|nextImage|params|shs|fieldData|elToScroll|nodeEl|borderTopWidth|chunks|destroy|string|nHeight|paddingLeft|tagName|currentStyle||halign|slidePos|onclick|delay||containerW|from|helperclass|endLeft|endTop|borderLeftWidth|dragmoveBy|documentElement|dhe|newStyles|clonedEl|click|si|marginLeft|marginBottom|clientScroll|OpenClose|paddingBottom|empty|toWrite|selectionStart|overzone|toAdd|onDragModifier|holder|mousedown|animate|toDrag|cnt|marginRight|linksPosition|blur|getAttribute|hight|filter|sw|zoney|cos|slideshows|zonex|marginTop|collected|paddingTop|url|borderRightWidth|mouseup|borderBottomWidth|activeLinkClass|dragHandle|clearInterval|paddingRight|sortCfg|offsetHeight|prop|oldVisibility|styles||BlindDirection|point|fxh|nmp|old|post|currentPanel|onSelect|elementData|grid|pow|toLowerCase|animationHandler|cur|containerH|close|puff|getWidth|currentRel|imageEl|Expander|getHeight|iFisheye|random|newDimensions|itemHeight|reflections|sliders|selRange|wr|orig|margin|maxWidth|keyup|getScroll|captionText|totalImages|128|parseColor|curCSS|outerContainer|Scale|restore|tolerance|selection|focus|caption|snapDistance|revert|current|3000|captionPosition|hpc|onload|class|getBorder|setInterval|oldStyleAttr|rule|rgb|open|minLeft|ActiveXObject|oldDisplay|restoreStyle|getSizeLite||nw|0x||F0|fadeOut|focused|firstChild|while|cssRules|fadeIn|Date|minTop|backgroundColor|sc|nbsp|hash|captionEl|selectKeyHelper|selectCurrent|newTop|init|newLeft|changed|Draggable|inFrontOf|efx|139|onHover|onOut|getTime|np|keydown|split|radiusY|increment|Array|getPositionLite|selectClass|opera|onHighlight|keyCode|charCode|Object|toInteger|frameClass|hasTabsEnabled|zonew|user|zoneh|positionItems|onClick|oD|scrollIntoView|accordionPos|proximity|indic||data|containerSize|sin|iTTabs||ts|ImageBoxPrevImage|ImageBoxNextImage|imageSrc|newPos|maxHeight|minHeight|elS|activeClass|panels|maxBottom|maxRight|ser|move|opened|bounceout|animationInProgress|overlay|stop|reflectionSize|fnc|classname|insideParent|offsetLeft|jEl|nRy|pr|serialize|nRx|tooltipHelper|cssSides|mouseout|select|count|namedColors|padding|offsetTop|directionIncrement|parentEl|400|dir|expand|createTextNode|finishedPre|clientHeight|li|applyOn|content|contBorders|object|parentBorders|alpha|clientWidth|png|gallery|fontWeight|link|yproc|xproc|sx|parent|showImage|selectedone|imgs|onselect|sy|startDrag|cursor|captionClass|onselectstop|getElementById|linksClass|sh|ul|onActivate|isDroppable|nextEl|onDrop|oldTitle|progid|prevslideClass|prevEl|oldPosition|SliderContainer|Image|linkRel|selectKeyUp|selectKeyDown|DXImageTransform|inCache|Microsoft|mouseover|dragstop|diffX|211|nextslideClass|prot|auto|dEs|hidehelper|isDraggable|activeclass|unit|DoFold|unfold|nodeName|startTime|buildWrapper|prev|1px|oldColor|setTimeout|ScrollTo|st|sl|cssText|9999|next|destroyWrapper|opt|diffHeight|diffWidth|exec|hoverclass|image|blind|borderColor|sideEnd|self|key||default|2000|styleSheets|getValues|192|diffY|lnk|reflexions|checkhover|selectcheck|maxRotation|ImageBoxOuterContainer|gradient|panelHeight|childs|headers|ne|hideImage|minWidth|iIndex|itemsText|os|side|iCarousel|5625|1000|itemMinWidth|linksSeparator|setSelectionRange|protectRotation|positionContainer|posx|hoverClass|valToAdd|minchars|helperClass|source|nextImageEl|preventDefault|multiple|headerSelector|DraggableDestroy|getPadding|autofill|handleEl|stopPropagation|prevImageEl|getFieldValues|panelSelector|String|createTextRange|floats|lastSi|shrink|oPad|windowSize|paddingLeftSize|angle|paddingY|paddingX|RegExp|borderRightSize|floatVal|firstStep|pulse|Pulsate|Color|rotationSpeed|paddingBottomSize|remove|parseStyle|getClient|Number|helperSize|bounce|doTab||zoom|borderLeftSize|oBor|paddingRightSize|borderTopSize|paddingTopSize|stopAnim|pValue|borderBottomSize|extraWidth|restricted|autoSize|unselectable|SliderIteration|prepend|clearTimeout|isSlider|oneIsSortable|applyOnHover|tooltipURL|tabindex|draginit|mouse|restoreStyles|sliderSize|sliderPos|parentPos|cancelBubble|autocomplete|inputWidth|oldBorder|dragmove|clnt|sliderEl|returnValue|loaderWidth|idsa|letterSpacing|pause|getContainment|fade|snapToGrid|linear|10000|slideshowHolder|asin|cssSidesEnd|borderWidth|fitToContainer|TEXTAREA|entities|INPUT|spacer|writeItems|character|currentValue|paddings|169|oldFloat|borders|hidefocused|bouncein||modifyContainer|transparent|center|loadImage|func|getMargins|initialPosition|textAlign|innerHeight|Alpha|no|captionImages|closeEl|shake|prevTop|traverseDOM|Selectserialize|stopDrag|slider|ImageBoxCaption|ImageBoxIframe|300|ImageBoxOverlay|sortable|moveDrag|autoplay|measure|prevLeft|intersect|ImageBoxCurrentImage|selectstop|Shake|index|dragEl|keyPressed|scrollHeight|scroll|innerWidth|match|elPosition|scrollWidth|textImage|slideBor|jpg|captionSize|textImageFrom|visible||loaderHeight|ImageBoxCaptionImages||hoverItem|clickItem|emptyGIF||notColor|slideshowCaption|Droppable|goprev|childNodes|autocompleteHelper|autocompleteIframe|slidePad|fit|165|clientSize|||fontFamily|colorCssProps|elType|onhover|cssProps|expanderHelper|boxModel|itransferTo|keypress|moveStart|offsetParent|Width|selectstart|fxe|selectionEnd|checkCache|fontStyle|update|DroppableDestroy|remeasure|fontStretch|fontVariant|onblur|slideshowLoader|htmlEntities|wordSpacing|createRange|224|KhtmlUserSelect||closeHTML|on|sortHelper|245|userSelect|dragHelper|hrefAttr|dragstart|107|loaderSRC|highlight|slideshowPrevslide||gonext||styleFloat|frameborder|javascript|||relAttr|wid|scrolling||onslide|||listStyle|imageTypes|insertBefore|999|textDecoration|sqrt|140|230|maxy|240|ImageBoxContainer|doScroll|interval|set|dragmoveByKey|protect|ImageBoxCaptionText|144|ImageBoxLoader|off|checkdrop|isSelectable|hlt|30px|selectedclass|tooltipTitle|imagebox|shc|overlayOpacity|selRange2|slideshowNextSlide|gif|getSelectionStart|360|iAccordion|getElementsByTagName|iBounce|after|SortableAddItem|onResize|150|itemZIndex|grow|getHeightMinMax|borderTopUnit|selectcheckApply|borderRightUnit|zindex|fontUnit|togglehor|time|se|parte|easeout|isSortable||SlideInUp|fold|SlideOutUp|rgba|addColorStop|yfrac|containerMaxx|interfaceColorFX|containerMaxy||leftUnit|mousex||radiusX|check|getContext|xfrac|addItem|topUnit|fracH|cloneNode|togglever|paddingLeftUnit|borderBottomUnit|finish|onDragStop|onout|posy|isFunction|oldOverflow|directions|vertical|fracW|fakeAccordionClass|parts|fadeTo|inputValue|xml|selectstopApply|slideshowLinks|onDragStart|BlindUp|paddingTopUnit|500|trim|maxx|borderLeftUnit|paddingRightUnit|filteredPosition|BlindDown|paddingBottomUnit|horizontal|valign|find|ImageBoxClose|onselectstart|mozUserSelect|ondragstart|scale|110|globalCompositeOperation|bmp||drawImage|ondrop|password|quot||save|starty|jpeg|||number|startx|finishOpacity|hover|recallDroppables|flipv|finishx|destination|khtml|moz|lt|amp|pW|clientX|Accordion|translate|captiontext|elasticin|slideshowLink|fix|elasticout|resize|elasticboth|bounceboth|984375|9375|Selectable|30002|list|625|30001|nodeValue|before|100000|purgeEvents|substr|duplicate|moveEnd|||substring|success|param|par|array|Fisheye|name|POST|ajax|easeboth|location|fromHandler|collapse|MozUserSelect||ResizableDestroy|rotationTimer|fillRect|fill|WebKit|fillStyle|createLinearGradient|Resizable|navigator|appVersion|lineHeigt|alt|AlphaImageLoader|prototype|SliderGetValues|DisableTabs|Carousel|load|easein|IMG|200|Slider|ToolTip|wh|nextSibling|Autocomplete|SliderSetValues|pageX|float|centerEl|fixPNG|isNaN|dotted|dashed|stopAll|Left|outlineColor|Top|Right|Bottom|solid|double|selectorText|rules|onchange|SlideToggleRight|SlideOutRight||borderStyle||TransferTo||groove|ridge|inset|outset|borderTopColor||borderRightColor|olive|navy|orange||pink|203|maroon||magenta|182|193|lightyellow|lime|purple|red|outlineOffset|outlineWidth|borderBottomColor|borderLeftColor|lineHeight|loading|silver|white|yellow|Showing|100000000|SlideInRight|clientY|Highlight|SortableDestroy|CloseVertically|CloseHorizontally|FoldToggle|UnFold|SlideInDown|SlideToggleUp|SortSerialize|Fold|SwitchHorizontally|SwitchVertically|Sortable|scrollTo|EnableTabs|ScrollToAnchors|pt|Puff|OpenVertically|OpenHorizontally|Grow|Shrink|DropToggleRight|DropInRight|BlindToggleHorizontally|BlindRight|http|Bounce|120|BlindLeft|BlindToggleVertically|SlideToggleLeft|SlideOutLeft|toUpperCase|SlideInLeft|SlideToggleDown|SlideOutDown|DropOutLeft|DropInLeft|DropToggleLeft|DropOutRight|DropToggleUp|DropInUp|DropOutDown|DropInDown|DropToggleDown|DropOutUp|lightpink|textIndent|aqua|appendChild|azure|beige|220|last|cssFloat|first|ol|wrapEl|fxWrapper|black|imageLoaded|darkkhaki|darkgreen|189|183|darkmagenta|firstResize|darkgrey|brown|cyan|darkblue|darkcyan|table|form|col|tfoot|colgroup|th|header|thead|tbody|112|Autoexpand|tr|td|script|frame|input|pageY|textarea|button|w_|removeChild|frameset|option|optgroup|meta|darkolivegreen|blue|122|233|green|lightcyan|204|darkviolet|lightgreen|indigo|216|khaki|darksalmon|130|darkred|lightblue|148|173|215|238|fuchsia|gold|darkorchid|153|darkorange|lightgrey'.split('|'),0,{}))
13
+
bp-forums/bbpress/bb-login.php CHANGED
@@ -1,104 +1,148 @@
1
  <?php
2
- // Load bbPress.
3
- require('./bb-load.php');
4
 
5
- // Redirect to an SSL page if required.
 
 
 
6
  bb_ssl_redirect();
7
 
8
- // Get the referer.
9
- $ref = wp_get_referer();
10
- if ( !$re = $_POST['re'] ? $_POST['re'] : $_GET['re'] ) {
11
- $re = $ref;
12
- }
13
 
14
- // Grab the URL for comparison.
15
- $home_url = parse_url( bb_get_uri( null, null, BB_URI_CONTEXT_TEXT ) );
16
- $home_path = $home_url['path'];
17
 
18
- // Don't ever redirect to the register page or the password reset page.
19
- if ( !$re || false !== strpos( $re, $home_path . 'register.php' ) || false !== strpos( $re, $home_path . 'bb-reset-password.php' ) ) {
20
- $re = bb_get_uri( null, null, BB_URI_CONTEXT_HEADER );
21
- }
22
 
23
- // Don't cache this page at all.
24
- nocache_headers();
 
25
 
26
- // If this page was accessed using SSL, make sure the redirect is a full URL
27
- // so that we don't end up on an SSL page again (unless the whole site is
28
- // under SSL).
29
- if ( is_ssl() && 0 === strpos( $re, '/' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  $re = bb_get_uri( $re , null, BB_URI_CONTEXT_HEADER );
31
- }
32
 
33
- // Logout requested.
34
- if ( isset( $_GET['logout'] ) ) {
35
- bb_logout();
36
- bb_safe_redirect( $re );
37
- exit;
38
  }
39
 
40
- // User is already logged in.
 
 
 
 
 
 
41
  if ( bb_is_user_logged_in() ) {
42
- bb_safe_redirect( $re );
43
- exit;
44
- }
45
 
46
- // Get the user from the login details.
47
- $user = bb_login( @$_POST['user_login'], @$_POST['password'], @$_POST['remember'] );
 
 
 
 
 
48
 
49
- // User logged in successfully.
50
- if ( $user && !is_wp_error( $user ) ) {
51
  bb_safe_redirect( $re );
52
  exit;
53
  }
54
 
55
- // Grab the error returned if there is one.
56
- if ( is_wp_error( $user ) ) {
57
- $bb_login_error =& $user;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  } else {
59
  $bb_login_error = new WP_Error;
60
  }
61
 
62
- // Whether we allow login by email address or not.
63
- $email_login = bb_get_option( 'email_login' );
64
 
65
- // Find out if the user actually exists.
66
  $error_data = $bb_login_error->get_error_data();
67
- if ( isset( $error_data['unique'] ) && false === $error_data['unique'] ) {
 
 
68
  $user_exists = true;
69
- } else {
70
- $user_exists = isset( $_POST['user_login'] ) && $_POST['user_login'] && (bool) bb_get_user( $_POST['user_login'], array( 'by' => 'login' ) );
71
- }
72
- unset( $error_data );
73
 
 
74
  if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
75
- // If the user doesn't exist then add that error.
76
- if ( !$user_exists ) {
77
- if ( isset( $_POST['user_login'] ) && $_POST['user_login'] ) {
 
78
  $bb_login_error->add( 'user_login', __( 'User does not exist.' ) );
79
  } else {
80
  $bb_login_error->add( 'user_login', $email_login ? __( 'Enter a username or email address.' ) : __( 'Enter a username.' ) );
81
  }
82
  }
83
 
84
- // If the password was wrong then add that error.
85
  if ( !$bb_login_error->get_error_code() ) {
86
  $bb_login_error->add( 'password', __( 'Incorrect password.' ) );
87
  }
88
  }
89
 
90
- // If trying to log in with email address, don't leak whether or not email address exists in the db.
91
- // is_email() is not perfect, usernames can be valid email addresses potentially.
92
- if ( $email_login && $bb_login_error->get_error_codes() && false !== is_email( $_POST['user_login'] ) ) {
 
 
 
93
  $bb_login_error = new WP_Error( 'user_login', __( 'Username and Password do not match.' ) );
94
- }
95
 
96
- // Sanitze variables for display.
97
- $user_login = esc_attr( sanitize_user( @$_POST['user_login'], true ) );
98
- $remember_checked = @$_POST['remember'] ? ' checked="checked"' : '';
99
- $re = esc_url( $re );
100
- $re = $redirect_to = esc_attr( $re );
101
 
102
- // Load the template.
103
  bb_load_template( 'login.php', array( 'user_exists', 'user_login', 'remember_checked', 'redirect_to', 're', 'bb_login_error' ) );
 
104
  exit;
 
 
1
  <?php
 
 
2
 
3
+ // Load bbPress
4
+ require( './bb-load.php' );
5
+
6
+ // SSL redirect if required
7
  bb_ssl_redirect();
8
 
9
+ // Don't cache this page at all
10
+ nocache_headers();
 
 
 
11
 
12
+ /** Look for redirection ******************************************************/
 
 
13
 
14
+ // Look for 'redirect_to'
15
+ if ( isset( $_REQUEST['redirect_to'] ) )
16
+ $re = $_REQUEST['redirect_to'];
 
17
 
18
+ // Look for 're'
19
+ if ( empty( $re ) && isset( $_REQUEST['re'] ) )
20
+ $re = $_REQUEST['re'];
21
 
22
+ // Use referer
23
+ if ( empty( $re ) )
24
+ $re = wp_get_referer();
25
+
26
+ // Don't redirect to register or password reset pages
27
+ if ( empty( $re ) ) {
28
+ // Grab home path and URL for comparison
29
+ $home_url = parse_url( bb_get_uri( null, null, BB_URI_CONTEXT_TEXT ) );
30
+ $home_path = $home_url['path'];
31
+
32
+ if ( false !== strpos( $re, $home_path . 'register.php' ) || false !== strpos( $re, $home_path . 'bb-reset-password.php' ) )
33
+ $re = bb_get_uri( null, null, BB_URI_CONTEXT_HEADER );
34
+ }
35
+
36
+ /**
37
+ * If this page was accessed using SSL, make sure the redirect is a full URL so
38
+ * that we don't end up on an SSL page again (unless the whole site is under SSL)
39
+ */
40
+ if ( is_ssl() && 0 === strpos( $re, '/' ) )
41
  $re = bb_get_uri( $re , null, BB_URI_CONTEXT_HEADER );
 
42
 
43
+ // Clean the redirection destination
44
+ if ( !empty( $re ) ) {
45
+ $re = esc_url( $re );
46
+ $re = esc_attr( $re );
47
+ $redirect_to = $re;
48
  }
49
 
50
+ // Fallback to site root
51
+ if ( empty( $re ) )
52
+ $re = bb_get_uri();
53
+
54
+ /** Handle logout *************************************************************/
55
+
56
+ // User is logged in
57
  if ( bb_is_user_logged_in() ) {
 
 
 
58
 
59
+ // Logout requested
60
+ if ( isset( $_GET['logout'] ) )
61
+ $_GET['action'] = 'logout';
62
+
63
+ // Check logout action
64
+ if ( isset( $_GET['action'] ) && 'logout' === $_GET['action'] )
65
+ bb_logout();
66
 
 
 
67
  bb_safe_redirect( $re );
68
  exit;
69
  }
70
 
71
+ /** Handle login **************************************************************/
72
+
73
+ // Do we allow login by email address
74
+ $email_login = bb_get_option( 'email_login' );
75
+
76
+ // Get the user from the login details
77
+ if ( empty( $_POST['log'] ) )
78
+ $_POST['log'] = !empty( $_POST['user_login'] ) ? $_POST['user_login'] : '';
79
+
80
+ if ( empty( $_POST['pwd'] ) )
81
+ $_POST['pwd'] = !empty( $_POST['password'] ) ? $_POST['password'] : '';
82
+
83
+ if ( empty( $_POST['rememberme'] ) )
84
+ $_POST['rememberme'] = !empty( $_POST['remember'] ) ? 1 : '';
85
+
86
+ // Attempt to log the user in
87
+ if ( $user = bb_login( @$_POST['log'], @$_POST['pwd'], @$_POST['rememberme'] ) ) {
88
+ if ( !is_wp_error( $user ) ) {
89
+ bb_safe_redirect( $re );
90
+ exit;
91
+ } else {
92
+ $bb_login_error =& $user;
93
+ }
94
+
95
+ // No login so prepare the error
96
  } else {
97
  $bb_login_error = new WP_Error;
98
  }
99
 
100
+ /** Handle errors *************************************************************/
 
101
 
102
+ // Get error data so we can provide feedback
103
  $error_data = $bb_login_error->get_error_data();
104
+
105
+ // Does user actually exist
106
+ if ( isset( $error_data['unique'] ) && false === $error_data['unique'] )
107
  $user_exists = true;
108
+ else
109
+ $user_exists = !empty( $_POST['log'] ) && (bool) bb_get_user( $_POST['log'], array( 'by' => 'login' ) );
 
 
110
 
111
+ // Check for errors on post method
112
  if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
113
+
114
+ // If the user doesn't exist then add that error
115
+ if ( empty( $user_exists ) ) {
116
+ if ( !empty( $_POST['log'] ) ) {
117
  $bb_login_error->add( 'user_login', __( 'User does not exist.' ) );
118
  } else {
119
  $bb_login_error->add( 'user_login', $email_login ? __( 'Enter a username or email address.' ) : __( 'Enter a username.' ) );
120
  }
121
  }
122
 
123
+ // If the password was wrong then add that error
124
  if ( !$bb_login_error->get_error_code() ) {
125
  $bb_login_error->add( 'password', __( 'Incorrect password.' ) );
126
  }
127
  }
128
 
129
+ /**
130
+ * If trying to log in with email address, don't leak whether or not email
131
+ * address exists in the db. is_email() is not perfect. Usernames can be
132
+ * valid email addresses potentially.
133
+ */
134
+ if ( !empty( $email_login ) && $bb_login_error->get_error_codes() && false !== is_email( @$_POST['log'] ) )
135
  $bb_login_error = new WP_Error( 'user_login', __( 'Username and Password do not match.' ) );
 
136
 
137
+ /** Prepare for display *******************************************************/
138
+
139
+ // Sanitze variables for display
140
+ $remember_checked = @$_POST['rememberme'] ? ' checked="checked"' : '';
141
+ $user_login = esc_attr( sanitize_user( @$_POST['log'], true ) );
142
 
143
+ // Load the template
144
  bb_load_template( 'login.php', array( 'user_exists', 'user_login', 'remember_checked', 'redirect_to', 're', 'bb_login_error' ) );
145
+
146
  exit;
147
+
148
+ ?>
bp-forums/bbpress/bb-templates/kakumei-blue/style.css CHANGED
@@ -22,6 +22,8 @@ input#tagformsub:active { border-color: #001364; }
22
  .sticky { background: #adb9e1; }
23
  #thread li.pingback { background-color: #d8dcf2; border-color: #d8dcf2; }
24
  #thread li.pingback .threadpost { background-color: #d8dcf2; }
 
 
25
  #latest tr:hover, #forumlist tr:hover, #favorites tr:hover { background: #d8dcf2; }
26
  #profile-menu li a:hover { background: #d8dcf2; }
27
  a.prev.page-numbers:hover, a.next.page-numbers:hover { color: #001364; }
22
  .sticky { background: #adb9e1; }
23
  #thread li.pingback { background-color: #d8dcf2; border-color: #d8dcf2; }
24
  #thread li.pingback .threadpost { background-color: #d8dcf2; }
25
+ #topic-move input { color: #32689b; }
26
+ #topic-move input:hover { color: #001364; }
27
  #latest tr:hover, #forumlist tr:hover, #favorites tr:hover { background: #d8dcf2; }
28
  #profile-menu li a:hover { background: #d8dcf2; }
29
  a.prev.page-numbers:hover, a.next.page-numbers:hover { color: #001364; }
bp-forums/bbpress/bb-templates/kakumei/favorites.php CHANGED
@@ -29,7 +29,7 @@
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
33
  <?php if ( bb_current_user_can( 'edit_favorites_of', $user_id ) ) : ?>
34
  <td class="num">[<?php user_favorites_link('', array('mid'=>'&times;'), $user_id); ?>]</td>
35
  <?php endif; ?>
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
33
  <?php if ( bb_current_user_can( 'edit_favorites_of', $user_id ) ) : ?>
34
  <td class="num">[<?php user_favorites_link('', array('mid'=>'&times;'), $user_id); ?>]</td>
35
  <?php endif; ?>
bp-forums/bbpress/bb-templates/kakumei/forum.php CHANGED
@@ -19,7 +19,7 @@
19
  <td class="num"><?php topic_posts(); ?></td>
20
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
21
  <td class="num"><?php topic_last_poster(); ?></td>
22
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
23
  </tr>
24
  <?php endforeach; endif; ?>
25
 
@@ -29,7 +29,7 @@
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
33
  </tr>
34
  <?php endforeach; endif; ?>
35
  </table>
19
  <td class="num"><?php topic_posts(); ?></td>
20
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
21
  <td class="num"><?php topic_last_poster(); ?></td>
22
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
23
  </tr>
24
  <?php endforeach; endif; ?>
25
 
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
33
  </tr>
34
  <?php endforeach; endif; ?>
35
  </table>
bp-forums/bbpress/bb-templates/kakumei/front-page.php CHANGED
@@ -27,7 +27,7 @@
27
  <td class="num"><?php topic_posts(); ?></td>
28
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
29
  <td class="num"><?php topic_last_poster(); ?></td>
30
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
31
  </tr>
32
  <?php endforeach; endif; // $super_stickies ?>
33
 
@@ -37,7 +37,7 @@
37
  <td class="num"><?php topic_posts(); ?></td>
38
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
39
  <td class="num"><?php topic_last_poster(); ?></td>
40
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
41
  </tr>
42
  <?php endforeach; endif; // $topics ?>
43
  </table>
27
  <td class="num"><?php topic_posts(); ?></td>
28
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
29
  <td class="num"><?php topic_last_poster(); ?></td>
30
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
31
  </tr>
32
  <?php endforeach; endif; // $super_stickies ?>
33
 
37
  <td class="num"><?php topic_posts(); ?></td>
38
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
39
  <td class="num"><?php topic_last_poster(); ?></td>
40
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
41
  </tr>
42
  <?php endforeach; endif; // $topics ?>
43
  </table>
bp-forums/bbpress/bb-templates/kakumei/post-form.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php if ( !bb_is_topic() ) : ?>
2
  <p id="post-form-title-container">
3
  <label for="topic"><?php _e('Title'); ?>
4
- <input name="topic" type="text" id="topic" size="50" maxlength="80" tabindex="1" />
5
  </label>
6
  </p>
7
  <?php endif; do_action( 'post_form_pre_post' ); ?>
@@ -11,7 +11,7 @@
11
  </label>
12
  </p>
13
  <p id="post-form-tags-container">
14
- <label for="tags-input"><?php printf(__('Tags (comma seperated)'), bb_get_tag_page_link()) ?>
15
  <input id="tags-input" name="tags" type="text" size="50" maxlength="100" value="<?php bb_tag_name(); ?>" tabindex="4" />
16
  </label>
17
  </p>
1
  <?php if ( !bb_is_topic() ) : ?>
2
  <p id="post-form-title-container">
3
  <label for="topic"><?php _e('Title'); ?>
4
+ <input name="topic" type="text" id="topic" size="50" maxlength="100" tabindex="1" />
5
  </label>
6
  </p>
7
  <?php endif; do_action( 'post_form_pre_post' ); ?>
11
  </label>
12
  </p>
13
  <p id="post-form-tags-container">
14
+ <label for="tags-input"><?php printf(__('Tags (comma separated)'), bb_get_tag_page_link()) ?>
15
  <input id="tags-input" name="tags" type="text" size="50" maxlength="100" value="<?php bb_tag_name(); ?>" tabindex="4" />
16
  </label>
17
  </p>
bp-forums/bbpress/bb-templates/kakumei/style.css CHANGED
@@ -644,7 +644,22 @@ a.rss-link {
644
  background-position: 0 50%;
645
  }
646
 
647
- #topic-move { margin-top: 1em; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
648
 
649
  /* Other
650
  =================================== */
644
  background-position: 0 50%;
645
  }
646
 
647
+ #topic-move,
648
+ #topic-move fieldset,
649
+ #topic-move fieldset div {
650
+ display: inline;
651
+ }
652
+
653
+ #topic-move input {
654
+ font-family: inherit;
655
+ background: none;
656
+ border: none;
657
+ cursor: pointer;
658
+ color: #2e6e15;
659
+ font-size: 1em;
660
+ }
661
+
662
+ #topic-move input:hover { color: #006400; }
663
 
664
  /* Other
665
  =================================== */
bp-forums/bbpress/bb-templates/kakumei/tag-single.php CHANGED
@@ -21,7 +21,7 @@
21
  <td class="num"><?php topic_posts(); ?></td>
22
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
23
  <td class="num"><?php topic_last_poster(); ?></td>
24
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
25
  </tr>
26
  <?php endforeach; ?>
27
  </table>
21
  <td class="num"><?php topic_posts(); ?></td>
22
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
23
  <td class="num"><?php topic_last_poster(); ?></td>
24
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
25
  </tr>
26
  <?php endforeach; ?>
27
  </table>
bp-forums/bbpress/bb-templates/kakumei/view.php CHANGED
@@ -19,7 +19,7 @@
19
  <td class="num"><?php topic_posts(); ?></td>
20
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
21
  <td class="num"><?php topic_last_poster(); ?></td>
22
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
23
  </tr>
24
  <?php endforeach; endif; ?>
25
 
@@ -29,7 +29,7 @@
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
- <td class="num"><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
33
  </tr>
34
  <?php endforeach; endif; ?>
35
  </table>
19
  <td class="num"><?php topic_posts(); ?></td>
20
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
21
  <td class="num"><?php topic_last_poster(); ?></td>
22
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
23
  </tr>
24
  <?php endforeach; endif; ?>
25
 
29
  <td class="num"><?php topic_posts(); ?></td>
30
  <!-- <td class="num"><?php bb_topic_voices(); ?></td> -->
31
  <td class="num"><?php topic_last_poster(); ?></td>
32
+ <td class="num"><a href="<?php topic_last_post_link(); ?>" title="<?php topic_time(array('format'=>'datetime')); ?>"><?php topic_time(); ?></a></td>
33
  </tr>
34
  <?php endforeach; endif; ?>
35
  </table>
bp-forums/bbpress/rss.php CHANGED
@@ -108,7 +108,7 @@ if ( !$bb_db_override ) {
108
  if ( !$posts = get_user_favorites( $user->ID ) ) {
109
  die();
110
  }
111
- $title = esc_html( sprintf( __( '%1$s &raquo; User Favorites: %2$s' ), bb_get_option( 'name' ), $user->user_login ) );
112
  $link = bb_get_profile_link($feed_id);
113
  $link_self = get_favorites_rss_link($feed_id);
114
  break;
108
  if ( !$posts = get_user_favorites( $user->ID ) ) {
109
  die();
110
  }
111
+ $title = esc_html( sprintf( __( '%1$s &raquo; User Favorites: %2$s' ), bb_get_option( 'name' ), $user->user_nicename ) );
112
  $link = bb_get_profile_link($feed_id);
113
  $link_self = get_favorites_rss_link($feed_id);
114
  break;
bp-friends/bp-friends-classes.php CHANGED
@@ -149,7 +149,7 @@ class BP_Friends_Friendship {
149
  if ( !$user_id )
150
  $user_id = $bp->loggedin_user->id;
151
 
152
- like_escape($filter);
153
 
154
  if ( $limit && $page )
155
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
@@ -221,7 +221,7 @@ class BP_Friends_Friendship {
221
  function search_users( $filter, $user_id, $limit = null, $page = null ) {
222
  global $wpdb, $bp;
223
 
224
- like_escape($filter);
225
  $usermeta_table = $wpdb->base_prefix . 'usermeta';
226
  $users_table = $wpdb->base_prefix . 'users';
227
 
@@ -246,7 +246,7 @@ class BP_Friends_Friendship {
246
  function search_users_count( $filter ) {
247
  global $wpdb, $bp;
248
 
249
- like_escape($filter);
250
  $usermeta_table = $wpdb->prefix . 'usermeta';
251
  $users_table = $wpdb->base_prefix . 'users';
252
 
149
  if ( !$user_id )
150
  $user_id = $bp->loggedin_user->id;
151
 
152
+ $filter = like_escape( $wpdb->escape( $filter ) );
153
 
154
  if ( $limit && $page )
155
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
221
  function search_users( $filter, $user_id, $limit = null, $page = null ) {
222
  global $wpdb, $bp;
223
 
224
+ $filter = like_escape( $wpdb->escape( $filter ) );
225
  $usermeta_table = $wpdb->base_prefix . 'usermeta';
226
  $users_table = $wpdb->base_prefix . 'users';
227
 
246
  function search_users_count( $filter ) {
247
  global $wpdb, $bp;
248
 
249
+ $filter = like_escape( $wpdb->escape( $filter ) );
250
  $usermeta_table = $wpdb->prefix . 'usermeta';
251
  $users_table = $wpdb->base_prefix . 'users';
252
 
bp-groups/bp-groups-classes.php CHANGED
@@ -246,7 +246,7 @@ Class BP_Groups_Group {
246
  if ( !$user_id )
247
  $user_id = $bp->displayed_user->id;
248
 
249
- like_escape($filter);
250
 
251
  if ( $limit && $page )
252
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
@@ -268,7 +268,7 @@ Class BP_Groups_Group {
268
  function search_groups( $filter, $limit = null, $page = null, $sort_by = false, $order = false ) {
269
  global $wpdb, $bp;
270
 
271
- like_escape($filter);
272
 
273
  if ( $limit && $page )
274
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
@@ -462,8 +462,8 @@ Class BP_Groups_Group {
462
  if ( !is_site_admin() )
463
  $hidden_sql = $wpdb->prepare( " AND status != 'hidden'");
464
 
465
- like_escape($letter);
466
-
467
  if ( $limit && $page ) {
468
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
469
  $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->groups->table_name} WHERE name LIKE '$letter%%' {$hidden_sql} ORDER BY name ASC" ) );
@@ -698,7 +698,7 @@ Class BP_Groups_Member {
698
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
699
 
700
  if ( $filter ) {
701
- like_escape($filter);
702
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
703
  }
704
 
@@ -718,7 +718,7 @@ Class BP_Groups_Member {
718
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
719
 
720
  if ( $filter ) {
721
- like_escape($filter);
722
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
723
  }
724
 
@@ -738,7 +738,7 @@ Class BP_Groups_Member {
738
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
739
 
740
  if ( $filter ) {
741
- like_escape($filter);
742
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
743
  }
744
 
@@ -758,7 +758,7 @@ Class BP_Groups_Member {
758
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
759
 
760
  if ( $filter ) {
761
- like_escape($filter);
762
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
763
  }
764
 
@@ -778,7 +778,7 @@ Class BP_Groups_Member {
778
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
779
 
780
  if ( $filter ) {
781
- like_escape($filter);
782
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
783
  }
784
 
@@ -798,7 +798,7 @@ Class BP_Groups_Member {
798
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
799
 
800
  if ( $filter ) {
801
- like_escape($filter);
802
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
803
  }
804
 
246
  if ( !$user_id )
247
  $user_id = $bp->displayed_user->id;
248
 
249
+ $filter = like_escape( $wpdb->escape( $filter ) );
250
 
251
  if ( $limit && $page )
252
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
268
  function search_groups( $filter, $limit = null, $page = null, $sort_by = false, $order = false ) {
269
  global $wpdb, $bp;
270
 
271
+ $filter = like_escape( $wpdb->escape( $filter ) );
272
 
273
  if ( $limit && $page )
274
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
462
  if ( !is_site_admin() )
463
  $hidden_sql = $wpdb->prepare( " AND status != 'hidden'");
464
 
465
+ $letter = like_escape( $wpdb->escape( $letter ) );
466
+
467
  if ( $limit && $page ) {
468
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
469
  $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->groups->table_name} WHERE name LIKE '$letter%%' {$hidden_sql} ORDER BY name ASC" ) );
698
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
699
 
700
  if ( $filter ) {
701
+ $filter = like_escape( $wpdb->escape( $filter ) );
702
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
703
  }
704
 
718
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
719
 
720
  if ( $filter ) {
721
+ like_escape( $wpdb->escape( $filter ) );
722
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
723
  }
724
 
738
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
739
 
740
  if ( $filter ) {
741
+ $filter = like_escape( $wpdb->escape( $filter ) );
742
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
743
  }
744
 
758
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
759
 
760
  if ( $filter ) {
761
+ $filter = like_escape( $wpdb->escape( $filter ) );
762
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
763
  }
764
 
778
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
779
 
780
  if ( $filter ) {
781
+ $filter = like_escape( $wpdb->escape( $filter ) );
782
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
783
  }
784
 
798
  $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
799
 
800
  if ( $filter ) {
801
+ $filter = like_escape( $wpdb->escape( $filter ) );
802
  $filter_sql = " AND ( g.name LIKE '{$filter}%%' OR g.description LIKE '{$filter}%%' )";
803
  }
804
 
bp-groups/bp-groups-templatetags.php CHANGED
@@ -1649,7 +1649,7 @@ function bp_new_group_description() {
1649
  }
1650
  function bp_get_new_group_description() {
1651
  global $bp;
1652
- return apply_filters( 'bp_get_new_group_description', $bp->groups->current_group->name );
1653
  }
1654
 
1655
  function bp_new_group_news() {
@@ -1657,7 +1657,7 @@ function bp_new_group_news() {
1657
  }
1658
  function bp_get_new_group_news() {
1659
  global $bp;
1660
- return apply_filters( 'bp_get_new_group_news', $bp->groups->current_group->name );
1661
  }
1662
 
1663
  function bp_new_group_enable_wire() {
1649
  }
1650
  function bp_get_new_group_description() {
1651
  global $bp;
1652
+ return apply_filters( 'bp_get_new_group_description', $bp->groups->current_group->description );
1653
  }
1654
 
1655
  function bp_new_group_news() {
1657
  }
1658
  function bp_get_new_group_news() {
1659
  global $bp;
1660
+ return apply_filters( 'bp_get_new_group_news', $bp->groups->current_group->news );
1661
  }
1662
 
1663
  function bp_new_group_enable_wire() {
bp-loader.php CHANGED
@@ -4,12 +4,12 @@ Plugin Name: BuddyPress
4
  Plugin URI: http://buddypress.org/download/
5
  Description: BuddyPress will add social networking features to a new or existing WordPress MU installation.
6
  Author: The BuddyPress Community
7
- Version: 1.1.1
8
  Author URI: http://buddypress.org/developers/
9
  Site Wide Only: true
10
  */
11
 
12
- define( 'BP_VERSION', '1.1.1' );
13
 
14
  /***
15
  * This file will load in each BuddyPress component based on which
4
  Plugin URI: http://buddypress.org/download/
5
  Description: BuddyPress will add social networking features to a new or existing WordPress MU installation.
6
  Author: The BuddyPress Community
7
+ Version: 1.1.2
8
  Author URI: http://buddypress.org/developers/
9
  Site Wide Only: true
10
  */
11
 
12
+ define( 'BP_VERSION', '1.1.2' );
13
 
14
  /***
15
  * This file will load in each BuddyPress component based on which
bp-themes/bp-default/style.css CHANGED
@@ -2,7 +2,7 @@
2
  Theme Name: BuddyPress Default
3
  Theme URI: http://buddypress.org/extend/themes/
4
  Description: The default theme for BuddyPress.
5
- Version: 1.1.1
6
  Author: BuddyPress.org
7
  Author URI: http://buddypress.org
8
  Tags: buddypress, three-columns, white, orange, flexible-width
2
  Theme Name: BuddyPress Default
3
  Theme URI: http://buddypress.org/extend/themes/
4
  Description: The default theme for BuddyPress.
5
+ Version: 1.1.2
6
  Author: BuddyPress.org
7
  Author URI: http://buddypress.org
8
  Tags: buddypress, three-columns, white, orange, flexible-width
bp-themes/bp-sn-parent/_inc/js/ajax.js CHANGED
@@ -78,12 +78,12 @@ jQuery(document).ready( function() {
78
  var page = j(this).attr('href');
79
  page = page.split('upage=');
80
 
81
- if ( !j("input#selected_letter").val() )
82
  var letter = '';
83
  else
84
  var letter = j("input#selected_letter").val();
85
 
86
- if ( !j("input#search_terms").val() )
87
  var search_terms = '';
88
  else
89
  var search_terms = j("input#search_terms").val();
@@ -332,12 +332,12 @@ jQuery(document).ready( function() {
332
  var page = j(this).attr('href');
333
  page = page.split('gpage=');
334
 
335
- if ( !j("input#selected_letter").val() )
336
  var letter = '';
337
  else
338
  var letter = j("input#selected_letter").val();
339
 
340
- if ( !j("input#search_terms").val() )
341
  var search_terms = '';
342
  else
343
  var search_terms = j("input#search_terms").val();
@@ -972,36 +972,6 @@ jQuery(document).ready( function() {
972
  }
973
  );
974
 
975
- j("form#status-update-form").livequery('submit',
976
- function() {
977
- j.post( ajaxurl, {
978
- action: 'status_new_status',
979
- 'cookie': encodeURIComponent(document.cookie),
980
- '_wpnonce': j('input#_wpnonce_add_status').val(),
981
- 'status-update-input': j('#status-update-input').val()
982
- },
983
- function(response) {
984
- if ( response == "1" ) {
985
- j("div#user-status").slideUp(400,
986
- function() {
987
- j.post( ajaxurl, {
988
- action: 'status_show_status',
989
- 'cookie': encodeURIComponent(document.cookie)
990
- },
991
- function(response) {
992
- j("div#user-status").html(response);
993
- j("div#user-status").slideDown(400);
994
- j(window).unbind('click');
995
- });
996
- }
997
- );
998
- }
999
- });
1000
-
1001
- return false;
1002
- }
1003
- );
1004
-
1005
  j("a#status-clear-status").livequery('click',
1006
  function() {
1007
  j(this).addClass('ajax-loader');
@@ -1093,12 +1063,12 @@ jQuery(document).ready( function() {
1093
  var page = j(this).attr('href');
1094
  page = page.split('bpage=');
1095
 
1096
- if ( !j("input#selected_letter").val() )
1097
  var letter = '';
1098
  else
1099
  var letter = j("input#selected_letter").val();
1100
 
1101
- if ( !j("input#search_terms").val() )
1102
  var search_terms = '';
1103
  else
1104
  var search_terms = j("input#search_terms").val();
78
  var page = j(this).attr('href');
79
  page = page.split('upage=');
80
 
81
+ if ( undefined === j("input#selected_letter").val() )
82
  var letter = '';
83
  else
84
  var letter = j("input#selected_letter").val();
85
 
86
+ if ( undefined === j("input#search_terms").val() )
87
  var search_terms = '';
88
  else
89
  var search_terms = j("input#search_terms").val();
332
  var page = j(this).attr('href');
333
  page = page.split('gpage=');
334
 
335
+ if ( undefined === j("input#selected_letter").val() )
336
  var letter = '';
337
  else
338
  var letter = j("input#selected_letter").val();
339
 
340
+ if ( undefined === j("input#search_terms").val() )
341
  var search_terms = '';
342
  else
343
  var search_terms = j("input#search_terms").val();
972
  }
973
  );
974
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
975
  j("a#status-clear-status").livequery('click',
976
  function() {
977
  j(this).addClass('ajax-loader');
1063
  var page = j(this).attr('href');
1064
  page = page.split('bpage=');
1065
 
1066
+ if ( undefined === j("input#selected_letter").val() )
1067
  var letter = '';
1068
  else
1069
  var letter = j("input#selected_letter").val();
1070
 
1071
+ if ( undefined === j("input#search_terms").val() )
1072
  var search_terms = '';
1073
  else
1074
  var search_terms = j("input#search_terms").val();
bp-themes/bp-sn-parent/style.css CHANGED
@@ -2,7 +2,7 @@
2
  Theme Name: BuddyPress Social Network Parent Theme
3
  Theme URI: http://buddypress.org/extend/themes/
4
  Description: The social network parent theme for BuddyPress. This theme should not be activated and used directly. BuddyPress themes can be downloaded at: <a href="http://buddypress.org/extend/themes/">http://buddypress.org/extend/themes/</a>
5
- Version: 1.1.1
6
  Author: BuddyPress.org
7
  Author URI: http://buddypress.org
8
  */
2
  Theme Name: BuddyPress Social Network Parent Theme
3
  Theme URI: http://buddypress.org/extend/themes/
4
  Description: The social network parent theme for BuddyPress. This theme should not be activated and used directly. BuddyPress themes can be downloaded at: <a href="http://buddypress.org/extend/themes/">http://buddypress.org/extend/themes/</a>
5
+ Version: 1.1.2
6
  Author: BuddyPress.org
7
  Author URI: http://buddypress.org
8
  */
bp-themes/bp-sn-parent/wire/post-form.php CHANGED
@@ -37,7 +37,6 @@
37
  <?php do_action( 'bp_after_wire_post_form' ); /* Deprecated -> */ do_action( 'bp_wire_custom_wire_boxes_after' ); ?>
38
 
39
  <input type="submit" name="wire-post-submit" id="wire-post-submit" value="<?php _e( 'Post &raquo;', 'buddypress' ) ?>" />
40
- <input type="hidden" name="bp_wire_item_id" id="bp_wire_item_id" value="<?php echo bp_get_wire_item_id() ?>" />
41
 
42
  <?php wp_nonce_field( 'bp_wire_post' ) ?>
43
 
37
  <?php do_action( 'bp_after_wire_post_form' ); /* Deprecated -> */ do_action( 'bp_wire_custom_wire_boxes_after' ); ?>
38
 
39
  <input type="submit" name="wire-post-submit" id="wire-post-submit" value="<?php _e( 'Post &raquo;', 'buddypress' ) ?>" />
 
40
 
41
  <?php wp_nonce_field( 'bp_wire_post' ) ?>
42
 
bp-themes/bp-sn-parent/wire/post-list.php CHANGED
@@ -58,7 +58,8 @@
58
  </ul>
59
 
60
  <?php do_action( 'bp_after_wire_post_list' ) ?>
61
-
 
62
  </div>
63
  <?php else: ?>
64
 
58
  </ul>
59
 
60
  <?php do_action( 'bp_after_wire_post_list' ) ?>
61
+
62
+ <input type="hidden" name="bp_wire_item_id" id="bp_wire_item_id" value="<?php echo bp_get_wire_item_id() ?>" />
63
  </div>
64
  <?php else: ?>
65
 
bp-xprofile.php CHANGED
@@ -327,25 +327,25 @@ function xprofile_screen_edit_profile() {
327
 
328
  /* Loop through the posted fields formatting any datebox values then validate the field */
329
  foreach ( $posted_field_ids as $field_id ) {
330
-
331
  if ( !isset( $_POST['field_' . $field_id] ) ) {
332
-
333
- if ( isset( $_POST['field_' . $field_id . '_day'] ) ) {
334
  /* Concatenate the values. */
335
  $date_value = $_POST['field_' . $field_id . '_day'] . ' ' .
336
  $_POST['field_' . $field_id . '_month'] . ' ' .
337
  $_POST['field_' . $field_id . '_year'];
338
-
339
  /* Turn the concatenated value into a timestamp */
340
  $_POST['field_' . $field_id] = strtotime( $date_value );
341
  }
342
-
343
  }
344
-
345
  if ( xprofile_check_is_required_field( $field_id ) && empty( $_POST['field_' . $field_id] ) )
346
  $errors = true;
347
  }
348
-
349
  if ( $errors )
350
  bp_core_add_message( __( 'Please make sure you fill in all required fields in this profile field group before saving.', 'buddypress' ), 'error' );
351
  else {
327
 
328
  /* Loop through the posted fields formatting any datebox values then validate the field */
329
  foreach ( $posted_field_ids as $field_id ) {
330
+
331
  if ( !isset( $_POST['field_' . $field_id] ) ) {
332
+
333
+ if ( is_numeric( $_POST['field_' . $field_id . '_day'] ) ) {
334
  /* Concatenate the values. */
335
  $date_value = $_POST['field_' . $field_id . '_day'] . ' ' .
336
  $_POST['field_' . $field_id . '_month'] . ' ' .
337
  $_POST['field_' . $field_id . '_year'];
338
+
339
  /* Turn the concatenated value into a timestamp */
340
  $_POST['field_' . $field_id] = strtotime( $date_value );
341
  }
342
+
343
  }
344
+
345
  if ( xprofile_check_is_required_field( $field_id ) && empty( $_POST['field_' . $field_id] ) )
346
  $errors = true;
347
  }
348
+
349
  if ( $errors )
350
  bp_core_add_message( __( 'Please make sure you fill in all required fields in this profile field group before saving.', 'buddypress' ), 'error' );
351
  else {
bp-xprofile/bp-xprofile-templatetags.php CHANGED
@@ -469,8 +469,8 @@ function bp_the_profile_field_options( $args = '' ) {
469
  break;
470
 
471
  case 'datebox':
472
-
473
- if ( $field->data->value != '' ) {
474
  $day = date("j", $field->data->value);
475
  $month = date("F", $field->data->value);
476
  $year = date("Y", $field->data->value);
469
  break;
470
 
471
  case 'datebox':
472
+
473
+ if ( !empty( $field->data->value ) ) {
474
  $day = date("j", $field->data->value);
475
  $month = date("F", $field->data->value);
476
  $year = date("Y", $field->data->value);
bp-xprofile/deprecated/bp-xprofile-deprecated.php CHANGED
@@ -676,8 +676,6 @@ function xprofile_load_blog_signup_meta() {
676
  $blog_meta = array(
677
  'public' => $_POST['blog_public'],
678
  'lang_id' => 1, // deprecated
679
- 'blogname' => $_POST['blogname'],
680
- 'blog_title' => $_POST['blog_title']
681
  );
682
 
683
  $bp_meta = unserialize( stripslashes( $_POST['bp_xprofile_meta'] ) );
676
  $blog_meta = array(
677
  'public' => $_POST['blog_public'],
678
  'lang_id' => 1, // deprecated
 
 
679
  );
680
 
681
  $bp_meta = unserialize( stripslashes( $_POST['bp_xprofile_meta'] ) );
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: apeatling
3
  Tags: wpmu, buddypress, social, networking, profiles, messaging, friends, groups, forums, activity
4
  Requires at least: WordPress MU 2.8.4
5
  Tested up to: WordPress MU 2.8.4
6
- Stable tag: 1.1.1
7
 
8
  BuddyPress is a suite of WordPress MU social networking plugins and themes.
9
 
3
  Tags: wpmu, buddypress, social, networking, profiles, messaging, friends, groups, forums, activity
4
  Requires at least: WordPress MU 2.8.4
5
  Tested up to: WordPress MU 2.8.4
6
+ Stable tag: 1.1.2
7
 
8
  BuddyPress is a suite of WordPress MU social networking plugins and themes.
9